У меня есть следующий xml, который представляет собой древовидную структуру.
<?xml version="1.0" encoding="UTF-8"?>
<Rowsets>
<Rowset>
<Row NAME="PH1A" NODE_TYPE="PLANT" DDLSTENABLE="---" ISKPI="false" MNLCNFDDLSTID="NA">
<Row NAME="LINE1" NODE_TYPE="LINE" DDLSTENABLE="true" ISKPI="true" MNLCNFDDLSTID="1"/>
<Row NAME="LINE2" NODE_TYPE="LINE" DDLSTENABLE="false" ISKPI="true"MNLCNFDDLSTID="2"/>
</Row>
<Row NAME="PN2A" NODE_TYPE="PLANT" DDLSTENABLE="---" ISKPI="false" MNLCNFDDLSTID="NA">
<Row NAME="UNIT1" NODE_TYPE="LINE" DDLSTENABLE="false" ISKPI="true" MNLCNFDDLSTID="2"/>
</Row>
<Row NAME="PN3A" NODE_TYPE="PLANT" DDLSTENABLE="--" ISKPI="false" MNLCNFDDLSTID="NA">
<Row NAME="UNIT6" NODE_TYPE="LINE" ISKPI="true" MNLCNFDDLSTID="1"/>
</Row>
</Rowset>
<DDLSTS>
<LST1>
<Rowset>
<Row>
<MNLCNFDDITMID>1</MNLCNFDDITMID>
<MNLCNFDDITMRNK>11</MNLCNFDDITMRNK>
</Row>
<Row>
<MNLCNFDDITMID>2</MNLCNFDDITMID>
<MNLCNFDDITMRNK>12</MNLCNFDDITMRNK>
</Row>
</Rowset>
</LST1>
<LST2>
<Rowset>
<Row>
<MNLCNFDDITMID>1</MNLCNFDDITMID>
<MNLCNFDDITMRNK>21</MNLCNFDDITMRNK>
</Row>
<Row>
<MNLCNFDDITMID>2</MNLCNFDDITMID>
<MNLCNFDDITMRNK>22</MNLCNFDDITMRNK>
</Row>
</Rowset>
</LST2>
</DDLSTS>
</Rowsets>
и у меня есть следующая страница sapui5
<!DOCTYPE html>
<HTML>
<HEAD>
<meta http-equiv='X-UA-Compatible' content='IE=edge' />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<script id="sap-ui-bootstrap"
src="/sapui5/resources/sap-ui-core.js"
data-sap-ui-theme="sap_goldreflection"
data-sap-ui-libs="sap.ui.commons,sap.ui.core,sap.ui.ux3,sap.ui.table,sap.m"
data-sap-ui-compatVersion="edge">
</script>
<script>
var oMdlAprvlData;
$(document).ready(function (){
debugger;
fnLdAprvData();
});
function fnLdAprvData() {
$.ajax({
type: "POST",
async: true,
url: "/XMII/Runner",
dataType: "xml",
data: {
"Transaction": "sandbox/MJain/TRX_GETTREE",
"OutputParameter": "OUTXML",
"Content-Type": "text/xml"
},
success: function (xmlData) {
oMdlAprvlData = new sap.ui.model.xml.XMLModel(xmlData);
oTableDataEntry.setModel(oMdlAprvlData);
},
error: function (jqXHR, textStatus, errorThrown) {
sap.ui.commons.MessageBox.show(errorThrown, sap.ui.commons.MessageBox.Icon.ERROR, "Error Message");
},
complete: function () {}
});
}
var oDynamicTFValue = new sap.ui.commons.TextField({
visible:{
path: "@DDLSTENABLE",
type: new sap.ui.model.type.String(),
formatter : function(DDLSTENABLE) { return !DDLSTENABLE; }
}
});
var oDynamicCBValue = new sap.ui.commons.ComboBox({
visible:{
path: "@DDLSTENABLE",
type: new sap.ui.model.type.String()
},
items: {
path: "/DDLSTS/0/LST1/0/Rowset/0/Row",
template: new sap.ui.core.ListItem({
key: "{MNLCNFDDITMID}",
text: "{MNLCNFDDITMRNK}"
})
}
});
var oDynamicLayoutValue = new sap.ui.layout.HorizontalLayout("layout1",{content: [oDynamicTFValue, oDynamicCBValue ]});
var oTableDataEntry = new sap.ui.table.TreeTable({
width: "100%",
height: "100%",
selectionMode: sap.ui.table.SelectionMode.Single,
visibleRowCountMode: sap.ui.table.VisibleRowCountMode.Auto,
selectionBehavior: sap.ui.table.SelectionBehavior.Row,
expandFirstLevel: true,
columns: [
new sap.ui.table.Column({
label: new sap.ui.commons.Label({
text: "NAME"
}),
template: new sap.ui.commons.TextView({
text: "{@NAME}"
})
}),
new sap.ui.table.Column({
label: new sap.ui.commons.Label({
text: "Value",
}),
template: oDynamicLayoutValue
})
]
});
oTableDataEntry.bindRows("/Rowset");
oTableDataEntry.placeAt("content");
</script>
</HEAD>
<BODY > <div id="content"></div>
<input type="hidden" id="IllumLoginName" value="{IllumLoginName}"> </input>
<input type="hidden" id="IllumLoginRoles" value="{IllumLoginRoles}"></input>
</BODY>
</html>
- Я определил древовидную таблицу с именем как один из столбцов
- Я определил еще одно значение столбца, в качестве шаблона которого используется макет.
- Этот макет имеет в качестве содержимого oDynamicTFValue и oDynamicCBValue.
- Я показываю текстовое поле или поле со списком на основе значения DDLSTENABLE.
- если раскрывающийся список включен, я показываю значения из LST1 (часть xml)
Мои запросы
Как установить для текстового поля и поля со списком значение false, когда ISKPI имеет значение false, и отображать текстовое поле / поле со списком (на основе DDLSTENABLE), где ISKPI истинно
Значения динамического раскрывающегося списка на основе значения MNLCNFDDLSTID ->
Как установить значения раскрывающегося списка на основе значений MNLCNFDDLSTID, например
если MNLCNFDDLSTID = 1, то в раскрывающемся списке ячеек должны отображаться значения из LST1 (то есть - 11,12)
если MNLCNFDDLSTID = 2, то в раскрывающемся списке ячеек должны отображаться значения из LST2 (то есть - 21,22)
- Как обновить значение текстового поля значением, выбранным из раскрывающегося списка. (если текстовое поле не отображается, а раскрывающийся список отображается)
Заранее спасибо.