Текущее время: Чт, ноя 20 2025, 13:05

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


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

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


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

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