1.继承可实现
extends AbstractionBillPlugin implements BeforeF7SelectListener
2.常用代码(控件设置,F7筛选,列表筛选)
//获取视图(可设置控件属性(什么禁用,启用))this.getView(); //更新当前页面的单据体数据(用于修改数据后页面不更新)this.getView().updateView("标识") //获取界面模型(可用来获取数据) this.getModel(); //获取当前页面的单据体数据-分录this.getModel().get·Entity("标识") //删除当前页面的单据体数据 this.getModel().deleteEntryData("标识") //修改当前页面的数据 this.getModel().setValue("wens_isonly", false,rowIndex);//获取当前页面单据头this.getModel().getDataEntity("标识") //控制字段 是否必填 注意:设置必填需要把表单上的必填除去 BasedataEdit field = this.getControl("字段标识"); field.setMustInput(true/false);BasedataEdit://基础资料 TextEdit://文本字段ComboEdit://下拉框 //单据列表控件进行筛选 BillList billlist = this.getContorl("列表标识") FilterParameter f = new FilterParameter();QFilter qf = new QFilter() f.setFilter(qf);//设置筛选条件f.setFilter(); //筛选条件f.setOrderBy();//排序billlist.setFilterParameter(f);billlist.refresh();//刷新//2.操作列如何获取当前一行数据//.先给操作列绑定操作项//b.然后在插件新增beforeDoOperation方法BillList bill = this.getControl("单据列表标识") bill.getCurrentSelectedRowInfo().getPrimarKeyValue();//获取选择当前一行的id//创建分录EntryGrid ourgrid = this.getControl("分录标识");int[] rows =ourgrid.getSelectRows();if(rows==null||rows.length<=0) { //创建分录 this.getView().invokeOperation("ournewentry");}//2、值改变事件.改变后@Overridepublic void propertyChanged(PropertyChangedArgs e){ //获取改变的字段标识 e.getProperty().getName(); //获取改变的行(如果是明细字段的话) e.getChangeSet()[0].getRowIndex(); //获取修改后的值 e.getChangeSet()[0].getNewValue(); //获取修改前的值 e.getChangeSet()[0].getOldValue(); //获取修改的行号(如果修改的是明细数据) e.getChangeSet()[0].getRowIndex(); //获取列表基础资料 var dynamicObject = e.getChangeSet()[0].getDataEntity().getDynamicObject("基础资料标识"); dynamicObject.getDynamicObject("字段标识")//基础资料下的字段 }
3、打开页面弹框
//创建弹出页面对象,FormShowParameter表示弹出页面为动态表单 FormShowParameter ShowParameter = new FormShowParameter(); //设置弹出页面的编码 ShowParameter.setFormId("页面编码"); //设置弹出页面标题 ShowParameter.setCaption("弹出框标题"); //传参ShowParameter.setCustomParams(map);//获取参数FormShowParameter formshow = this.getView().getFormShowParameter();Map<String,Object> map = form.getCustomParams();//设置页面关闭回调方法 //CloseCallBack参数:回调插件,回调标识 ShowParameter.setCloseCallBack(new CloseCallBack(this, "biaoshi")); //传递参数-到动态表单showParameter.setCustomParam("entityid","22"); //设置弹出页面打开方式,支持模态,新标签等 ShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); //弹出页面对象赋值给父页面 this.getView().showForm(ShowParameter);//获取弹窗的返回值public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { super.closedCallBack(closedCallBackEvent); //判断标识是否匹配,并验证返回值不为空,不验证返回值可能会报空指针 if (StringUtils.equals(closedCallBackEvent.getActionId(), "") && null != closedCallBackEvent.getReturnData()) { //这里返回对象为Object,可强转成相应的其他类型, // 单条数据可用String类型传输,返回多条数据可放入map中,也可使用json等方式传输 HashMap<String, String> returnData = (HashMap<String, String>) closedCallBackEvent.getReturnData(); }}通过代码打开新页面需要用的方法是showform方法,需要用到的参数时FormShowParameter,这里要注意的是打开不同类型的页面要构建的FormShowParameterPC端1、打开动态表单 页面:FormShowParameter例:FormShowParameter showParameter = new FormShowParameter(); showParameter.setFormId("表单标识"); showParameter.getOpenStyle().setShowType(ShowType.Modal);//打开方式 this.getView().showForm(showParameter);关于FormShowParameter里面的功能大家可以自己尝试2、打开单据 页面:BillShowParameter3、打开基础资料 页面:BaseShowParameter4、打开报表 页面:ReportShowParameter5、打开标准列表 页面:ListShowParameter例:ListShowParameter showParameter = new ListShowParameter(); showParameter.setBillFormId("单据标识");//注意这里是billFormId,指的是列表对应的单据标识 showParameter.getOpenStyle().setShowType(ShowType.Modal); this.getView().showForm(showParameter);移动端1、移动表单:MobileFormShowParameter 与FormShowParameter类似2、移动单据:MobileBillShowParameter 与BillShowParameter类似3、移动基础资料:MobileBaseShowParameter 与BaseShowParameter 相同4、移动列表:MobileListShowParameter 与ListShowParameter类似