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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Искажаются данные в ALV
СообщениеДобавлено: Вт, июл 11 2006, 11:01 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, апр 08 2005, 09:03
Сообщения: 98
Кусок кода программы, выводящий пару ALV отчетов в один список:

Code:
  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
       EXPORTING
            I_CALLBACK_PROGRAM       = REPID
            I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
            I_CALLBACK_PF_STATUS_SET = PFSTATUS.

*   первая часть
*  X_LAYOUT-BOX_FIELDNAME = 'PERNR'.
*  X_LAYOUT-BOX_TABNAME   = 'T_MAIN'.
*  X_LAYOUT-LIGHTS_FIELDNAME  = 'AMPEL'.
*  X_LAYOUT-INFO_FIELDNAME = 'LISTINFO'.
*
  clear X_LAYOUT.
  X_LAYOUT-zebra = 'X'.
  X_LAYOUT-colwidth_optimize = 'X'.
  X_LAYOUT-totals_only       = 'X'.
  X_LAYOUT-totals_text       = 'ИТОГО'.
  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
       EXPORTING
            IT_FIELDCAT     = TABLE1[]
            IS_LAYOUT       = X_LAYOUT
            I_TABNAME       = 'T_MAIN'
            IT_EVENTS       = GT_XEVENTS[]
            I_TEXT          = TEXT-0B1
       TABLES
            T_OUTTAB        = T_MAIN[].

*  вторая часть
  describe table t_0076 lines s_count.
  if s_count > 0.
    clear Y_LAYOUT.
    Y_LAYOUT-zebra = 'X'.
    Y_LAYOUT-colwidth_optimize = 'X'.
    Y_LAYOUT-totals_only       = 'X'.
    Y_LAYOUT-totals_text       = 'ИТОГО'.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
         EXPORTING
              IT_FIELDCAT     = TABLE2[]
              IS_LAYOUT       = Y_LAYOUT
              I_TABNAME       = 'T_0076'
              IT_EVENTS       = GT_YEVENTS[]
              I_TEXT          = TEXT-0B2
         TABLES
              T_OUTTAB        = T_0076[].
  endif.
*    вывод
  GT_PRINT-RESERVE_LINES = 2.
  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
       EXPORTING
            IS_PRINT = GT_PRINT.
ENDFORM.                    " PrintALV


если указать у некоторых полей выводимой таблице, что они редактируемы вот таким участком кода:
Code:
*&---------------------------------------------------------------------*
*&      Form  REFRESH_ALV
*&---------------------------------------------------------------------*
FORM REFRESH_ALV CHANGING RS_SELFIELD TYPE SLIS_SELFIELD.
  CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_SET'
    EXPORTING
      IS_LAYOUT      = X_LAYOUT
      IT_FIELDCAT    = TABLE1[]
      IT_SORT        = GT_SORT1[]
*      it_filter      = g_filter_tab[]
*      is_list_scroll = g_scroll
    EXCEPTIONS
      OTHERS         = 1.

  CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_SET'
    EXPORTING
      IS_LAYOUT      = Y_LAYOUT
      IT_FIELDCAT    = TABLE2[]
      IT_SORT        = GT_SORT2[]
*      it_filter      = g_filter_tab[]
*      is_list_scroll = g_scroll
    EXCEPTIONS
      OTHERS         = 1.
  RS_SELFIELD-REFRESH    = 'X'.
  RS_SELFIELD-COL_STABLE = 'X'.
  RS_SELFIELD-ROW_STABLE = 'X'.
ENDFORM.                    " REFRESH_ALV


то происходит искажение полей, которые переданы как редактируемые.

Причем при первом выводе на экран все показывается правильно. Это потом, выполняя двойной клик на строке или печать документа, получаем искажение. В отладке (/h) я не могу попасть в код, который отрабатывает по двойному клику, а сразу проваливаюсь в свой обработчик "REFRESH_ALV". :?

Никто не сталкивался?


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

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


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

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


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

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