SAP运行时动态创建节点和绑定UI控件_第1页
SAP运行时动态创建节点和绑定UI控件_第2页
SAP运行时动态创建节点和绑定UI控件_第3页
SAP运行时动态创建节点和绑定UI控件_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运行时动态创建节点和绑定UI控件1.创建一个DC工程,创建一个WebDynproComponent&■■■&LocalDevelopment~ja310_xjma_04~com.xjmaH-QDCMetaDataplWebDynpro"•皆Applications卜祗Models:•…因四虫口YHP.r口耳E四四匹如心裕匚日s白•…';MyComp_04HComponentController亩••,•°:ComponentInterface|CustomControllersp-r~lMessagePool卜卷UsedModelsI』UsedWebDynproComponents白曾Views:•…5MyComp_04View由“EWindows白辱DictionariesSOLocalDictionary白画DataTypes|•…智SimpleTypesI•磺Structures由“口src2.找到MyComp_04View的wdDoInit。方法,添加如下代码获得wdContext节点信息IWDNodeInforootinfo=wdContext.getNodeInfo();像wdContext节点下添加名称叫SalersOrders的子节点IWDNodeInfosoNodeInfo=rootInfo.addChild("SalersOrders",须是唯一的null,true,这2"SalersOrders",须是唯一的null,true,这2个参数为。3们希时属性false,

true,这2个参数为SelectionCardinality属性兀素的名称,该名称在整个context中必模型节点的类型,可以为空模型节点的singleton属性模型节点必须保证有一个元素模型节点可以有多个元素这个参数是InitializeLeadSelection属性true,当这个节点被选择时,是否对他初始化null,数据类型null,null);通过刚才创建的IWDNodeInfo创建他的属性第一个参数是属性名称,第二个参数是属性的类型注意:第二个参数可以使用java的类型,如java.lang.String,但是如果使用java类型的话就不能和View上的UI控件绑定,所以建议使用WD自带的类型,如ddic:com.sap.dictionary.stringsoNodeInfo.addAttribute("OrderNo","ddic:eger");soNodeInfo.addAttribute("SalesDate","ddic:com.sap.dictionary.date");soNodeInfo.addAttribute("SalesRep","ddic:com.sap.dictionary.string");soNodeInfo.addAttribute("LongText","ddic:com.sap.dictionary.string");获得刚才创建的节点SalersOrders第一个参数是需要获得子节点的名称,第二个参数是获得元素的索引IWDNodesoNode=wdContext.getChildNode("SalersOrders",0);创建一个新的元素IWDNodeElementsoElt=soNode.createElement();设置元素的属性值第一个参数是属性名称,第二个参数是属性值soElt.setAttributeValue("OrderNo",newInteger(100));soElt.setAttributeValue("SalesDate",newDate(System.currentTimeMillis()));soElt.setAttributeValue("SalesRep","HomerSimpson");soElt.setAttributeValue("LongText","PrinterSupplies");把元素添加“SalersOrders节点上soNode.addElement(soElt);在wdDoModifyView()中添加如下代码firstTime是wdDoModifyView中传入的参数,判断是否是第一次进入这个Viewif(firstTime)(获得View的根UI控件IWDViewElementroot=view.getRootElement();IWDTransparentContainerrootview=(IWDTransparentContainer)root;设置根UI空间的Layout属性为martiixLayoutrootView.createLayout(IWDMatrixLayout.class)获得context中叫SalersOrders的节点信息IWDNodeInfosoNodeInfo=wdContext.getChildNode("SalersOrders",0).getNodeInfo();遍历该节点下所有属性for(Iteratorit=soNodeInfo.iterateAttributes();it.hasNext();){IWDAttributeInfosoAttrInfo=(IWDAttributeInfo)it.next();创建一个IWDLabel对象,也就是Label控件第一个参数是需创建的对象控件的类型,第二个参数是控件名称IWDLabellabel=(IWDLabel)view.createElement(IWDLabelclass,soAttrInfo.getName()+"Label");label.createLayoutData(IWDMatrixHeadData.class);label.setText(soAttrInfo.getName());label.setDesign(WDLabelDesign.LIGHT);label.setLabelFor(soAttrInfo.getName()+"Input");将创建的label控件添加到rootView上rootView.addChild(label);仓4建一个IWDInputField对象,也就是Field控件IWDInputFieldinput=(IWDInputField)view.createElement(IWDInputField.class,soAttrInfo.getName()+"InputField");input.createLayoutData(IWDMatrixHeadData.class);给InputField控件绑定值,这步必须否则报错input.bindValue(soAttrInfo);将创建的label控件添加到rootView上rootView.addChild(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论