Текущее время: Чт, июл 31 2025, 18:25

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 13:20 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Добрый день участникам форума!
Возникла проблема: для объектного грида необходимо изменять каталог выводимых полей в зависимости от значения определенного поля. Использование метода set_frontend_fieldcatalog приводит к неадекватным результатам (может, конечно, я его неадекватно использую)) ): каталог полей меняется, но даты и числа в гриде начинают отображаться в системном, а не в преобразованном виде.

Вот кусок кода, подскажите кто может где что я неправильно сделал:
Code:
  IF custom_container2 IS INITIAL.
* create a custom container control for our ALV Control
    CREATE OBJECT custom_container2
      EXPORTING
        container_name              = cont_for_alv2
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.

* create an instance of alv control
    CREATE OBJECT gf_grid2
      EXPORTING
        i_parent = custom_container2.

    gs_layout-sel_mode = 'C'.
    gs_layout-edit = space.
    gs_layout-stylefname = 'CELLTAB'.
    gs_layout-ctab_fname = 'CELLCOLOR'.

    PERFORM set_editable_cells TABLES gt_subitems.

    perform set_cell_colors tables gt_subitems.

    PERFORM set_weight_fieldcat TABLES gt_fieldcat.

    PERFORM exclude_functions TABLES gt_exclude.

    CALL METHOD gf_grid2->set_table_for_first_display
      EXPORTING
        i_structure_name     = 'GT_SUBITEMS'
        is_layout            = gs_layout
        it_toolbar_excluding = gt_exclude
      CHANGING
        it_outtab            = gt_subitems[]
        it_fieldcatalog      = gt_fieldcat[].

  ELSE.
    " re-layout
    gs_layout-sel_mode = 'C'.
    gs_layout-edit = space.
    gs_layout-stylefname = 'CELLTAB'.
    PERFORM set_editable_cells TABLES gt_subitems.
    perform set_cell_colors tables gt_subitems.
    CALL METHOD gf_grid2->set_frontend_layout
      EXPORTING
        is_layout = gs_layout.

    " re-fieldcat
    PERFORM set_weight_fieldcat TABLES gt_fieldcat.
    call method gf_grid2->set_frontend_fieldcatalog
      exporting
        it_fieldcatalog = gt_fieldcat[].

    " get scroll
    call method gf_grid2->get_scroll_info_via_id     " положение прокрутки
      importing
        ES_ROW_NO     = gs_row_no
        ES_ROW_INFO   = gs_row_info
        ES_COL_INFO   = gs_col_info.

    CALL METHOD gf_grid2->refresh_table_display.

    " set scroll
    call method gf_grid2->set_scroll_info_via_id
      exporting
        is_row_info = gs_row_info
        is_col_info = gs_col_info
        is_row_no   = gs_row_no.

    CALL METHOD cl_gui_cfw=>flush.

  ENDIF.                               "IF custom_container IS INITIAL


p.s. в подпрограмме set_weight_fieldcat каталог полей перед созданием очищаю


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 15:18 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Проблема снята - пришлось указывать ref_table и ref_field для полей даты и чисел при построении таблицы каталога полей (строил вручную).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 15:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Porter написал(а):
Проблема снята - пришлось указывать ref_table и ref_field для полей даты и чисел при построении таблицы каталога полей (строил вручную).

стройте Фм-ом CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 15:41 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Цитата:
стройте Фм-ом CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'.

мог, но пришлось бы добавлять нужные и удалять лишние поля...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 15:53 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Porter написал(а):
Цитата:
стройте Фм-ом CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'.

мог, но пришлось бы добавлять нужные и удалять лишние поля...

Code:
        i_structure_name     = 'GT_SUBITEMS'
        it_outtab            = gt_subitems[]

Из этого видно, что у Вас фиксированная структура. Стройте на ее основе. Лишнее в цикле скрывайте устанавливая соответствующий параметр в каталоге.
Еще на счет прокрутки, я бы посоветовал использовать параметр IS_STABLE в методе refresh, устанавливаете там галочки чтобы сохранить позицию курсора.
Конечно, что удобнее решать Вам...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: set_frontend_fieldcatalog
СообщениеДобавлено: Чт, фев 03 2011, 16:45 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
То Besa: Насчет прокрутки, спасибо большое! Только что воспользовался.


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

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


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

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


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

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