Текущее время: Вс, июл 20 2025, 00:22

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая ошибка при двойном клике АЛВ ячейке.
СообщениеДобавлено: Пт, окт 06 2006, 09:05 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
<я не знать русский языка>.

Пишу так:
Code:
DATA: gt_outtab type table of ZPLANS .
...........


  IF g_custom_container IS INITIAL.
    CREATE OBJECT g_custom_container
           EXPORTING container_name = g_container.
    CREATE OBJECT g_grid
           EXPORTING i_parent = g_custom_container.
*Ї1.Set status of all cells to editable using the layout structure.
    gs_layout-edit = 'X'.


*    select * from ZPLANS
*    into table temp_plans up to g_max rows.

PERFORM OptionFilds changing gt_fieldcat_lvc.

**set handler lcl_event_receiver=>handle_toolbar for g_grid.
*set handler lcl_event_receiver=>HANDLE_USER_COMMAND for g_grid.

    CALL METHOD g_grid->set_table_for_first_display
         EXPORTING i_structure_name = 'ZPLANS'
                   is_layout        = gs_layout
         CHANGING
                   it_outtab        = gt_outtab
                   it_fieldcatalog      = gt_fieldcat_lvc.




*Ї2.Use SET_READY_FOR_INPUT to allow editing initially.
*   (state "editable and ready for input").
    CALL METHOD g_grid->set_ready_for_input
          EXPORTING i_ready_for_input = 1.

  ENDIF.
........................................................................

FORM OptionFilds  changing pt_fieldcat type lvc_t_fcat.

data ls_alv type lvc_s_fcat.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'ZPLANS'
    CHANGING
      ct_fieldcat      = pt_fieldcat.



  clear ls_alv.
   ls_alv-tabname = 'ZPLANS'.
   ls_alv-fieldname = 'POSICION'.
   ls_alv-coltext = ls_alv-seltext = 'Позиция'.
   ls_alv-style  = cl_gui_alv_grid=>mc_style_enabled.
   ls_alv-key = 'X'.
  INSERT ls_alv INTO pt_fieldcat index 1.

.............................................


Все было нормально. Но при добавленнии блока:
Code:
  clear ls_alv.
   ls_alv-tabname = 'ZPLANS'.
   ls_alv-fieldname = 'POSICION'.
   ls_alv-coltext = ls_alv-seltext = 'Позиция'.
   ls_alv-style  = cl_gui_alv_grid=>mc_style_enabled.
   ls_alv-key = 'X'.
  INSERT ls_alv INTO pt_fieldcat index 1.


При двойном клике по любой ячейке падает в дамп:
Пишет:
Field symbol has not yet been assigned.


Что произошло?


Error in ABAP application program.

The current ABAP program "CL_GUI_ALV_GRID===============CP " had to be
terminated because one of the
statements could not be executed.

This is probably due to an error in the ABAP program.

............................................

002110 * If field has not DDIC referencen
002120 if ls_fieldcat-ref_table is initial.
002130 * Formal field check without DDIC reference
> call method me->formal_field_check_no_ddic
002150 exporting
002160 i_currency = <l_currency>
002170 i_value = ls_cells-value
002180 i_row_id = ls_cells-row_id
002190 i_tabix = l_tabix
002200 is_fieldcat = ls_fieldcat
002210 importing
002220 eflg_invalid = eflg_invalid
002230 changing
002240 c_field = <l_field>
002250 ct_good_cells = et_good_cells
002260 ct_mod_cells = et_mod_cells.
002270 else.
........................................................

Я понимаю что неправильно добавил поле в АЛВ, но как будет правильно? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Code:
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'ZPLANS'
    CHANGING
      ct_fieldcat      = pt_fieldcat.

  clear ls_alv.
   ls_alv-tabname = 'ZPLANS'.
   ls_alv-fieldname = 'POSICION'.
   ls_alv-coltext = ls_alv-seltext = 'Позиция'.
   ls_alv-style  = cl_gui_alv_grid=>mc_style_enabled.
   ls_alv-key = 'X'.
  INSERT ls_alv INTO pt_fieldcat index 1.

то есть теперь у вас в каталоге два поля с именем POSICION?
Может вы хотели не вставить а изменить поле?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ну вот, Sibrin удалил пост..
А ведь может речь как раз о вставке нового поля :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:28 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
Я <я не знать русский языка>:
Code:
clear ls_alv.
   ls_alv-tabname = '1'.
   ls_alv-fieldname = 'POSICION'.
   ls_alv-coltext = ls_alv-seltext = 'Позиция'.
   ls_alv-style  = cl_gui_alv_grid=>mc_style_enabled.
   ls_alv-key = 'X'.
  INSERT ls_alv INTO pt_fieldcat index 1.


Поля POSICION в таблице ZPLANS нету. Я просто хочю добавить свое поле (вспомогательное) в АЛВ к полям ZPLANS.

Или нужно определять переменную POSICION + ZPLANS-<поля> и соответственно вызать АЛВ.


Последний раз редактировалось osmus Пт, окт 06 2006, 09:30, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
T написал:
А ведь может речь как раз о вставке нового поля :)


Я внимательно прочитал вопрос и решил, что тогда бы ALV ругнулся сразу, а не при двойном клике...
Был не прав.

Для полной страховки можно заполнять так:

Code:
    DESCRIBE TABLE t_fieldcatalog LINES i.
    i = i + 1.
    fieldcat-fieldname = 'POSICION'.
    fieldcat-inttype = 'C'.
    fieldcat-intlen = '4'.
    fieldcat-outputlen = '4'.
    fieldcat-coltext = 'Позиция'.
    fieldcat-seltext = 'Позиция'.
    fieldcat-tooltip = 'Позиция'.
    fieldcat-row_pos = '1'.
    fieldcat-col_pos = i.
    fieldcat-col_id = i.
    fieldcat-tech_col = i.
    APPEND fieldcat TO t_fieldcatalog.


или использовать DATATYPE, DOMNAME.

Но ссылаться на таблицу не надо: ls_alv-tabname = ''.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:50 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
sibrin написал:
..........................................
Я внимательно прочитал вопрос и решил, что тогда бы ALV ругнулся сразу, а не при двойном клике...
Был не прав.

Для полной страховки можно заполнять так:
.........................................


Да работает. По двойном клику ошибки нет.
Но оно его добавляет в конец :cry: .
А мне нужно чтоб оно добавило его в начало.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 09:52 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
Т написал(а):
Ну вот, Sibrin удалил пост..
А ведь может речь как раз о вставке нового поля

Да именно мне нужно вставить новое поле.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 10:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
osmus написал(а):
А мне нужно чтоб оно добавило его в начало.


Так я для того подробно и написал:
Code:
fieldcat-col_id = i.
fieldcat-col_id = i.
fieldcat-tech_col = i.


Переномируйте по порядку и будет Вам счастье.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 10:39 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, окт 04 2006, 16:07
Сообщения: 38
А при назначении этих параметров к примнру.
Code:
   ls_alv-row_pos = '0'.
    ls_alv-col_pos = '1'.
    ls_alv-col_id = '0'.
    ls_alv-tech_col = '0'.


Нужно здвигать значения всей таблицы на +1?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 06 2006, 10:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
osmus написал(а):
Нужно здвигать значения всей таблицы на +1?


Да.

Поиграйтесь с параметрами.
Добавление столбца col_pos = '0' без сдвига всей таблицы тоже работает, но есть сомнения, что не всегда и не везде.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB