В формировании файла Excel в Fiori осталось разработать Fiori приложение, которое позволяет пользователю обратиться к OData-сервису и сформировать нужный файл Excel. Для этого сделаем небольшое приложение, на экране которого можно выбрать год/месяц и кнопка, нажатие на которую вызовет нужный нам файл Excel.
Для разработки приложений Fiori есть несколько способов. Мы для данных целей будем использовать Web IDE Personal Edition, доступную по ссылке. Так как у меня имеется выделенный сервер под управлением Linux, я нашел в интернете Web IDE под Linux и успешно использую его.
В Web IDE создаем новый проект
Теперь необходимо в View1.view.xml добавить форму ввода
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<mvc:View controllerName="zapp1.controller.View1" xmlns:l="sap.ui.layout" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns:f="sap.ui.layout.form" xmlns="sap.m"> <List> <InputListItem label="{i18n>Year}"> <Select id="Year"></Select> </InputListItem> <InputListItem label="{i18n>Month}"> <Select id="Month"> <core:Item key="1" text="{i18n>January}"/> <core:Item key="2" text="{i18n>February}"/> <core:Item key="3" text="{i18n>March}"/> <core:Item key="4" text="{i18n>April}"/> <core:Item key="5" text="{i18n>May}"/> <core:Item key="6" text="{i18n>June}"/> <core:Item key="7" text="{i18n>July}"/> <core:Item key="8" text="{i18n>August}"/> <core:Item key="9" text="{i18n>September}"/> <core:Item key="10" text="{i18n>October}"/> <core:Item key="11" text="{i18n>November}"/> <core:Item key="12" text="{i18n>December}"/> </Select> </InputListItem> <InputListItem > <Button text="{i18n>Open}" press="onPress"></Button> </InputListItem> </List> </mvc:View> |
И в контроллер добавить две функции — onInit, в которой будем формировать начальные данные для формы и метод onPress, в которой будем вызывать OData-сервис, формирующий файл Excel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
sap.ui.define([ "sap/ui/core/mvc/Controller" ], function(Controller) { "use strict"; return Controller.extend("zapp1.controller.View1", { onInit: function() { var lo_year = this.byId("Year"); var lv_year = new Date().getFullYear(); var lo_item = new sap.ui.core.Item({ key: lv_year, text: lv_year }); lv_year--; lo_year.addItem(lo_item); lo_item = new sap.ui.core.Item({ key: lv_year, text: lv_year }); lo_year.addItem(lo_item); }, onPress: function(evt) { // open file var lv_year = this.byId("Year").getSelectedItem().getKey(); var lv_month = this.byId("Month").getSelectedItem().getKey(); var lv_url = "/sap/opu/odata/SAP/ZAVR_SRV/AVRSet(Gjahr='" + lv_year + "',Monat='" + lv_month + "')/$value"; sap.m.URLHelper.redirect(lv_url); } }); }); |
В результате получилось Fiori-приложение, в котором можно выбрать месяц, год и нажать на кнопку Open, что откроет файл.
Остается импортировать полученное приложение в репозитарий SAP (пункт deploy в контекстном меню или с помощью программы /UI5/UI5_REPOSITORY_LOAD) и создать плитку в Fiori