Текущее время: Пт, апр 19 2024, 20:16

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


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

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


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

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