Текущее время: Ср, июл 30 2025, 22:59

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


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

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


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

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