рдореИрдВрдиреЗ SAPUI5 (SAP MII) рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛

рд╡рд┐рд╖рдп рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреАрд░реНрдг рджрд╛рдпрд░реЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ SAP MII рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ SAP ERP рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрджреНрдпрдо рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ Habrovsk рд▓реЛрдЧ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЙрдирдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, OpenUI5 рдврд╛рдВрдЪреЗ рдХрд╛ рдПрдХ рдЦреБрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдгред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрддрдиреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдмрд╣реБрдд рд╡рд┐рд╡рд┐рдз рд╣реИрдВред рдХрднреА-рдХрднреА рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдРрд╕реЗ рдХрд╛рд░реНрдп рдЖрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ - SAPUI5 ( OpenUI5 ) рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ TableU рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХреЙрд▓рдо рдореЗрдВ рдЕрд╕рдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдХрд╛рд░реНрдп рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рдЙрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрд╕ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреВрдВрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛:
(рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рдиреАрд▓реЗ рдФрд░ рд▓рд╛рд▓ рдмреНрд▓реЙрдХ, рдЙрдирдореЗрдВ рдорд╛рди рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)



рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕рдХрд╛ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛ред

рдпрд╣ рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдерд╛: рдХреЙрд▓рдо (рднреЗрдЬреЗ рдЧрдП рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд┐рдП рдЧрдП) рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдорд╛рдорд▓рд╛ рдЬрдм рдорд╛рди рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдереЗ - рдпрд╣ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдиреЛрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдореЙрдбрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (messagesSearchResult), рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рд╣рдо рд╕рд░реНрдЪрдореИрд╕реЗрдЬреЗрдЬ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП URL рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

sap.ui.controller("controller_name.page", { models: { messagesSearchResult: null }, urls: { searchMessages: "/XMII/Illuminator?QueryTemplate=PATH/TO/query&Content-Type=text/xml" }, 


рдлрд┐рд░ рд╣рдо рдПрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд╣рдо рдПрдХ XML рдСрдмреНрдЬреЗрдХреНрдЯ (рдирдпрд╛ sap.ui.model.xml.XMLModel ()) рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ, рдПрдВрдб рдФрд░ рд╣реИрдВрдбрд▓ рдПрд░рд░ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

  onInit: function() { this.models.messagesSearchResult = new sap.ui.model.xml.XMLModel(); this.models.messagesSearchResult.attachRequestCompleted(this._dataLoadingFinished) this.models.messagesSearchResult.attachRequestFailed(this._dataLoadingFinished) this.models.messagesSearchResult.attachRequestSent(thisLoadingStarted); }, 


рдЕрдЧрд▓рд╛ рдЪрд░рдг, рд╣рдо рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реА рдбреЗрдЯрд╛ рдХреЛ "рдмрд╛рдЗрдВрдб" рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрд╡реЗрд░реА рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

  searchMessages: function() { var t = this.byId('searchResultTbl'); // get Table element from page t.setModel(this.models.messagesSearchResult); // connect XML-model to Table element at page // aggregation binding data from XML-path (/Rowset/Row) to Table rows // and manipulation with data by function _addTableRows(this.models.messagesSearchResult). // At the end, loading data from query by url. (this.models.messagesSearchResult.loadData()) t.bindAggregation("rows", { path: "/Rowset/Row", factory: $.proxy(this._addTableRows(this.models.messagesSearchResult), this) }); this.models.messagesSearchResult.loadData(this.urls.searchMessages, {}}, false, "POST"); }, 


рдЕрдВрдд рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рд╕рд╛рде рд╣реА рд╕рд╛рде "рд╕рдорд╕реНрдпрд╛" рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ред

  _addTableRows: function (oContext) { var _this = this; // save handler _this to controller var backgroundColor = '#fcdd82'; // define background-color for "problem" cells var ConfRecColumn, SentRecColumn; var TMP_REC; // Compare this field with next. // Bind property (CONF_REC) from XML-model to new TextField value and save it to temporary variable (TMP_REC). // By jQuery set attribute readonly to true ($('#' + this.getId()).attr("readonly", true)). // Set this TextField not editable (this.setEditable(false)). var ConfRecColor = new sap.ui.commons.TextField().bindProperty("value", "CONF_REC", function(cellValue){ $('#' + this.getId()).attr("readonly", true); this.setEditable(false); _this.TMP_REC = cellValue; return cellValue; }); // Compare this field with previous and highlight if doesn't match. // Bind property (SENT_REC) from XML-model to new TextField value and compare it with temporary variable (TMP_REC). // By jQuery set background-color if doesn't match ($('#' + this.getId()).parent().parent().css("background-color", backgroundColor)). // Or remove by jQuery attribute style if previous and this values is match ($('#' + this.getId()).parent().parent().removeAttr('style')). // By jQuery set attribute readonly to true ($('#' + this.getId()).attr("readonly", true)). // Set this TextField not editable (this.setEditable(false)). var SentRecColor = new sap.ui.commons.TextField().bindProperty("value", "SENT_REC", function(cellValue){ if(cellValue != _this.TMP_REC) { $('#' + this.getId()).parent().parent().css("background-color", backgroundColor); } else { $('#' + this.getId()).parent().parent().removeAttr('style'); } $('#' + this.getId()).attr("readonly", true); this.setEditable(false); return cellValue; }); this.byId('searchResultTbl').getColumns()[11].setTemplate(ConfRecColor); // set template, which we prepare above ConfRecColor this.byId('searchResultTbl').getColumns()[12].setTemplate(SentRecColor); // set template, which we prepare above SentRecColor }, 


рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рд╛рд░рдВрдн, рдЕрдВрдд рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

  _dataLoadingStarted: function() { sap.ui.core.BusyIndicator.show(); }, _dataLoadingFinished: function(oEvent) { sap.ui.core.BusyIndicator.hide(); if (oEvent.getId() == "requestFailed") { sap.ui.commons.MessageBox.alert(oEvent.getParameter('message')); } } }); // close controller body 


рддреИрдпрд╛рд░ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ: JSFiddle рдкрд░
рд╕рднреА рдХреЛрдб рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдм рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рд╕реНрдЯреЙрдХ рдореЗрдВ рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╛рде рджреВрд╕рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!

PS рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрд╕рдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЖрднрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдирд┐рдордВрддреНрд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛!

UPD: рдореИрдВ рдмрдирд┐рдпрд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рд╣реА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЦреБрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ : OpenUI5

UPD: рд╡реЗрд╕реНрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ , рдореИрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ ред

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Rowsets> <Rowset> <Row> <NPP>1</NPP> <SYS_ID>1</SYS_ID> <DATE_OF_POST>14-03-2014</DATE_OF_POST> <SMENA>1</SMENA> <KOD>10000000001</KOD> <DESCR></DESCR> <SOURCE_ID>200</SOURCE_ID> <TARGET_ID>300</TARGET_ID> <PROC_ID>8</PROC_ID> <CONF_Q>1131.12</CONF_Q> <CONF_REC>22</CONF_REC> <SENT_Q>1131.12</SENT_Q> <SENT_REC>22</SENT_REC> </Row> </Rowset> </Rowsets> 

Source: https://habr.com/ru/post/In216383/


All Articles