Текущее время: Сб, апр 20 2024, 09:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Можно ли каким-то образом актуализировать в cl_salv_table с модифицированным каталогом?
СообщениеДобавлено: Пт, авг 21 2020, 20:30 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, апр 11 2020, 21:34
Сообщения: 53
Идея такая есть таблица в которой сотня полей или около того.

создаем o_salv
Code:
o_salv TYPE REF TO cl_salv_table

cl_salv_table=>factory( EXPORTING
                              r_container    = o_container_r
                            IMPORTING
                              r_salv_table   = o_salv
                            CHANGING
                              t_table        = it_salv_bsas ).

    o_salv->get_display_settings( )->set_striped_pattern( abap_true ).
    o_salv->get_columns( )->set_optimize( abap_true ).
    o_salv->get_functions( )->set_all( ).
    o_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ).


   


далее считываем с нее каталог, укорачиваем таблицу делая невидимые поля. на некоторые вешаем HOTSPOT для дальнейшей обработки, например вызов какой либо процедуры.
Code:
     DATA(it_fcat) = cl_salv_controller_metadata=>get_lvc_fieldcatalog( r_columns      = o_salv->get_columns( )
                                                                       r_aggregations = o_salv->get_aggregations( ) ).

      LOOP AT it_fcat ASSIGNING FIELD-SYMBOL(<fcat>).
      CASE <fcat>-fieldname.
        WHEN 'BUKRS'.
          <fcat>-NO_OUT  = abap_false.
        WHEN 'BELNR'.
          <fcat>-NO_OUT  = abap_false.
        WHEN 'WRBTR'.
          <fcat>-NO_OUT  = abap_false.
          <fcat>-edit = abap_true.
        WHEN 'HKONT'.
          <fcat>-NO_OUT  = abap_false.
          <fcat>-HOTSPOT = abap_true.
"           <fcat>-edit = abap_true.
        WHEN OTHERS.
          <fcat>-NO_OUT  = 'X'.
      ENDCASE.
    ENDLOOP.

и затем опять актуализировать o_salv в таком виде как модифицированный каталог.
Code:
o_salv->display( )


Вытащить каталог легко.
Как актуализироватъ модифицированный каталог в o_salv ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Можно ли каким-то образом актуализировать в cl_salv_table с модифицированным каталогом?  Тема решена
СообщениеДобавлено: Пн, авг 24 2020, 10:45 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Модифицировать филдкаталог нужно по другому:

Code:
        lo_columns = o_salv->get_columns( ).
        lt_column_table[] = lo_columns->get( ).
        LOOP AT lt_column_table ASSIGNING <column_table>.
          lo_column ?= lo_columns->get_column( <column_table>-columnname ).

          " цвета
          CASE <column_table>-columnname.
            WHEN 'SALDO_IN'
              OR 'TURNOVER'
              OR 'SALDO_OUT' .

              ls_color-col = '5' .
              ls_color-int = '0' .
              ls_color-inv = '0' .
              lo_column->set_color( ls_color ) .
            WHEN 'ACCRUALS'
              OR 'MOVEMENTS' .

              ls_color-col = '5' .
              ls_color-int = '1' .
              ls_color-inv = '0' .
              lo_column->set_color( ls_color ) .
          ENDCASE .

          " тексты
          CASE <column_table>-columnname .
            WHEN 'ANLTX' .      lv_text = 'Наименование ОС'(f02) .
            WHEN 'ACCT' .       lv_text = 'Счет'(f04) .
            WHEN OTHERS .       CONTINUE .
          ENDCASE .

          lv_text_s = lv_text .  lo_column->set_short_text( lv_text_s ) .
          lv_text_m = lv_text .  lo_column->set_medium_text( lv_text_m ) .
          lv_text_l = lv_text .  lo_column->set_long_text( lv_text_l ) .
        ENDLOOP .


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Можно ли каким-то образом актуализировать в cl_salv_table с модифицированным каталогом?
СообщениеДобавлено: Пн, авг 24 2020, 12:37 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, апр 11 2020, 21:34
Сообщения: 53
Бородин Игорь,

Да , так работает. Большое спасибо за поддержку!


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

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


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

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


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

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