Текущее время: Сб, июл 19 2025, 05:18

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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