Текущее время: Чт, июл 17 2025, 23:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: cl_gui_alv_grid=>get_grid_handle
СообщениеДобавлено: Вт, окт 25 2005, 09:06 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Подскажите, как получить handle грида, сделанного reuse_alv_grid_display (в user_command).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 10:04 
Гость
Code:
FORM USCOM USING R_UCOMM     LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.

  DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID, ZI TYPE I.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = L_GRID.


  CALL METHOD L_GRID->GET_GRID_HANDLE
    IMPORTING
      GRID_HANDLE = ZI.

  CALL METHOD CL_GUI_CFW=>FLUSH.
 

  IF R_UCOMM = '&IC1' AND RS_SELFIELD-TABINDEX > 0.
*
*
  ENDIF.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 10:50 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Оказалось проще, чем я думал... Хэндл даже не нужен, если сразу можно получить указатель на объект грида. Теперь возникает другая проблема.
Допустим, в гриде 5 строк. Пользователь заполняет в 1, 4 и 5 строчках некоторые данные, затем (не нажимая энтер) нажимает кнопку сохранения. Данные во внутр. таблице еще не обновились. Как проще сделать соответствие того, что на экране, тому, что во внутр. таблице? Послать гриду ок-код энтера? Или можно сделать assign отображаемой таблице, а затем в цикле загнать соотв. значения во внутр.?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 10:57 
Гость
RoadRunner написал:
Оказалось проще, чем я думал... Хэндл даже не нужен, если сразу можно получить указатель на объект грида. Теперь возникает другая проблема.
Допустим, в гриде 5 строк. Пользователь заполняет в 1, 4 и 5 строчках некоторые данные, затем (не нажимая энтер) нажимает кнопку сохранения. Данные во внутр. таблице еще не обновились. Как проще сделать соответствие того, что на экране, тому, что во внутр. таблице? Послать гриду ок-код энтера? Или можно сделать assign отображаемой таблице, а затем в цикле загнать соотв. значения во внутр.?


Code:
TYPE-POOLS: SLIS, KKBLO.

DATA: LT_EVENTS TYPE SLIS_T_EVENT,
      LS_EVENT TYPE SLIS_ALV_EVENT.
DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV,
      LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA:   GT_FIELDCATALOG TYPE LVC_T_FCAT,
          IT_FIELDCAT TYPE  SLIS_T_FIELDCAT_ALV,
        PRN LIKE SY-REPID,
        IT LIKE LINE OF IT_FIELDCAT,
        GT LIKE LINE OF GT_FIELDCATALOG.


  CLEAR: LT_EVENTS. REFRESH LT_EVENTS.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE = 1
    IMPORTING
      ET_EVENTS   = LT_EVENTS.

  CLEAR LS_EVENT.
  READ TABLE LT_EVENTS WITH KEY NAME = 'DATA_CHANGED'
       INTO LS_EVENT.
  IF SY-SUBRC = 0.
    DELETE LT_EVENTS WHERE NAME = 'DATA_CHANGED'.
    MOVE 'DATA_CHANGED' TO LS_EVENT-NAME.
    MOVE 'EDITDATA' TO LS_EVENT-FORM.
    APPEND LS_EVENT TO LT_EVENTS.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = PRN
      IS_LAYOUT                = LS_LAYOUT
      I_SAVE                   = 'A'
      IT_EVENTS                = LT_EVENTS[]
      IT_FIELDCAT              = IT_FIELDCAT[]
      I_CALLBACK_USER_COMMAND  = 'USCOM'
      I_CALLBACK_PF_STATUS_SET = 'SETPF'
    TABLES
      T_OUTTAB                 = TB.



FORM EDITDATA USING RR_DATA_CHANGED TYPE REF TO
                                          CL_ALV_CHANGED_DATA_PROTOCOL.
* Здесь можно вообще ничего не писать,
* данные всё равно обновятся
ENDFORM.                    "EDITDATA


FORM USCOM USING R_UCOMM     LIKE SY-UCOMM
                        RS_SELFIELD TYPE SLIS_SELFIELD.

  DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID.

* Это нужно, чтобы данные обновились,
* при нажатию на пользовательскую кнопку

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = L_GRID.

  CALL METHOD L_GRID->CHECK_CHANGED_DATA.
   RS_SELFIELD-REFRESH = 'X'.
ENDFORM.


Последний раз редактировалось РМщик Вт, окт 25 2005, 11:00, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 10:58 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Прошу прощения, вопрос снят :)
CALL METHOD L_GRID->CHECK_CHANGED_DATA


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 11:02 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
РМщик, большое спасибо!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 11:02 
Гость
RoadRunner написал:
Прошу прощения, вопрос снят :)
CALL METHOD L_GRID->CHECK_CHANGED_DATA



да, правильно, но это - в USER_COMMAND, если нажали
на твою кнопку,
а чтобы данные обновились при нажатии стандартной кнопки - см выше :)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 25 2005, 11:03 
Гость
RoadRunner написал:
РМщик, большое спасибо!


не за что :wink:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 26 2005, 10:01 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Беру :)


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

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


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

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


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

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