电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

【第21期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选

来源:金蝶云社区作者:金蝶2024-09-163

【第21期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选

在金蝶云·星空-BOS平台应用中,你需要了解的典型/热门问答都在这里!

本帖不定期持续更新,欢迎小伙伴们收藏本帖,以便随时查看、扩充知识哟


【第21期】

1、想通过BusinessDataServiceHelper.load方法读取单据体的数据,直接输入单据体标识会报错

问题描述:


想通过BusinessDataServiceHelper.load方法读取单据体的数据,直接输入单据体标识会报错,想问问你想取某个单据体下的字段怎么取

上传图片

上传图片


解决方案

此处应该用的是‘属性(ORM实体名)’,另 服务插件,字段需要OnPreparePropertys方法中加载

image.webp

image.webp



问题来源

想通过BusinessDataServiceHelper.load方法读取单据体的数据,直接输入单据体标识会报错 (kingdee.com)


2、怎么设置单据明细行某字段,只允许填一行,多行时进行提示或不允许保存?

问题描述:

明细多行时,报销科目“额度内交通费”只能选择一行,如果报销科目在多行选择“额度内交通费”,不允许保存,或者有相应提示。

image.webp

解决方案

len(filter(lambda x :x.报销科目字段='字段内容' ,单据体)) > 1 做保存校验


问题来源

怎么设置单据明细行某字段,只允许填一行,多行时进行提示或不允许保存? (kingdee.com)



3、列表插件中选中列后,再触发按钮点击,按钮点击没有生效

问题描述:


列表插件中选中列后,再触发按钮点击,按钮点击没有生效,请各位社区大佬帮下忙

上传图片


解决方案

有AfterGetData这个事件吗?

用AfterBindData试试。

另外,模拟菜单点击事件的代码不是这样写的。

 ((IDynamicFormViewService)this.View).MainBarItemClick("tbOptionList");

参考:二开案例.模拟点击.模拟按钮及菜单点击

编辑于 2023年11月01日 20:03:49

追问

上传图片

感谢周总,几点事件可以了。但是我上面的行选中操作没有立即触发,导致菜单点击事件报提示当前没有选中行


问题来源

列表插件中选中列后,再触发按钮点击,按钮点击没有生效 (kingdee.com)


4、请问单据明细里面怎么设置合计?

问题描述:

image.webp

解决方案

配置.单据体.分组列信息.分组合计,字段属性配置‘合计’

image.webp


image.webp


问题来源

请问单据明细里面怎么设置合计? (kingdee.com)


5、流程管理中心-待办任务超时取数来源?单据上如何直观看到各节点审批时效?

问题描述:

问题1:

在流程设计中心已经设置了超时1分钟,但是在流程管理中心-待办任务中显示“是否超时”为否。

问题2:

整个流程很漫长,我需要统计各个节点上的消耗时间,最好是能在单据上上直观展示出来。

解决方案

问题二:用administrator登录系统,在[基础管理]→[公共设置]→[参数设置]→[流程中心]→[工作流]参数中勾选[单据列表记录多级审核信息];用普通用户登录系统,在费用报销单列表过滤界面勾选[多级审核信息]。然后审批节点设置再加上这个审批级次就能满足您的需求了

image.webp


问题来源

流程管理中心-待办任务超时取数来源?单据上如何直观看到各节点审批时效? (kingdee.com)



6、 设置值更新还能影响到数据库表名?Ambiguous column name 'F_PYEB_Decimal'.

问题描述:

提示的标识是一个小数字段,用来计算量差的,只是增加简单的加减值更新,导致二开的选单报错,可是我选单的数据都跟报错的这个字段没关系呀

image.webp

解决方案

报错的原因是无法确定字段【F_PYEB_Decimal】在哪张表中,请检查插件中的SQL语句,在字段【F_PYEB_Decimal】上加上表名或别名,注意单张表有时也会出现该报错,比如:select *,ClasName From Class order by ClassName。


问题来源

设置值更新还能影响到数据库表名?Ambiguous column name 'F_PYEB_Decimal'. (kingdee.com)



7、采购订单录入物料后打开悬浮窗口显示历史进价,如何实现?

问题描述:

采购订单录入物料后打开悬浮窗口显示历史进价,点击单据体中的行时,悬浮窗口就显示当前行物料的历史进价

上传图片


解决方案

做个Datachange事件,调出个动态表单来,指定出物料的历史价格。如果还不会的话,给你个例子。

/// <summary>

        /// 打开/历史采购订单数量查询 动态表单 Add zdh 2023-4-11

        /// </summary>

        private void OpenLSCGDDSLCX()

        {

            DynamicFormShowParameter formPa = new DynamicFormShowParameter();//调用动态表单

            formPa.FormId = "ETC_PUR_CGDDSLCX";//历史采购订单数量查询

            DynamicObject dobj = this.View.Model.GetValue("FMATERIALID", Convert.ToInt32(this.Model.GetEntryCurrentRowIndex("FCompareEntry"))) as DynamicObject;// 物料

            if (dobj != null)

            {

                formPa.CustomParams.Add("FBASWL", Convert.ToString(dobj["id"]));//

                this.View.ShowForm(formPa);

            }

        }


问题来源

采购订单录入物料后打开悬浮窗口显示历史进价,如何实现? (kingdee.com)


8、生产订单增加了基础资料 自定义字段,计划订单投放生成生产订单时被锁定不能编辑,检查了所有可能,查不到原因

问题描述:

已按照这帖子,检查,上面的情况都没有,但就是被锁定了 技术答疑.字段锁定性.锁定字段的n种方式 (kingdee.com)

解决方案

请参考:字段被锁定的设置有哪些?,还可以通过字段设置检查来快速排查设置锁定的位置
image.webp
image.webp


问题来源

生产订单增加了基础资料 自定义字段,计划订单投放生成生产订单时被锁定不能编辑,检查了所有可能,查不到原因。 (kingdee.com)



9、单据合法性检验?

问题描述:

需求,在应收单表头加一个字段发票,我是文本字段,然后字段放开随时可编辑,采购员可能在审核后返回录入这个发票,但是要实现这个发票唯一性,所以我想到单据合法性检验,但是有问题,我配置保存操作报错,是不是思路不对
image.webp

image.webp


解决方案

改为唯一性校验 空值不参与校验

image.webp


问题来源

单据合法性检验? (kingdee.com)


10、销售订单,保存时检验字段长度,公式怎么设置(判断不能超过50个字)

问题描述:

销售订单,保存时检验字段长度,公式怎么设置(判断不能超过50个字)

解决方案

 len(FText)> 50   

image.webp


问题来源

销售订单,保存时检验字段长度,公式怎么设置(判断不能超过50个字) (kingdee.com)


11、 Python列表插件,获取不到客户的客户名称,要如何写?经测试获取不到FCustId

问题描述:

#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *

def OnFormatRowConditions(args):
    if(args.DataRow.DynamicObject.DynamicObjectType.Properties.ContainsKey("FDELIVERYDATE")
    and args.DataRow.DynamicObject.DynamicObjectType.Properties.ContainsKey("F_RZ_DATE")
    and args.DataRow.ColumnContains("FCustId")):
        #这里是普通字段作为判断,需要判断列表是否显示了该字段,否则没显示该字段时会报错
        #而且只有显示了这个字段才能判断设置颜色
        FDELIVERYDATE=str(args.DataRow["FDELIVERYDATE"]);#要货日期
        F_Rz_Date=str(args.DataRow["F_RZ_DATE"]);#出库日期
        matObj=args.DataRow.DynamicObject["FCustId"];#客户ID 凤铝ID:221093
        FCustName = ("{0}").format(matObj["FName"])
        #凤铝全称:佛山市三水凤铝铝业有限公司
        t1=DateTime.Parse(FDELIVERYDATE);
        current =DateTime.Now.Date.ToString();
        t2=DateTime.Parse(str(current));
        ts=t1-t2;
        sub=ts.Days;
        ck=len(str(F_Rz_Date));
        this.View.ShowMessage(FCustName);
        this.View.ShowMessage("销售订单");
        if(sub<= 0 and ck==4 and FCustName!="佛山市三水凤铝铝业有限公司"):
            fc=FormatCondition();
            #fc.ForeColor="#FFFF9B98";#前景色
            fc.BackColor="#FE2C2C";#背景色 红色
            #fc.BackColor="#FEB82C";#背景色 黄色
            args.FormatConditions.Add(fc);
        if(sub<= 0 and ck==4 and FCustName=="佛山市三水凤铝铝业有限公司"):
            fc=FormatCondition();
            #fc.ForeColor="#FFFF9B98";#前景色
            fc.BackColor="#ADD8E6";#背景色 浅蓝色
            #fc.BackColor="#FEB82C";#背景色 黄色
            args.FormatConditions.Add(fc);

解决方案

不是这样写的。客户是基础资料字段,要取基础资料属性的话是要这样写:

if (args.DataRow.ColumnContains("FCustId_Ref"))
    custObj=args.DataRow.DynamicObject["FCustId_Ref"];#客户引用数据包
    custName=("{0}").format(custObj["Name"]);#取客户名称

我这文章里面不是强调了吗?没看懂??【Python插件入门】第5篇:单据列表插件

image.webp


问题

【第21期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选

在金蝶云·星空-BOS平台应用中,你需要了解的典型/热门问答都在这里!本帖不定期持续更新,欢迎小伙伴们收藏本帖,以便随时查看、扩充知识...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信