各位社区的小伙伴们,大家好,我是 版主 OUT_MAN
在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里!
本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟
玩转金蝶云社区
【第15期】
更新日期:2023-12
1、'DynamicObjectCollection' object has no attribute 'ToArray'?
问题描述:
改为Python,报错,求解答~
解决方案:
DynamicObjectCollection本身是不能直接ToArray的。
C#能使用ToAarray是因为自动便捷的调用了Enumerable的扩展方法。
Python里面要换个写法,调用原始扩展方法:Enumerable.ToArray(dyEntity);
同时,需要添加引用:
clr.AddReference('System.Core')
from System.Linq import *
问题来源:https://vip.kingdee.com/link/s/lqNzP
2、 实体服务规则应用小案例
问题描述:
我在采购订单明细加了两个自定义字段,分别是分摊费用和费用分摊的价格,然后采购订单是有采购价目表的,含税单价默认从采购价目表携带了,能否实现我录入了费用分摊价格后,含税单价=含税单价+费用分摊价格,如果可以的话如何实现? 我目前直接配置实体服务规则不生效,我先到的思路是,再加一个辅助字段,用于存储计算含税单价+费用分摊价的数据,然后再用值更新还是啥将这个值写给含税单价?
解决方案:
这个需求是可以用实体服务规则实现的,但是不能直接使用:含税单价=含税单价+费用分摊价格,,确实需要一个中间字段来记录。
例如,含税单价带出是10,你第一次输入分摊价格5,那含税单价=10+5=15,修改一下分摊价格3,那含税单价就变成了:15+3=18,实际上你需要的是 10+3=13.
这个中间字段最好是记录原始的含税单价,但是你的价格又是价目表携带出来的,可能有点麻烦。
可以考虑这样实现,中间字段记录上一次录入的分摊价格。
实体服务规则思路如下:
规则条件:分摊价格<>0,分摊价格要勾选【即时触发值更新】
满足条件执行2个公式:含税单价=含税单价-中间字段+分摊价格; 中间字段=分摊价格 (注意顺序不能反过来!)
为什么规则条件不加入含税单价变化的判断呢?
①容易出现死循环
②如果手动修改含税单价,该怎样重算含税单价?应该需要另外的一个逻辑来处理。
问题来源:https://vip.kingdee.com/link/s/lq50o
3、 银行账号引入模板设置时无法选择引入币别是需要在BOS平台里设置允许引入嘛?如果是如何在BOS里设置?
问题描述:
解决方案:
问题来源:https://vip.kingdee.com/link/s/lq5Va
4、 单据体数据,针对不同的用户隐藏某些行?
问题描述:
这是单据的单据体,要针对不同的用户隐藏掉明细中的行,比如员工不能看到工资这一行。
解决方案:
在表单插件的AfterBindData里面用下面的代码试试:
EtryGrid grid = this.View.GetControl<EntryGrid>("单据体唯一标示"); grid.SetFilterString("明细用户字段标识 = '当前用户ID' ")
参考:插件单据体支持的过滤条件(SetFilterString)设置
这个效果类似于,在单据体使用字段的“漏斗过滤”以及首行过滤
问题来源:https://vip.kingdee.com/link/s/lq5F5
5、 使用BusinessDataServiceHelper.Load加载出来的数据怎样以年月分组,然后取分组中的最晚的记录?
问题描述:
现在想按照年月为分组,每次做单子时取分组中最新(也就是时间靠后)的一条记录。可以使用BusinessDataServiceHelper.Load按照时间来排序吗,或者其他的方法进行排序。
解决方案:
可以用OrderBy方法对 BusinessDataServiceHelper.Load返回的数组排序 OrderBy var sortedList = list.OrderBy(obj => obj .FDate).ToList();
老师,我试了可以,但是是升序,怎样降序呢
改成ng
var sortedList = list.OrderByDescending(obj => obj .FDate).ToList();
问题来源:https://vip.kingdee.com/link/s/lq58V
6、 我想问一下单据体,子单据体,单据头,这三是什么,放在页面上展示又是属于哪些部分,拿下面这个为例?
问题描述:
解决方案:
他们是有很深的逻辑关系
单据头与子单据头是父子1对1关系
单据头与单据体是1对多关系
单据体与子单据体是1对多关系
单据体与子单据头没有关系,关系继承单据头与单据体及单据头与子单据头
子单据头可以认为是单据体的一种特殊应用,相当于只有一行的单据体。
这个工艺路线的结构属于复杂,你理解了就明白了,还有你要做些数据上应用一下就了解了。在就到后台看一下数据库表,也能加深印象。希望能帮到你。
问题来源:https://vip.kingdee.com/link/s/lq5E1
7、 数据规则设置了销售员只能查看自己的客户,不同的销售部门领导要查看自己部门的所有客户,要怎么设置??
问题描述:
销售部门按区域设置了广东大区,湖南大区等等,每个大区有对应的大区总监,现在大区总监移动销售下单要查看自己大区下的所有客户,要怎么设置?
解决方案:
数据规则查看自己部门的客户
销售员查看自己负责的客户
问题来源:https://vip.kingdee.com/link/s/lqNxs
8、 物料按照二开单据体进行数据隔离。请问该如何实现??
问题描述:
咨询各位大佬。 我在物料上增加一个页签,在里边加了一个单据体控件,单据体维护用户信息。 我想按照用户进行数据隔离,只让这些用户看到关联的物料数据。请问该如何操作啊?如果需要二开的话,可以提供二开思路嘛。
开发列表插件,在PrepareFilterParameter追加过滤来实现。
可以参考这个:二开案例.列表插件.打开F8列表时指定快捷过滤条件
开发思路如下:
①在PrepareFilterParameter事件中获取当前用户的ID。
②根据当前用户ID查询出有权限的物料ID。
如果数据量大,可以考虑存入临时表,列表关闭之后记得删除临时表。
③根据查询出的物料ID拼接过滤条件即可。
问题来源:https://vip.kingdee.com/link/s/lqNvb
我创建了<<协同开发,轻松入门>>的学习清单,推荐给你,和我一起学习交流吧!
<<协同开发,轻松入门>>
查看往期精选:
【汇总】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选
推荐阅读