金蝶云苍穹开发实用整理

1. afterBindData:页面每次打开进入的方法

@Overridepublic void afterBindData(EventObject e) {super.afterBindData(e);IFormView view = this.getView();IDataModel bill = this.getModel();//设置字段可见性;锁定行:隐藏等DynamicObject packstyle = (DynamicObject) this.getModel().getValue("tp_packstyle");if (null !=packstyle) {packCom(packstyle);}}/*** @param packstyle*/private void packCom(DynamicObject packstyle) {packstyle=BusinessDataServiceHelper.loadSingle(packstyle.getPkValue(), "tp_bd_packingstyle","number,name,tp_enname");String name = packstyle.getString("name");if (StringUtils.isNotEmpty(name)) {if ("散装".equals(name)) {this.getView().setVisible(false, "freebox");this.getView().setEnable(false, "");}else {this.getView().setVisible(true, "freebox");//可见性this.getView().setEnable(true, "");//锁定性}}}

2. 监听事件

@Overridepublic void registerListener(EventObject e) {super.registerListener(e);//文本TextEdit creditbill = this.getView().getControl("creditbill");creditbill.addButtonClickListener(this);//基础资料BasedataEdit material = this.getView().getControl("material");material.addBeforeF7SelectListener(this);}

3.用户点击按钮、菜单,执行完绑定的操作后,不论成功与否,均会触发此事件

@Overridepublic void afterDoOperation(AfterDoOperationEventArgs e) {super.afterDoOperation(e);boolean isSuccess = false;if (e.getOperationResult() != null) {isSuccess = e.getOperationResult().isSuccess();}String operateKey = e.getOperateKey();if (StringUtils.isNotEmpty(operateKey)) {IFormView view = this.getView();IDataModel model = this.getModel();FormShowParameter bsp = new FormShowParameter();bsp.setStatus(OperationStatus.ADDNEW);bsp.getOpenStyle().setShowType(ShowType.Modal);if ("save".equals(operateKey) && isSuccess) {this.getView().invokeOperation("refresh");}else if ("submit".equals(operateKey) && isSuccess) {this.getView().invokeOperation("refresh");} else if ("audit".equals(operateKey) && isSuccess) {this.getView().invokeOperation("refresh");} else if ("unaudit".equals(operateKey) && isSuccess) {this.getView().invokeOperation("refresh");}else if ("arrivalinfoau".equals(operateKey)) {// 到港信息动态回填Map<String, Object> arrivalInfo = this.getArrivalInfo();bsp.setFormId(KEY_TP_ARRIVAL_INFO);bsp.setCustomParams(arrivalInfo);CloseCallBack callBack = new CloseCallBack(this, KEY_ARRIVALINFO);bsp.setCloseCallBack(callBack);view.showForm(bsp);}    }}

4.值改变事件

@Overridepublic void propertyChanged(PropertyChangedArgs e) {super.propertyChanged(e);IFormView view = this.getView();IDataModel bill = this.getModel();ChangeData[] changeData = e.getChangeSet();Object newValue = changeData[0].getNewValue();int rowIndex = changeData[0].getRowIndex();String key = e.getProperty().getName();switch (key) {case "material":this.sethscode((DynamicObject) newValue, changeData[0].getRowIndex());propertyNames = initCelVisibleMap();BuscalentityUtil.setCelVisible(view, bill, propertyNames);break;case "tp_packstyle":DynamicObject packstyle = (DynamicObject) newValue;if (packstyle != null) {packCom(packstyle);}break;default:break;}}

5.单据体分录监听事件(删除行触发此事件)

 @Override
public void afterDeleteRow(AfterDeleteRowEventArgs e) {super.afterDeleteRow(e);EntryProp entryProp = e.getEntryProp();if (StringUtils.equals("goodsentry", entryProp.getName())) {DynamicObjectCollection entrys = this.getModel().getEntryEntity("goodsentry");BigDecimal amount = BigDecimal.ZERO;BigDecimal connumsum = BigDecimal.ZERO;BigDecimal pieceqty = BigDecimal.ZERO;BigDecimal grossweightsum = BigDecimal.ZERO;BigDecimal netweightsum = BigDecimal.ZERO;BigDecimal piece = BigDecimal.ZERO;for (DynamicObject entry : entrys) {amount = BigDecimalUtils.add(amount, BigDecimalUtils.toBigDecimal(entry.getBigDecimal("amount")), 4);connumsum = BigDecimalUtils.add(connumsum,BigDecimalUtils.toBigDecimal(entry.getBigDecimal("tp_connum")), 4);pieceqty = BigDecimalUtils.add(pieceqty, BigDecimalUtils.toBigDecimal(entry.getBigDecimal("piece")), 4);grossweightsum = grossweightsum.add(entry.getBigDecimal("grossweightsum"));netweightsum = netweightsum.add(entry.getBigDecimal("netweightsum"));piece = piece.add(entry.getBigDecimal("vol"));}this.getModel().setValue("tp_decgweisum", grossweightsum);// 总毛重this.getModel().setValue("tp_decnweisum", netweightsum);// 总净重this.getModel().setValue("tp_totalvolume", piece);// 总体积}
}

6.单据体分录监听事件( 新增 插入 复制触发此事件)

@Override
public void afterAddRow(AfterAddRowEventArgs e) {super.afterAddRow(e);EntryProp entryProp = e.getEntryProp();if (StringUtils.equals("goodsentry", entryProp.getName())) {DynamicObjectCollection entrys = this.getModel().getEntryEntity("goodsentry");BigDecimal amount = BigDecimal.ZERO;BigDecimal connumsum = BigDecimal.ZERO;BigDecimal pieceqty = BigDecimal.ZERO;BigDecimal grossweightsum = BigDecimal.ZERO;BigDecimal netweightsum = BigDecimal.ZERO;BigDecimal piece = BigDecimal.ZERO;for (DynamicObject entry : entrys) {amount = BigDecimalUtils.add(amount, BigDecimalUtils.toBigDecimal(entry.getBigDecimal("amount")), 4);connumsum = BigDecimalUtils.add(connumsum,BigDecimalUtils.toBigDecimal(entry.getBigDecimal("tp_connum")), 4);pieceqty = BigDecimalUtils.add(pieceqty, BigDecimalUtils.toBigDecimal(entry.getBigDecimal("piece")), 4);grossweightsum = grossweightsum.add(entry.getBigDecimal("grossweightsum"));netweightsum = netweightsum.add(entry.getBigDecimal("netweightsum"));piece = piece.add(entry.getBigDecimal("vol"));}this.getModel().setValue("totalamount", amount);this.getModel().setValue("tp_consum", connumsum);// 集装箱数this.getModel().setValue("tp_pieceqty", pieceqty);// 件数this.getModel().setValue("tp_decgweisum", grossweightsum);// 总毛重this.getModel().setValue("tp_decnweisum", netweightsum);// 总净重this.getModel().setValue("tp_totalvolume", piece);// 总体积}
}

7.beforeF7Select事件(实现implements BeforeF7SelectListener 并监听hscode.addBeforeF7SelectListener(this))

    if ("hscode".equals(name)){//字段标识List ids = new ArrayList();int rowCount = model.getEntryRowCount("goodsentry");//分录标识for(int j =0;j<rowCount;j++) {DynamicObject material = (DynamicObject)model.getValue("material", j);if(material!=null) {material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName(),"number,name,tp_mulhscode");DynamicObjectCollection mulhscodeColl = material.getDynamicObjectCollection("tp_mulhscode");if (null !=mulhscodeColl && mulhscodeColl.size()>0) {for (int i = 0; i < mulhscodeColl.size(); i++) {DynamicObject mulhscode = mulhscodeColl.get(i);mulhscode = mulhscode.getDynamicObject("fbasedataid");ids.add(mulhscode.getPkValue());}}//过滤弹出框QFilter qFilter = new QFilter("id", QCP.in, ids);ListShowParameter showParameter = (ListShowParameter)e.getFormShowParameter();showParameter.getListFilterParameter().setFilter(qFilter);}else {model.setValue("hscode", null, j);}}
}

8.单据体金额汇总方法

/*** 总毛重* @param view* @param bill*/
private void grossweightsum(IFormView view, IDataModel bill) {DynamicObjectCollection entrys = bill.getEntryEntity("goodsentry");//分录标识BigDecimal piece = BigDecimal.ZERO;for (DynamicObject entry : entrys) {piece = piece.add(entry.getBigDecimal("grossweightsum"));}this.getModel().setValue("tp_decgweisum", piece);}

9:beforeItemClick 事件(用户点击单据列表主菜单工具栏上的按钮时,触发此事件)

public String getItemKey():按钮标识public String getOperationKey():按钮绑定的操作public void setCancel(boolean cancel):取消操作@Overridepublic void beforeItemClick(BeforeItemClickEvent evt) {super.beforeItemClick(evt);String itemKey = evt.getItemKey();IFormView view = this.getView();String tips = "";if (KEY_CLEARSHIPINFO.equals(itemKey)) {tips = "确认清空船运信息吗?";view.showConfirm(tips, MessageBoxOptions.OKCancel, new ConfirmCallBackListener(KEY_CLEARSHIPINFO, this));evt.setCancel(true);} }}

未完待续 持续更新

金蝶云苍穹开发实用整理相关推荐

  1. 整理的金蝶云苍穹初级练习题

    整理的金蝶云苍穹初级练习题 (单选题)以下哪项描述不正确 C A.苍穹动态微服务架构部署态时是按云或应用动态组合微服务容器的 B.苍弯使用了多级缓存服务,以保证系统的高性能 C.对于苍穹应用中的负责计 ...

  2. 第五届金蝶云・苍穹追光者开发大赛报名正式启动!百万奖金等你拿!

    在这个数字化的时代,创新和创造力是推动企业发展和行业进步的关键因素.为了激发开发者的创新能力,第五届金蝶云・苍穹追光者开发大赛报名正式启动! 一.关于大赛 追光者开发大赛是金蝶面向企业.高校以及社会个 ...

  3. 金蝶云苍穹Java笔试题_金蝶云苍穹基本操作及常见问题总结

    新增用户 苍穹 2.0 轻量级开发环境,新增用户操作步骤: 以超级管理员 administrator 进入系统,打开应用–>系统云–>基础服务–>人员管理–>人员–>新增 ...

  4. 金蝶云苍穹笔记(四)

    更多问答数据内容请关注: 金蝶云苍穹问答题数据集-数据集文档类资源-CSDN下载 ==== 门户首页方案 ==== 只有个性化方案才有重置按钮 ==== 权限 ==== 功能权限 控制业务对象的增册做 ...

  5. 金蝶云苍穹笔记(三)

    更多问答数据内容请关注: 金蝶云苍穹问答题数据集-数据集文档类资源-CSDN下载 ==== 应用发布和首页配置 ==== 选择卡片类型 1)快速卡片类型 2)单据统计卡片 3)消息中心卡片 4)轻分析 ...

  6. 只需七天|金蝶云苍穹初级开发者训练营来了!

    #为什么要学苍穹开发# 低代码通常是指aPaaS产品,通过为开发者提供可视化的应用开发环境,降低或去除应用开发对原生代码编写的需求量,进而实现便捷构建应用程序的一种解决方案. 金蝶云·苍穹经过5年多的 ...

  7. 金蝶云星空html5的网页主界面如何修改,金蝶云苍穹如何设置页面插件?

    注册方式 注册JAVA插件 注册JavaScript插件 实现方式 Java实现方式 实现步骤 新建插件类 package kd.bos.form.plugin; import java.math.B ...

  8. 金蝶云苍穹笔记2022-07-13

    rollbackSave事件-->1 事件介绍 此事件用于保存失败时通知插件回滚数据. initialize事件-->3 代码模板 package kd.bos.plugin.sample ...

  9. 艺赛旗、金蝶联合共推金蝶云·苍穹RPA 助力重庆海外旅业一键税务申报

    近日,重庆海外旅业(旅行社)集团有限公司(以下简称海外旅业集团)与金蝶达成合作,将通过金蝶云·苍穹RPA(机器人流程自动化)为全国约7000家门店提供一键税务申报. 在今年5月8日的2021金蝶云·苍 ...

最新文章

  1. 你哪来这么多事(大结局):职工信息删除
  2. NoSQL数据库四大分类
  3. 《非暴力沟通》听书心得
  4. apache缓存清理_深挖 Mybatis 源码:缓存模块
  5. oracle sysaux表空间不足,sysaux 表空间不足问题处理
  6. NOIP2018 游记
  7. JSP初学大全!!带连接数据库例子
  8. oracle取时间最近的一条数据_当数据库最近一直卡顿时,第一时间应该用这条sql来分析...
  9. java讲师北京_Java工程师提升空间大,前途好,该如何跨入它的大门呢?
  10. Reverse Linked List 反转链表
  11. 有关气象数据资料下载网址
  12. 抽样函数sint/t反常求积分
  13. 微软内存测试软件,内存检测工具Microsoft Windows Memory Diagnostic是用说明
  14. 下沉战美团,出海遇booking,跨越山海的携程,要怎么安排?
  15. 今天安利几个App给你
  16. IOS Swift语言开发 tableView的重用以及自cell的自适应高度
  17. 仅仅有人物没背景的图片怎么弄_纯干货//只会画人物不会画背景?这3种方法教你快速画背景!...
  18. 将字符串中的换行替换成空
  19. 计算机动画整个的发展历史,计算机三维动画概念及发展历史
  20. 【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持

热门文章

  1. WPF入门教程系列(5)
  2. 金弘同创教育是真的:拼多多店铺如何可以做好
  3. 润雅信息完成B轮融资 大数据平台赋能汽车销售 1
  4. win10的键盘肆无忌惮的乱输入某个字母
  5. 如何创建java project
  6. Python实现对Bitly的USA.gov数据集的可视化
  7. Linux: vi 编辑器
  8. 洛谷P4188 Lifeguards S
  9. RadiAnt DICOM Viewer CD/DVD -U盘版
  10. telegram机器人开发3-最简单的代码