【第16期】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选原创
金蝶云社区-Dave身份
Dave
24人赞赏了该文章 1696次浏览 未经作者许可,禁止转载编辑于2023年11月13日 17:45:39

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

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



【第16期】


1、不同单据符合相同条件才允许合并下推

问题描述:


有三张《采购申请单》,其中两张的“营销单号”都等于20230625,另一张“营销单号”等于20230625-1;希望在列表勾选这3张申请单进行下推订单时,“营销单号”相同的申请单才允许合并下推生成订单,不相同则禁止合并下推订单,请问如何设置?

image.png

image.png


解决方案

在单据转换规则中,分组策略选择按规则分组合并申城,在单据分组依据中将“营销单号”加入

image.png


问题来源

不同单据符合相同条件才允许合并下推 (kingdee.com)


2、如何配置【资产变更】:资产原值变更勾选,设备供应商必填

问题描述:

如何配置【资产变更】:资产原值变更勾选,设备供应商必填

image.png


解决方案

BOS设置实体服务规则:FCbOrgVal 或 FCbOrgVal==1 或 FCbOrgVal==true 或 FCbOrgVal==True

image.png


问题来源

如何配置【资产变更】:资产原值变更勾选,设备供应商必填 (kingdee.com)


3、扩展单据: PLMCPG BASE_EX 的字段: 项目号(标识: PXHCY_Base2)未配置基础资料类型!

问题描述:

扩展单据: PLMCPG BASE_EX 的字段: 项目号(标识: PXHCY_Base2)未配置基础资料类型!在业务类型配置字段时出现这个报错,该怎么处理

image.png

解决方案

配置基础资料字段时需要选择基础资料类型image.png


问题来源

扩展单据: PLMCPG BASE_EX 的字段: 项目号(标识: PXHCY_Base2)未配置基础资料类型! (kingdee.com)



4、会签审核人是三个怎么把取到这三个人的名字和审核时间不要把他们放在一列

问题描述:

会签审核人是三个怎么把取到这三个人的名字和审核时间不要把他们放在一列


解决方案

参考这个:

https://vip.kingdee.com/link/s/lHPMu

单据和列表上显示审批信息            

套打的话应该可以取到不同审批节点的信息的

问题来源

会签审核人是三个怎么把取到这三个人的名字和审核时间不要把他们放在一列 (kingdee.com)



5、差旅费报销单增加单选辅助资料字段,用于单据体选择费用承担部门后,自动获取该承担部门对应的部门属性,如何实现

问题描述:

差旅费报销单增加单选辅助资料字段,用于单据体选择费用承担部门后,自动获取该承担部门对应的部门属性,如何实现注:部门属性要求用于凭证模板,分录条件配置


解决方案

bos里面    差旅费报销单   费用承担部门  字段  添加引用属性 ,新加的字段类型 要是基础资料属性。设置基础资料字段、关联基础资料字段名

image.pngimage.png


问题来源

差旅费报销单增加单选辅助资料字段,用于单据体选择费用承担部门后,自动获取该承担部门对应的部门属性,如何实现 (kingdee.com)


6、一个采购订单的模板上有物料的单价然后需要汇总到一个取值里面怎么取值

问题描述:

一个采购订单的模板上有物料的单价然后需要汇总到一个取值里面怎么取值


解决方案

数据行右键,统计,选择对应单价字段image.png


问题来源

一个采购订单的模板上有物料的单价然后需要汇总到一个取值里面怎么取值 (kingdee.com)


7、套打模板,在浏览器端无法预览

问题描述:

image.png


解决方案

不要使用谷歌和edge  通过客户端或者其他浏览器操作。

上传图片


问题来源

套打模板,在浏览器端无法预览 (kingdee.com)


8、物料新增时物料属性及存货类别为空如何设置

问题描述:

物料新增时物料属性及存货类别为空如何设置;物料属性勾选了必录显示空白行没有什么作用,想添加一个枚举值为空的又提示名称不能为空,各位大佬有其他办法吗


解决方案

1、因为这个字段勾选了必录,BOS设计器未指定缺省值,数据库字段默认值为采购,所以新增默认值为采购;

可以BOS设计器新增枚举值,名称设置为“未确定”,然后增加保存校验,物料属性为未确定时,不允许保

2、存货类别是通过实体服务规则根据物料属性进行设置的,如果物料属性为二开增加的或者为空时,存货类型自然会为空:

image.png


问题来源

物料新增时物料属性及存货类别为空如何设置 (kingdee.com)


9、手工新增的生产补料单,选择物料之后怎么自动拣货,社区里面的无原单拣货设置了,没生效

问题描述:

image.png


解决方案

要根据库存字段功能查找单据上对应的字段,单据上没有的字段就留空,不能清空就取消勾选过滤和返回      。

无源单拣货:物料上值更新事件挂拣货服务,录入物料后会执行。


可参考一下知识贴:https://vip.kingdee.com/article/459431590494516736?channel_level=%E9%87%91%E8%9D%B6%E4%BA%91%E7%A4%BE%E5%8C%BA%7C%E6%90%9C%E7%B4%A2%7C%E5%AE%98%E6%96%B9%E7%9F%A5%E8%AF%86&productLineId=1&isKnowledge=2

https://vip.kingdee.com/article/13821?channel_level=%E9%87%91%E8%9D%B6%E4%BA%91%E7%A4%BE%E5%8C%BA%7C%E6%90%9C%E7%B4%A2%7C%E5%AE%98%E6%96%B9%E7%9F%A5%E8%AF%86&productLineId=1&isKnowledge=2    


问题来源

手工新增的生产补料单,选择物料之后怎么自动拣货,社区里面的无原单拣货设置了,没生效 (kingdee.com)


10、发货通知单运输单号产生下游单据后如何取消锁定

问题描述:

发货通知单的运输单号字段 设置审核后可修改  但是在产生了下游单据后依旧会将运输单号字段给锁定住 查询了单据类型设置 实体服务规则 状态列表 单据转换这些规则后均为发现产生下游单据后锁定该字段的规则 ,请问在哪里取消这个锁定


解决方案

单据头的关闭状态下也有控制锁定的,这个字段是会携带到销售出库单的,如果已经审核下推后再修改可能会导致与下游销售出库单的信息不一致。

image.png


问题来源

发货通知单运输单号产生下游单据后如何取消锁定 (kingdee.com)


11、C#SessionScope在Python中如何使用

问题描述:

C#中using(SessionScope session = new SessionScope()){} 怎么转换为Python语法呢


解决方案

Python中实例化对象,直接调用构造方法就可以了。注意没有new关键字了。

session = SessionScope();

放到Using{}里面的,只是限定了这个对象的生命周期。

Python里面可以在使用完之后,主动释放对象。

session .Dispose();#释放对象


问题来源

C#SessionScope在Python中如何使用 (kingdee.com)


12、SQL直接帐表怎么设置过滤条件为空时该条件不进行过滤判断

问题描述:

1687253180963.jpgsql设置了过滤条件物料允许多选,想要实现当过滤条件为空时显示所有物料怎么设置


解决方案

可以实现的,请在您的直接SQL脚本中按照下列示例来写过滤条件:

……

where (a.总库存>0 or f.FBASEQTY>0and 1=1  
and (a.料号 in (#FMaterialId#) or (select #FMaterialId# for xml path(''))='' )


说明:在以上代码中,您的物料多选基础资料过滤条件的返回值,要么符合绿色部分的SQL过滤条件,要么符合红色部分的SQL过滤条件;这就达成了“直接SQL账表多选过滤条件,有值时按值进行过滤,无值时不进行过滤”的目的。所谓“无值时不进行过滤”,其本质是“红色部分是人造的恒等式”,在物料多选基础资料过滤条件为空的的情况下,永远为真,永远成立。


补充说明:

1.在多选基础资料过滤条件为空的情况下,无论返回值是''还是null,(select #FMaterialId# for xml path(''))=''均成立,因为:

条件【select '' for xml path(''))=''】为真,

条件【select null for xml path(''))=''】为真。

2.在多选基础资料过滤条件录入了单项或多项的情况下,无论返回值是单个物料编码还是多个物料,(select #FMaterialId# for xml path(''))=''成立,因为:

条件【select '001' for xml path(''))=''】为假,

条件【select '001','002','003' for xml path(''))=''】为假。

即使以上为假,但只要【a.料号 in ('001','002','003') 】为真(也就是查询到了物料编码为001、002、003的记录),由于“真or假=真”,SQL查询仍然会按【a.料号 in (#FMaterialId#)】进行过滤,也就是列出物料编码为001、002、003的记录。

3.当【a.料号 in (#FMaterialId#)】为真时,【(select #FMaterialId# for xml path(''))='' 】必然为假,反之亦然。


问题来源

SQL直接帐表怎么设置过滤条件为空时该条件不进行过滤判断 (kingdee.com)


13、退货通知单,没有【仓位】,这个需要如何添加?

问题描述:

image.png


解决方案

1.添加维度关联类型的字段   更改名称为仓位image.png2.仓库引用属性添加仓位信息image.png3.设置相关关联性即可image.png



问题来源

退货通知单,没有【仓位】,这个需要如何添加? (kingdee.com)


14、调整列的位置,当前单据编辑界面关闭后,此调整后的单据体布局信息会自动保存

问题描述:

单据上的明细信息,鼠标可以通过拖动单据体的列,调整列的位置,当前单据编辑界面关闭后,此调整后的单据体布局信息会自动保存,下次进入该单据编辑界面,显示的还是上次调整过后的界面布局,这个如何设置?


解决方案

image.png

如图所示,在bos启用用户表格布局即可

问题来源

调整列的位置,当前单据编辑界面关闭后,此调整后的单据体布局信息会自动保存 (kingdee.com)


15、金蝶当中的字段对应有基础资料类型属性,二开代码的时候如何筛选生产订单单据当中基础资料类型为用户的字段?求求来个代码示例

问题描述:

金蝶当中的字段对应有基础资料类型属性,二开代码的时候如何筛选生产订单单据当中基础资料类型为用户的字段?求求来个代码示例


解决方案


// 获取生产订单单据的元数据

var billMeta = Kingdee.BOS.Metadata.MetadataServiceHelper.LoadBillTypeMetaDataByName("PRD_MO");

// 遍历元数据的字段列表,查找基础资料类型为用户的字段

foreach (var field in billMeta.Fields)

{

    // 判断字段类型是否为基础资料类型,以及基础资料类型是否为用户类型

    if (field.FieldType == Kingdee.BOS.Metadata.FieldType.BD && field.BDType == "USER")

    {

        Console.WriteLine(field.Name);  // 输出找到的字段名称

    }

}



问题来源

金蝶当中的字段对应有基础资料类型属性,二开代码的时候如何筛选生产订单单据当中基础资料类型为用户的字段?求求来个代码示例 (kingdee.com)


16、物料分组信息可以通过bos里添加基础资料属性字段绑定到单据明细表里吗?

问题描述:

物料分组信息可以通过bos里添加基础资料属性字段绑定到单据明细表里吗?


解决方案

BOS明细表中添加【基础资料属性】绑定物料资料--对应的物料分组字段就可以:
ps:如果在绑定时找不到物料分组,那需要设置一下,属性的引用,需先添加~

望采纳!!谢谢!!

image.png


问题来源

物料分组信息可以通过bos里添加基础资料属性字段绑定到单据明细表里吗? (kingdee.com)


17、如何获取生产订单当中基础资料类型为用户的特定字段,并返回对应的字段名作为下拉列表的枚举值。

问题描述:

image.pngimage.png


解决方案

        private void BindComboField()

        {

            List<Field> fields = new List<Field>();

            FormMetadata formMD = MetaDataServiceHelper.GetFormMetaData(Context, FormId);

            foreach (Entity entry in formMD.BusinessInfo.Entrys)

            {

                fields.AddRange(entry.Fields.Where(p => p.ElementType == 13));

            }

            ComboFieldEditor comboList = this.View.GetFieldEditor<ComboFieldEditor>("FCombo", 0);

            if (comboList != null)

            {

                List<EnumItem> enumList = new List<EnumItem>();

                foreach (var field in fields)

                {

                    EnumItem item = new EnumItem

                    {

                        Caption = new LocaleValue(field.Name, 2052), //2052为语言标识,不写可能导致不显示下拉内容

                        Value = field.Key

                    };

                    enumList.Add(item);

                }

                comboList.SetComboItems(enumList);

            }

        }


问题来源

如何获取生产订单当中基础资料类型为用户的特定字段,并返回对应的字段名作为下拉列表的枚举值。 (kingdee.com)


18、自动下推服务的前置条件不生效

问题描述:

审核时自动下推下游单据,前置条件不生效,自动下推时需要根据前置条件判断是否需要生成下游单据

称重单单据体“外包公司(供应商字段)”不为空时生成成本统计单(自画表单),为空时不需要生成成本统计单,如何实现

image.png


解决方案


参考为空的判断

如何判断文本字段为空 (kingdee.com)

问题来源

自动下推服务的前置条件不生效 (kingdee.com)


19、销售订单如何设置日期大于2023年6月1日不能保存

问题描述:

image.png


解决方案

FDate.ToString('yyyy-MM-dd') '2023-06-01'


问题来源

销售订单如何设置日期大于2023年6月1日不能保存 (kingdee.com)


20、产品标准成本上项加个存货类型进行过滤区分如何在bos中设置

问题描述:

想在产品标准成本查询的界面上/过滤条件里面体现存货档案中财务信息下的存货类别字段,这个要如何在BOS上面进行设置?上传图片


解决方案

1、基础资料属性可以通过配置的方式实现

参考:报表如何添加自定义字段 (kingdee.com)

2、复杂的非基础资料属性需要二开插件

参考:存货核算报表二开增加字段 (kingdee.com)


问题来源

产品标准成本上项加个存货类型进行过滤区分如何在bos中设置 (kingdee.com)



查看往期精选:

【汇总】 金蝶云·星空-BOS平台 | 产品应用典型/热门问答精选 (kingdee.com)



赞 24