Текущее время: Чт, апр 18 2024, 23:17

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пт, июл 08 2016, 16:46 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
Приветствую, уважаемые форумчане!
продолжаю развивать идею динамического паттерна и в этой связи продолжаю задавать глупые вопросы :roll:

подскажите пожалуйста существует ли способ динамически настраивать каталог полей в алв гриде?
на данный момент у нас это реализовано так
Code:
METHOD set_fcat.

  DATA:
        lt_fcat               TYPE  lvc_t_fcat
      , wa_fcat               TYPE  lvc_s_fcat
      , lt_fcat_tech          TYPE  lvc_t_fcat
      .

  FIELD-SYMBOLS:
                 <wa_fcat>    TYPE  lvc_s_fcat
               .


  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name       = me->md_ddstruct
* {  amchebotaev 20.06.2013 18:22:26
*      Ignore reading fcat from buffer
      i_bypassing_buffer     = 'X'
* }  amchebotaev 20.06.2013 18:22:26
    CHANGING
      ct_fieldcat            = lt_fcat
    EXCEPTIONS
      inconsistent_interface = 1
      program_error          = 2
      OTHERS                 = 3.
  IF sy-subrc <> 0.
    RAISE EXCEPTION TYPE zcx_sm
      EXPORTING
        textid = zcx_sm=>fcat_create_error.
  ENDIF.

  IF me->md_ddstruct_tech IS NOT INITIAL.

    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
        i_structure_name       = me->md_ddstruct_tech
* {  amchebotaev 20.06.2013 18:22:26
*      Ignore reading fcat from buffer
      i_bypassing_buffer     = 'X'
* }  amchebotaev 20.06.2013 18:22:26
      CHANGING
        ct_fieldcat            = lt_fcat_tech
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.
    IF sy-subrc <> 0.
      RAISE EXCEPTION TYPE zcx_sm
        EXPORTING
          textid = zcx_sm=>fcat_create_error.
    ENDIF.

    LOOP AT lt_fcat
        ASSIGNING <wa_fcat>.

      CLEAR wa_fcat.
      READ TABLE lt_fcat_tech
          INTO wa_fcat
          WITH KEY fieldname = <wa_fcat>-fieldname.
      IF sy-subrc = 0.
        <wa_fcat>-tech = abap_true.
      ENDIF.

    ENDLOOP.

  ENDIF.

*<--
  r_result = lt_fcat.


ENDMETHOD.



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


существуют ли алгоритмы расчёта размеров ячейки по объёму содержимого? или иные алгоритмы задачи параметров каталога?
Заранее спасибо! Извините за очередной глупый вопрос


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пт, июл 08 2016, 17:58 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, мар 12 2012, 12:49
Сообщения: 83
AL13SH написал(а):
подскажите пожалуйста существует ли способ динамически настраивать каталог полей в алв гриде?

Да, можно не пользоваться LVC_FIELDCATALOG_MERGE, а самому написать алгоритм заполнения таблицы lt_fcat, по тому алгоритму какой вам нужен, там и ширину полей можно задать и другие параметры :D


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пт, июл 08 2016, 18:24 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
AL13SH написал(а):
существуют ли алгоритмы расчёта размеров ячейки по объёму содержимого? или иные алгоритмы задачи параметров каталога?

ALV Documentation Complete


А что касается размеров ячейки по содержимому, то в структуре лэйаута LVC_S_LAYO установите поле CWIDTH_OPT = 'X'


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пт, июл 08 2016, 18:31 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
И да, получение каталога по ссылке, а не по заранее известной структуре :

Code:
DATA:
    lo_salv_table      TYPE REF TO cl_salv_table ,
    lo_columns_table   TYPE REF TO cl_salv_columns_table ,
    lo_aggregations    TYPE REF TO cl_salv_aggregations ,
    lt_fcat_lvc        TYPE lvc_t_fcat .
  FIELD-SYMBOLS:
    <fcat_lvc>         TYPE lvc_s_fcat .

* получение филдкаталога по ссылке (gt_outtab - это таблица, выводимая в грид)
  cl_salv_table=>factory( IMPORTING r_salv_table  = lo_salv_table
                          CHANGING  t_table       = gt_outtab ) .
  lo_columns_table = lo_salv_table->get_columns( ) .
  lt_fcat_lvc = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
                                    r_columns     = lo_columns_table
                                    r_aggregations = lo_aggregations ) .
* доработка напильником
  LOOP AT lt_fcat_lvc ASSIGNING <fcat_lvc> .

    CASE <fcat_lvc>-fieldname .
      WHEN 'XBLNR' .  <fcat_lvc>-emphasize  = 'C500' .
      WHEN 'MATNR' .  <fcat_lvc>-hotspot    = abap_on .
    ENDCASE .

  ENDLOOP .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пн, июл 11 2016, 09:07 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
divnull написал(а):
AL13SH написал(а):
подскажите пожалуйста существует ли способ динамически настраивать каталог полей в алв гриде?

Да, можно не пользоваться LVC_FIELDCATALOG_MERGE, а самому написать алгоритм заполнения таблицы lt_fcat, по тому алгоритму какой вам нужен, там и ширину полей можно задать и другие параметры :D

это то ясно, что можно в кейсе по всем полям пройтись :D


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическая генерация FIELDCATALOG'a
СообщениеДобавлено: Пн, июл 11 2016, 09:08 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
Бородин Игорь написал(а):
AL13SH написал(а):
существуют ли алгоритмы расчёта размеров ячейки по объёму содержимого? или иные алгоритмы задачи параметров каталога?

ALV Documentation Complete


А что касается размеров ячейки по содержимому, то в структуре лэйаута LVC_S_LAYO установите поле CWIDTH_OPT = 'X'


Спасибо!


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

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


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

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


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

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