1.继承可实现

  1. extends AbstractionBillPlugin implements BeforeF7SelectListener

2.常用代码(控件设置,F7筛选,列表筛选)

  1. //获取视图(可设置控件属性(什么禁用,启用))
  2. this.getView();
  3. //更新当前页面的单据体数据(用于修改数据后页面不更新)
  4. this.getView().updateView("标识")
  5. //获取界面模型(可用来获取数据)
  6. this.getModel();
  7. //获取当前页面的单据体数据-分录
  8. this.getModel().get·Entity("标识")
  9. //删除当前页面的单据体数据
  10. this.getModel().deleteEntryData("标识")
  11. //修改当前页面的数据
  12. this.getModel().setValue("wens_isonly", false,rowIndex);
  13. //获取当前页面单据头
  14. this.getModel().getDataEntity("标识")
  15. //控制字段 是否必填 注意:设置必填需要把表单上的必填除去
  16. BasedataEdit field = this.getControl("字段标识");
  17. field.setMustInput(true/false);
  18. BasedataEdit//基础资料
  19. TextEdit://文本字段
  20. ComboEdit//下拉框
  21. //单据列表控件进行筛选
  22. BillList billlist = this.getContorl("列表标识")
  23. FilterParameter f = new FilterParameter();
  24. QFilter qf = new QFilter()
  25. f.setFilter(qf);//设置筛选条件
  26. f.setFilter(); //筛选条件
  27. f.setOrderBy();//排序
  28. billlist.setFilterParameter(f);
  29. billlist.refresh();//刷新
  30. //2.操作列如何获取当前一行数据
  31. //.先给操作列绑定操作项
  32. //b.然后在插件新增beforeDoOperation方法
  33. BillList bill = this.getControl("单据列表标识")
  34. bill.getCurrentSelectedRowInfo().getPrimarKeyValue();//获取选择当前一行的id
  35. //创建分录
  36. EntryGrid ourgrid = this.getControl("分录标识");
  37. int[] rows =ourgrid.getSelectRows();
  38. if(rows==null||rows.length<=0) {
  39. //创建分录
  40. this.getView().invokeOperation("ournewentry");
  41. }
  42. //2、值改变事件.改变后
  43. @Override
  44. public void propertyChanged(PropertyChangedArgs e){
  45. //获取改变的字段标识
  46. e.getProperty().getName();
  47. //获取改变的行(如果是明细字段的话)
  48. e.getChangeSet()[0].getRowIndex();
  49. //获取修改后的值
  50. e.getChangeSet()[0].getNewValue();
  51. //获取修改前的值
  52. e.getChangeSet()[0].getOldValue();
  53. //获取修改的行号(如果修改的是明细数据)
  54. e.getChangeSet()[0].getRowIndex();
  55. //获取列表基础资料
  56. var dynamicObject = e.getChangeSet()[0].getDataEntity().getDynamicObject("基础资料标识");
  57. dynamicObject.getDynamicObject("字段标识")//基础资料下的字段
  58. }

3、打开页面弹框

  1. //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
  2. FormShowParameter ShowParameter = new FormShowParameter();
  3. //设置弹出页面的编码
  4. ShowParameter.setFormId("页面编码");
  5. //设置弹出页面标题
  6. ShowParameter.setCaption("弹出框标题");
  7. //传参
  8. ShowParameter.setCustomParams(map);
  9. //获取参数
  10. FormShowParameter formshow = this.getView().getFormShowParameter();
  11. Map<String,Object> map = form.getCustomParams();
  12. //设置页面关闭回调方法
  13. //CloseCallBack参数:回调插件,回调标识
  14. ShowParameter.setCloseCallBack(new CloseCallBack(this, "biaoshi"));
  15. //传递参数-到动态表单showParameter.setCustomParam("entityid","22");
  16. //设置弹出页面打开方式,支持模态,新标签等
  17. ShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
  18. //弹出页面对象赋值给父页面
  19. this.getView().showForm(ShowParameter);
  20. //获取弹窗的返回值
  21. public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
  22. super.closedCallBack(closedCallBackEvent);
  23. //判断标识是否匹配,并验证返回值不为空,不验证返回值可能会报空指针
  24. if (StringUtils.equals(closedCallBackEvent.getActionId(), "") && null != closedCallBackEvent.getReturnData()) {
  25. //这里返回对象为Object,可强转成相应的其他类型,
  26. // 单条数据可用String类型传输,返回多条数据可放入map中,也可使用json等方式传输
  27. HashMap<String, String> returnData = (HashMap<String, String>) closedCallBackEvent.getReturnData();
  28. }
  29. }
  30. 通过代码打开新页面需要用的方法是showform方法,需要用到的参数时FormShowParameter,这里要注意的是打开不同类型的页面要构建的FormShowParameter
  31. PC
  32. 1、打开动态表单 页面:FormShowParameter
  33. 例:
  34. FormShowParameter showParameter = new FormShowParameter();
  35. showParameter.setFormId("表单标识");
  36. showParameter.getOpenStyle().setShowType(ShowType.Modal);//打开方式
  37. this.getView().showForm(showParameter);
  38. 关于FormShowParameter里面的功能大家可以自己尝试
  39. 2、打开单据 页面:BillShowParameter
  40. 3、打开基础资料 页面:BaseShowParameter
  41. 4、打开报表 页面:ReportShowParameter
  42. 5、打开标准列表 页面:ListShowParameter
  43. 例:
  44. ListShowParameter showParameter = new ListShowParameter();
  45. showParameter.setBillFormId("单据标识");//注意这里是billFormId,指的是列表对应的单据标识
  46. showParameter.getOpenStyle().setShowType(ShowType.Modal);
  47. this.getView().showForm(showParameter);
  48. 移动端
  49. 1、移动表单:MobileFormShowParameter FormShowParameter类似
  50. 2、移动单据:MobileBillShowParameter BillShowParameter类似
  51. 3、移动基础资料:MobileBaseShowParameter BaseShowParameter 相同
  52. 4、移动列表:MobileListShowParameter ListShowParameter类似