что такое селекционный экран
Глава 1. Создание ALV GRID. Часть 2
ABAP OBJECTS ALV
§ 2. Селекционный экран
Необходимо создать следующие объекты:
SELECTION SCREEN 1100
Экран ввода данных.
Вызов селекционного экрана и передача данных с экрана в класс контроллер.
В se80 создаем группу функций ZFG_MVC_001.
Рис. 1
Рис. 2
В TOP инклуде описываем селекционный экран номер 1100.
SELECTION-SCREEN: BEGIN OF SCREEN 1100 TITLE title_01.
SELECT-OPTIONS: s_carrid FOR spfli-carrid.
SELECT-OPTIONS: s_connid FOR spfli-connid.
SELECTION-SCREEN: END OF SCREEN 1100.
Рис. 3
Для того чтобы класс контроллер смог вызвать данный селекционный экран, необходимо создать функциональный модуль (ZFM_MVC_001_SEL_SCR_1100) вызова экрана 1100.
Рис. 4
Данный функциональный модуль будет возвращать в класс контроллер данные
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Вариант селекционного экрана
Варианты селекционного экрана знает каждый. Если не знает, то срочно надо узнать что это. Они сильно облегчают жизнь пользователя и САПера. Особенно для отчетов, а, если еще и к ним ALV вариант настроить, то совсем красиво получается. Так вот, есть еще такие вариант, как системные. Это те, которые просто так не изменить. Помогает сохранить пользователям руки и не отрывать их, когда они что-нибудь перезатирают друг у друга.
Системные варианты начинаются с SAP& для саповских вариантов и CUS& для клиентских. Эти варианты хранятся в 000 манданте и переносятся транспортными запросами.
А еще в вариантах можно делать подстановки:
Настройки варианта селекционного экрана
Если тип ‘D’ D: Dynamic date calculation, то встаем на поле Name of variable и нажимаем F4. Выбираем нужную нам математику. Удобно, когда нужно строить отчеты по четким границам (например, по календарному месяцу). Или запускать программы с фильтами. Фантазируйте! Мечты сбываются 🙂
Для табличных переменных есть волшебная штука — табличка TVARVC. Запускаем транзакцию STVARV, создаем свою переменную и присваиваем значения, которые должны подставиться на селекционнике в варианте. Получается шоколадная штука. Мы создаем системный вариант, в нем указываем переменную для видов оплаты (например, фонд оплаты труда), а в TVARVC прописываем все виды оплаты. И эту переменную используем во всех отчетах. Красота!
Что такое селекционный экран
Часто есть необходимость для ввода только входных данных, для этих целей можно использовать экраны выбора. Экраны выбора предоставляют стандартизированный интерфейс SAP.
Вводим имя программы и нажимаем Создать. Как обычно задаем стандартные атрибуты, сохраняем в пакет ZKRE_PRO1, назначаем транспортный запрос. Итак введем такой текст в наш редактор.
Запускаем на выполнение.
Детальный синтаксис команд можно просмотреть если в редакторе выделить ключевое слово например SELECTION-SCREEN и нажать F1.
В коде программы есть text-001 так называемая текстовая переменная. Пока она еще не создана. Двойной щелчек в тексте программы мышью по text-001 позволит нам создать ее.
Нажав YES, попадаем в следующий экран.
Где мы вводим непосредственно сам текст и устанавливаем длину в 40 символов. Переключившись на вкладку Selections Texts видим что там имеются названия наших элементов на экране выбора.
Здесь можно ввести произвольный текст, а можно отметив галочки справа, тем самым скопировав описание полей автоматом.
Сохраняем и активируем. Запуств на выполнение программу увидим как изменился экран.
Отредактируем текст программы, сделаем поле Name обязательным и добавим кнопку.
Двойной клик по text—bt1 – создадим надпись на кнопке.
Сохраняем и активируем нашу новую текстовую переменную. Теперь на кнопке имеется надпись.
Сделаем кнопку активной, т.е. чтобы при ее нажатии поля экрана выбора очищались. Добавим в код следующий блок.
Обсуждения : 4 комментария
Комментарии
Виталий
Ошибка в программе.
Ругается на функционал кнопки
Ошибка:
Неизвестное поле «SSCRFIELDS-UCOMM». Оно не содержится ни в одной из указанных таблиц, не определено через оператор «DATA»
Виталий
Пересохранился. Заработало. СТранно(
Дмитрий
Добрый день. У меня была такая же проблема:
после REPORT не хватает
TABLES: sscrfields.
Чтобы оставить комментарий, необходимо Войти или Зарегистрироваться.
Глава 2. Два ALV GRID на одном экране. Часть 2
ABAP OBJECTS ALV
§2. Селекционный экран
Необходимо создать следующие объекты:
SELECTION SCREEN 1100
Экран ввода данных.
Вызов селекционного экрана и передача данных с экрана в класс контроллер.
Создаем функциональный модуль вызова селекционного экрана аналогично пункту 1.1.2.
Рис. 1
CALL SELECTION-SCREEN 1100.
IF sy-subrc = 0.
e_repid = sy-repid.
PERFORM set_context CHANGING es_context.
ELSE.
RAISE exit_program.
ENDIF.
ENDFUNCTION.
Тестируем функциональный модуль.
Рис. 2
§3. Класс модель
Необходимо создать следующие объекты:
Создаем класс выбора данных ZCL_MVC_002_MODEL. Транзакция SE24.
Рис. 3
Рис. 4
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
Подход к реализации больших форматированных отчетов в SAP BW
На проектах внедрения отчетности с использованием хранилища данных SAP BW многим архитекторам и консультантам приходится решать задачи подготовки больших форматированных отчетов: разнообразных ведомостей, выписок и т.п. Такие отчеты обычно характеризуются:
Консультантом создается рабочая книга BW-BEx, которая содержит один или несколько BW-BEx-отчетов. Отчеты выгружаются на отдельные листы этой книги, которые обычно скрывают от пользователей. Видимым оставляют лишь один лист книги, содержащий целевую форму отчета с необходимым форматированием.
Работа пользователя с таким отчетом выглядит следующим образом:
Чего только не придумывают консультанты, чтобы, оставаясь в рамках стандартного подхода, качественно сделать-таки большой отчет. Но почти всегда ничего не получается. «Почти» означает компромиссы, послабления в требованиях. Бизнес-пользователи либо соглашаются применять более ограничивающие фильтры и отчет возвращает меньше данных, либо ждать выполнения подольше, либо вручную сводить несколько фрагментов отчета в один.
Чтобы все-таки не говорить клиенту «нет, мы не можем этого реализовать при таких требованиях», необходимо для начала сделать правильные выводы из очевидного: каждый инструмент предназначен для своей задачи.
Инструменты BW BEx Analyzer и SBOP Analysis for Office в общем случае не предназначены для реализации эффективных отчетов с большим количеством ячеек, с числом около 750000 и более (см SAP-ноту 1040454). Поэтому, используя модель данных SAP BW, надо выбрать другой инструмент, другой подход в реализации. Тогда решение не только обязательно получится, но и будет при этом эффективным.
Последние версии SAP Netweaver, SAP BW и HANA внесли большее разнообразие подходов публикации BW-данных в Excel, без использования BW BEx. Можно упомянуть такие:
Я хочу рассказать о подходе, гораздо менее требовательном к новизне версий используемых продуктов, и в чем-то менее сложным. Речь идет о публикации данных отчетов в шаблон Excel-документа через OLE-интерфейс. Excel-шаблон при этом хранится в репозитории BDS на стороне SAP BW.
Преимущества подхода с OLE очевидны:
Сложности в ABAP могут возникнуть при получении данных из модели BW. Возможные варианты: вызов BEx-отчета в ABAP, вызов FM RSDRI_INFOPROV_READ, SQL-SELECT по таблицам модели данных. Но это обычно есть в арсенале навыков опытного BW-консультанта. Глубокие знания программировании ABAP понадобятся, если возникнет потребность еще более ускорить работу кода по подготовке данных за счет тюнинга ABAP-программы или даже распараллеливания вычислений. Последнее, кстати, невозможно архитектурно в подходе с рабочими книгами BW BEx.
Вкратце, порядок создания отчета с использованием подхода с OLE следующий.