Текущее время: Ср, апр 24 2024, 08:45

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


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

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


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

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