diff --git a/src/z2ui5_cl_xml_view.clas.abap b/src/z2ui5_cl_xml_view.clas.abap index 8de6a288..3cb93a00 100644 --- a/src/z2ui5_cl_xml_view.clas.abap +++ b/src/z2ui5_cl_xml_view.clas.abap @@ -1927,8 +1927,9 @@ !searchbuttontext TYPE clike OPTIONAL !searchevent TYPE clike OPTIONAL !isshlp TYPE any OPTIONAL + ircontroller TYPE REF TO object OPTIONAL RETURNING - VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + VALUE(result) TYPE REF TO z2ui5_cl_xml_view ##NEEDED. PROTECTED SECTION. @@ -2139,231 +2140,6 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION. ENDMETHOD. - METHOD zcc_export_spreadsheet. - - result = me. - _generic( name = `ExportSpreadsheet` - ns = `z2ui5` - t_prop = VALUE #( ( n = `tableId` v = tableid ) - ( n = `text` v = text ) - ( n = `icon` v = icon ) - ( n = `type` v = type ) - ) ). - - ENDMETHOD. - - - METHOD zcc_export_spreadsheet_js. - - DATA(js) = ` debugger; jQuery.sap.declare("z2ui5.ExportSpreadsheet");` && |\n| && - |\n| && - ` sap.ui.define([` && |\n| && - ` "sap/ui/core/Control",` && |\n| && - ` "sap/m/Button",` && |\n| && - ` "sap/ui/export/Spreadsheet"` && |\n| && - ` ], function (Control, Button, Spreadsheet) {` && |\n| && - ` "use strict";` && |\n| && - |\n| && - ` return Control.extend("z2ui5.ExportSpreadsheet", {` && |\n| && - |\n| && - ` metadata: {` && |\n| && - ` properties: {` && |\n| && - ` tableId: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` type: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` icon: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` text: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` }` && |\n| && - ` },` && |\n| && - |\n| && - |\n| && - ` aggregations: {` && |\n| && - ` },` && |\n| && - ` events: { },` && |\n| && - ` renderer: null` && |\n| && - ` },` && |\n| && - |\n| && - ` renderer: function (oRm, oControl) {` && |\n| && - |\n| && - ` oControl.oExportButton = new Button({` && |\n| && - ` text: oControl.getProperty("text"),` && |\n| && - ` icon: oControl.getProperty("icon"), ` && |\n| && - ` type: oControl.getProperty("type"), ` && |\n| && - ` press: function (oEvent) { ` && |\n| && - |\n| && - ` var aCols =` && columnconfig && `;` && |\n| && - |\n| && - ` var oBinding, oSettings, oSheet, oTable, vTableId, vViewPrefix,vPrefixTableId;` && |\n| && - ` vTableId = oControl.getProperty("tableId")` && |\n| && - ` // vViewPrefix = sap.z2ui5.oView.sId;` && |\n| && - ` // vPrefixTableId = vViewPrefix + "--" + vTableId;` && |\n| && - ` vPrefixTableId = sap.z2ui5.oView.createId( vTableId );` && |\n| && - ` oTable = sap.ui.getCore().byId(vPrefixTableId);` && |\n| && - ` oBinding = oTable.getBinding("rows");` && |\n| && - ` if (oBinding == null) {` && |\n| && - ` oBinding = oTable.getBinding("items");` && |\n| && - ` };` && |\n| && - ` oSettings = {` && |\n| && - ` workbook: { columns: aCols },` && |\n| && - ` dataSource: oBinding` && |\n| && - ` };` && |\n| && - ` oSheet = new Spreadsheet(oSettings);` && |\n| && - ` oSheet.build()` && |\n| && - ` .then(function() {` && |\n| && - ` }).finally(function() {` && |\n| && - ` oSheet.destroy();` && |\n| && - ` });` && |\n| && - ` }.bind(oControl)` && |\n| && - ` });` && |\n| && - |\n| && - ` oRm.renderControl(oControl.oExportButton);` && |\n| && - ` }` && |\n| && - ` });` && |\n| && - ` });`. - - result = zcc_plain_xml( `` && js && `` ). - - ENDMETHOD. - - - METHOD zcc_file_uploader. - - result = me. - _generic( name = `FileUploader` - ns = `z2ui5` - t_prop = VALUE #( ( n = `placeholder` v = placeholder ) - ( n = `upload` v = upload ) - ( n = `path` v = path ) - ( n = `value` v = value ) ) ). - - ENDMETHOD. - - - METHOD zcc_file_uploader_js. - - DATA(js) = ` debugger; jQuery.sap.declare("z2ui5.FileUploader");` && |\n| && - |\n| && - ` sap.ui.define([` && |\n| && - ` "sap/ui/core/Control",` && |\n| && - ` "sap/m/Button",` && |\n| && - ` "sap/ui/unified/FileUploader"` && |\n| && - ` ], function (Control, Button, FileUploader) {` && |\n| && - ` "use strict";` && |\n| && - |\n| && - ` return Control.extend("z2ui5.FileUploader", {` && |\n| && - |\n| && - ` metadata: {` && |\n| && - ` properties: {` && |\n| && - ` value: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` path: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` tooltip: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` fileType: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` placeholder: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: ""` && |\n| && - ` },` && |\n| && - ` buttonText: {` && |\n| && - ` type: "string",` && |\n| && - ` defaultValue: "Upload"` && |\n| && - ` },` && |\n| && - ` enabled: {` && |\n| && - ` type: "boolean",` && |\n| && - ` defaultValue: true` && |\n| && - ` },` && |\n| && - ` multiple: {` && |\n| && - ` type: "boolean",` && |\n| && - ` defaultValue: false` && |\n| && - ` }` && |\n| && - ` },` && |\n| && - |\n| && - |\n| && - ` aggregations: {` && |\n| && - ` },` && |\n| && - ` events: {` && |\n| && - ` "upload": {` && |\n| && - ` allowPreventDefault: true,` && |\n| && - ` parameters: {}` && |\n| && - ` }` && |\n| && - ` },` && |\n| && - ` renderer: null` && |\n| && - ` },` && |\n| && - |\n| && - ` renderer: function (oRm, oControl) {` && |\n| && - |\n| && - ` oControl.oUploadButton = new Button({` && |\n| && - ` text: oControl.getProperty("buttonText"),` && |\n| && - ` enabled: oControl.getProperty("path") !== "",` && |\n| && - ` press: function (oEvent) { ` && |\n| && - |\n| && - ` this.setProperty("path", this.oFileUploader.getProperty("value"));` && |\n| && - |\n| && - ` var file = sap.z2ui5.oUpload.oFileUpload.files[0];` && |\n| && - ` var reader = new FileReader();` && |\n| && - |\n| && - ` reader.onload = function (evt) {` && |\n| && - ` var vContent = evt.currentTarget.result;` && |\n| && - ` this.setProperty("value", vContent);` && |\n| && - ` this.fireUpload();` && |\n| && - ` //this.getView().byId('picture' ).getDomRef().src = vContent;` && |\n| && - ` }.bind(this)` && |\n| && - |\n| && - ` reader.readAsDataURL(file);` && |\n| && - ` }.bind(oControl)` && |\n| && - ` });` && |\n| && - |\n| && - ` oControl.oFileUploader = new FileUploader({` && |\n| && - ` icon: "sap-icon://browse-folder",` && |\n| && - ` iconOnly: true,` && |\n| && - ` value: oControl.getProperty("path"),` && |\n| && - ` placeholder: oControl.getProperty("placeholder"),` && |\n| && - ` change: function (oEvent) {` && |\n| && - ` var value = oEvent.getSource().getProperty("value");` && |\n| && - ` this.setProperty("path", value);` && |\n| && - ` if (value) {` && |\n| && - ` this.oUploadButton.setEnabled();` && |\n| && - ` } else {` && |\n| && - ` this.oUploadButton.setEnabled(false);` && |\n| && - ` }` && |\n| && - ` this.oUploadButton.rerender();` && |\n| && - ` sap.z2ui5.oUpload = oEvent.oSource;` && |\n| && - ` }.bind(oControl)` && |\n| && - ` });` && |\n| && - |\n| && - ` var hbox = new sap.m.HBox();` && |\n| && - ` hbox.addItem(oControl.oFileUploader);` && |\n| && - ` hbox.addItem(oControl.oUploadButton);` && |\n| && - ` oRm.renderControl(hbox);` && |\n| && - ` }` && |\n| && - ` });` && |\n| && - ` });`. - - result = zcc_plain_xml( `` && js && `` ). - - ENDMETHOD. - - METHOD cells. result = _generic( `cells` ). ENDMETHOD. @@ -2838,285 +2614,6 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION. ENDMETHOD. - METHOD zfc_ddic_search_help. - - TYPES: - BEGIN OF ty_ddshfprop, - fieldname(30) TYPE c, - shlpinput(1) TYPE c, - shlpoutput(1) TYPE c, - shlpselpos(2) TYPE n, - shlplispos(2) TYPE n, - shlpseldis(1) TYPE c, - defaultval(21) TYPE c, - END OF ty_ddshfprop. - - TYPES: - BEGIN OF ty_ddfields, - tabname(30) TYPE c, - fieldname(30) TYPE c, - langu(1) TYPE c, - position(4) TYPE n, - offset(6) TYPE n, - domname(30) TYPE c, - rollname(30) TYPE c, - checktable(30) TYPE c, - leng(6) TYPE n, - intlen(6) TYPE n, - outputlen(6) TYPE n, - decimals(6) TYPE n, - datatype(4) TYPE c, - inttype(1) TYPE c, - reftable(30) TYPE c, - reffield(30) TYPE c, - precfield(30) TYPE c, - authorid(3) TYPE c, - memoryid(20) TYPE c, - logflag(1) TYPE c, - mask(20) TYPE c, - masklen(4) TYPE n, - convexit(5) TYPE c, - headlen(2) TYPE n, - scrlen1(2) TYPE n, - scrlen2(2) TYPE n, - scrlen3(2) TYPE n, - fieldtext(60) TYPE c, - reptext(55) TYPE c, - scrtext_s(10) TYPE c, - scrtext_m(20) TYPE c, - scrtext_l(40) TYPE c, - keyflag(1) TYPE c, - lowercase(1) TYPE c, - mac(1) TYPE c, - genkey(1) TYPE c, - noforkey(1) TYPE c, - valexi(1) TYPE c, - noauthch(1) TYPE c, - sign(1) TYPE c, - dynpfld(1) TYPE c, - f4availabl(1) TYPE c, - comptype(1) TYPE c, - lfieldname(132) TYPE c, - ltrflddis(1) TYPE c, - bidictrlc(1) TYPE c, - outputstyle(2) TYPE n, - nohistory(1) TYPE c, - ampmformat(1) TYPE c, - END OF ty_ddfields. - - DATA: lv_grid_form_no TYPE i, - lt_arg TYPE string_table, - lv_arg_fieldname TYPE string, - lv_cell_fieldname TYPE string, - lv_path_result_itab TYPE string, - lv_path_shlp_fields TYPE string, - lt_fieldprop_sel TYPE STANDARD TABLE OF ty_ddshfprop WITH EMPTY KEY, - lt_fieldprop_lis TYPE STANDARD TABLE OF ty_ddshfprop WITH EMPTY KEY, - lt_ddffields TYPE STANDARD TABLE OF ty_ddfields WITH EMPTY KEY. - - FIELD-SYMBOLS: - TYPE ANY TABLE, - TYPE any, - TYPE any. - -* ---------- Get result itab reference ------------------------------------------------------------ - lv_path_result_itab = 'IRCONTROLLER->' && resultitabname. - ASSIGN (lv_path_result_itab) TO . -* ---------- Get searchhelp input fields structure reference -------------------------------------- - lv_path_shlp_fields = 'IRCONTROLLER->' && shlpfieldsstrucname. - ASSIGN (lv_path_shlp_fields) TO . - - IF IS NOT ASSIGNED OR - IS NOT ASSIGNED. - RETURN. - ENDIF. - - IF isshlp IS INITIAL. - RETURN. - ELSE. - ASSIGN COMPONENT 'FIELDPROP' OF STRUCTURE isshlp TO FIELD-SYMBOL(). - IF IS NOT ASSIGNED. - RETURN. - ENDIF. - ENDIF. - -* ---------- Set Selection and List properties ---------------------------------------------------- - lt_fieldprop_sel = . - lt_fieldprop_lis = . - DELETE lt_fieldprop_sel WHERE shlpselpos IS INITIAL. - DELETE lt_fieldprop_lis WHERE shlplispos IS INITIAL. - SORT lt_fieldprop_sel BY shlpselpos. - SORT lt_fieldprop_lis BY shlplispos. - - ASSIGN COMPONENT 'FIELDDESCR' OF STRUCTURE isshlp TO FIELD-SYMBOL(). - IF IS NOT ASSIGNED. - RETURN. - ENDIF. - lt_ddffields = . - -* ------------------------------------------------------------------------------------------------- -*Searchfield Grid -* ------------------------------------------------------------------------------------------------- - DATA(lr_grid_shlp) = irparent->content( )->toolbar( )->toolbar_spacer( - )->button( text = searchbuttontext - type = 'Emphasized' - press = irclient->_event( searchevent ) )->get_parent( - )->grid( 'L3 M3 S3' )->content( 'layout' ). - -* ---------- Create 4 forms (grid columns) -------------------------------------------------------- - DATA(lr_form_shlp_1) = lr_grid_shlp->simple_form( )->content( 'form' ). - DATA(lr_form_shlp_2) = lr_grid_shlp->simple_form( )->content( 'form' ). - DATA(lr_form_shlp_3) = lr_grid_shlp->simple_form( )->content( 'form' ). - DATA(lr_form_shlp_4) = lr_grid_shlp->simple_form( )->content( 'form' ). - - LOOP AT lt_fieldprop_sel ASSIGNING FIELD-SYMBOL(). -* ---------- Init loop data ----------------------------------------------------------------------- - UNASSIGN: . -* ---------- Get corresponding field description -------------------------------------------------- - ASSIGN lt_ddffields[ fieldname = -fieldname ] TO FIELD-SYMBOL(). - - IF IS NOT ASSIGNED. - CONTINUE. - ENDIF. - -* ---------- Get field reference ------------------------------------------------------------------ - ASSIGN COMPONENT -fieldname OF STRUCTURE TO . - IF IS NOT ASSIGNED. - CONTINUE. - ENDIF. - -* ---------- Determine grid form number ----------------------------------------------------------- - IF lv_grid_form_no IS INITIAL. - lv_grid_form_no = 1. - ELSEIF lv_grid_form_no = 4. - lv_grid_form_no = 1. - ELSE. - lv_grid_form_no = lv_grid_form_no + 1. - ENDIF. - - CASE lv_grid_form_no. - WHEN 1. -* ---------- Grid 1-------------------------------------------------------------------------------- -* ---------- Set field label ---------------------------------------------------------------------- - lr_form_shlp_1->label( -scrtext_l ). - -* ---------- Set input field ---------------------------------------------------------------------- - CASE -datatype. - WHEN 'DATS'. - lr_form_shlp_1->date_picker( value = irclient->_bind_edit( ) ). - WHEN 'TIMS'. - lr_form_shlp_1->time_picker( value = irclient->_bind_edit( ) ). - WHEN OTHERS. - lr_form_shlp_1->input( value = irclient->_bind_edit( ) ). - ENDCASE. - - WHEN 2. -* ---------- Grid 2-------------------------------------------------------------------------------- -* ---------- Set field label ---------------------------------------------------------------------- - lr_form_shlp_2->label( -rollname ). - -* ---------- Set input field ---------------------------------------------------------------------- - CASE -datatype. - WHEN 'DATS'. - lr_form_shlp_2->date_picker( value = irclient->_bind_edit( ) ). - WHEN 'TIMS'. - lr_form_shlp_2->time_picker( value = irclient->_bind_edit( ) ). - WHEN OTHERS. - lr_form_shlp_2->input( value = irclient->_bind_edit( ) ). - ENDCASE. - - WHEN 3. -* ---------- Grid 3-------------------------------------------------------------------------------- -* ---------- Set field label ---------------------------------------------------------------------- - lr_form_shlp_3->label( -rollname ). - -* ---------- Set input field ---------------------------------------------------------------------- - CASE -datatype. - WHEN 'DATS'. - lr_form_shlp_3->date_picker( value = irclient->_bind_edit( ) ). - WHEN 'TIMS'. - lr_form_shlp_3->time_picker( value = irclient->_bind_edit( ) ). - WHEN OTHERS. - lr_form_shlp_3->input( value = irclient->_bind_edit( ) ). - ENDCASE. - - WHEN 4. -* ---------- Grid 4-------------------------------------------------------------------------------- -* ---------- Set field label ---------------------------------------------------------------------- - lr_form_shlp_4->label( -rollname ). - -* ---------- Set input field ---------------------------------------------------------------------- - CASE -datatype. - WHEN 'DATS'. - lr_form_shlp_4->date_picker( value = irclient->_bind_edit( ) ). - WHEN 'TIMS'. - lr_form_shlp_4->time_picker( value = irclient->_bind_edit( ) ). - WHEN OTHERS. - lr_form_shlp_4->input( value = irclient->_bind_edit( ) ). - ENDCASE. - - ENDCASE. - - UNASSIGN . - - ENDLOOP. - -* ---------- Create table ------------------------------------------------------------------------- - DATA(lr_table) = irparent->table( items = irclient->_bind_edit( ) ). -* ---------- Create Columns ----------------------------------------------------------------------- - DATA(lr_columns) = lr_table->columns( ). - -* ---------- Set column --------------------------------------------------------------------------- - LOOP AT lt_fieldprop_lis ASSIGNING FIELD-SYMBOL(). -* ---------- Init loop data ----------------------------------------------------------------------- - UNASSIGN: . - -* ---------- Get corresponding field description -------------------------------------------------- - ASSIGN lt_ddffields[ fieldname = -fieldname ] TO . - IF IS NOT ASSIGNED. - CONTINUE. - ENDIF. - - lr_columns->column( )->text( -rollname ). - ENDLOOP. - -* ---------- Build export parameter list ---------------------------------------------------------- - LOOP AT lt_fieldprop_lis ASSIGNING WHERE shlpoutput = abap_true. -* ---------- Init loop data ----------------------------------------------------------------------- - CLEAR: lv_arg_fieldname. - -* ---------- Build parameter name ----------------------------------------------------------------- - lv_arg_fieldname = `${` && -fieldname && `}`. - -* ---------- Collect output fields ---------------------------------------------------------------- - APPEND lv_arg_fieldname TO lt_arg. - ENDLOOP. - - DATA(lr_item) = lr_table->items( - )->column_list_item( type = 'Navigation' press = irclient->_event( val = resultitabevent - t_arg = lt_arg ) ). - -* ---------- Set cell content --------------------------------------------------------------------- - LOOP AT lt_fieldprop_lis ASSIGNING . -* ---------- Init loop data ----------------------------------------------------------------------- - CLEAR: lv_cell_fieldname. - -* ---------- Build cell name ---------------------------------------------------------------------- - lv_cell_fieldname = `{` && -fieldname && `}`. - lr_item->cells( )->text( lv_cell_fieldname ). - - ENDLOOP. - - lr_grid_shlp = irparent->buttons( )->button( - text = closebuttontext - press = irclient->_event_client( irclient->cs_event-popup_close ) ). - - - result = lr_grid_shlp. - - ENDMETHOD. - - METHOD generic_tag. result = _generic( name = `GenericTag` @@ -4872,6 +4369,231 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION. ENDMETHOD. + METHOD zcc_export_spreadsheet. + + result = me. + _generic( name = `ExportSpreadsheet` + ns = `z2ui5` + t_prop = VALUE #( ( n = `tableId` v = tableid ) + ( n = `text` v = text ) + ( n = `icon` v = icon ) + ( n = `type` v = type ) + ) ). + + ENDMETHOD. + + + METHOD zcc_export_spreadsheet_js. + + DATA(js) = ` debugger; jQuery.sap.declare("z2ui5.ExportSpreadsheet");` && |\n| && + |\n| && + ` sap.ui.define([` && |\n| && + ` "sap/ui/core/Control",` && |\n| && + ` "sap/m/Button",` && |\n| && + ` "sap/ui/export/Spreadsheet"` && |\n| && + ` ], function (Control, Button, Spreadsheet) {` && |\n| && + ` "use strict";` && |\n| && + |\n| && + ` return Control.extend("z2ui5.ExportSpreadsheet", {` && |\n| && + |\n| && + ` metadata: {` && |\n| && + ` properties: {` && |\n| && + ` tableId: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` type: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` icon: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` text: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` }` && |\n| && + ` },` && |\n| && + |\n| && + |\n| && + ` aggregations: {` && |\n| && + ` },` && |\n| && + ` events: { },` && |\n| && + ` renderer: null` && |\n| && + ` },` && |\n| && + |\n| && + ` renderer: function (oRm, oControl) {` && |\n| && + |\n| && + ` oControl.oExportButton = new Button({` && |\n| && + ` text: oControl.getProperty("text"),` && |\n| && + ` icon: oControl.getProperty("icon"), ` && |\n| && + ` type: oControl.getProperty("type"), ` && |\n| && + ` press: function (oEvent) { ` && |\n| && + |\n| && + ` var aCols =` && columnconfig && `;` && |\n| && + |\n| && + ` var oBinding, oSettings, oSheet, oTable, vTableId, vViewPrefix,vPrefixTableId;` && |\n| && + ` vTableId = oControl.getProperty("tableId")` && |\n| && + ` // vViewPrefix = sap.z2ui5.oView.sId;` && |\n| && + ` // vPrefixTableId = vViewPrefix + "--" + vTableId;` && |\n| && + ` vPrefixTableId = sap.z2ui5.oView.createId( vTableId );` && |\n| && + ` oTable = sap.ui.getCore().byId(vPrefixTableId);` && |\n| && + ` oBinding = oTable.getBinding("rows");` && |\n| && + ` if (oBinding == null) {` && |\n| && + ` oBinding = oTable.getBinding("items");` && |\n| && + ` };` && |\n| && + ` oSettings = {` && |\n| && + ` workbook: { columns: aCols },` && |\n| && + ` dataSource: oBinding` && |\n| && + ` };` && |\n| && + ` oSheet = new Spreadsheet(oSettings);` && |\n| && + ` oSheet.build()` && |\n| && + ` .then(function() {` && |\n| && + ` }).finally(function() {` && |\n| && + ` oSheet.destroy();` && |\n| && + ` });` && |\n| && + ` }.bind(oControl)` && |\n| && + ` });` && |\n| && + |\n| && + ` oRm.renderControl(oControl.oExportButton);` && |\n| && + ` }` && |\n| && + ` });` && |\n| && + ` });`. + + result = zcc_plain_xml( `` && js && `` ). + + ENDMETHOD. + + + METHOD zcc_file_uploader. + + result = me. + _generic( name = `FileUploader` + ns = `z2ui5` + t_prop = VALUE #( ( n = `placeholder` v = placeholder ) + ( n = `upload` v = upload ) + ( n = `path` v = path ) + ( n = `value` v = value ) ) ). + + ENDMETHOD. + + + METHOD zcc_file_uploader_js. + + DATA(js) = ` debugger; jQuery.sap.declare("z2ui5.FileUploader");` && |\n| && + |\n| && + ` sap.ui.define([` && |\n| && + ` "sap/ui/core/Control",` && |\n| && + ` "sap/m/Button",` && |\n| && + ` "sap/ui/unified/FileUploader"` && |\n| && + ` ], function (Control, Button, FileUploader) {` && |\n| && + ` "use strict";` && |\n| && + |\n| && + ` return Control.extend("z2ui5.FileUploader", {` && |\n| && + |\n| && + ` metadata: {` && |\n| && + ` properties: {` && |\n| && + ` value: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` path: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` tooltip: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` fileType: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` placeholder: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: ""` && |\n| && + ` },` && |\n| && + ` buttonText: {` && |\n| && + ` type: "string",` && |\n| && + ` defaultValue: "Upload"` && |\n| && + ` },` && |\n| && + ` enabled: {` && |\n| && + ` type: "boolean",` && |\n| && + ` defaultValue: true` && |\n| && + ` },` && |\n| && + ` multiple: {` && |\n| && + ` type: "boolean",` && |\n| && + ` defaultValue: false` && |\n| && + ` }` && |\n| && + ` },` && |\n| && + |\n| && + |\n| && + ` aggregations: {` && |\n| && + ` },` && |\n| && + ` events: {` && |\n| && + ` "upload": {` && |\n| && + ` allowPreventDefault: true,` && |\n| && + ` parameters: {}` && |\n| && + ` }` && |\n| && + ` },` && |\n| && + ` renderer: null` && |\n| && + ` },` && |\n| && + |\n| && + ` renderer: function (oRm, oControl) {` && |\n| && + |\n| && + ` oControl.oUploadButton = new Button({` && |\n| && + ` text: oControl.getProperty("buttonText"),` && |\n| && + ` enabled: oControl.getProperty("path") !== "",` && |\n| && + ` press: function (oEvent) { ` && |\n| && + |\n| && + ` this.setProperty("path", this.oFileUploader.getProperty("value"));` && |\n| && + |\n| && + ` var file = sap.z2ui5.oUpload.oFileUpload.files[0];` && |\n| && + ` var reader = new FileReader();` && |\n| && + |\n| && + ` reader.onload = function (evt) {` && |\n| && + ` var vContent = evt.currentTarget.result;` && |\n| && + ` this.setProperty("value", vContent);` && |\n| && + ` this.fireUpload();` && |\n| && + ` //this.getView().byId('picture' ).getDomRef().src = vContent;` && |\n| && + ` }.bind(this)` && |\n| && + |\n| && + ` reader.readAsDataURL(file);` && |\n| && + ` }.bind(oControl)` && |\n| && + ` });` && |\n| && + |\n| && + ` oControl.oFileUploader = new FileUploader({` && |\n| && + ` icon: "sap-icon://browse-folder",` && |\n| && + ` iconOnly: true,` && |\n| && + ` value: oControl.getProperty("path"),` && |\n| && + ` placeholder: oControl.getProperty("placeholder"),` && |\n| && + ` change: function (oEvent) {` && |\n| && + ` var value = oEvent.getSource().getProperty("value");` && |\n| && + ` this.setProperty("path", value);` && |\n| && + ` if (value) {` && |\n| && + ` this.oUploadButton.setEnabled();` && |\n| && + ` } else {` && |\n| && + ` this.oUploadButton.setEnabled(false);` && |\n| && + ` }` && |\n| && + ` this.oUploadButton.rerender();` && |\n| && + ` sap.z2ui5.oUpload = oEvent.oSource;` && |\n| && + ` }.bind(oControl)` && |\n| && + ` });` && |\n| && + |\n| && + ` var hbox = new sap.m.HBox();` && |\n| && + ` hbox.addItem(oControl.oFileUploader);` && |\n| && + ` hbox.addItem(oControl.oUploadButton);` && |\n| && + ` oRm.renderControl(hbox);` && |\n| && + ` }` && |\n| && + ` });` && |\n| && + ` });`. + + result = zcc_plain_xml( `` && js && `` ). + + ENDMETHOD. + + METHOD zcc_plain_xml. result = me. _generic( name = `ZZPLAIN` @@ -4879,6 +4601,285 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION. ENDMETHOD. + METHOD zfc_ddic_search_help. + + TYPES: + BEGIN OF ty_ddshfprop, + fieldname(30) TYPE c, + shlpinput(1) TYPE c, + shlpoutput(1) TYPE c, + shlpselpos(2) TYPE n, + shlplispos(2) TYPE n, + shlpseldis(1) TYPE c, + defaultval(21) TYPE c, + END OF ty_ddshfprop. + + TYPES: + BEGIN OF ty_ddfields, + tabname(30) TYPE c, + fieldname(30) TYPE c, + langu(1) TYPE c, + position(4) TYPE n, + offset(6) TYPE n, + domname(30) TYPE c, + rollname(30) TYPE c, + checktable(30) TYPE c, + leng(6) TYPE n, + intlen(6) TYPE n, + outputlen(6) TYPE n, + decimals(6) TYPE n, + datatype(4) TYPE c, + inttype(1) TYPE c, + reftable(30) TYPE c, + reffield(30) TYPE c, + precfield(30) TYPE c, + authorid(3) TYPE c, + memoryid(20) TYPE c, + logflag(1) TYPE c, + mask(20) TYPE c, + masklen(4) TYPE n, + convexit(5) TYPE c, + headlen(2) TYPE n, + scrlen1(2) TYPE n, + scrlen2(2) TYPE n, + scrlen3(2) TYPE n, + fieldtext(60) TYPE c, + reptext(55) TYPE c, + scrtext_s(10) TYPE c, + scrtext_m(20) TYPE c, + scrtext_l(40) TYPE c, + keyflag(1) TYPE c, + lowercase(1) TYPE c, + mac(1) TYPE c, + genkey(1) TYPE c, + noforkey(1) TYPE c, + valexi(1) TYPE c, + noauthch(1) TYPE c, + sign(1) TYPE c, + dynpfld(1) TYPE c, + f4availabl(1) TYPE c, + comptype(1) TYPE c, + lfieldname(132) TYPE c, + ltrflddis(1) TYPE c, + bidictrlc(1) TYPE c, + outputstyle(2) TYPE n, + nohistory(1) TYPE c, + ampmformat(1) TYPE c, + END OF ty_ddfields. + + DATA: lv_grid_form_no TYPE i, + lt_arg TYPE string_table, + lv_arg_fieldname TYPE string, + lv_cell_fieldname TYPE string, + lv_path_result_itab TYPE string, + lv_path_shlp_fields TYPE string, + lt_fieldprop_sel TYPE STANDARD TABLE OF ty_ddshfprop WITH EMPTY KEY, + lt_fieldprop_lis TYPE STANDARD TABLE OF ty_ddshfprop WITH EMPTY KEY, + lt_ddffields TYPE STANDARD TABLE OF ty_ddfields WITH EMPTY KEY. + + FIELD-SYMBOLS: + TYPE ANY TABLE, + TYPE any, + TYPE any. + +* ---------- Get result itab reference ------------------------------------------------------------ + lv_path_result_itab = 'IRCONTROLLER->' && resultitabname. + ASSIGN (lv_path_result_itab) TO . +* ---------- Get searchhelp input fields structure reference -------------------------------------- + lv_path_shlp_fields = 'IRCONTROLLER->' && shlpfieldsstrucname. + ASSIGN (lv_path_shlp_fields) TO . + + IF IS NOT ASSIGNED OR + IS NOT ASSIGNED. + RETURN. + ENDIF. + + IF isshlp IS INITIAL. + RETURN. + ELSE. + ASSIGN COMPONENT 'FIELDPROP' OF STRUCTURE isshlp TO FIELD-SYMBOL(). + IF IS NOT ASSIGNED. + RETURN. + ENDIF. + ENDIF. + +* ---------- Set Selection and List properties ---------------------------------------------------- + lt_fieldprop_sel = . + lt_fieldprop_lis = . + DELETE lt_fieldprop_sel WHERE shlpselpos IS INITIAL. + DELETE lt_fieldprop_lis WHERE shlplispos IS INITIAL. + SORT lt_fieldprop_sel BY shlpselpos. + SORT lt_fieldprop_lis BY shlplispos. + + ASSIGN COMPONENT 'FIELDDESCR' OF STRUCTURE isshlp TO FIELD-SYMBOL(). + IF IS NOT ASSIGNED. + RETURN. + ENDIF. + lt_ddffields = . + +* ------------------------------------------------------------------------------------------------- +*Searchfield Grid +* ------------------------------------------------------------------------------------------------- + DATA(lr_grid_shlp) = irparent->content( )->toolbar( )->toolbar_spacer( + )->button( text = searchbuttontext + type = 'Emphasized' + press = irclient->_event( searchevent ) )->get_parent( + )->grid( 'L3 M3 S3' )->content( 'layout' ). + +* ---------- Create 4 forms (grid columns) -------------------------------------------------------- + DATA(lr_form_shlp_1) = lr_grid_shlp->simple_form( )->content( 'form' ). + DATA(lr_form_shlp_2) = lr_grid_shlp->simple_form( )->content( 'form' ). + DATA(lr_form_shlp_3) = lr_grid_shlp->simple_form( )->content( 'form' ). + DATA(lr_form_shlp_4) = lr_grid_shlp->simple_form( )->content( 'form' ). + + LOOP AT lt_fieldprop_sel ASSIGNING FIELD-SYMBOL(). +* ---------- Init loop data ----------------------------------------------------------------------- + UNASSIGN: . +* ---------- Get corresponding field description -------------------------------------------------- + ASSIGN lt_ddffields[ fieldname = -fieldname ] TO FIELD-SYMBOL(). + + IF IS NOT ASSIGNED. + CONTINUE. + ENDIF. + +* ---------- Get field reference ------------------------------------------------------------------ + ASSIGN COMPONENT -fieldname OF STRUCTURE TO . + IF IS NOT ASSIGNED. + CONTINUE. + ENDIF. + +* ---------- Determine grid form number ----------------------------------------------------------- + IF lv_grid_form_no IS INITIAL. + lv_grid_form_no = 1. + ELSEIF lv_grid_form_no = 4. + lv_grid_form_no = 1. + ELSE. + lv_grid_form_no = lv_grid_form_no + 1. + ENDIF. + + CASE lv_grid_form_no. + WHEN 1. +* ---------- Grid 1-------------------------------------------------------------------------------- +* ---------- Set field label ---------------------------------------------------------------------- + lr_form_shlp_1->label( -scrtext_l ). + +* ---------- Set input field ---------------------------------------------------------------------- + CASE -datatype. + WHEN 'DATS'. + lr_form_shlp_1->date_picker( value = irclient->_bind_edit( ) ). + WHEN 'TIMS'. + lr_form_shlp_1->time_picker( value = irclient->_bind_edit( ) ). + WHEN OTHERS. + lr_form_shlp_1->input( value = irclient->_bind_edit( ) ). + ENDCASE. + + WHEN 2. +* ---------- Grid 2-------------------------------------------------------------------------------- +* ---------- Set field label ---------------------------------------------------------------------- + lr_form_shlp_2->label( -rollname ). + +* ---------- Set input field ---------------------------------------------------------------------- + CASE -datatype. + WHEN 'DATS'. + lr_form_shlp_2->date_picker( value = irclient->_bind_edit( ) ). + WHEN 'TIMS'. + lr_form_shlp_2->time_picker( value = irclient->_bind_edit( ) ). + WHEN OTHERS. + lr_form_shlp_2->input( value = irclient->_bind_edit( ) ). + ENDCASE. + + WHEN 3. +* ---------- Grid 3-------------------------------------------------------------------------------- +* ---------- Set field label ---------------------------------------------------------------------- + lr_form_shlp_3->label( -rollname ). + +* ---------- Set input field ---------------------------------------------------------------------- + CASE -datatype. + WHEN 'DATS'. + lr_form_shlp_3->date_picker( value = irclient->_bind_edit( ) ). + WHEN 'TIMS'. + lr_form_shlp_3->time_picker( value = irclient->_bind_edit( ) ). + WHEN OTHERS. + lr_form_shlp_3->input( value = irclient->_bind_edit( ) ). + ENDCASE. + + WHEN 4. +* ---------- Grid 4-------------------------------------------------------------------------------- +* ---------- Set field label ---------------------------------------------------------------------- + lr_form_shlp_4->label( -rollname ). + +* ---------- Set input field ---------------------------------------------------------------------- + CASE -datatype. + WHEN 'DATS'. + lr_form_shlp_4->date_picker( value = irclient->_bind_edit( ) ). + WHEN 'TIMS'. + lr_form_shlp_4->time_picker( value = irclient->_bind_edit( ) ). + WHEN OTHERS. + lr_form_shlp_4->input( value = irclient->_bind_edit( ) ). + ENDCASE. + + ENDCASE. + + UNASSIGN . + + ENDLOOP. + +* ---------- Create table ------------------------------------------------------------------------- + DATA(lr_table) = irparent->table( items = irclient->_bind_edit( ) ). +* ---------- Create Columns ----------------------------------------------------------------------- + DATA(lr_columns) = lr_table->columns( ). + +* ---------- Set column --------------------------------------------------------------------------- + LOOP AT lt_fieldprop_lis ASSIGNING FIELD-SYMBOL(). +* ---------- Init loop data ----------------------------------------------------------------------- + UNASSIGN: . + +* ---------- Get corresponding field description -------------------------------------------------- + ASSIGN lt_ddffields[ fieldname = -fieldname ] TO . + IF IS NOT ASSIGNED. + CONTINUE. + ENDIF. + + lr_columns->column( )->text( -rollname ). + ENDLOOP. + +* ---------- Build export parameter list ---------------------------------------------------------- + LOOP AT lt_fieldprop_lis ASSIGNING WHERE shlpoutput = abap_true. +* ---------- Init loop data ----------------------------------------------------------------------- + CLEAR: lv_arg_fieldname. + +* ---------- Build parameter name ----------------------------------------------------------------- + lv_arg_fieldname = `${` && -fieldname && `}`. + +* ---------- Collect output fields ---------------------------------------------------------------- + APPEND lv_arg_fieldname TO lt_arg. + ENDLOOP. + + DATA(lr_item) = lr_table->items( + )->column_list_item( type = 'Navigation' press = irclient->_event( val = resultitabevent + t_arg = lt_arg ) ). + +* ---------- Set cell content --------------------------------------------------------------------- + LOOP AT lt_fieldprop_lis ASSIGNING . +* ---------- Init loop data ----------------------------------------------------------------------- + CLEAR: lv_cell_fieldname. + +* ---------- Build cell name ---------------------------------------------------------------------- + lv_cell_fieldname = `{` && -fieldname && `}`. + lr_item->cells( )->text( lv_cell_fieldname ). + + ENDLOOP. + + lr_grid_shlp = irparent->buttons( )->button( + text = closebuttontext + press = irclient->_event_client( irclient->cs_event-popup_close ) ). + + + result = lr_grid_shlp. + + ENDMETHOD. + + METHOD _generic. DATA(result2) = NEW z2ui5_cl_xml_view( ).