DEP扩展脚本之EAS-4S行业精品到期服务控制开发
需求:公司要求卖增值服务,比如洗车包年类似此功能。因为是虚拟增值服务收费属于一次性预收。所以在精品单界面新增了字段到期日期,并想通过到期日期来控制精品单推维修工单。推单有三种方法,,,一种是拉式一种是推式还有种关联生成,控制这三种生成方法地方分别在精品单里面的推式生成,精品单列表查询界面的关联生成,及维修工单界面的拉式生成。
![image.webp](/download/0100f9f280c4d2ab409e8db163f97e2114f0.webp)![image.webp](/download/0100b05a2e2dbc974f86bed7496d6579182b.webp)![image.webp](/download/0100fbebb7d653f847b580f4efb44a9fa233.webp)
废话不多说开工,打开企业建模->业务对象建模->动态扩展平台高级版,找到自己要改的扩展项目,我这里因为修改的地方分为两大类,一为精品单,二为维修单。其中修界面为精品编辑界面及列表界面,维修编辑界面。
![image.webp](/download/0100ed73fdac86f74cd2abd71cfdf02920ed.webp)![image.webp](/download/0100110b81a371c349a5a81f3e92071a4d78.webp)
实现精品单编辑界面通过到期日期控制推式生成维修工单
![image.webp](/download/0100a9a83fc5d91f4a90821541a170c4e4de.webp)
点击上图扩展脚本 ,因为我的控制放在点击推式生成按钮上,我们在扩展脚本中操作类别下面的推式生成。![image.webp](/download/0100598bdbfd35d546abbb444abdcf7a62dd.webp)
![image.webp](/download/0100db7e0c5bf9804770995f22a42ca258b2.webp)
![image.webp](/download/0100b229415257964cc2b43f421f4929c873.webp)
选中推式生成后有个前置脚本和后置脚本,二者区别为,前置脚本是先执行该脚本后再运行功能,后置脚本是先运行功能再执行脚本,因为我是通过到期日期控制推式生成是否生效,属于推式生成功能前判断,,所以代码写在前置脚本上,附上代码
```
//获取到期日期控制的值,因为是日期控件所以得到的是date型值可以直接通过date的compareTo做二个日期时间运行比较
2. var dt=pluginCtx.getKDDatePicker("pkfenddate").getValue();
3. var now=new java.util.Date();//获取当前日期时间
4. if(dt!=null)//判断到期日期是否有值,如果没有则跳过
5. {
6. var dqdt=new java.util.Date(dt);
7. if(dqdt.compareTo(now)<=0)//用到期日期跟当前日期比较,到期日期小于或等于当前日期则为过期
8. {
9. com.kingdee.eas.util.client.MsgBox.showInfo("该精品服务日期已到期,现已停止服务!");执行弹窗提示
10. com.kingdee.eas.util.SysUtil.abort();//终止线程或功能
11.
12. }
13.
14. }
```
效果如下
![image.webp](/download/010058dd4f12469547089b20994206b5f81c.webp)
现在精品编辑界面的限制功能做完了,我们再做精品列表界面限制功能。
![image.webp](/download/010050d7f17b231b4520880962ec47bd749b.webp)
在这里,,我们是通过列表选中一条数据然后再点关联生成,通过选中的数据获取到单据的到期日期做判断控制关联生成是否生效并弹窗提示!
打开精品列表页的扩展脚本找到关联生成,同样是点击前判断所以属于前置脚本,上代码。
提示:在这段代码中因为用了java 类库包 所以要在代码中引用这些包
```language
var easImporter = JavaImporter();
easImporter.importPackage(Packages.java.text); // 引入三方包
with(easImporter){
var now=new Date();//当前日期时间
var selectRow = pluginCtx.getKDTable("tblMain").getSelectManager().getActiveRowIndex();//获取选中的行索引
var dt=pluginCtx.getKDTable("tblMain").getCell(selectRow,"fenddate").getValue();获取列表中指定行中指定字段的值
if(dt!=null)
{
var fd = new SimpleDateFormat("yyyy-MM-dd");//日期时间转换格式
var date = fd.parse(dt);//转换日期格式
if(date.compareTo(now)<=0)//判断是否到期
{
com.kingdee.eas.util.client.MsgBox.showInfo("该精品服务日期已到期,现已停止服务!");//弹窗提醒
com.kingdee.eas.util.SysUtil.abort();//线程停止
}
}
}
```
最终效果如下图
![image.webp](/download/0100b9bc7c2aa7004ef9a7ba5f7d4972727a.webp)
现在就剩下最后一个控制了,在维修工单里面实现拉式生成控制,进入维修工单编辑界面的扩展脚本里面选中拉式生成,由于拉式生成会弹窗选择源单据跟据原单据数据生成维修工单,所以逻辑判断放在功能后执行,所以代码写在后置脚本中,先上代码
ps:这次是先通过sql语句查询出结果再跟据结果集中的字段去判断
```language
var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.eas.util.app);
imp.importPackage(Packages.java.sql);
imp.importPackage(Packages.com.kingdee.eas.util.client);
imp.importPackage(Packages.com.kingdee.bos.dao.query);//以上是java引用包
with(imp)
{
var sourcebillnumber = pluginCtx.getDataObject().get("sourcebillnumber");//获取当前界面数据对象并获取指定key的值,这里我取源单精品单号
var sql="select * from T_ATS_DecorationOrder where FNumber ='"+sourcebillnumber+"'";
var se=new SQLExecutor(sql);//实例化sql数据执行类
var rows = se.executeSQL();//执行查询并返回结果集
while ( rows. next ( ) ) //循坏读取结果集
{
var dqdate=rows.getDate("CFFenddate");//读取结果集中到期日期
var now=new java.util.Date();//当前日期时间
if(dqdate!=null&&dqdate.compareTo(now)<=0)//判断是否到期
{
com.kingdee.eas.util.client.MsgBox.showInfo("该源单据服务时间到期,终止服务!"); //弹窗提示
pluginCtx.getUI().getUIWindow().close();//获取当前界面对象并关掉
com.kingdee.eas.util.SysUtil.abort();//停止
}
}
}
```
我们拉式生成选取一条到期的数据测试
![image.webp](/download/010027f9e69f4d644d57ace19bb1556870a8.webp)
效果如图
![image.webp](/download/0100dbafa16cf1f04f54b79cfaf851487b16.webp)
然后维修工单界面会自动关闭
以后就完成了公司所有需求了。
吐槽:
开发思路只需几分钟,开发中各种找资料问人对接工单工程师花了三天,无耐dep 中的api 及参数使用说明太少,我对dep扩展开发使用客户群体理解为初级入门开发人员,对java script sql 有一定基础的,有了这些基础后,做dep开发配合官网超简洁的API文档+官网论坛里面的文章和附件文档+一些金碟运维群请教大佬(看大佬心情)+提工单+私下问交好的金碟开发工程师(开发工程师也分好多种类的,有数据库,有运维,有业务,有架构,业务又分好多种,有财务有供应链等等)
在这我特别感谢金碟的朱敏杰,曹卓成,江春文,彭理为,黄秋强,张秀英等人积极的帮助我,,才顺利的完成功能开发,,,当然主要是我自己太菜了!另外希望金碟能提供更丰富更详细的API文档。在这祝金碟越来越好!
DEP扩展脚本之EAS-4S行业精品到期服务控制开发
需求:公司要求卖增值服务,比如洗车包年类似此功能。因为是虚拟增值服务收费属于一次性预收。所以在精品单界面新增了字段到期日期,并想通...
点击下载文档
上一篇:科目余额表期末余额借贷合计不一致下一篇:EAS82升级问题
本文2024-09-16 22:13:35发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-46744.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章