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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Формирование временной таблицы на основе списка полей.
СообщениеДобавлено: Вт, фев 25 2020, 15:48 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 20 2019, 01:35
Сообщения: 38
Задача состоит в следующем:

Выгрузить данные стандартного отчёта REISCDCF в xml. При этом к этому отчёту создан пользовательский вариант вывода полей в alv.
То есть мне в xml нужно выгрузить не все поля отчёта, а только те, что указаны в пользовательском формате + в том же порядке.
В своей программе я знаю название варианта, который нужно вызвать.

Сейчас я с помощью такого кода вытягиваю данные из отчёта во временную таблицу:
Code:
    cl_salv_bs_runtime_info=>set(
        display = abap_false
        metadata = abap_false
        data = abap_true ).

    SUBMIT rfreiscdcf WITH SELECTION-TABLE lt_seltab
        WITH p_vari = p_vari " название формата, в котором хотим получить данные
        AND RETURN.

    TRY.
        cl_salv_bs_runtime=>get_data_ref(
            IMPORTING r_data = lr_data_ref_copy ).
    CATCH cx_salv_bs_sc_runtime_info.
        MESSAGE 'Не удалось выбрать данные из REISCDCF' TYPE 'E'.
    ENDTRY.

    cl_salv_runtime_info=>clear_all( ).

    ASSIGN lr_data_ref->* TO <lt_table>. " <lt_table> TYPE STANDARD TABLE


То есть теперь в <lt_table> у меня лежат все данные из отчёта (~400 полей).
И есть p_vari - имя варианта (формата алв).

Насколько я понимаю, теперь мне нужно по имени отчёта+имени варианта получить филдкаталог с нужными полями. Создать таблицу с этими полями и перезаписать данные из исходной таблицы (полный отчёт) в эту новую таблицу с нужными полями.
Подскажите какими фмами это можно провернуть.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Формирование временной таблицы на основе списка полей.
СообщениеДобавлено: Ср, фев 26 2020, 08:29 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
Через RTTC создаете динамическую таблицу, далее через
Code:
cl_reca_data_services=>move_corresponding_table
переносите данные в нее.


Последний раз редактировалось broker.chelny Ср, фев 26 2020, 11:22, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Формирование временной таблицы на основе списка полей.
СообщениеДобавлено: Ср, фев 26 2020, 09:15 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Code:
    cl_salv_bs_runtime_info=>set(
        display    = abap_false
        metadata = abap_true
        data        = abap_true ).
    ......
    data(ls_meta) = cl_salv_bs_runtime_info=>get_metadata( ).


В стурктуре ls_meta будут и филдкаталог и фильтры и сортировка.
Применить их к таблице можно через ФМы из группы функций SLVC_DIALOG.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Формирование временной таблицы на основе списка полей.
СообщениеДобавлено: Ср, фев 26 2020, 09:23 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 20 2019, 01:35
Сообщения: 38
broker.chelny написал:
Через RTTI создаете динамическую таблицу, далее через
Code:
cl_reca_data_services=>move_corresponding_table
переносите данные в нее.


А можно про создание динамической таблицы через RTTI подробнее чуть?
Благодаря ответу baboon теперь у меня есть филдкаталог, фильтры, сортировка.

Осталось только наложить как-то на большую таблицу <lt_table> эти самые ограничения. Ну или создать по этим данным таблицу + сделать move_corresponding


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Формирование временной таблицы на основе списка полей.
СообщениеДобавлено: Ср, фев 26 2020, 11:03 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
https://abap-blog.ru/osnovy-abap/dinamicheskie-tablicy-v-abap/


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

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


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

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


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

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