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

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

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


查看往期精选:

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


【第15期】

1、如何获取ExeCuteTime的值,C#的语法,编译器是VSCODE


问题描述:

image.png


解决方案

1685514451276.png

var paraDIC = this.Option.GetVariables();

var ExeCuteTime=paraDIC["ExeCuteTime"];


问题来源

想请教一下如何获取ExeCuteTime的值,C#的语法,编译器是VSCODE (kingdee.com)


2、获取物料分组的上级分组

问题描述:

1、想要获取物料分组的上级分组作为物料的编码规则依据

2、如果只有一级分组获取的上级分组是什么,能获取一级分组的分组编码吗


目前参考官方帖子物料分组获取上级分组字段,加了表单插件没有效果
(本人纯小白,不会写sql能否有老师给指导一下)

image.png

image.png


解决方案

select a.FNUMBER,b.FNUMBER from T_BD_MATERIALSALGROUP as a

left join T_BD_MATERIALSALGROUP as b on a.FID=b.FPARENTID

  a是上级分组


问题来源

获取物料分组的上级分组 (kingdee.com)


3、单据体里的FEntryID字段是主键自增的,从20000多开始,如何设置从1开始自增

问题描述:

单据体里的FEntryID字段是主键自增的,从20000多开始,如何设置从1开始自增


解决方案

单据体FEntryID 是根据种子表来的

例子:SELECT * FROM T_PUR_POORDERENTRY 对应种子表 Z_PUR_POORDERENTRY
image.png
你可以把标识种子改成1 然后执行Truncate Ttable Z_PUR_POORDERENTRY
随后再做单据试试看是否从1开始。


问题来源

单据体里的FEntryID字段是主键自增的,从20000多开始,如何设置从1开始自增,有老哥知道吗 (kingdee.com)


4、 新建子系统发布到主控台但没有显示

问题描述:

如图,我在bos中新建了一个子系统并在里面新建并发布了子功能和明细功能,但是这个子系统并不能在主控台显示出来,应该怎么样操作才能让主控台显示出这个子系统呢?


解决方案

BOS里面检查下你这个“项目”的业务对象的权限控制设置

image.png


看看它用的是哪个权限对象,然后再检查下你的账号是否已经给了权限

image.png

编辑于 2023年05月31日 09:22:57

追问

权限对象我给了,新增了一个但引用的是物料的权限,然后账号本身是给了全功能且许可都给了的但是前台还是没有显示

上传图片

上传图片


追答

你再试试全功能授权一次

image.png


问题来源

新建子系统发布到主控台但没有显示。 (kingdee.com)

5、 日期如何设置不能超过当前日期90天,例如当前日期2023年5月30号,申请日期如果超过2023年8月30号,系统提示错误

问题描述:

image.png


解决方案

分享-实体服务规则实现日期计算功能 (kingdee.com)


问题来源

日期如何设置不能超过当前日期90天,例如当前日期2023年5月30号,申请日期如果超过2023年8月30号,系统提示错误 (kingdee.com)


6、 过滤条件中,快捷字段和条件字段区别和用法

问题描述:

例如,在快捷中设置了:“单据编号”的标识和绑定实体属性都为:F_YNKJ_DJBH,如果在条件中也设置,就会提醒标识占用了。这时候我设置标识为:F_YNKJ_DJBH1、绑定实体属性为:F_YNKJ_DJBH。这时候,我在简单账表中获取过滤条件时,获取到这个东西要分别获取吗?


解决方案

快捷过滤和条件过滤在代码里面是这么获取的

image.png


快捷过滤可以根据标识来逐个获取出来,然后条件过滤是会按照你所下的条件,自动组合成了一个and的where条件,但里面用的也是条件过滤里面你设的字段标识来组合的,所以你还得根据这些标识,来转换为sql语句里面真正的where字段,就像这样

image.png


其实你可以打个断点,看看filter.FilterParameter里面的内容,就很清楚了


问题来源

过滤条件中,快捷字段和条件字段区别和用法。 (kingdee.com)


7、 关于单据转换目标单据自定义单据体数据填写问题V7.3

问题描述:

业务逻辑:

1、直接调拨单审核自动形成销售出库单。

2、销售出库单明细自定义一个单据体(PAEZ_Cust_Entry100014),有3个字段:销售员(基础资料)、比例(小数)、销售员名称(文本)

3、客户主数据明细自定义单据体(PAEZ_Cust_Entry100007),有3个字段:销售员(基础资料)、比例(小数)、销售员名称(文本)

逻辑:单据转换插件 afterconvert时,根据销售出库单上客户主数据,取自定义单据的数据,写到出库单自定义单据体的对应字段里。


解决方案

之前做过一个可以参考

学会这些单据转换插件二开小妙招,上下游单据处理再也难不倒你 (kingdee.com)


问题来源

关于单据转换目标单据自定义单据体数据填写问题V7.3 (kingdee.com)

8、二开问题:一张采购申请单,需要下推生成标准采购订单和VMI采购订单

问题描述:

这样一种单据类型下推生成两种单据类型可以做吗?而且是同一张单,在一次下推中可以实现吗


解决方案

单据类型映射对应好标准采购订单和VMI采购订单  需要物料启用VMI,设置好货源清单,在配额下单界面勾选按供应类型匹配订单单据类型,生成订单即可图片.png图片.png

问题来源

二开问题:一张采购申请单,需要下推生成标准采购订单和VMI采购订单 (kingdee.com)


9、基础资料属性可以设置小数点么

问题描述:

都没找到哪里可以设置小数位数的地方

image.png

解决方案

账表开发-增加基础资料属性并设置精度 (kingdee.com)


问题来源

编写文章|金蝶云社区|财务金融企业信息化|IT精英人脉社群-金蝶云社区官网 (kingdee.com)


10、明细表里的字段顺序为什么bos里调不了只能前端调呢

问题描述:

明细表里的字段顺序为什么bos里调不了只能前端调呢


解决方案

可以的,调完后在项目里的单据右键清除用户布局方案就可以啦image.png


问题来源

明细表里的字段顺序为什么bos里调不了只能前端调呢? (kingdee.com)

11、如何设置包含部分物料分组编码的实体服务规则

问题描述:


物料清单的子项物料编码包含 "DCG" 和 "HYR" 时,物料清单的 用量类型 默认为【固定】,这个在实体服务规则该怎么设?大佬救救

上传图片









解决方案

也可以使用in 条件设置 或者用or

上传图片

上传图片

上传图片



问题来源

如何设置包含部分物料分组编码的实体服务规则 (kingdee.com)


12、树形单据体如何新增子行,达到如下效果

问题描述:

image.png


解决方案

需要表单插件:

参考:二开案例.表单插件.树形单据体

树形单据体如何新增行


问题来源

树形单据体如何新增子行,达到如下效果 (kingdee.com)




13、含税单价*数量=价税合计,怎么设置单据体任意填写其他两个数,自动算出另一个数值

问题描述:


含税单价*数量=价税合计,怎么设置单据体任意填写其他两个数,自动算出另一个数值

解决方案

你这样容易死循环啊。

y=f(x) 

只有x是变量,y应该锁定,只能由变量决定。

是指实体服务规则,规则条件:含税单价=含税单据 AND 数量=数量

满足条件执行:价税合计=含税单价*数量

含税单价和数量要勾选【即时触发值更新】


问题来源

含税单价*数量=价税合计,怎么设置单据体任意填写其他两个数,自动算出另一个数值 (kingdee.com)

14、库存请检单,新增时单据体,明细行不会自动跳出,关键字段已设置

问题描述:

image.png


解决方案

BOS设计器单据体的缺省行数可以设置为1,这样新增单据就会有一行空白行。

image.png


问题来源

库存请检单,新增时单据体,明细行不会自动跳出,关键字段已设置! (kingdee.com)

15、订单里的税额和不含税金额和价税合计是单价和数量字段触发值更新还是实体服务规则里值更新事件

问题描述:

订单里的税额和不含税金额和价税合计是单价和数量字段触发值更新还是实体服务规则里值更新事件


解决方案

image.png


问题来源

订单里的税额和不含税金额和价税合计是单价和数量字段触发值更新还是实体服务规则里值更新事件? (kingdee.com)

16、请教下,使用直接sql创建账表的时候,如何设置过滤条件不选时,默认查询所有数据

问题描述:


解决方案

用or 来拼接为空和不为空的条件。

例如,

where

('#FBeginDate#'='' or  FDate>='FBeginDate')

AND

('#FSupplier#='' or GYSNUM='#FSupplier#') 



问题来源

请教下,使用直接sql创建账表的时候,如何设置过滤条件不选时,默认查询所有数据 (kingdee.com)





【第14期】

1、服务插件怎么添加子单据体

问题描述:

在检验单审核时将结果反写到自己自定义添加的采购订单明细分录子单据体中

解决方案

先获取单据的单据体,在单据体里找到对应的子单据体,

  //创建一个目标子单据体的数据包                                                      

 DynamicObject newRow = new DynamicObject(FSubEntity.DynamicObjectType);

给newrow赋值

然后把newrow用add添加到单据体的子单据体对应的DynamicObjectCollection中

最后保存


问题来源

服务插件怎么添加子单据体 (kingdee.com)


2、 为什么我的安装文件里没有Website文件?

问题描述:

image.png

解决方案

你这个是单纯的客户端程序,要安装服务器端才有,如下图

上传图片


问题来源


3、 单据转换---逗号连接没有自动去重,例如三条明细源单是A B A,逗号连接后显示的是 A,B,A ,如何能自动为A,B

问题描述:

单据转换---逗号连接没有自动去重,例如三条明细源单是A B A,逗号连接后显示的是 A,B,A ,如何能自动为A,B

解决方案

单据转换服务策略中对携带的值做二次去重处理:

字符串字段标识 = ','.join(set(字符串字段标识.split(',')))


问题来源

单据转换---逗号连接没有自动去重,例如三条明细源单是A B A,逗号连接后显示的是 A,B,A ,如何能自动为A,B (kingdee.com)


4、 多单据体如何循环打印?

问题描述:

同一个单据上毫无关联关系的单据体(非子单据体),需要根据一个单据体循环另一个单据体进行打印显示,
比如A单据体数据是
1
2
3

B单据体数据是
A

B
C

如何打印的时候第一页是
1 A

1 B
1 C
第二页是
2 A
2 B
2 C

解决方案

要实现多单据体打印的话,建议采用万能报表设计比较容易满足需求。

万能报表设计器用户手册 (kingdee.com)

问题来源

多单据体如何循环打印? (kingdee.com)


5、 想要实现单据点击保存通知另一个岗位的相关人员,如何实现?

问题描述:

想要实现单据点击保存通知另一个岗位的相关人员,如何实现?

解决方案


image.png

通过消息配置这里设置,触发操作选择保存,然后设置消息模板,消息接收人

问题来源

想要实现单据点击保存通知另一个岗位的相关人员,如何实现? (kingdee.com)


6、  物料【复制】的时候,可否设置某些字段不复制,如【仓库】等字段

问题描述:

image.png

解决方案

使用管理员登陆BOS平台进行设置,参考下图取消允许复制。

image.png

问题来源

物料【复制】的时候,可否设置某些字段不复制,如【仓库】等字段 (kingdee.com)


7、 物料清单里委外BOM委外A产品 需要B物料我可以在委外入库的时候带出B的批号吗

问题描述:

物料清单里委外BOM委外A产品 需要B物料我可以在委外入库的时候带出B的批号吗

解决方案

金蝶云星空物料清单中委外BOM和委外A产品需要B物料时,在委外入库的时候可以带出B的批号。具体操作步骤如下:


1. 在金蝶云星空中,创建委外入库单。


2. 在委外入库单中,选择需要入库的委外A产品或者委外BOM,然后点击“明细”按钮,在明细页面中找到需要带出B物料的物料清单项。


3. 在物料清单项中,找到需要带出B物料的物料,并在批号栏中输入B物料的批号。如果B物料的批号已经在系统中存在,可以直接选择批号;如果B物料的批号还没有在系统中维护,可以手动输入。


4. 输入完B物料的批号后,保存委外入库单,并进行提交和审核等操作。


通过以上操作,可以在委外入库的时候带出B物料的批号,确保物料的溯源和追踪。需要注意的是,在输入B物料的批号时,需要确保批号的准确性和完整性,以避免物料管理上出现问题。


问题来源

物料清单里委外BOM委外A产品 需要B物料我可以在委外入库的时候带出B的批号吗 (kingdee.com)


8、 星空8.0二开单据数量精度怎么根据计量单位变化

问题描述:

现在不受控制,是要设置什么吗







解决方案

在金蝶星空8.0系统中,如果您需要根据不同的计量单位来调整单据数量精度,可以按照以下步骤进行设置:

1. 在系统管理模块中,找到“计量单位”菜单,创建需要的计量单位,并设置相应的精度。

2. 在单据模板中,将需要根据计量单位变化的字段的数据类型设置为“数量”,并勾选“根据计量单位进行精度控制”。

3. 在单据录入时,选择相应的计量单位后,系统会根据该计量单位的精度来自动调整单据数量的精度。

需要注意的是,如果您的系统已经存在单据数据,修改计量单位的精度后,已有的单据数量精度不会自动更新,需要重新输入或手动修改已存在的单据数据。


问题来源

星空8.0二开单据数量精度怎么根据计量单位变化 (kingdee.com)


9、 配额下单,选单, 自动合并相同物料的,这个怎么设置不合并

问题描述:

配额下单,选单,自动合并相同物料的,这个怎么设置不合并

解决方案

1. 在系统管理模块中,找到“配额管理”或“选单管理”菜单,进入配额或选单的管理页面。

2. 在配额或选单的管理页面中,找到“高级选项”或“高级设置”等相关设置选项,点击进入。

3. 在高级选项或高级设置页面中,找到“合并相同物料”或“物料去重”等相关选项,将其关闭或取消勾选。

4. 保存设置后,系统就不会在配额下单或选单时自动合并相同物料了。

5.需要注意的是,如果您需要在某些情况下仍然需要自动合并相同物料,可以在需要的时候再手动勾选相关选项即可。

问题来源

配额下单,选单, 自动合并相同物料的,这个怎么设置不合并 (kingdee.com)


10、 小数包含-号怎么写公式判定啊

问题描述:

F_HAYY_Decimal.find("-") >=0这种公式不行

解决方案

小数包含- 号是指负小数吗

F_HAYY_Decimal < 0 and int(F_HAYY_Decimal) - F_HAYY_Decimal > 0

问题来源

小数包含-号怎么写公式判定啊 (kingdee.com)


11、 下推条件和选单条件是2个意思吧

问题描述:

image.png

解决方案

下推条件:用来过滤勾选的单据允许是使用哪些单据转换规则,会影响下推界面可选择的单据和单据转换规则。选单是不会触发的。

选单条件:用来过滤上游单据中允许下推数据行,下推和选单都会触发,

  • 下推操作:会自动过滤掉不满足选单条件的数据行,如果勾选的数据中都不满足选单条件则会报错。

  • 选单操作:进行选单操作时,会根据选单条件自动过滤出可选单的列表,只有满足选单条件的单据数据行才会出现在选单列表中。

问题来源

下推条件和选单条件是2个意思吧 (kingdee.com)


12、凭证汇总白表套打模板怎么取不到这个数?

问题描述:

image.png

解决方案

image.png

可以选到

因为凭证汇总表是报表,所以新增要选择账表里面的凭证汇总表

image.png

问题来源

凭证汇总白表套打模板怎么取不到这个数? (kingdee.com)


13、 如何调整页签按钮位置

问题描述:

应收单页面,第一个页签位置未显示全,这个在Bos里面要怎么调整

image.png

解决方案

image.png

找一下对应的页签


问题来源

如何调整页签按钮位置 (kingdee.com)


14、  如何在单据上显示“物料”资料中的“旧物料编码”

问题描述:

现在BOS签出后,在单据中找不到“旧物料编码”这个栏位,怎么设置增加显示这个这个栏位

解决方案

引用基础资料属性就可以了哈

image.png

image.png


问题来源

如何在单据上显示“物料”资料中的“旧物料编码” (kingdee.com)


15、如何审批完成自动传阅给别的部门领导

问题描述:

image.png

解决方案

1、完成节点的上一个节点,审核时  表单操作为“审核”

2、完成节点上配置消息节点,消息节点设置消息接收人。

image.png

问题来源

如何审批完成自动传阅给别的部门领导 (kingdee.com)


16、  如何让某个单据在审核中可以修改某个字段,并且只是在审批流中,直接打开单据不行

问题描述:

  1. 有个教程说配置视图,但是得在单据里把该字段在审核中状态设置为不锁定,这样用户直接打开单据也可以修改呀,所以不行。

  2. 我需要的是:单据审核中时,该字段只能在审批流/工作流的某个节点可以修改,其他节点、直接打开单据都不能修改。

解决方案

①审核中状态下放开字段锁定。

②开发表单插件,在AfterBindData事件判断是否在待办任务处理界面打开单据,如果不是,就锁定字段。

我用Python表单插件测试了一下,是可行的,关键代码如下:

def AfterBindData(e):
    parentViewFormId=this.View.ParentFormView.BillBusinessInfo.GetForm().Id;
    if(parentViewFormId<>"AP_ApprovalAssignHandle"):#不是审批界面打开
        billObj = this.Model.DataObject;
        billStatus=billObj["DocumentStatus"];
        if(billStatus=="B"):#单据状态是【审核中】
            this.View.GetControl("FDate").Enabled = False;#锁定字段

③测试效果图如下:

image.png

image.png


问题来源

如何让某个单据在审核中可以修改某个字段,并且只是在审批流中,直接打开单据不行。 (kingdee.com)


【第13期】

1、 BOM同一阶层,如出现重复物料时,如何设置警告提示?

问题描述:


解决方案

可以在物料清单的选项-业务参数里,子项唯一性检查,勾选“子项物料编码”。

1677893226747.png

问题来源

BOM同一阶层,如出现重复物料时,如何设置警告提示? (kingdee.com)


2、 win+r输入cmd后,重启iis指令iisreset,显示如下图,该怎么操作,重来没用过,麻烦大佬详细一点

问题描述:

image.png

解决方案

image.png

你用管理员执行才可以,右键找到windows系统,命令提示符cmd以管理员身份运行看看。

image.png

image.png

问题来源

win+r输入cmd后,重启iis指令iisreset,显示如下图,该怎么操作,重来没用过,麻烦大佬详细一点 (kingdee.com)


3、  审批流界面明细信息字段的单价和金额合计数怎么添加

问题描述:

怎么在这个界面添加字段的合计数


解决方案

进入bos设计器,打开需要添加合计信息的单据,选择明细信息,设置分组列合计。

image.png

问题来源

审批流界面明细信息字段的单价和金额合计数怎么添加 (kingdee.com)


4、  明细下怎么加个字段

问题描述:

image.png


解决方案

image.png

问题来源

这个明细下怎么加个字段 (kingdee.com)


5、  流程配置中心中,如何设置单据明细中只要有一行不满足指定条件,就不触发工作流?

问题描述:

如何设置单据明细中只要有一行不满足指定条件,就不触发工作流?


解决方案

换句话说,就是单据明细中所有行都要满足条件才启动工作流。

在流程配置中心的启动条件高级中设置。参考语句如下:

len(map(lambda x: x.FMaterialName, FEntity))>0 And all(map(lambda x: (x.FMaterialName.find('AAA')>=0 Or x.FMaterialName.find('BBB')>=0 Or (x.FMaterialName.find('CCC')>=0 And x.FMaterialName.find('DDD')<0)), FEntity))


其中x.FMaterialName.find('AAA')>=0 Or x.FMaterialName.find('BBB')>=0 Or (x.FMaterialName.find('CCC')>=0 And x.FMaterialName.find('DDD')<0)根据自己的需求更改。

如果是只要一条记录满足就启动,把all改成any。

问题来源

流程配置中心中,如何设置单据明细中只要有一行不满足指定条件,就不触发工作流? (kingdee.com)


6、  开发测试显示不存在属性

问题描述:

根据教程做测试https://vip.kingdee.com/article/281004077670973184?productLineId=1&isKnowledge=2 将里面两个参数更改成我自己的参数。报这样的错误,求大佬解答


解决方案

服务插件不会加载单据的完整数据包,要按需引用需要的字段。

在预加载事件OnPreparePropertys中添加字段标识,告诉系统需要额外加载的字段。

问题来源

开发测试显示不存在属性 (kingdee.com)


7、   BOS可以登录,进入应用时报错,重新下载SVN登录还是不行,求大佬解答

问题描述:


调用堆栈:

   at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)

   at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)

   at Kingdee.BOS.WinForm.KDWaitForm.PrivateDoTask(Form owner, Action act)

   at Kingdee.BOS.WinForm.KDWaitForm.OnShown(EventArgs e)

   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)

   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)

   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()

错误数据: System.Collections.ListDictionaryInternal



解决方案

协同开发平台SVN锁定处理

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


问题来源

BOS可以登录,进入应用时报错,重新下载SVN登录还是不行,求大佬解答 (kingdee.com)


8、   金蝶云V7.1:想在BOS里加个操作按钮,执行单据编号的批量查询的功能

问题描述:

1、首先根据单据编号批量查,当前是可以实现的,就是在“过滤”中,一行一行的写“或者”的条件。缺点是慢。

2、我想在BOS设计中实现批量查询的样式,见下俩图。  想在bos里设计出一个挑单查询功能。

image.png


解决方案

系统是有批量查询的功能的。在过滤的[高级]页签。

可以通过【块粘贴】的方式批量查询单据编号的。

参考下图:

image.png

问题来源

金蝶云V7.1:想在BOS里加个操作按钮,执行单据编号的批量查询的功能 (kingdee.com)


9、  自己画的报表,怎么在代码里面设置报表的列宽?

问题描述:

image.png


解决方案

image.png

这样试试

问题来源

自己画的报表,怎么在代码里面设置报表的列宽? (kingdee.com)


10、   当日期不等于创建日期+1天时,让单据保存时跳出警告怎么做?

问题描述:

如何设置单据中日期不等于创建日期+1时,保存跳出警告。


解决方案

通过【单据合法性校验】实现,保存时校验

【日期字段】<>  @CurrentShortDate.AddDays(1)

勾选【检验表达式为真时提示】,提示信息根据自己需要可以修改

操作简单截图如下,可以参考(以采购订单为例)

image.png

image.png

1678340478737.png

1678340936458.png

今天是2023.03.09,保存提示:

image.png

可以扩展了解一下:【日期字段 】取当前日期,不能小于或大于当前系统日期,为当前系统日期+n天

编辑于 2023年03月09日 14:03:00

追问

这个取值取得是当前日期不是创建日期吧,这边存在今天创建的单子明天做的情况,但是如果取创建日期的时间好像会有问题,这是为什么。



上传图片

上传图片


追答

有可能后台有时间,你加这个试一下呢

 FDate.ToString('yyyy-MM-dd') <>   FCreateDate.AddDays(1).ToString('yyyy-MM-dd') 

问题来源

当日期不等于创建日期+1天时,让单据保存时跳出警告怎么做? (kingdee.com)


11、  关于扩展成本计算单(横向展示)账表增加工单自定义字段的显示位置问题V7.3

问题描述:

问题:

    生产工单的表头有自定义字段 项目编码

    想在成本计算单(横向展示)中 根据工单号 显示自定义信息  项目编码,想把自定义的字段 显示在 工单号的后面

我的做法:

    扩展了 插件,过滤界面的 显示隐藏类 增加了字段

 结果:执行时,显示隐藏类 并没有我自定义的字段名称

            工单自定义的字段 显示的位置 不是在最后,在中间位置。

问题:

   我要如何实现 自定义字段的显示在 工单号的后面?

V7.3

谢谢

image.png

image.png

image.png

image.png


解决方案

在GetHeaders里面添加列的时候就要调整好顺序。

child=header.AddChild("最低价",LocaleValue("最低价",localEid),SqlStorageType.SqlDecimal);

child.ColIndex=序号;//这个属性就是用来调整显示顺序的

编辑于 2023年03月10日 12:02:01

追问

顾问,我发现在这个账单的过滤界面有个表单插件,这里动态写了显示隐藏列的字段。

这个表单插件扩展 增加我的字段 和位置,您有示例吗?

谢谢

image.png

image.png

问题来源

关于扩展成本计算单(横向展示)账表增加工单自定义字段的显示位置问题V7.3 (kingdee.com)

12、  通过bos设计器新建套打,但是没有新建选项,版本为7.7

问题描述:

image.png


解决方案

用BOS套打设计器打开,里面就可以新增了。

image.png

问题来源

通过bos设计器新建套打,但是没有新建选项,版本为7.7 (kingdee.com)


13、  如何在BOS添加:审核日期=当前日期的语句,只取年月日,不取时间

问题描述:

审核日期显示时:包含年、月、日,小时、分、秒; 想要添加一个语句:系统当前日期(年月日)=审核日期(年月日),不要包含小时、分、秒


解决方案

image.png

image.png

按照如图设置,注意事件的顺序和截图我是用的长日期,你的语句用短日期即可@currentshortdate,

问题来源

如何在BOS添加:审核日期=当前日期的语句,只取年月日,不取时间。 (kingdee.com)


14、  标识为 *****的控件不存在

问题描述:

  手工新增了一张 f_pxiu_icbombjfzentry 的单据,权限状态菜单等等都设置好了,运行正常。

  然后采用复制 f_pxiu_icbombjfzentry的方法新增了一张单据,把单据体改为树形单据体,重新设置了权限和行菜单,可是测试行菜单的时候,新增行提示如下

image.png

插入行测试如下,f_pxiu_icbombjfzentry就是我复制来源的单据,

image.png

可是我批量查询里面根本没找到哪个地方还引用了f_pxiu_icbombjfzentry!请老师解答一下,谢谢!


解决方案

【新增分录行】操作是要绑定单据体的。

例如,之前的单据的单据体标识是FEntity,新增分录行操作绑定的单据体标识就是FEntity。

你复制单据之后,新增分录行操作绑定的单据体标识还是FEntity,但是现在单据上是树形单据体FTreeEntity了。

所以就报错了。

解决方法:在BOS打开复制后的单据,在【操作列表】中或者新增行菜单的点击事件中找到【新增分录行】的操作,点击修改,把绑定的单据体标识改一下就可以了。

问题来源

标识为 *****的控件不存在 (kingdee.com)


15、 boss设计器登录时提示错误System.Windows.Forms,导致无法使用

问题描述:

发生时间:	2023-03-21 13:40:46错误来源:	System.Windows.Forms错误信息:	D:\WorkSpace\SXKV\蓝海\蓝海.kdsln===================================================调用堆栈:   在 System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)   在 System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)   在 System.Windows.Forms.Control.Invoke(Delegate method)   在 Kingdee.BOS.WinForm.KDWaitForm.<>c__DisplayClass5.<PrivateDoTask>b__4()   在 Kingdee.BOS.WinForm.KDWaitForm.PrivateDoTask(Form owner, Action act)   在 Kingdee.BOS.WinForm.KDWaitForm.OnShown(EventArgs e)   在 System.Windows.Forms.Form.CallShownEvent()   在 System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)   在 System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)   在 System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)   在 System.Windows.Forms.Control.InvokeMarshaledCallbacks()错误数据:	System.Collections.ListDictionaryInternal

解决方案

环境出问题了,参考下列步骤卸载、重装一下


1、打开下图所示文件夹,找到Kingdee.BOS.DeskClient.Shell


2、双击打开Kingdee.BOS.DeskClient.Shell


3、找到Bos设计器(金蝶云星空集成开发平台)选项,点击“卸载”按钮


4、卸载成功后Bos设计器将会从列表中移除,桌面快捷图标也会被清理

注意:卸载成功后需关闭Kingdee.BOS.DeskClient.Shell程序,否则所有客户端将无法启动


【安装】

1、登陆云星空后台,点击右上角个人图像弹出下拉选项,根据操作系统位数选择安装相应的Bos设计器


2、安装过程如下,为全自动安装无须任何操作


安装完成后弹出如下所示登陆窗口


并生成相应的桌面快捷图标,至此安装完成

问题来源

boss设计器登录时提示错误System.Windows.Forms,导致无法使用 (kingdee.com)



16、   想通过插件设置打开发货通知单时自动获取即时库存和可用库存报错

问题描述:

本想参考这帖子的指引https://vip.kingdee.com/article/421675812006553856?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%E7%BB%BC%E5%90%88&productLineId=1&isKnowledge=2来实现打开发货通知单时自动获取即时库存和可用库存报错;在表单注册python脚本如下报错


解决方案

单引号的问题。

image.png


问题来源

想通过插件设置打开发货通知单时自动获取即时库存和可用库存报错 (kingdee.com)


17、  如图,表格拖的很小,打印的时候怎么显示全部文本

问题描述:

如图,之前的金蝶老师设置的这个套打模板,这个单元格很小,但是里面的文本内容很多,而且打印的时候能全部显示,他这种怎么设置的,我想模仿一下,求各位老师指导[object Object]


解决方案

选中数据行-点属性-勾选行高自适应image.png

编辑于 2023年03月22日 16:05:5

问题来源

如图,表格拖的很小,打印的时候怎么显示全部文本 (kingdee.com)


18、  单据头下拉列表字段为1时,自动带出单据体基础资料字段为B,该如何实现呢

问题描述:

单据头下拉列表字段,枚举项分别为1/2/3;自动带出单据体基础资料字段分别为A/B/C


解决方案

1、先需在单据头下拉列表字段是,添加对应的【值更新事件】分别设置;

当枚举项为1时,基础资料字段=A;当枚举项为2时,基础资料字段=B;当枚举项为3时,基础资料字段=C;

做完这一个,已经可以实现,修改下拉列表字段更新基础资料;


2、现在就要处理,枚举项已选择上,再进行单据体新增行时时的问题;

就是要在单据体添加【实体服务规则】同样设置3个;分别对应1-A;2-B;3-C;

这样设置完,可以防用户的日常操作了;


问题来源

单据头下拉列表字段为1时,自动带出单据体基础资料字段为B,该如何实现呢 (kingdee.com)


19、  不存在类型或命名空间名“BOS”,是否缺少程序集引用

问题描述:

image.png


解决方案

image.png

用这种方式创建临时表即可,

添加引用

using Kingdee.K3.FIN.App.Core;

问题来源

不存在类型或命名空间名“BOS”,是否缺少程序集引用 (kingdee.com)


20、   通过复选框指定字段编辑且必录

问题描述:

如何实现根据是否我方承担运费复选框打勾然后物流单号和物流公司编辑且必录,如果是客户直送的复选框打勾物流单号和物流公司不可编辑

解决方案

在bos内找到这个单据的这个复选框,勾选“及时触发值更新”事件,条件为该复选框=true,满足条件则设置对应字段必录,不满足则锁定对应字段image.pngimage.png

问题来源

通过复选框指定字段编辑且必录 (kingdee.com)


21、 如何实现两个字段必录一个保存校验设置了两个字段必录一个的逻辑不生效

问题描述:


上传图片

上传图片


解决方案

这种非此即彼的选项可以使用一个下拉列表、单选按钮组的形式,两个枚举选项必选其一。如果是两个复选框,未选择状态值是false而不是空,你的校验应该是 CheckBox1=false and CheckBox2=false,两个都未选择,表达式为真时报错

问题来源

如何实现两个字段必录一个 (kingdee.com)


22、  收料通知单下推可以默认选择检验单吗

问题描述:

image.png

解决方案

image.png

问题来源

这个收料通知单下推可以默认选择检验单吗 (kingdee.com)


23、  如何实现明细信息的复选框有空的,单据头的复选框也为空。

问题描述:

我在单据体和单据头加上了复选框。单据体的复制给单据头。要根据单据头这个做审批。我怎么实现,当单据体复选框有空的时候,单据体就是空的呢。【目前我是在 bos值更新 把明细复选框赋值给了单据头,没有加条件】如果无操作后,就是这种效果。 我想实现只要有一个不勾选,单据头也不能勾选。

解决方案

我在单据体和单据头加上了复选框。单据体的复制给单据头。要根据单据头这个做审批。我怎么实现,当单据体复选框有空的时候,单据体就是空的呢。【目前我是在 bos值更新 把明细复选框赋值给了单据头,没有加条件】如果无操作后,就是这种效果。 我想实现只要有一个不勾选,单据头也不能勾选。

问题来源

如何实现明细信息的复选框有空的,单据头的复选框也为空。 (kingdee.com)


【第12期】

1、如何打印单据的子表体

问题描述:

有些单据涉及到子表体的,如何打印子表体的明细信息?    例如2019行政的差旅报销单,第1个行程有2个费用明细,第2个行程有3个费用明细,需要将5个费用明细打印出来?请各位老师指点迷津,谢谢!


解决方案

正常打印子单据体的话是要用简单数据表格,参考:https://vip.kingdee.com/knowledge/specialDetail/363025883948262656?category=363047667402268160&id=362620866502206720&productLineId=1。

但是我要是没记错的话,这个差旅费报销单的明细本身好像就是单据体,直接用数据表格绑定字段应该是可以打印出全部的明细信息的


问题来源

如何打印单据的子表体 (kingdee.com)


2、  有什么办法查询一个字段,被哪些实体服务规则、值更新、操作校验引用了?

问题描述:

金蝶云星空v7.51,增加了很多配置,查找问题比较麻烦。请问有没有方法统计【一个字段,被哪些实体服务规则、值更新、操作校验引用了?】


解决方案

增量XML里面查找不知是否能解决你的问题image.pngimage.png


问题来源

有什么办法查询一个字段,被哪些实体服务规则、值更新、操作校验引用了? (kingdee.com)


3、星空8.0企业版,单据界面怎么添加红色提示文本

问题描述:

类似这种,不要【为空提示信息】,纯一个文本显示,不带边框

image.png


解决方案

类似这种,不要【为空提示信息】,纯一个文本显示,不带边框

image.png


问题来源

星空8.0企业版,单据界面怎么添加红色提示文本 (kingdee.com)

4、  生产订单列表打印行高是否可以调节,可以的话如何调节

问题描述:

在使用生订单的列表打印的时候,行高不合适,1个行高显示不完整,2行高打印页数太多


解决方案

分享一个星空修改单据列表每行高度的python (kingdee.com)

案例十:设置行高 (kingdee.com)

问题来源

生产订单列表打印行高是否可以调节,可以的话如何调节 (kingdee.com)


5、 新建表单没有多用户打开没有提示冲突

问题描述:

怎么设置新建表单不让多用户同时打开呢


解决方案

新建的BOS单据没有启用网控。可以设置默认网控。参考下图:

image.png


问题来源

新建表单没有多用户打开没有提示冲突 (kingdee.com)


6、  文本自定义如何设置计算公式?我这么配置没效果

问题描述:



解决方案

可以用动态字段实现

参考帖子:套打实体动态字段应用汇总


问题来源

文本自定义如何设置计算公式?我这么配置没效果 (kingdee.com)



7、  套打能不能设置相同物料,数量合并打印

问题描述:

套打能不能设置相同物料,数量合并打印


解决方案

打开[bos套打设计器],找到[单据]下面的套打模板 

在打开的套打模板中选中“数据行”

点击上方菜单栏[表格]→[汇总管理],按照“物料编码”做汇总设置


问题来源

套打能不能设置相同物料,数量合并打印 (kingdee.com)


8、 金蝶云星空的日期字段的缺省值要怎么才能在当前日期的基础上延后20天

问题描述:

采购订单的交货日期想自动默认为创建日期之后的20天,请教下各位大神应该怎么操作


解决方案

以下是我设置的销售订单要货日期+7天,供参考

上传图片


编辑于 2023年02月06日 10:59:55

追问

您好,请问固定提前期的字段该怎么设置,能麻烦您截下图吗

追答

上传图片


在物料中设置,可以用批量操作,把固定提前期设置成20, 取固定提前期,是因为,我们的产品,不是统一都是加20天。

如果你都是默认加20天,你也可以

FDeliveryDate = FDate.AddDays(20)


另外这个值更新是放在物料编码处,只要录入物料编码就会自动把要货日期+20天



问题来源

金蝶云星空的日期字段的缺省值要怎么才能在当前日期的基础上延后20天 (kingdee.com)


9、  BOS设表单服务规则,总是提示未将对象引用设置到

问题描述:

image.png


解决方案

是偶尔还是频繁出现,我使用中,之前服务器放总公司,就会出现多次,然后多试几次,进去后又可以正常操作。

后面服务器放回本地,就没有出现这个问题。

所以,我判断可能是与服务器网络通信造成的。

简单的方法,可以试一下

1> 自己电脑把BOS删除,重装下载安装一次;

2> 在另一台电脑上面试试

3> 直接在服务器上面试(私有云)


问题来源

BOS设表单服务规则,总是提示未将对象引用设置到。 (kingdee.com)


10、  选单、上下查、报表等列表界面的过滤方案(在单据列表设置了过滤方案,但是选单的时候就不显示在单据列表自定义方案)

问题描述:

生产领料单 选单 生产用料清单,为啥个人方案全没了


解决方案

生产领料单 选单 生产用料清单,为啥个人方案全没了


问题来源

选单、上下查、报表等列表界面的过滤方案(在单据列表设置了过滤方案,但是选单的时候就不显示在单据列表自定义方案) (kingdee.com)


11、   如何设置某个单据的打印模板,只能指定的用户可以查看使用

问题描述:

 如何设置某个单据的打印模板,只能指定的用户可以查看使用


解决方案


image.png

image.png

登录管理员账号,这里可以设置打印模板权限


问题来源

如何设置某个单据的打印模板,只能指定的用户可以查看使用 (kingdee.com)


12、单据中有多行明细,套打怎么设置只部分明细的合计数

问题描述:

问题:单据上有4行明细,其中一行物料的物料属性为包材,在打印时数量合计栏怎么设置不包含包材的数量

image.png


解决方案

在打印模板明细信息设置实体动态字段,选择“聚合字段集合”添加动态字段(根据需求配置分组表达式和聚合表达式),然后汇总属性值选择该动态字段。

参考:

套打实体动态字段应用汇总


问题来源

单据中有多行明细,套打怎么设置只部分明细的合计数 (kingdee.com)



13、  如何设置采购订单相应的单据行,剩余入库数量为0时,对应的行自动进行【业务终止】

问题描述:

image.png


解决方案


image.png

采购订单与采购入库,本身就有对应的反写规则


问题来源

如何设置采购订单相应的单据行,剩余入库数量为0时,对应的行自动进行【业务终止】 (kingdee.com)


14、工作流设计器打开进去之后一片空白,也没有工具栏。

问题描述:

image.png


解决方案

环境出问题了,参考下列步骤卸载、重装一下


1、打开下图所示文件夹,找到Kingdee.BOS.DeskClient.Shell


2、双击打开Kingdee.BOS.DeskClient.Shell


3、找到Bos设计器(金蝶云星空集成开发平台)选项,点击“卸载”按钮


4、卸载成功后Bos设计器将会从列表中移除,桌面快捷图标也会被清理

注意:卸载成功后需关闭Kingdee.BOS.DeskClient.Shell程序,否则所有客户端将无法启动


【安装】

1、登陆云星空后台,点击右上角个人图像弹出下拉选项,根据操作系统位数选择安装相应的Bos设计器


2、安装过程如下,为全自动安装无须任何操作


安装完成后弹出如下所示登陆窗口


并生成相应的桌面快捷图标,至此安装完成


问题来源

工作流设计器打开进去之后一片空白,也没有工具栏。 (kingdee.com)


15、 块选择和块粘贴,怎么在过滤那里使用,麻烦大哥们详细一点;

问题描述:

image.png


解决方案

1、复制时,先块选择,然后鼠标下拉区域,用快捷键CTRL+C复制;

2、粘贴时,用鼠标右键“块粘贴”不要用快捷键CTRL+V

image.png


问题来源

块选择和块粘贴,怎么在过滤那里使用,麻烦大哥们详细一点; (kingdee.com)


16、  非主业务组织字段如何限定当前用户组织范围

问题描述:

我在临时信用档案单据上添加了个申请组织字段(非主业务组织的组织类字段),请教如何设置才能达到、在单据录入时该组织字段只能选择当前用户权限范围内的组织的目的?


解决方案

在自定义字段的过滤添加

FORGID IN (SELECT FORGID FROM T_SEC_USERORG WHERE FUSERID=GetValue(FCreatorId))

其中FCreatorId为创建人。

image.png


问题来源

非主业务组织字段如何限定当前用户组织范围 (kingdee.com)


17、  当满足前提条件时,税率等于13%不满足时税率等于0

问题描述:

前提条件都会设 但是不知道怎么给这个税率赋值 因为税率在客户端是可选的字段 在BOS上是小数字段 不知道怎么给税率这个字段赋值    大佬可以以13%税率示范一下赋值么

image.pngimage.png


解决方案

直接做两个值更新 例如前提条件是 含税单价>=100  ,值更新FentryTaxrate=0.13 

第二个前提条件就是 含税单价<100 ,值更新FentryTaxrate=0


问题来源

需求:当满足前提条件时,税率等于13%不满足时税率等于0 (kingdee.com)


18、  我想取科目余额表的字段怎么取

问题描述:

image.png


1、想取科目余额表的字段,核算维度,核算维度名称,本期发生,借方,贷方,期间 怎么取


解决方案

image.png


1、想取科目余额表的字段,核算维度,核算维度名称,本期发生,借方,贷方,期间 怎么取


问题来源

我想取科目余额表的字段怎么取 (kingdee.com)


19、 退料原因类似的字段,如何自定义添加?BOS后台需要选哪个类型的字段

问题描述:


image.png

image.png

解决方案

用单选辅助资料列表。

image.png


问题来源

退料原因类似的字段,如何自定义添加?BOS后台需要选哪个类型的字段 (kingdee.com)


20、在新增采购申请单时,如果根据当前登入人员账号名称,自动带出到申请人跟申请部门

问题描述:

在新增采购申请单时,如果根据当前登入账号人员名称,自动带出到申请人跟申请部门,这种在BOS中要怎么操作?


解决方案

系统默认是会带出的,你检查一下,对应该登入人员账号的信息资料,有没有绑定对象员工;

用户绑定员工的操作是Administrator登录,查询用户,【联系对象类型】是员工,【联系对象】绑定某一员工。



image.png

问题来源

在新增采购申请单时,如果根据当前登入人员账号名称,自动带出到申请人跟申请部门 (kingdee.com)


21、 怎么停掉走了一半的工作流?

问题描述:

比如我的工作流,有三级审核,现在进行到一级审核或二级审核了。我禁用停用了工作流。但发现,之前走了一半的工作流,还是生效的,还得必须按之前的工作走完 才行。


解决方案

未走完的工作流还是按照之前的版本走的,可以流程管理中心,终止且反审核,重新提交走修改后的工作流

image.png


问题来源

怎么停掉走了一半的工作流? (kingdee.com)


22、  星空8.0实体服务规则,条件设置单据名称包含

问题描述:

这个该怎么设置


解决方案

FBillTypeID.FName.find('方案')<0


问题来源

星空8.0实体服务规则,条件设置单据名称包含 (kingdee.com)


【第11期】

1、  自定义单据增加一个表体后如何在过滤界面默认方案默认勾选新增的表体?

问题描述:

image.png


解决方案

勾选需要的表体后将另存为方案或保存,如果想改成全局默认方案可以在BOS中进行设置,单据属性 -列表默认发方案-选择新建的过滤方案


image.png



image.png


问题来源

自定义单据增加一个表体后如何在过滤界面默认方案默认勾选新增的表体? (kingdee.com)


2、  实体服务规则怎么设置附件必填?

问题描述:

1、一个单据,要求满足条件时,必须上传附件。【选项.附件】,请问怎么用实体服务规则实现?

2、单据上有些字段,在实体服务规则里选不到,请问如何设置?


解决方案

https://vip.kingdee.com/article/360925806623025664?productLineId=1&isKnowledge=2

参考这个帖子

大的思路就是,在单据上添加附件数 字段,然后用这个字段做合法性校验

问题来源

实体服务规则怎么设置附件必填? (kingdee.com)


3、 bos字段长度修改如何设置nvarchar(max)

问题描述:

sql server 的字段长度已经设置为nvarchar(max)了,bos里面字段长度只能输入数字,难道只能输入一个极大的数字作为下位替代吗


解决方案

可以设置为999999,参考这个官方帖子:

二开案例.单据设计.文本字段编辑长度突破2000的限制 (kingdee.com)

问题来源

bos字段长度修改如何设置nvarchar(max) (kingdee.com)


4、  简单账表的过滤条件框插件如何在 OnInitialize事件中删除 显示隐藏列中的字段?

问题描述:

简单账表的过滤框插件 ,在 OnInitialize 事件中可以获取到调用该过滤框的对象FormID,因此我想通过调用对象(多个账表公共一个过滤框) 来动态控制显示隐藏列里的 字段,比如下图中,我想 把 【基本信息 销售部门】给删除掉,代码 怎么写?

需要满足规则:依据 调用对象的FormID 作为条件 来删除。 另外 如何获取主控菜单中的 参数呢? 想通过主控菜单里的参数 判断也可以。


能给一段删除这个字段 的代码吗,谢谢!!


上传图片


解决方案

可以参考如下代码试试:

//获取过滤框的Model服务
ICommonFilterModelService model = this.Model as ICommonFilterModelService;
List<ColumnField> fldLst = model.ColumnObject.FieldList;
//fldLst.Remove(XXX);//移除不需要的字段
model.ColumnObject.SetFieldList(fldLst);//重新设置字段集合
//修改显示隐藏列控件的字段集合数据
var showHideCtrl= this.View.GetControl<FieldShowHide>("FFieldShowHideSet");
JSONArray ShowHideRows = model.ColumnObject.GetShowHideRows();
showHideCtrl.SetShowHideRows(ShowHideRows);


问题来源

简单账表的过滤条件框插件如何在 OnInitialize事件中删除 显示隐藏列中的字段? (kingdee.com)


5、  简单账表如何接收发布的菜单中设置的参数

问题描述:

简单账表 插件 如何接收 菜单中的参数,如下图,发布主控台菜单 添加了参数,插件中如何获取呢?


简单账表 和 对应的 过滤条件框 的 插件中都需要获取这个 参数, 代码 怎么写。


上传图片


解决方案


image.png

试试这种方式

问题来源

简单账表如何接收发布的菜单中设置的参数 (kingdee.com)


6、  单据列表能否关闭筛选的小漏斗?审核后能否取消自动选择行的功能?

问题描述:

因为操作方式为提交后自动审核,并且审核完成后会自动刷新页面,根据过滤条件已审核的数据会被过滤出去,然后列表自动勾选了当时选择行的数据,但并不是原行,导致会误操作一些数据。

解决方案


image.png


问题来源

单据列表能否关闭筛选的小漏斗?审核后能否取消自动选择行的功能? (kingdee.com)


7、  单据下推时,选择单据时,出现的单据界面,可以自己设置或者删减吗?

问题描述:

image.png


解决方案

image.png

问题来源



8、  自动换行跨页设置

问题描述:

设置自动换行后,跨页出现这种情况,有没有办法设置有跨页,默认留给下一页?
 企业版/标准版/BOS平台/BOS设计器


解决方案

启用参数

image.png

问题来源

自动换行跨页设置 (kingdee.com)


9、  收款单往来单位类型,往来单位,付款单位类型,付款单位怎么开放可以修改,BOS后台锁定性是开放的

问题描述:

要求销售收款单、其他业务收款单都可以修改


解决方案

锁定性确定放开就查下BOS的实体服务规则   image.pngimage.png

问题来源

收款单往来单位类型,往来单位,付款单位类型,付款单位怎么开放可以修改,BOS后台锁定性是开放的 (kingdee.com)


10、  流程配置中心里,条件不符发起策略的几个选项的区别

问题描述:

image.png


解决方案

  1. 【启用默认流程】:选择此选项后,单据不满足启动条件中的任何条件时,单据发起流程时,调用在关联流程列表中设置的默认流程,前提是需要在流程模板的关联流程列表中设置默认流程;
  2. 【调出关联流程列表选择】:选择此选项后,单据不满足启动条件时,单据发起流程时,弹出关联流程列表,可供用户选择发起流程;
  3. 【报错,流程无法启动】:选择此选项后,单据不满足启动条件时,单据发起流程时,系统给出提示:没有符合条件的可发起的流程;
  4. 【进行传统审批】:选择此项后,单据不满足启动条件时,提交后直接启用传统审核,不发起任何工作流或者审批流。


问题来源

流程配置中心里,条件不符发起策略的几个选项的区别 (kingdee.com)


11、  采购合同想修改界面合同条款字,改成询价方案,修改完还是没有改变

问题描述:

image.png


解决方案

双击页签下边的位置,在这里改,看你的图里你这个是有个单据体充满整个页签的,需要先将单据体的停靠方式的充满换成别的,然后改完页签名称之后,在把单据体充满

image.png

问题来源

采购合同想修改界面合同条款字,改成询价方案,修改完还是没有改变 (kingdee.com)


12、  单据的日期,能否设置为不能超过当前系统日期?

问题描述:

image.png

解决方案

如何设置库存单据不能录入大于当前日期的单据? (kingdee.com)

单据转换规则中如何设置下游单据的自定义日期字段获取当前日期 (kingdee.com)

问题来源

单据的日期,能否设置为不能超过当前系统日期? (kingdee.com)


13、  如何默认不显示列表左侧的分组维度查询

问题描述:

image.png


解决方案

凭证查询界面左边的分组不要看到,想默认隐藏,不要每次都点一下分组那的折号才隐藏,要怎么设置? (kingdee.com)

二开案例.列表插件.列表隐藏分组树 (kingdee.com)

看一下这两个帖子。

或者通过 角色权限来实现。

问题来源

如何默认不显示列表左侧的分组维度查询 (kingdee.com)


14、  万能报表预览的时候顺序跟单据的顺序不一致,这个怎么设置

问题描述:

image.png

万能报表预览的时候顺序跟单据的顺序不一致,单据上可能是 a b c d这样子,预览的时候是b c a d这样子显示出来,这个在哪设置


解决方案

问题来源

万能报表预览的时候顺序跟单据的顺序不一致,这个怎么设置 (kingdee.com)


15、  调用webapi下推接口,如何实现下游单据自动审核

问题描述:

如何自动审核

解决方案

可以在下游单据的保存操作中注册Python服务插件实现。

参考:Python脚本实现保存自动提交审核

问题来源

调用webapi下推接口,如何实现下游单据自动审核 (kingdee.com)






【第10期】

1、  BOS后台退料类型的表达式,这样填写正确吗?如不对,需要如何填写

问题描述:image.png




解决方案

image.png

image.png

可以参照系统自带的设置,如上图

问题来源

BOS后台退料类型的表达式,这样填写正确吗?如不对,需要如何填写 (kingdee.com)

2、  如何添加审批页面上的按钮

问题描述:

image.png

image.png

解决方案

在流程配置中心里面可以设置,点击流程节点界面配置,点到对应的节点可以进行对相关字段以及按钮显示或者隐藏的配置,每个节点可以显示不一样的字段和按钮

image.png


问题来源

3、  直接账表提示多次设置某个FNAME

问题描述:

SELECT     a.FBILLNO,    b.FNAME 物料名称,     e.FNAME 组织名称,    g.FNAME 供应商名称, ……测试不通过,提示【多次为Toptemp指定了列FNAME】。请问这种该如何解决?

解决方案

这个就是列名重复。账表运行的时候会把你的查询结果集写入一张临时表,列名不能重复,使用别名就可以了

SQl账表运行的时候会执行下面这样一个语句来构建查询临时表:

select *

into 临时表名

from

(

    --你的查询SQL语句

)

image.png

问题来源

直接账表提示多次设置某个FNAME。 (kingdee.com)


4、  新增了一个总价字段,如何让它自动等于采购数量*含税单价

问题描述:新增了一个总价字段,如何让它自动等于采购数量*含税单价

image.png

解决方案

可以在明细先新增一个总价金额字段,设置汇总至上级字段选择单据头总价,然后新增一个实体服务规则总价=采购数量*含税单价

image.png

问题来源

兄弟们,我新增了一个总价字段,如何让它自动等于采购数量*含税单价 (kingdee.com)


5、  如何设置同个采购组织在不同语言系统使用不同的套打模板(同个用户的情况下)

问题描述:

如何设置同个采购组织在不同语言系统使用不同的套打模板(同个用户的情况下),客户反馈之前是一直可以这样的,但是最近套打模板突然乱掉了,即使切换到了英文系统,套打模板还是中文的套打模板

解决方案

切换套打设计器中的语言设置是可以的选到的。

全部语言就是在任何语言下都可以选到;英文是只在英文环境下选的到。

再给你一个排查思路看下,是不是设置了权限导致当前用户没有英文模板的权限了。https://vip.kingdee.com/knowledge/specialDetail/363025883948262656?category=363047769658638336&id=173452912436035328&productLineId=1

问题来源

如何设置同个采购组织在不同语言系统使用不同的套打模板(同个用户的情况下) (kingdee.com)


6、  单据审核字样打印

问题描述:

套打打印,如何将审核的标签在套打单据上体现出来呢,我在bos套打设计中,在某文本字段或者图片字段取得”数据源“--”印章“---”图章“,但是在打印中还是无法体现出来。求解

解决方案

参考 https://vip.kingdee.com/article/29082

第一种方法:
1、在单元格中添加图片字段;
2、选择属性,选择绑定数据源印章,字段为图章。查看已经审核的单据是否已经有审核图章。
如果没有重复操作一遍!!!
如果还是没有的话提供另一个方法!!!
1、先添加一个文本框;
2、在文本框中再添加图片字段;
3、根据上面第一种方法的步骤绑定图章字段,一般情况下经过这三步就可以了。


问题来源

单据审核字样打印 (kingdee.com)


7、  辅助资料怎么和基础资料属性辅助资料比较

问题描述:

如上图:字段1是基础资料,其属性辅助资料材质,值为B字段2是辅助资料材质,值为A字段3是辅助资料材质,值为B字段1和字段3材质值相同,相同的条件,拿字段2和字段1字段3比较,结果是不一样的(如上图执行结果)问:怎么拿辅助资料怎么和基础资料属性辅助资料比较?

解决方案

  1. 单选辅助资料列表,可以看出,取得内容有编码FNumber,值FDataValue

    image.png

  2. 单选辅助资料列表的编码,按照步骤1中看的,编码可以用FNumber取

    image.png

  3. 物料的属性,单选辅助资料,可以看到这是一个更完整的数据包,其中编码是Number,名称是一个多语言字段。

    image.png

  4. 取物料的属性单选辅助资料的编码,在步骤3的后边再加上.Number

    image.png

  5. 取基础资料属性的单选辅助资料名称,因为是多语言字段,所以会复杂一些,可以参考下,https://vip.kingdee.com/article/248834998093233920?productLineId=1&isKnowledge=2

问题来源

辅助资料怎么和基础资料属性辅助资料比较 (kingdee.com)


8、  设置审批流为什么部门负责人收不到待办任务?

问题描述:

设置审批流为什么部门负责人收不到待办任务???

解决方案

image.png

看看负责人对应的用户,这里是否设置了联系对象

问题来源

设置审批流为什么部门负责人收不到待办任务? (kingdee.com)


9、  怎么获取到过滤界面的分录的值

问题描述:

报表的过滤界面返回值是用

ReportTitles reportTitles = new ReportTitles();

DynamicObject customFilter = filter.FilterParameter.CustomFilter;

那么怎么获取到他customFilter中单据体的值呢

解决方案

customFilter就是一个数据包,根据过滤界面添加的字段实体属性获取值。

如果是单据体的话,也是用单据体的ORM实体名获取值。

entity=customFilter["ORM实体名"] as DynamicObjectCollection;

问题来源

怎么获取到过滤界面的分录的值 (kingdee.com)


10、  想要实现数量字段乘以数量字段等于数量字段

问题描述:

二次开发单据中,想要实现 数量A * 数量B = 数量C,拉了三个数量字段,但在A和B配置值更新后,填写A或B都无效果,公式是“ 数量C=数量A * 数量B"。另外测试了 数量C=数量A * 2",也无效果,请问数量字段不能乘以数量吗?

解决方案

实体服务规则中的前置条件设置 数量A=数量Aor数量B=数量B

问题来源

想要实现数量字段乘以数量字段等于数量字段 (kingdee.com)


11、  套打平台,如何根据条件判断打印不同文字内容?

问题描述:

比如某单据有个布尔型的字段,如果勾选是,就打印一行字“请联系客户咨询色带事宜…… ”,如果勾选 否,则打印空白

解决方案

在套打上定义实体动态字段

image.png

套打的时候使用定义的字段即可

image.png

问题来源

套打平台,如何根据条件判断打印不同文字内容? (kingdee.com)


12、   汇报关系维度解析不到参与人:[财务]-[上一步处理人岗位]-[直接上级

问题描述:

门店店长上级是门店会计,而且有人任岗门店会计,但是为什么解析不到呢?

解决方案

实际看看你的实际情况,应该是汇报关系与岗位啥的没有定义清除导致的

缺省方案:汇报关系维度解析不到参与人:[行政]-[上一步处理人岗位]-[直接上级] (kingdee.com)

也可以参考一下这个回答

问题来源

汇报关系维度解析不到参与人:[财务]-[上一步处理人岗位]-[直接上级] (kingdee.com)


13、   在付款申请单处理进行审批同意的时候,有提交、上查、转发、加签这些按钮怎么添加呢

问题描述:

在付款申请单处理进行审批同意的时候,有提交、上查、转发、加签这些按钮怎么添加呢

解决方案

加签 转发

image.png
在流程设计中,审批动作上,勾选【允许加签】【允许转交】

提交 是默认自带的,是流程的 提交

上查

  1. 首先,你要保证,你表单 【菜单集合】中,这些按钮存在,并且设置可见

  2. 在【流程配置中心】-【流程节点界面配置】- 在对应的节点,勾选对应的 按钮显示
    image.png

问题来源

在付款申请单处理进行审批同意的时候,有提交、上查、转发、加签这些按钮怎么添加呢 (kingdee.com)


14、 打印表格换页后 第二页没有表头字段

问题描述:

image.png

解决方案

套打模板里选中表头,设置每页出现

image.png

问题来源

打印表格换页后 第二页没有表头字段 (kingdee.com)


15、  流程设计服务动作缺少‘状态装换至-提交’等动作

问题描述:

我有个账套有这个动作,有个账套没有,是什么原因

解决方案

我有个账套有这个动作,有个账套没有,是什么原因

问题来源

流程设计服务动作缺少‘状态装换至-提交’等动作 (kingdee.com)


16、  如何让确认收入方式为验收时安装方式必录,签收时不必录啊

问题描述:

image.png

解决方案

BOS对单据头写实体服务规则,当确认收入方式为验收时安装方式必录,不等于验收时不必录1670566100008.png1670566127196.png

问题来源

如何让确认收入方式为验收时安装方式必录,签收时不必录啊 (kingdee.com)


17、 怎么在列表实现合并标题行

问题描述:

图所示是单据体的合并,我想在列表也实现,请问怎么操作?

解决方案

相邻字段标题命名为A&B,A&C样式,就可以组合表头显示,如下图示例:

image.png

image.png

问题来源


18、 某个节点审核时 某个字段要放开(可以修改),如何设置呢

问题描述:

已经在bos的状态列表里取消控制的勾选了,但是单子上还是不能修改


image.png

解决方案

您是说的工作流提交到某个节点了,该节点的参与人需要修改某些字段是吧。

可以在流程配置中心,找到对应的流程模板打开,点击流程节点界面配置,选择对应的节点修改字段的显示及锁定即可

image.png

问题来源


19、  审批流 被驳回时 怎么发邮件给发起人 并抄送相关签核人员 ?


问题描述:

如题,因为公司生产人员提交采购申请单,被老板驳回后,经常不看系统自带的消息功能,而直接再次提交,现在需求如题:

我已尝试在 终审节点 后面增加消息结点,但是,只有审核通过了,才会走消息结点;

怎么设置成驳回后,才走消息结点呢?

另外,消息标题 和 消息内容 可以自定义吗?如下图:


image.png


image.png

解决方案

你改成工作流,在节点上加个消息试试

image.png

问题来源

审批流 被驳回时 怎么发邮件给发起人 并抄送相关签核人员 ? (kingdee.com)

20、  Bos启动开发环境浏览器报错

问题描述:


{"actionname":"ShowErrMsg","params":[{"errorTitle":"金蝶温馨提示: 应用服务器发生错误,请联系系统管理员检修!","errorInfo":"发生时间:\t21:28:01\r\n错误编号:\t500\r\n错误信息:\t“Kingdee.BOS.Contracts.ServiceFactory”的类型初始值设定项引发异常。\r\n===================================================\r\n调用堆栈:\r\n\r\n   在 Kingdee.BOS.Contracts.ServiceFactory.GetDataCenterService(String ServerUrl)\r\n   在 Kingdee.BOS.ServiceHelper.DataCenterService.GetManagementDataCenterContext(String ServerUrl)\r\n   在 Kingdee.BOS.ServiceHelper.DataCenterService.GetDataCentersFromMCByParam(DCListParam param)\r\n   在 Kingdee.BOS.Web.HTML.MobilePageBase.initWithContext(HttpRequest req, String& sacctid)\r\n   在 Kingdee.BOS.Web.HTML.MobilePageBase.InitParameter(HttpRequest req)\r\n   在 Kingdee.BOS.Web.HTML.HTML_Index.PageLoad(EventArgs e)\r\n   在 Kingdee.BOS.Web.HTML.MobilePageBase.Page_Load(Object sender, EventArgs e)\r\n   在 System.Web.UI.Control.OnLoad(EventArgs e)\r\n   在 Kingdee.BOS.Web.HTML.HTMLBase.OnLoad(EventArgs e)\r\n   在 System.Web.UI.Control.LoadRecursive()\r\n   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)\r\n

\r\n发生时间:\t21:28:01\r
错误编号:\t500\r
错误信息:\t“Kingdee.BOS.Contracts.ServiceFactory”的类型初始值设定项引发异常。\r
===================================================\r
调用堆栈:\r
在 Kingdee.BOS.Contracts.ServiceFactory.GetDataCenterService(String ServerUrl)\r
在 Kingdee.BOS.ServiceHelper.DataCenterService.GetManagementDataCenterContext(String ServerUrl)\r
在 Kingdee.BOS.ServiceHelper.DataCenterService.GetDataCentersFromMCByParam(DCListParam param)\r
在 Kingdee.BOS.Web.HTML.MobilePageBase.initWithContext(HttpRequest req, String& sacctid)\r
在 Kingdee.BOS.Web.HTML.MobilePageBase.InitParameter(HttpRequest req)\r
在 Kingdee.BOS.Web.HTML.HTML_Index.PageLoad(EventArgs e)\r
在 Kingdee.BOS.Web.HTML.MobilePageBase.Page_Load(Object sender, EventArgs e)\r
在 System.Web.UI.Control.OnLoad(EventArgs e)\r
在 Kingdee.BOS.Web.HTML.HTMLBase.OnLoad(EventArgs e)\r
在 System.Web.UI.Control.LoadRecursive()\r
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)\r\n"}]}

解决方案

分析处理过程

1、确认k3cloud站点可以正常访问;

2、打开事件查看器,查看windows日志-应用程序下,有如下报错;

~44)J_6Z5VH1~9N4{0@JAD0.png

image.png

3、根据如上报错,检查开发环境启动参数设置,如下图所示;

image.png

修改为下图这样;

image.png

4、然后再启动开发环境,还是有报错,此时事件查看器的报错变成了;

“未能加载文件或程序集Oracle.DataAccess.dll ……

5、然后,在应用的k3cloud目录下,把ORA开头的组件全部删除掉就可以了。

比如,下图这样的目录;

image.png

image.png



问题来源

Bos启动开发环境浏览器报错 (kingdee.com)

【第9期】


1、  如何让固定文本根据套打参数内容自动衔接在一起,使它连接在一块,中间不产生空白间隙?

问题描述:


 企业版/标准版/BOS平台/套打平台

解决方案

直接用一个文本控件即可实现

方法一,使用前缀和后缀实现

image.png

方法二,使用GetDataSourceValue函数拼接,类似于下图,参考案例:https://vip.kingdee.com/article/137611800287477504?productLineId=1&isKnowledge=2。

image.png

问题来源

如何让固定文本根据套打参数内容自动衔接在一起,使它连接在一块,中间不产生空白间隙? (kingdee.com)


2、  GetDataSourceValue怎么设置日期格式

问题描述:

GetDataSourceValue取的是日期的值,在这个函数里面可以设置格式吗?

解决方案

GetDateSourceValue("数据源标识","字段标识","格式")


可以参考GetValue("字段标识","格式"),格式的获取方法参考:套打GetValue取数函数允许传入格式化字符串

3、 钉钉审批界面,字段值能否调整?该怎么调整

问题描述:






image.png

解决方案

你是调整字段位置还是需要添加字段,

image.png

可以通过移动平台单据启用设置调整相关配置。

4、  工序计划列表插件不能继承重载,求解答

问题描述:

插件要实现的功能:点击列表原有的某个菜单,判断条件,满足条件就取消菜单的原操作,不满足条件执行菜单原来的功能


方法1:python


def BarItemClick(e):
	if e.BarItemKey == "tbBtnToStart":
		this.View.ShowMessage("开工菜单被点击")
		e.Cancel = True
	else:
		this.View.ShowMessage("其他菜单被点击")
		return


上述代码,如果条件成立,实际并没有取消原来的操作



方法2:C#

public class ClassName:AbstractListPlugIn
    {
        public override void BarItemClick(Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e)
        {
            if (e.BarItemKey.Equals("tbBtnToStart"))
            {
	      e.Cancel = true;
                this.View.ShowMessage("开工菜单被点击");
            }
	  else
	  {
	      base.BarItemClick(e);
	  }
        }
    }


在使用这个插件前,我是先将原有的插件勾选去掉了,勾选了本插件

执行结果是,条件成立时,菜单操作确实被取消了,但是当条件不成立时,重载的原有方法base.BarItemClick(e)并没有被执行,就是说这样做了后,原插件里面的所有功能都失效了

解决方案


image.png

这样要继承工序计划列表的插件

image.png

base的时候才会走原来的逻辑

问题来源

工序计划列表插件不能继承重载,求解答 (kingdee.com)


5、   应付单和采购订单上的含税价格不同时,走审批流该怎走

问题描述:

 应付单和采购订单上的含税价格不同时,走审批流该怎走

解决方案

分别在收料通知单、采购入库单、应付单上新增采购订单价格(单价字段),由采购订单的含税单价一路携带至应付单,流程配置中心设置启动条件,高级里面设置含税单价<>采购订单价格,启动审批流,不满足进行传统审批

问题来源

应付单和采购订单上的含税价格不同时,走审批流该怎走 (kingdee.com)


6、 想请教一下,采购订单工作流连线上设置了条件赠品就审核,非赠品会流向下一个节点,发现单据实际上已经审核了但流程还在审核中

问题描述:

上图中的流转条件:

解决方案

可以在“完成”节点,拖一个“服务”,然后“调用操作”选择“审核”,系统到这个节点时就会自动调用单据上的审核按钮

1669593559354.png

问题来源

想请教一下,采购订单工作流连线上设置了条件赠品就审核,非赠品会流向下一个节点,发现单据实际上已经审核了但流程还在审核中 (kingdee.com)


7、 采购价目表明细行做过二次开发,批量引入报小数位数不一致

问题描述:

image.png

解决方案


1、如果要按excel导入,需要整理单价,金额,逻辑关系;


2、或建议 直接新增录入,使用块粘贴,批量复制进去;(推荐)

问题来源

采购价目表明细行做过二次开发,批量引入报小数位数不一致。求大佬帮忙。。。 (kingdee.com)



8、   小数字段怎么默认显示-1

问题描述:

 小数字段怎么默认显示-1

解决方案

image.png

问题来源

小数字段怎么默认显示-1 (kingdee.com)


9、  自己新增的bos单据。源单子单据体下推目标单的单据体。bos配置不行要写插件

问题描述:

目前场景是这样的。比如的备料单的子单据有10条分录,我在采购订单上点选单按钮跳出备料单的列表,我就勾选了5行,如何把这个5行下推到采购订单上。一下代码只能把所有的子单据都下推了。不能单独下推勾选的



public override void OnBeforeGroupBy(BeforeGroupByEventArgs e)


        {

            SubEntryEntity subEntity = e.SourceBusinessInfo.GetEntity("F_JSRJ_SubEntity") as SubEntryEntity;

            // 强制修改单据体行合并依据 // 默认为源单单据体内码Key,现在需要修改为子单据体内码Key           

            // 子单据体内码Key的格式:实体Key_实体内码字段名,如 FSubEntity_FDetailId

            e.EntryGroupKey = string.Format("{0}_{1}", subEntity.Key, subEntity.EntryPkFieldName);


        }


解决方案

//先定义需要下推的数据list

List<ListSelectedRow> sourceData = new List<ListSelectedRow>();

//然后循环将需要下推的数据插入

Dictionary<string, string> Option = new Dictionary<string, string>();

Option.Add("FBillHead", FID);

Option.Add("FEntity", FENTITYID);

Option.Add("FSubEntity", FSUBENTITYID);


sourceData.Add(new ListSelectedRow( FID , FENTITYID ,0,FormId) 

{ EntryEntityKey = "FSubEntity", FieldValues = (Dictionary<string, string>)ObjectUtils.CreateCopy(Option) });


问题来源

自己新增的bos单据。源单子单据体下推目标单的单据体。bos配置不行要写插件。这个有老哥知道吗 (kingdee.com)


10、   手动新建了一个单据转换后,现在无法删除了

问题描述:

image.png

解决方案

image.png

问题来源

手动新建了一个单据转换后,现在无法删除了 (kingdee.com)


11、 打开简单账套报表能不能让他不要自动弹出过滤框

问题描述:

打开的时候会自动弹出公共过滤,我想让他不弹出怎么设置

解决方案

选项,公共参数里面这个参数勾去掉看下

image.png

问题来源

打开简单账套报表能不能让他不要自动弹出过滤框? (kingdee.com)


12、  实体类型MATERIAL中不存在名为JGG的属性,如何判断是否有对应的属性?

问题描述:

保存插件提示, foreach (DynamicObject mtrl in e.DataEntitys)                {  if(mtrl["JGG"]!=null){}}mtrl["JGG"]!=null  判断不了 直接把报错,用什么语句能判断是否含有对应属性?

解决方案

保存插件提示, foreach (DynamicObject mtrl in e.DataEntitys)                {  if(mtrl["JGG"]!=null){}}mtrl["JGG"]!=null  判断不了 直接把报错,用什么语句能判断是否含有对应属性?

问题来源

实体类型MATERIAL中不存在名为JGG的属性,如何判断是否有对应的属性? (kingdee.com)


13、   BOS 插件开发 单据上获取与设置 物料辅助属性

问题描述:


BOS 插件开发 单据上获取与设置  物料辅助属性:

    如果物料启用了辅助属性,怎样通过插件代码 获取辅助属性值对象 及 设置辅助属性对象;

    比如一个物料有辅助属性 长度和尺寸两个属性 

    1、怎么通过代码设置组合 

    2、打开一张单据 怎么读取已有的组合与各项属性值


解决方案

插件对辅助属性取值赋值可以参考这个:

  如何给辅助属性赋值、获取辅助属性值

问题来源

BOS 插件开发 单据上获取与设置 物料辅助属性 (kingdee.com)


14、  BOS控件-公式编辑器如何使用?V7.3

问题描述:

请问:BOS控件 公式编辑器,是如何使用的?适用范围?有示例教程吗?V 7.3谢谢

解决方案

此控件BUG太多,各种卡死,不推荐使用。


【二开案例.单据插件.公式编辑器】https://vip.kingdee.com/article/107125623499270656


公式编辑与计算应用

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

问题来源

BOS控件-公式编辑器如何使用?V7.3 (kingdee.com)


15、  BOS里新建自定义的【直接SQL账表】,过滤条件 无法设置

问题描述:

自定义的SQL账表,想通过查询出来的字段,作为过滤条件的字段,但无法设置,请各位大虾帮忙,谢谢!

解决方案

自定义的SQL账表,想通过查询出来的字段,作为过滤条件的字段,但无法设置,请各位大虾帮忙,谢谢!

问题来源

请问下在BOS里新建自定义的【直接SQL账表】,过滤条件 无法设置 (kingdee.com)


16、  单据内如何设置一个字段的值等于另外一个字段

问题描述:

业务场景是这样的,物料上维护了【产能】,想把产能引到生产订单上并套进公式内,结果基础资料属性字段无法套进公式,想在生产订单加一个数字字段,然后数据取基础资料属性字段的值,再套进公式计算,不知道可不可行,老师们帮忙看下,或者有没有更好的解决方法

解决方案

在单据体新增一个小数字段,然后再bos明细单据体新增实体服务规则,前提条件物料编码<>null or 物料编码<>'' or 物料编码<>' ',新增服务计算定义公式的值并填到指定列新增数量字段=物料编码.产能(需设置物料编码引用属性添加产能)

问题来源

单据内如何设置一个字段的值等于另外一个字段 (kingdee.com)


17、 在设置字段值更新清除指定字段值时,没有变化

问题描述:

当审核状态=“C”(已审核)时  将 错误信息中的 文本清空    我这是哪里设置错了吗 为什么没有清空文本呢

解决方案

你这里设置值更新 只能在手工修改单据状态的值时触发,进行提交审核等操作时不会触发,想实现审核时清空某个字段可以做单据头的实体服务规则,并且在打开单据的状态下操作才能触发,在列表的操作是无法修改单据内的内容的

问题来源

在设置字段值更新清除指定字段值时,没有变化 (kingdee.com)


18、  信息中心如何添加菜单

问题描述:

image.png

解决方案

$Y~BW)F[B52HP%9}VXZ@$QD.png

这个单据是动态表单调用了单据,找到这个单据,然后按照图中所示添加就行了

19、  怎么校验明细表中两个字段的值是否一致

问题描述:

在保存单据的时候我想校验这两个字段是否一致,若不一致,则不允许提交。

解决方案

可以在保存的操作上加一个单据合法性校验,当字段1<>字段2,勾选检验表达式为真时校验,设置提醒字段1值不等于字段2不允许保存!

image.png

问题来源

怎么校验明细表中两个字段的值是否一致 (kingdee.com)


20、  物料可以根据物料分组,然后物料属性、存货类别、仓库取固定值吗?

问题描述:

物料可以根据物料分组,然后物料属性、存货类别、仓库取固定值吗?我写了一个实体服务规则,前提条件是【物料分组.编码=""】然后用的是”计算公式到指定列“,设置了如下公式:物料属性=2(2是枚举值)AND 存货类别.编码=""(引号里面取存货类别编码)AND 仓库.编码=""(引号里面取仓库编码)。但是这个公式不生效,我把前置条件放到后面公式也不生效,想请问一下应该怎么设置才生效。

解决方案

可以在物料分组设置值更新,选择物料分组带出默认物料属性和存货类别可以,默认仓库暂时没有测出来

一些常用的字段比较可以参考这个:小技巧 - 判断条件中,如何比较字段值 (kingdee.com)


image.png

image.png


问题来源

物料可以根据物料分组,然后物料属性、存货类别、仓库取固定值吗? (kingdee.com)


21、   现在BOS中配置 其他出库单.明细.物料编码=采购订单.明细.BOM版本.子物料编码 但是下推出来只有一条子物料

问题描述:

自己配置了一个单据转换规则   采购订单  下推   其他出库单

在物料清单中配置了BOM版本

在采购订单中选了父物料

下推其他出库单  想要显示子物料

现在BOS中配置   其他出库单.明细.物料编码=采购订单.明细.BOM版本.子物料编码

但是下推出来只有一条子物料  怎么能显示全部子物料呢

解决方案

要展开BOM显示子项物料,单据转换配置无法实现这个功能。

需要配合单据转换插件才能完成。

单据转换插件开发思路:

OnAfterCreateLink(表单服务策略之前)或者AfterConvert(表单服务策略之后)中获取下推出来的下游单据数据包,然后逐行根据携带的父项物料和BOM版本获取子项展开,通过关联复制行的操作为下游单据新增子项物料的数据行。

单据转换插件通过关联复制实现拆分行可参考:【API下推接口】---实现一行拆成多行

问题来源

现在BOS中配置 其他出库单.明细.物料编码=采购订单.明细.BOM版本.子物料编码 但是下推出来只有一条子物料 (kingdee.com)


22、  如何在标准产品的弹出动态表单功能中,增加一个自定义的字段参数?

问题描述:

标准功能是:应收票据列表点击背书按钮时,弹出背书动态表单页面。

求助:我在应收票据和动态表单都加了一个自定义字段,如何才能把这个字段添加进去呢?标准功能源码中已经构造dynamicFormShowParameter并传值了,怎么才能把我的自定义字段也传进去呢?


标准功能的源码如下:

image.png

解决方案

继承原插件,重写BarItemClick,原插件中的代码抄写过来,然后修改自己要改的部分。

如果你只需要重写背书的功能可以加个判断:

if(菜单标识=背书) 抄写原插件的代码+修改  else 执行base.BarItemClick

编辑于 2022年11月08日 16:36:34

追问

谢谢您的回答,不过我看这个源码并没有简单写在BarItemClick里,重写起来比较复杂。


image.png


目前想到了一个折中方法,传不过去就主动查,在动态表单插件中以源单ID执行sql查询,再取出想要的值

问题来源

如何在标准产品的弹出动态表单功能中,增加一个自定义的字段参数? (kingdee.com)


23、  如何设置把审批流节点中的人返回到单据头字段

问题描述:

如图:哪条审批流生效时,把审批流中的操作人员返回到检验单单据头质检员字段中image.png

解决方案

用工作流,审批流不行,审批人可以写入单据上的某个字段,这里选择写入质检员字段即可image.png

问题来源





24、   请问BusinessDataServiceHelper.Save的具体使用方法,以及可以它可以校验什么

问题描述:

 请问BusinessDataServiceHelper.Save的具体使用方法,以及可以它可以校验什么

解决方案

BusinessDataServiceHelper.Save(

                        this.Context,//服务上下文

                        meta.BusinessInfo,//单据的元数据信息

                        billObjs.ToArray(),//数据包集合

                        saveOption,//保存选项参数

                        "Save");//操作代码

这个是调用单据保存操作的服务方法,有了单据实体数据包的情况下,可以通过调用此方法来生成单据,或者修改单据,此方法会触发校验规则、服务插件。比直接操作数据库更可靠。


问题来源

请问BusinessDataServiceHelper.Save的具体使用方法,以及可以它可以校验什么 (kingdee.com)


25、 销售出库单 物料规格行能否固定显示3行,有的规格字数太多了,不要显示那么多

问题描述:

企业微信截图_16673615295946.png


解决方案

应该只能固定行高,并且不要勾选自适应了;

行高自适应一定是全部显示出来的

image.png

问题来源

销售出库单 物料规格行能否固定显示3行,有的规格字数太多了,不要显示那么多 (kingdee.com)



【第8期】

1、  如何根据单据体列值,自动更新单据头字段值

问题描述:

如图:当 收料通知单 单据体中的【来料检验】列 只要有一行没打勾,那么单据头自定义字段【是否有免检】的值自动更新为“是”image.png

解决方案

通过实体服务规则

条件: len(filter(lambda x :x.  FCheckInComing=0,  FDetailEntity ))>0

image.png


然后,单据头字段=true 

附条件测试:


image.png

问题来源如何根据单据体列值,自动更新单据头字段值 (kingdee.com)


2、  审批节点如何设置单据头选择的多个用户来审批

问题描述:

例如:采购付款申请单

单据头多选基础字段关联的用户,选择多个审批人

希望在审批节点中解析出这几个人

或者有其他方案可以实现也可(大致需求就是,希望可以选择多个人审批)

解决方案

流程设计技巧:当前审批者可在单据上指定流程下一节点的处理人,限定可选员工范围,支持指定多名员工作为处理人

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


3、  怎么才能知道插件所引用的是哪一个编译文件



问题描述:

二开一个之前做过的功能,想它的插件,但是不知该引用哪一个dll,原来的插件配置信息也看不出来。有什么方法?

解决方案

在BOS里面看插件的配置应该可以看出来是哪个dll文件的。

编辑于 2022年09月28日 16:29:35

追问

image.png


4、  操作列表审核加了自动下推,为什么设置的前提条件不生效?



问题描述:

1.一开始使用小数字段判断,比如金额>0自动下推,但不生效(实际金额>0)2.而后使用基础资料ID、Number作为条件皆报如下错误3.总而言之,为什么这个操作列表里的前提条件不生效?要如何编写表达式使得满足条件再自动下推?(单据转换的 选单条件会弹报错框,不用)

解决方案

参考这个帖子,改用lambda函数来判断,因为单据体有多行:

遍历单据体,lambda函数的应用 (kingdee.com)

5、  如何设置 【单据编号】+【单据体行序号】 赋值给单据体的自定义字段



问题描述:

如下图,【检验单】是由【收料通知单】审核时自动生成,希望生成检验单后,能实现检验单【单据编号】+【单据体行序号】赋值给【检验批号】字段。单据是自动生成,值更新不起作用。单据转换表单服务及实体服务规则也无效image.png

解决方案

比较可靠的方案是做一个保存操作插件,在保存操作后更新一下单据体的字段。这样只要是正常保存生成的单据无论新增、下推、接口写入、插件写入等各种场景都可以保证有值。

操作插件参考:https://vip.kingdee.com/article/88675379426211072?productLineId=1&isKnowledge=2

6、  会计科目的每个核算维度怎么用括号括起来



问题描述:

image.png

解决方案

可以使用套打的实体动态字段实现。

核算维度格式化的相关资料请参考,https://vip.kingdee.com/knowledge/specialDetail/363025883948262656?category=363048037708301568&id=362533453499719168&productLineId=1。

另附相关实体动态字段资料,https://vip.kingdee.com/article/263951470566038016?productLineId=1。

7、  sql报表套打模板设置金额字段预览就报错



问题描述:

报错截图如下,去掉金额字段就正常预览[object Object]

解决方案

SQL账表的金额字段,是不是存在为null的数据,建议在SQL中做一下转换ISNULL(FXXAmount,0)

8、  bos开发的单据,为什么在单据上日期为空 还有金额和税率怎么设置必填



问题描述:

bos开发的单据,为什么在单据上日期为空 还有金额和税率怎么设置必填image.png

解决方案

  • 日期应该是业务日期,你可以设置缺省值当天;

  • 审核日期,去单据状态中,已审核那行有个可以选择审核日期,这样审核就会自动赋值审核日期;

  • 金额和税率设置必填,保存添加单据合法性校验,设置金额和税率大于0,否则报错;

9、 如何让一个文本字段只能输入数字,不能输入其他字符和特殊符号



问题描述:

如何让一个文本字段只能输入数字,不能输入其他字符和特殊符号

解决方案

可以使用正则表达式校验哈 :

保存增加校验规则-正则表达式校验


参考控制6位数字控制:^\d{6}$

图片.png


10、  bos自定义单据配置了源单单据类型,下推之后为空



问题描述:

  1. bos自定义单据配置了源单单据类型,下推之后为空,

  2. 如何过滤掉其他期间的单据不能下推自定义单据,

e85301bbe0d0abbff31955086d0f78b.jpg

image.png

解决方案

问题1:

你圈出来的源单类型,不是单据转换规则中的【单据类型映射】,

这个源单类型指上游单据的名称,记录的是单据标识FormID 。

在下游单据的【源单编号】字段数据中,绑定一下【源单类型】,下推的时候就自动有值了。

image.png

问题2:

过滤掉其他期间的单据不能下推自定义单据,这个可以在【选单条件策略】中设置附加条件,附加条件使用的是SQL过滤条件的写法,将允许下推的条件写进去即可。

【第7期】

1、  过滤条件GetValue()怎么获取基础资料的名称?

问题描述:

如图,我想用券号(基础资料)的客户属性(F_KH文本字段)去过滤单据头的基础资料客户(F_KH),如果用GetValue函数,我猜测获取的是ID,和我后台表的客户属性文本字段无法匹配,请问怎么用GetValue获取基础资料的名称?

image.png

解决方案

券号中的F_KH,携带到单据上,例如字段名是:F_JH_KH,过滤设置:FName like '%GetValue(F_JH_KH)%'

问题来源

过滤条件GetValue()怎么获取基础资料的名称? (kingdee.com)

2、单据转换找不到新增字段?

问题描述:

销售订单扩展在基本信息新增一个字段想携带到下游发货通知单上,单据转换找不到对应字段。请问是什么原因,该如何解决?

解决方案


  1. 重启IIS看看;

  2. 确认一下字段功能控制中有没有选。(默认是勾选的)

  3. 字段类型不一致,字段类型和目标单据不一样,所以不能映射,看不到!

    image.png

问题来源

单据转换找不到新增字段? (kingdee.com)


3、  DynamicObjectCollection 插件中更新后,前面界面没有显示,需要重新打开后,才能正常显示

问题描述:

foreach (DynamicObject item in entryColl)

            {

                item["ICMOOrgId_Id"] = saleOrg["Id"];                

                item["SupplyOrgId_Id"] = 0;

               

            }



this.View.UpdateView("FSaleOrderEntry");


前面的界面数据都不显示

解决方案

最简单的一种方法:

假设基础资料标识为Material

赋值:item["Material_Id"]="";

保存前重新加载一下:

            #region 刷新单据
            IDBService dbService = ServiceHelper.GetService<IDBService>();
            dbService.LoadReferenceObject(this.Context, new DynamicObject[1] { "单据实体"}, "单据实体".DynamicObjectType, false);
            #endregion

问题来源

DynamicObjectCollection 插件中更新后,前面界面没有显示,需要重新打开后,才能正常显示 (kingdee.com)


4、 如何设置当采购订单原数量不为空的时候,采购订单变更单变更后后的数量不能超过原数量

问题描述:

image.png

解决方案

这个相当简单,直接去保存里面写,单据合法性校验!

如:len(lambda x: x.原采购数量标识 <> null and x.原采购数量标识 < x.采购数量标识, 单据体标识) > 0

如果这个为真,设置立即终止就可以了!

望采纳,在家没有办法bos截图,抱歉!

也可以这样写:

len(x.原采购数量标识 for x in 单据体标识 if  x.原采购数量标识  and x.原采购数量标识 < x.采购数量标识 >0

可以参考我写的文章:实体服务规则之Python表达式(2) (kingdee.com)

问题来源

如何设置当采购订单原数量不为空的时候,采购订单变更单变更后后的数量不能超过原数量 (kingdee.com)

5、  保存校验写上创建日期='2022-09-15'校验不生效,如何处理

问题描述:

保存校验写上创建日期='2022-09-15'校验不生效,如何处理

解决方案

FCreateDate.ToString('yyyy-MM-dd') = '2022-09-15' 创建日字段后面加个格式;

问题来源

保存校验写上创建日期='2022-09-15'校验不生效,如何处理 (kingdee.com)


6、 销售订单列表的“获取即时库存”按钮能否在BOS里设置只匹配计划跟踪号跟物料编码

问题描述:

场景是客户销售订单下的辅助属性到生产阶段有修改可能,所以该按钮匹配库存时经常匹配不到,销售订单列表的“获取即时库存”按钮能否在BOS里设置只匹配计划跟踪号跟物料编码

解决方案

按照截图所示,去掉对应的匹配字段就可以了。获取的库存是根据匹配维度组合的合计库存数。

image.png


问题来源

销售订单列表的“获取即时库存”按钮能否在BOS里设置只匹配计划跟踪号跟物料编码 (kingdee.com)


7、 销售订单的单据日期默认为当天,可否设置当天下午4点之后创建的销售订单,单据日期自动设置为明天

问题描述:

在BOS设计器里公式应该怎么写?

解决方案

https://vip.kingdee.com/article/287962818798461440?productLineId=1

以前有人提过类似的,参考这个试试

问题来源

销售订单的单据日期默认为当天,可否设置当天下午4点之后创建的销售订单,单据日期自动设置为明天 (kingdee.com)


8、  表单内码如何获取?webapi请求格式如何理解?

问题描述:

如图,下方代码示例部分如何对应到上方的请求参数说明,比方说fromid之后应该是data的参数,为什么代码示例里直接跳过就到了createorgid,还有createorgid之后的数值“0”是代表什么呢?还有number之后的冒号,最重要的是表单内码怎么知道的呢?数据库查询吗?

解决方案

CreateOrgId 冒号后面的0:创建者组织内码(非必录),0的话代表不进行筛选,意思面向所有组织,单据编码或者内码传一个就可以了,不是必须得内码!


  • 编码查看:

image.png

  • 内码查看:

image.png

  • 创建者组织内码和编码一起查:

    image.png

问题来源

表单内码如何获取?webapi请求格式如何理解? (kingdee.com)


9、   服务器插件 获取报表标识

问题描述:

如图,单据插件中调用  this.View.BillBusinessInfo.GetForm().Id 获取单据标识,简单账表的服务器插件中如何实现相同功能,获取报表标识。

解决方案

报表服务插件是获取不到View的。用:this.BusinessInfo.GetForm().Id

问题来源

服务器插件 获取报表标识 (kingdee.com)


10、  直接sql账表如何设置多个关键字

问题描述:

直接sql账表如何设置多个关键字,在不写存储过程的情况下如何实现,写存储过程又如何实现,另外多个关键字是 并且 的筛选关系还是或者的筛选关系,还是说这个关系可以自定义,另外为啥勾选可以多选,关键多勾选多个后确认返回无数据,麻烦大神系统讲解一下。下面是我的简单sqlselect c.fname '销售组织' ,b.fname  '客户',a.fdate '客户下单日期',d.bettime '客户上次下单距今天数'from T_SAL_ORDER a left join T_BD_CUSTOMER_L b  on  a.FCUSTID = b.FCUSTIDleft join T_ORG_ORGANIZATIONS_L c  on  a.FSALEORGID = c.Forgid and c.FLOCALEID =2052left join  (select FID,datediff(day,a.fdate,getdate())as bettime from T_SAL_ORDER a  ) d on a.fid = d.fidwhere b.FNAME like '%#fname#%'

解决方案

关键字就是sql 变量,看下这两个帖子

https://vip.kingdee.com/article/70257419061640704?productLineId=1

储存过程直接sql 案例

https://vip.kingdee.com/article/70269544173883136?productLineId=1

问题来源

直接sql账表如何设置多个关键字(菜鸟提问版) (kingdee.com)


11、  把A账套某单据的xml直接覆盖给B账套,导致B账套打不开该单据,也删不掉扩展

问题描述:

A账套对某单据做了较多拓展配置,不想打包部署,就偷懒直接复制xml脚本,然后粘贴覆盖了B账套的同单据,现在B账套该单据无法打开,扩展也无法删除,怎么办呢?

解决方案



这个问题我之前也遇到过,1、直接复制xml后,忘记将单据唯一标识变更与复制单据的唯一码一致,建议后续在复制XML时先修改单据的唯一码,再复制xml,2、对问题单据修改xml中的单据ID即可解决

image.png


image.png

编辑于 2021年11月18日 09:50:26

问题来源

把A账套某单据的xml直接覆盖给B账套,导致B账套打不开该单据,也删不掉扩展 (kingdee.com)


12、  使用WEBAPI保存采购订单,报错“请先选择采购组织”

问题描述:

报错信息:

{"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":null,"Message":"请先选择采购组织","DIndex":0}],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0}}}



FPurchaseOrgId采购组织字段信息用了组织代码和组织内码都试过了都报相同的错,求解

解决方案

组织的业务职能有勾选采购职能吗?

image.png

问题来源

使用WEBAPI保存采购订单,报错“请先选择采购组织” (kingdee.com)


13、  python插件查询sql遍历结果集

问题描述:

python插件查询sql遍历结果集

解决方案

image.png

import clr
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS')
clr.AddReference('System.Data')
clr.AddReference('System')
from System import *
from System.Data import *
from System.Text import *
from System.Collections import *
from System.Collections.Generic import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Orm.Metadata.DataEntity import * 
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn import * 
from Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args import * 
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.ServiceHelper import * 
from Kingdee.BOS.Core.List.PlugIn import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
def BarItemClick(e):
    #第三步:添加业务逻辑代码
    if e.BarItemKey=="tbtesttest":   
        billObj = this.View.Model.DataObject;
        billno=billObj["F_ora_Date"];
        orgobj=billObj["F_ora_OrgId"];
        yzphobj=billObj["f_ora_yzph"];
        orgid=("{0}").format(orgobj["id"]);
        yzphid=("{0}").format(yzphobj["id"]);
        sql=("""/*dialect*/ select u3.FCATEGORYID f_ora_wllb,t2.fname F_ora_wlfz ,u4.Fnumber F_ora_yzpch,sum(u2.F_ORA_AMOUNT) as fje
from T_SP_PICKMTRL as u1
left join T_SP_PICKMTRLDATA as u2 on u1.fid=u2.fid   -----------简单生产领料-------------
left join T_BD_MATERIALBASE  as u3 on u3.FMATERIALID=u2.FMATERIALID 
left join ora_t_FARMERSID as u4 on u4.fid=u1.F_ORA_BASE
left join T_BD_MATERIAL as u5 on u5.FMATERIALID=u3.FMATERIALID
left join T_BD_MATERIALGROUP_l as t2 on t2.fid=u5.FMATERIALGROUP
left  join T_BD_MATERIALCATEGORY as t3 on t3.FCATEGORYID=u3.FCATEGORYID
left join ora_t_Cust100032 as t4 on t4.F_ora_OrgId=u1.FPRDORGID  and t4.F_ora_yzph=u1.F_ORA_BASE
where u1.FPRDORGID={0} and u1.F_ORA_BASE={1} and u1.fdate<'{2}'
group  by u3.FCATEGORYID,u1.FPRDORGID,t2.fname,u4.Fnumber
	""").format(orgid,yzphid,billno)
        dy=DBUtils.ExecuteDynamicObject(this.Context, sql)#获取查询数据
        if dy is not None and len(dy) > 0 : 
           docEntry =this.View.Model.DataObject["ora_Cust_Entry100024"];  
           for row in dy:
               docEntryRow=DynamicObject(docEntry.DynamicCollectionItemPropertyType)
               docEntryRow["F_ora_llje"] = row["fje"];
               docEntryRow["F_ora_wlfz"] = row["F_ora_wlfz"]  
               #其他字段赋值
               docEntry.Add(docEntryRow)
           this.View.UpdateView("F_ora_Entity")#更新目标单据体

问题来源

python插件查询sql遍历结果集 (kingdee.com)


14、  如何算出两个日期之间的天数并在此基础上加上2天呢?

问题描述:

搜索社区是有相关帖子的但是现实审核中就没法查看了,,,就是申请日期为23日,到货日期为30日,按照=(到货日期-申请日期).Days这个公式算出来是6天嘛,但是客户的需要是要包括上申请当天和到货当天的,然后我摸索这修改公式,改一次换一个报错,改一次换一个报错,次次不一样……次次都是新花样……求指教!盼大佬们回复!image.png

解决方案

FEDate = FSDate.AddDays((FMDate - FSDate).Days + 2)

问题来源

如何算出两个日期之间的天数并在此基础上加上2天呢? (kingdee.com)


15、  请问工作流消息提醒频率能否设置?比如设置2分钟提醒一次

问题描述:

【产品版本:云星空企业版8.0】【问题描述】请问工作流消息提醒频率能否设置?比如设置2分钟提醒一次

解决方案

image.png

在管理员系统中的执行计划列表中修改间隔时间

问题来源

请问工作流消息提醒频率能否设置?比如设置2分钟提醒一次 (kingdee.com)


16、  单据审核按钮中的合法性校验前置条件如何添加字段不包含某个值

问题描述:

业务场景:当单据头文本A字段不包含(广东公司)或者不等于广东测试公司时,校验文本A是否等于文本B,前置条件中文本A不包含(广东公司)怎么写?

测试了写notlike报错

解决方案

这个是金蝶bug,用的iron python 引擎解析 不了like,用find或者in 就没有问题了。

判断文本字段里面是否包含某个字符:find('XXX')>=0,XXX代表所需要判断的具体文本。

in 的话这样写: '广东公司' not in F_ZQI_Text2

find的话这样写:F_ZQI_Text2.find('广东公司' ) < 0

问题来源

单据审核按钮中的合法性校验前置条件如何添加字段不包含某个值 (kingdee.com)



【第6期】

1、  Excel模板打印如何加入当前打印人以及打印时间

问题描述:

套打报表打印人和打印时间好加,Excel模板打印在怎么加入打印人以及打印时间

解决方案

1> 在BOS中先拖一个打印时间到单据上,

pic20220827091755.jpg


2> 然后在excel中正常调用字段就可以了。

pic20220827092154.jpg


那个打印人,要判断一下是不是单据创建人或者审核人就等同于打印人。哪个是,就取那个的字段即可。


问题来源

Excel模板打印如何加入当前打印人以及打印时间 (kingdee.com)


2、  枚举类型如何编写设置它的默认值

问题描述:

image.png

解决方案

comboList.SetValue(默认值)望采纳,谢谢!

问题来源

枚举类型如何编写设置它的默认值 (kingdee.com)


3、  DynamicObjectCollection 插件中更新后,前面界面没有显示,需要重新打开后,才能正常显示

问题描述:

foreach (DynamicObject item in entryColl)

            {

                item["ICMOOrgId_Id"] = saleOrg["Id"];                

                item["SupplyOrgId_Id"] = 0;

               

            }



this.View.UpdateView("FSaleOrderEntry");


前面的界面数据都不显示

解决方案

最简单的一种方法:

假设基础资料标识为Material

赋值:item["Material_Id"]="";

保存前重新加载一下:

            #region 刷新单据
            IDBService dbService = ServiceHelper.GetService<IDBService>();
            dbService.LoadReferenceObject(this.Context, new DynamicObject[1] { "单据实体"}, "单据实体".DynamicObjectType, false);
            #endregion

问题来源

DynamicObjectCollection 插件中更新后,前面界面没有显示,需要重新打开后,才能正常显示 (kingdee.com)

4、  Python插件如何实现按指定【编码规则】生成单据编号?

问题描述:

想参考这个【https://vip.kingdee.com/article/216229928683802880?productLineId=1&isKnowledge=2】帖子的方法,改成Python脚本实现,但是“ var billNos = BusinessDataServiceHelper.GetBillNoByField(this.Context, this.View.BillBusinessInfo, new[] { this.Model.DataObject }, true, ruleId, field, null);”这个改写的时候,new[] { this.Model.DataObject }这个不知道怎么改。改成[this.Model.DataObject]这样会报错。要怎么改这个呢?


解决方案

new[] { this.Model.DataObject}放到Python里面,参考如下写法:

billObjs=List[DynamicObject]();

然后调用方法时候传入:billObjs.ToArray()

问题来源

请教一下,Python插件如何实现按指定【编码规则】生成单据编号? (kingdee.com)



5、  python 插件 中 使用ViewService Load单据数据时报错,是否需要引入什么组件和对象类型

问题描述:

请问怎样使ViewService Load单据正确,是否需要在插件前部clr.AddReference 区 和 from * import * 区 加载和引入什么组件和实体对象


动态表单代码如下:

def AfterCreateNewData(e):
global CXSDD_List;
#将父页面获取到的参数逐个赋值到动态表单的字段上
arrObjsID = CXSDD_List.Split(',');

# 下面的三行代码在 定义viewService时报错,
 materialMetadata = MetaDataServiceHelper.Load(this.View.Context, "PQZP_Cust_SeOrder");
 viewService = ViewService();
 #viewService = ServiceFactory.GetViewService(this.Context);
objs0 = viewService.Load(this.Context, arrObjsID  ,     materialMetadata.BusinessInfo.GetDynamicObjectType());
    
请问怎样使其正确,是否需要在插件前部clr.AddReference 区 和 from * import * 区 加载和引入什么组件和实体对象

解决方案

ViewService需要添加引用: 

clr.AddReference('Kingdee.BOS.App.Core')

from Kingdee.BOS.App.Core import *

问题来源

python 插件 中 使用ViewService Load单据数据时报错,是否需要引入什么组件和对象类型 (kingdee.com)

6、  工作流里面的调用操作怎么添加?

问题描述:

image.png

解决方案

流程模板配置


1、针对流程模板所选的入口单据,配置该入口单据的流程模板可以使用的操作;


2、流程节点:【流程节点】处添加的操作,可以作为流程节点审批项表单操作;


image.png 


image.png


image.png

image.png



3、审核对象:【审核对象】处添加的操作,可以作为流程审核对象的操作;


image.png


image.png


4、附件对象:【附件对象】处添加的操作,作为流程附件的操作;


image.png

image.png


问题来源

请问工作流里面的调用操作怎么添加? (kingdee.com)


7、 如何给单据头字段标题(内容)加颜色

问题描述:


新添加一个字段,要如何给它加颜色呢,单据头

Snipaste_2022-08-03_11-51-48.png


解决方案

#引入clr运行库

# -*- coding: utf-8 -*-

import clr


clr.AddReference('Kingdee.BOS')

clr.AddReference('Kingdee.BOS.Core')

from Kingdee.BOS.Core import *

from Kingdee.BOS.Core.Bill import *

from Kingdee.BOS.Core.DynamicForm.PlugIn import *



def AfterBindData(e):

        #设置单据头字段前景色

        this.View.GetControl("FBillTypeID").SetCustomPropertyValue("ForeColor", "#FF3300");


问题来源

如何给单据头字段标题(内容)加颜色 (kingdee.com)


8、  修改发货通知单上发货内容的编辑长度后报错

问题描述:

image.png

解决方案

BOS打开发货通知单,点击上方菜单的“编辑”-“数据结构变更”,弹出窗口中,下方新增行,就可以选择到字段编辑长度与数据库长度不一致的字段,然后在“变更长度”位置输入需要调整后的数据库长度(建议和字段编辑长度一样),最后点击“导出脚本”:

image.png


导出后,保存脚本并拷贝到服务器的数据库里面执行即可:

image.png


如果版本过低,菜单里面没有这个功能,也可以直接执行如下语句(下面语句长度是255,可以根据需要设置的长度来设置):

EXEC p_AlterColumn 'T_SAL_DELIVERYNOTICE', 'F_UFAE fhnr', 'NVARCHAR(255)', 'NULL', '0100', '';

问题来源

修改发货通知单上发货内容的编辑长度后报错 (kingdee.com)


9、  打印单据的时候能不能不弹出选择打印机的弹框

问题描述:

image.png

解决方案

pic20220815161953.jpg


这样设置,经测试可行,不会弹出。

问题来源

打印单据的时候能不能不弹出选择打印机的弹框 (kingdee.com)


10、  自定义获取数据按钮,点击按钮将某个基础资料的所有内容获取插入到表体对应字段如何实现

问题描述:

自定义获取数据按钮,点击按钮将某个基础资料的所有内容获取插入到表体对应字段如何实现

解决方案


11、   辅助资料字段,如何前台默认显示编码呢 ? 没地方可以配置,默认是显示的名称,是否能二开呢?

问题描述:

image.png


image.png

解决方案

可以单独加一个【基础资料属性】类型的字段,把辅助资料编码显示出来。

image.png

问题来源

辅助资料字段,如何前台默认显示编码呢 ? 没地方可以配置,默认是显示的名称,是否能二开呢? (kingdee.com)



12、  为什么物料仓库页签的序列号管理默认是不可见?设置了可见性前台也看不见?

问题描述:

为什么物料仓库页签的序列号管理默认是不可见?设置了可见性前台也看不见?

解决方案


13、 之前bos里应付单上增加了一个字段,现在想知道这个具体是什么时候创建的,如何知道

问题描述:

之前bos里应付单上增加了一个字段,现在想知道这个具体是什么时候创建的,如何知道

解决方案

在BOS中右击应付单,选择“元数据修改记录”:

image.png



系统会列出每一个保存过的版本,逐一选择,点击查看内容:

image.png


假定这个字段的标识是F_KD_BaseX,看哪个版本开始可以查找到,就知道对应的增加时间了:

image.png


如果经常有这个需求,最好改为使用协同开发平台,每次修改前要签出,修改后要签入,且必须填写修改内容,这样后续就可以快速知道谁在什么时候修改了什么内容。

问题来源

之前bos里应付单上增加了一个字段,现在想知道这个具体是什么时候创建的,如何知道 (kingdee.com)


14、  单据转换找不到新增字段

问题描述:

销售订单扩展在基本信息新增一个字段想携带到下游发货通知单上,单据转换找不到对应字段。请问是什么原因,该如何解决

解决方案

  1. 重启IIS看看;

  2. 确认一下字段功能控制中有没有选。(默认是勾选的)

  3. 字段类型不一致,字段类型和目标单据不一样,所以不能映射,看不到!

    image.png

问题来源

单据转换找不到新增字段? (kingdee.com)


15、   请问审批流,谁提交的,他的项目经理审核是这样设置工作流吗

问题描述:

image.png

解决方案

您这样设置的话是不对的。您的项目经理定义是什么呢?是某个部门的负责人吗?或者您的岗位有设置了汇报关系这些吗?

image.png

image.png

16、  物料新增根据物料分组判断启用批号



问题描述:

设置根据物料分组启用批号,但新增时先选择物料分组在新增物料时不会启用批号,(勾选了新增还是不会启用批号image.png),这个怎么设置,或者通过其他必填字段进行值更新物料分组。

解决方案

比较省事的办法是设置在“物料名称”的值更新里面,因为新增物料肯定会修改物料名称的,这样必然会触发。或者可以做个实体服务规则,前提条件为物料分组=***。

17、  星空版本8.0.0.202202,lambda获取采购订单的单据体物料分组的名称时报错,希望大佬指导一下



问题描述:

取值的判断条件为当有任何物料分组名称为'办公辅料'时成立

 len(filter(lambda x : (x.FMaterialId.FMaterialGroup.ToString <> '办公辅料'), FPOOrderEntry)) > 0


-----------结果--------------

实体服务规则[当物料类型不为办公辅料时锁定价格录入]发生异常:
异常信息如下:[条件表达式结果转换失败:len(filter(lambda x : (x.FMaterialId.FMaterialGroup.ToString <> '办公辅料'), FPOOrderEntry)) > 0]前往金蝶云社区获取更多帮助
错误ID:8327F173FBAC3CFD7BDC7E4540ED1178
[{"operation":"PUR_PurchaseOrder.LoadData"}]
发生时间: 2022-08-27 14:09:06
错误编号: EntityRuleExecuteError
错误信息: 实体服务规则[当物料类型不为办公辅料时锁定价格录入]发生异常:
异常信息如下:[条件表达式结果转换失败:len(filter(lambda x : (x.FMaterialId.FMaterialGroup.ToString <> '办公辅料'), FPOOrderEntry)) > 0]

解决方案

不能这样toString。

试试这样:

len(filter(lambda x : (x.FMaterialId.FMaterialGroup.FName<> '办公辅料'), FPOOrderEntry)) > 0

编辑于 2022年08月29日 11:24:53

追问
异常信息如下:[条件表达式结果转换失败:len(filter(lambda x : (x.FMaterialId.FMaterialGroup.FName <>  '办公辅料'), FPOOrderEntry)) > 0]前往金蝶云社区获取更多帮助


大佬你好,还是报错


追答

物料类型是单据头字段还是单据体字段

追问

单据体字段

追答

物料来类型 是单据体字段,物料也是单据体字段,执行单据体实体服务规则的时候,实体数据包是明细数据行,不能执行这种循环处理的Lambda表达式

18、  不进行二开的情况下,启用审批流,在系统或者企业微信审核单据时,能否查看到其关联的单据



问题描述:

比如审核付款申请单的时候,能有一个地方可以查看到这张付款申请单对应的采购订单,以及审批流对接的企业微信审批时也能否看到关联的其他单据

解决方案

进入“业务审批显示设置”,找到“付款申请单”,双击进入,在“关联查询”页签,勾选“启用上查”,即可看到关联的采购订单:

image.png

19、  怎么终止一个审批流



问题描述:

怎么终止一个审批流

解决方案

3人赞同了该回答

image.png

流程管理中心,可以终止

需要有管理中心权限

20、  表单插件,读写数据库?



问题描述:

根据这个帖子中提到的功能https://vip.kingdee.com/article/241144379807768576?productLineId=1&isKnowledge=2在单据中使用匹配库存服务,当单据体有多行时,是只有选中行会根据库存进行拆行还是单据体总所有原有单据行都会执行这个拆行动作?

解决方案

所有行都会,不只是选中行。会自动匹配仓库、仓位、批号等维度并返回,如果同一物料有多行,则按照顺序先分配给前面的行,再分配给后面的行,直至库存分配完毕。





【第5期】

1、  提交的审批流程,某一个审批节点卡住了(审批人休假),如何跳过这个节点,或者换人审批

问题描述:

系统目前是发起人提交单就直接流到了销售经理(例如:张三  休假),如果重新提单可以指定销售经理李四吗?如果有方案能绕过销售经理最好

image.png


解决方案

1、可以设置,超时自动审批,或者审批节点,把两个人的名字都加上,其中一个人审核就流转到下一个节点。

2、可以开通云之家、钉钉等手机端审批。在手机上审批、

3、流程管理中心,跳转到下一节点


问题来源

提交的审批流程,某一个审批节点卡住了(审批人休假),如何跳过这个节点,或者换人审批 (kingdee.com)


2、  二开报表分配权限这个地方是空的怎么添加操作

问题描述:

image.png


解决方案

用Administrator账户登录,创建一下对应单据的权限对象,

image.png

然后BOS中选上

image.png

image.png

问题来源


二开报表分配权限这个地方是空的怎么添加操作啊?跪求大佬解答 (kingdee.com)


3、  如何实现单据暂存时,形成单据编码?V7.3

问题描述:

咨询:

   单据有编码规则。

   系统默认的都是单据保存时时,形成单据编码。

问:如何实现,单据点击暂存时,可以形成单据编码?


解决方案


4、  发布 正式环境 失败

问题描述:

本地构建子系统,发布正式环境后正式环境相关表已创好,但是svn无内容,bos设计器,系统中的单据类型等等看不到,   子系统创建者账号无正式环境bos账号,是在本地库中写好 ,再由有正式账号的账号操作编译上传的,一开始以为是这个问题所以给账号授权后二次发布还是同样问题


解决方案

非元数据的业务数据,需要添加预置数据(反写规则、转换规则、工作流等)或者SQL脚本构建到补丁包中

image.png

问题来源

发布 正式环境 失败 (kingdee.com)



 5、销售出库单合并套打,总金额无法合计

问题描述:

销售出库单金额合计栏用财务信息的价税合计数据源之后,合并套打又预览不了,怎么处理


解决方案

1、检查下销售单合计金额字段绑定的字段ID属性。

2、在套打模板中引用和单据中一致的字段源和绑定对应属性。

3、如果以上方法还不能解决,BOS平台上复制销售单套打模板,重新添加绑定金额字段即可。


问题来源

销售出库单合并套打,总金额无法合计。 (kingdee.com)


6、  根据基础资料字段动态过滤数据

问题描述:

根据基础资料动态过滤基础资料列表,不写插件通过BOS设计器是否能够实现

image.png

image.png

解决方案

可以的 在bos里有过滤 

-- 使用基础资料属性过滤

FMaterialClass.FNumber = 'GetValue(FPolicyMaterialId.F_PAEZ_SecCode)'

-- 使用基础资料过滤

FFirstLevel = 'GetValue(FFirstLevel)'


问题来源

根据基础资料字段动态过滤数据 (kingdee.com)


7、  新增的基础资料 审核报错实体类型FA_ASSETTYPE中不存在名为AssetCodeRuleID_Id的属性

问题描述:

image.png


解决方案

找到这个基础资料 增加对应字段的引用属性。

审核时应该是配置了相关基础资料的字段的逻辑,结果没有进行引用,导致无法解析报错。


问题来源

新增的基础资料 审核报错实体类型FA_ASSETTYPE中不存在名为AssetCodeRuleID_Id的属性 (kingdee.com)


8、  审批流设置了消息节点,但是流程找不到消息节点参与人

问题描述:

采购申请单上,审批流设置了消息节点,参与人设置了“部门”-“明细信息-采购部门”-全部员工;但是流程开始后找不到参与人,无法通知。


解决方案

检查一下采购部门有没有关联的任岗信息;可以把采购部的员工设置成一个角色,然后【参与人】选择这个角色试试。

image.png

问题来源

审批流设置了消息节点,但是流程找不到消息节点参与人 (kingdee.com)


9、  销售合同单据增加附件列表后,如何在销售合同列表可以显示附件的说明字段?或过滤里按附件说明过滤?V7.3

问题描述:

咨询:    我在BOS里,销售合同表头增加一个页签,增加一个 附件列表想:合同列表可以显示附件的说明字段 或按附件的说明字段过滤。如何实现?

image.png

解决方案

这个附件列表的数据是打开单据动态加载的,在单据的实体结构里面是没有的。所以单据列表应该无法显示这个。

按照下面的方式试试:

①可以用单据的表关联,附件表:T_BAS_ATTACHMENT,构建成一个视图。

②然后在单据上加一个单据体绑定这个视图,列表根据这个视图单据体进行过滤。

③这个单据体不能对附件进行操作,所以打开单据还是现实你现在加的这个附件列表。

④视图单据体的的页签默认隐藏,只用于列表过滤显示。


问题来源

销售合同单据增加附件列表后,如何在销售合同列表可以显示附件的说明字段?或过滤里按附件说明过滤?V7.3 (kingdee.com)


10、  物料附件能添加多张图片吗?在哪里设置?

问题描述:

物料需要添加多张附件,多张图片,但现在只能上传一张

解决方案

标准产品物料上有一个系统自带的图片,如果一个物料有多张图片需要上传,可以扩展添加多个图片字段。

image.png

问题来源

物料附件能添加多张图片吗?在哪里设置? (kingdee.com)


11、  星空工作流可否设置满足一个条件就一级审核,满足一个条件4级审核,客户要求的,采购申请单

问题描述:

星空工作流可否设置满足一个条件就一级审核,满足一个条件4级审核,客户要求的,采购申请单


解决方案


12、  如何下推单据并且触发单据的实体服务规则或者值更新

问题描述:

有没有简单实用的办法,不用写插件


解决方案

单据转换插件里面是不能触发字段的值更新和实体服务规则的。

值更新和实体服务规则必须依赖于单据的维护界面View触发。

所以在单据转换过程中要触发实体服务规则和值更新只有以下几种方法:

①在单据转换规则->表单服务策略中,把值更新和实体服务规则实现的功能配置进去。

②就是楼主所说的方法,转换插件中构建下游单据View,进行调用(涉及到触发值更新插件时,只能使用此方法触发)

③把值更新和实体服务规则要实现的功能,在单据转换插件中再实现一遍。(不灵活,尽量不用)


问题来源

各位大佬,如何下推单据并且触发单据的实体服务规则或者值更新,我现在都是用下推插件构建view,赋值触发,感觉这样太麻烦了 (kingdee.com)


13、  客户的合同总价是变化的,客户要加修改人,每次单据体可能不同的人新增行,写上变动价格,但是每次都默认是最后一个修改人

问题描述:

image.png

解决方案


14、  组合替代,能否默认 整批替代?

问题描述:

整批替代:满足同一笔需求时,要么使用主物料,要么使用替代物料。


针对一笔需求,先考虑主物料能否单独满足需求,主物料不足时,考虑替代料能不能单独满足需求,

image.png

做BOM时候维护的局部替代,没有保存按钮,只有返回,是动态表单吗,是否可以做实体服务规则校验?

image.png

解决方案

组合替代下默认用整批替代这个换个思路想一下、组合替代主物料的行数一定是大于等于2的所以可以用主物料的行数做个判断

如:在主物料和单据头上个添加一个数值类型的字段、主物料上数值默认为1、设置上级汇总至单据头上添加的数值字段。 这样主物料选择多行时、单据头上的汇总字段会大于等于2.

然后在单据头上做一个实体服务规则、汇总字段大于等于2时、替代策略默认等于整批替代即可。

image.png

问题来源

https://vip.kingdee.com/questions/335466965944669440/answers/335843676469999360


15、  二开的单据是需要手工配置业务操作互斥吗?手工配置很容易出错?请问老师们有什么更好的办法吗?

问题描述:

二开的单据是需要手工配置业务操作互斥吗?手工配置很容易出错?请问老师们有什么更好的办法吗?


解决方案


 16、协同 点击 同步业务对象 到数据中心 时 提示当前业务对象版本高于数据中心版本

问题描述:

image.png


解决方案


17、   已过期的流程单据,在流程管理中心的【跳到下一节点】怎么批量处理

问题描述:

能不能做一个批量处理跳到下一个节点的按钮。之前的单据二次审核没有处理,遗留太多【1W条数据】。工单结案,当事人已经不能点审核通过了,只能在后台手工点【跳到下一节点】完成流程;我找不到流程管理中心在BOS里面界面,不知道它的表单叫什么

image.png


解决方案


18、  在即时库存明细里,增加入库天数的显示(库龄)

问题描述:

image.png


解决方案

(@currentshortdate - 入库日期).Days


问题来源

我想在即时库存明细里,增加入库天数的显示(库龄) (kingdee.com)


19、 消息节点收到的消息能否进行单据操作

问题描述:

消息节点收到的消息能否进行单据操作实例:采购申请工作流增加消息节点,用户收到消息后可以查看相关单据,但是无法进行单据下推等操作


解决方案

一般情况下,是审核完毕后,才能进行单据相关 下推等操作;


如果需要在流程中,手工点下推:


1、流程配置中心,添加按钮,勾选,保存;


2、因为标准产品是 审核完毕后,才可以下推,流程中,审核放在中间节点,最后节点不要放审核;

image.png

image.png


image.png

问题来源

写文章 (kingdee.com)


20、  怎么添加一个操作时间

问题描述:

比如我对一个生产订单进行了反执行的操作,怎么添加一个时间字段关联到我操作的时间,方便以后查询


解决方案

生产订单的行执行和反执行,本质上是对明细字段【业务状态】进行不同状态的设置。

状态类型的字段可以绑定操作人和操作日期:记录谁在什么时间将状态值变成了这个状态。

如果勾选后面的【清空操作字段】:表示状态值变成该状态时,清空绑定的操作人和操作日期。

image.png

问题来源


怎么添加一个操作时间 (kingdee.com)


21、  工作流消息提醒频率能否设置?比如设置2分钟提醒一次

问题描述:

【产品版本:云星空企业版8.0】【问题描述】请问工作流消息提醒频率能否设置?比如设置2分钟提醒一次


解决方案

在管理员系统中的执行计划列表中修改间隔时间

image.png

问题来源

请问工作流消息提醒频率能否设置?比如设置2分钟提醒一次 (kingdee.com)



【第4期】

1、  怎么设置审批删除物料的时候通知指定人员

问题描述:

怎么设置审批删除物料的时候通知指定人员,或者自己也行,下面再加一个通知


解决方案

https://vip.kingdee.com/school/282213682564546560?productLineId=1

了解一下业务预警

image.png

image.png

主要亮点就是在指定操作时,设置消息提醒

问题来源

怎么设置审批删除物料的时候通知指定人员 (kingdee.com)

2、 如何获取其他单据的BusinessInfo

问题描述:

设置的套打模板,第一页没啥问题,打到第二页的时候没有空出首行标题行,打印内容直接跟标题行重叠了,请问可以怎么处理呢

解决方案

选中表头这一行,右键属性,设置在每一页都出现。


pic20220605213620.jpg


问题来源

为什么套打模板第二页没有空出首行标题栏呢? (kingdee.com)


3、 如何设置套打自动行高

问题描述:

标准版有没有设置自动行高,如何设置,求截图


解决方案


4、 如何获取其他单据的BusinessInfo

问题描述:

我想根据付款单的转换关系表LK 找到上游单据的主表和明细表,都涉及哪些表和字段


解决方案

FSBillId:上游单据ID

FSID:关联的上游单据明细ID

FSTABLENAME:关联上游单据的实体表,也就是说FSID是FSTABLENAME这个表的主键。

楼主的问题应该是:那么FSBillId是哪个表的主键呢?


1.根据LK表中的FRuleID找到源单的FormId

select b.FSOURCEFORMID

from T_STK_INSTOCKENTRY_LK a

inner JOin T_META_CONVERTRULE b on a.FRULEID= b.FID

2.通过代码根据FormID,从元数据中获取单据主表,参考代码如下:

meta = MetaDataServiceHelper.Load(this.Context, formID);

tb=meta.BusinessInfo.GetEntity("FBillHead").TableName;


通常,直接通过SQL好像不能查出单据主表,这个是在元数据XML中的...

结合老师@为了理想而窒息 的回答,可通过SQL解析XML的函数来处理,如非必要,还是建议用代码取元数据信息。

我尝试写了一个SQL供参考:

select b.FSOURCEFORMID,

Replace(Replace(Cast(c.FKERNELXML.query('//HeadEntity//TableName')  AS NVarchar(100)),'<TableName>',''),'</TableName>','') 单据主表

from T_STK_INSTOCKENTRY_LK a

inner JOin T_META_CONVERTRULE b on a.FRULEID= b.FID

inner join T_META_OBJECTTYPE c on c.FID=b.FSOURCEFORMID 

问题来源

如何根据单据的转换关系表LK找到上游单据的主表和明细表? (kingdee.com)


5、下载附件发生错误

问题描述:

文件下载发生错误,错误提示信息:Amazon.S3.AmazonS3Exception: Access Denied 

解决方案

一般来说,部分电脑出现403是因为服务器拒绝了你的地址请求,很有可能是你根本就没权限访问网站。一般都是本地网络环境配置有问题导致。

【解决方法】

1、检查IE浏览器的代理设置,和正常的电脑比对一下。

打开系统自带的IE浏览器,点击右上角的【齿轮】图标--【Internet选项】-【连接】-【局域网(LAN)设置,看看里面是否勾选了代理服务器,如果有,去掉勾选。

2、如果上面没有解决,可以点击开始--运行里面输入cmd回车后进入命令窗口输入语句ipconfig /flushdns后按回车即可(清除本地DNS缓存内容)。或者在客户端电脑上做下hosts解析,添加服务器的IP和计算名或者域名的绑定,如果做hosts解析请参考:

客户端上,进入C:\WINDOWS\system32\drivers\etc,用记事本打开hosts文件,可以看到其中有以下语句:【127.0.0.1 localhost】在其下放空一行输入:IP地址(中间用Tab键)计算机名(服务器) 


3、如果上述步骤不能解决,可以尝试完全卸载重装下客户端。

4、如果依然不行,尝试变通处理,使用 https://实际金蝶云地址/K3cloud/html5浏览器登录。

问题来源

下载附件报错403 (kingdee.com)


6、  为啥选择物料按个回车就这样了

问题描述:

image.png


解决方案

取消物料编码,关键物料


自定义的单据如何实现输入物料编码以后自动换行功能



自定义单据在输入物料编码以后自动新增一行,可以在单据中的【明细信息】页签设置【关键字段】为【物料编码】


  1. 用administrator登录BOS设计器;

  2. 以下以销售订单为准,视图依次点击【供应链】-【销售管理】,右侧扩展【销售订单】(若已扩展则双击打开已扩展的单据);

  3. 单击左上角【编辑】-【批量编辑字段属性】进入下图界面;

  4. 单击【明细信息】,右侧找到【关键字段】,选择值为【物料编码】关闭编辑界面保存单据即可。

image.png

【注意】

如果不需要根据物料编码字段自动换行而是根据其他字段的话,都可以在此地方设置,不需要自动换行功能就设置为空值即可

问题来源

为啥选择物料按个回车就这样了 (kingdee.com)


7、 直接SQL报表双击打开动态表时,不能打开对应的动态表

问题描述:

直接SQL报表双击打开动态表时,不能打开对应的动态表


解决方案

先改一下SQL报表的表单插件基类,报表的插件基类不是AbstractDynamicFormPlugIn,

改成AbstractSysReportPlugIn,这也是AbstractDynamicFormPlugIn的一个派生类。

image.png


改完之后再试试,如果还是有问题的话:

方便打断点的话,跟一下代码,看看代码有没有执行到弹出动态表单这一步。


用代码加载动态表单的数据,建议写到AfterCreateNewData事件里面。

问题来源

直接SQL报表双击打开动态表时,不能打开对应的动态表 (kingdee.com)


8、 插件如何实现生成待办任务

问题描述:

使用插件该如何生成首页的待办任务


解决方案

系统中的待办任务,主要 是指审批流和工作流的节点任务处理。可以用插件生成一个任务单据触发单据提交进入流程,变通实现待办任务。

另外,如果场景比较简单的话,可以发普通消息。

参考:插件发送普通消息


问题来源

插件如何实现生成待办任务 (kingdee.com)


9、 如何实现复制出一张凭证,复制出来的凭证日期自动取当月最后一天呢?

问题描述:

比如有一张凭证是5月2日的,现在是六月份,希望实现的效果是复制这张5月2日的凭证,复制出来的凭证日期为6月30日(每个月的最后一天)


解决方案

是只要复制的才自动变成当月最后一天吗,直接新增凭证需要设置成 当月最后一天吗?

①首先,可以设置实体服务规则,设置日期字段=当月最后一天。

可以参考:https://vip.kingdee.com/article/157354?productLineId=1

image.png

②那么还需要判断,当前单据打开是新增打开,而且是复制新增,而不是修改,也不是直接新增。

可以加一个隐藏字段,整数类型,默认是0。当保存成功之后,就自动+1,然后复制的时候判断这个字段是否为0。

如果是0,表示是直接新增,否则就是复制或者修改

还需要根据OPERATIONSTATUS  判断是新增,还是修改。

OPERATIONSTATUS  =0;//新增
OPERATIONSTATUS  =1;//查看
OPERATIONSTATUS  =2;//修改

问题来源

如何实现复制出一张凭证,复制出来的凭证日期自动取当月最后一天呢? (kingdee.com)


10、 客户是甲供材,都有对方的物料名,请问报表怎样显示对方物料名,是不是输入在外购入库单上

问题描述:

客户是甲供材,都有对方的物料名,请问报表怎样显示对方物料名,是不是输入在外购入库单上


解决方案

客户物料对应表


1、用管理员登录,启用客户物料对应


2、设置客户物料对应关系


3、录入单据自动带出客户对应的物料编码和名称


具体操作,可参考原文附件word:


原文链接:https://vip.kingdee.com/article/229178973794791936?productLineId=1


问题来源

客户是甲供材,都有对方的物料名,请问报表怎样显示对方物料名,是不是输入在外购入库单上 (kingdee.com)


11、 设置值更新后测试表达式成功,但是实际去做单的时候没效果

问题描述:

在值更新事件中设置了 金额=单价*数量   ,表达式测试的时候输入完单价和数量,金额不会自动跳出,要点击【测试】才能跳出,而且在金蝶云里输入完单价和数量也不会跳出


解决方案

数量  单价 字段上都添加 值更新事件;

image.png

并且都勾选 即时触发更新

问题来源

设置值更新后测试表达式成功,但是实际去做单的时候没效果 (kingdee.com)


12、应付单税率和含税单价必录怎么设置,bos看不到必录勾选

问题描述:

应付单税率和含税单价必录怎么设置,bos看不到必录勾选


解决方案

变通策略  在单据类型里勾选必录image.png

问题来源

应付单税率和含税单价必录怎么设置,bos看不到必录勾选 (kingdee.com)


13、在流程设计中心的某个流程中将单据摘要设置为某个单据的某个金额字段

问题描述:

在流程设计中心的某个流程中将单据摘要设置为某个单据的某个金额字段。现在想问一下当我提交的单据被打回时,我修改了单据金额,单子的金额都变为我修改后的。可是待处理任务中的单据摘要的金额还是我第一次填写的金额,想问一下怎么让单据摘要中的金额跟着变化


解决方案

当发起流程后会形成流程实例,可以理解为根据当前单据上的字段创建了一个新的单据进行记录;当前单据修改的时候这个新单据上的内容是不会变的。

如果需要更新,可以在业务单据保存上写个操作插件,保存时查询对应流程实例更新里面对应的值。

问题来源

在流程设计中心的某个流程中将单据摘要设置为某个单据的某个金额字段 (kingdee.com)


14、 部分字段设置必录不生效,是何原因

问题描述:

我在凭证摊销新增整数字段,设置必录。保存以后,再打开必录的勾就小时了。在操作列表增加保存检测该字段的必录性,也不起作用


解决方案

整数字段是不能用必录设置来控制的,因为数值类型的字段默认是0,没有空值。

可以在校验规则中设置,单据合法性校验,控制数值字段不能为0

问题来源

部分字段设置必录不生效,是何原因 (kingdee.com)


15、 新建了一个简单账表,如何双击某一行,然后联查单据

问题描述:

新建了一个简单账表,如何双击某一行,然后联查单据


解决方案

查看全部1个回答

金蝶云社区-拿了你的糖
拿了你的糖

 该答案已被采纳

1人赞同了该回答

image.png

初始化时赋值这俩属性,同时在临时表中对应字段赋值

image.png

FFORMID:联查单据的唯一标识

FMaterialId:单据的内码字段

上例为联查物料

问题来源

新建了一个简单账表,如何双击某一行,然后联查单据 (kingdee.com)


16、 客户要把2年数据导入星空,我看星空格式很复杂,采购入库单,按照引入模板引出,列数100行,有没有简单的办法吗

问题描述:

客户要把2年数据导入星空,我看星空格式很复杂,采购入库单,按照引入模板引出,列数100行,有没有简单的办法吗


解决方案

三种方式:

1、手工录入:单据多的情况下不建议,工作量较大

2、根据星空标准导入模板导入:单据少的情况下不建议,单据多的情况下建议,把模板研究透操作很快的,可以设置引入模板的格式,没有必要都让系统印出来的,把必录的字段和自己所需要的字段引出来就OK的

3、通过二开插件建立两个系统的关系,通过插件传输:成本较高,不太建议

问题来源

客户要把2年数据导入星空,我看星空格式很复杂,采购入库单,按照引入模板引出,列数100行,有没有简单的办法吗 (kingdee.com)


17、 单据中,系统预置的日期字段,基本为长时间,怎么把它们改为短日期的格式显示?

问题描述:

单据中,系统预置的日期字段,基本为长时间,怎么把它们改为短日期的格式显示?


解决方案


18、 自定义接口怎么记录日志

问题描述:

自定义接口怎么记录日志


解决方案

  1. 日志可以记录再服务器文件中:https://vip.kingdee.com/article/131461420491214848?productLineId=1&isKnowledge=2

  2. 可以在BOS中绘制日志记录单据

  3. 开启日志库,在BOS中绘制日志单据,例如系统的WEBAPI日志一样。

    https://vip.kingdee.com/article/294829557080136704?productLineId=1

编辑于 2022年06月30日 14:13:10

问题来源

自定义接口怎么记录日志 (kingdee.com)


19、 单个元素格如何凸显颜色

问题描述:

想实现生产工序进度表中根据不同条件设置不同颜色


解决方案

BOS平台找到所需设置表单;编辑-批量编辑字段属性-表单属性-列表条件格式化,可以整行或者单个显示。

问题来源

单个元素格如何凸显颜色? (kingdee.com)


20、 单据插件值更新事件 获取单据体分录行号

问题描述:

在单据体分录中修改字段值,获取被修改的分录行row 行号,或者说有无方法可以直接让单据体 值更新作用于更新值的分录行


解决方案

DataaChanged事件中e. Row就是发生值更新的行号,注意:从0开始的。

问题来源

单据插件值更新事件 获取单据体分录行号 (kingdee.com)



【第3期】

1、 如何获取其他单据的BusinessInfo

问题描述:

new DynamicObject(businessInfo.GetEntity(PKField).DynamicObjectType)通过上述代码,想在一个表单插件里面给另外一个业务对象的单据体新增行,但是我不清楚该如何获取另外一个对象的Buinessinfo


解决方案

两种方式:

  1.  根据单据ID或内码获取到数据包(写法我忘了,但是有方法,论坛找找,找到了可以分享分享),然后调用新增行的方法,构建数据包保存就可以。

  2.  直接调用单据修改API。



问题来源

如何获取其他单据的BusinessInfo (kingdee.com)


2、ERP 云星空BOSS直接账表关键字有几种类型,查询条件可以设置成多条件模糊查询么,要怎么才能完善直接账表的查询条件

问题描述:


假如想要实现单据号模糊或者是客户名称模糊查询,且日期条件还能并列,要怎么实现多条件单条件都能查询。

image.png


解决方案

模糊查询建议使用文本关键字,

例如,设置一个关键字:单据编号包含,#FBillNoKey#

在SQL中就是:Where FBillNo like '%#FBillNoKey#%'

客户名称类似


问题来源

ERP 云星空BOSS直接账表关键字有几种类型,查询条件可以设置成多条件模糊查询么,要怎么才能完善直接账表的查询条件 (kingdee.com)


3、销售订单MRP运算投放如何把工单的备注弄到生产订单上

问题描述:

image.pngimage.png

解决方案

通过MRP运算模型配置把字段携带到计划订单,在单据转换到生产订单,可以按这个帖子配置https://vip.kingdee.com/school/251391939730144768?productLineId=1


问题来源

销售订单MRP运算投放如何把工单的备注弄到生产订单上? (kingdee.com)


4、 选择基础资料时,希望在bos配置去掉多余的空白界面,不想用户手工去点

问题描述:

1651737602(1).png

解决方案

有两种方法,

方法一,所有用户都隐藏这个,可在参数设置→BOS平台→查询参数→基础资料字段在F8列表多选模式下,隐藏右侧已选列表。勾选这个参数即可。

隐藏右侧已选列表.png

方法二,针对单个用户,点下图绿色,把右边的隐藏,之后关闭弹框,重新进来就会记住这个

关闭可选框.png


问题来源

选择基础资料时,希望在bos配置去掉多余的空白界面,不想用户手工去点 (kingdee.com)


5、7.7做的bos和报表怎样发布到8.0的星空标准版上面

问题描述:

7.7做的bos和报表怎样发布到8.0的星空标准版上面

解决方案

1、BOS单据,发布


https://vip.kingdee.com/school/1057?productLineId=1


https://vip.kingdee.com/article/194016199435304960?productLineId=1



2、报表


一、把dll复制到新服务器BIN目录下

二、恢复之前的账套;

三、注册插件;


问题来源

我7.7做的bos和报表怎样发布到8.0的星空标准版上面 (kingdee.com)


6、如何通过值更新事件设置固定的单据日期

问题描述:

由于某些原因,需要在一个字段上设置上一个值更新事件,想要达到的效果是:填写这个字段的信息就会触发值更新,使单据业务日期取固定值“2022-05-09”,但是值更新的公式怎样设置呢?

解决方案


7、套打数量合计,按照包装物料数量不合计

问题描述:

现有一个这样的需求,客户要求 套打设计中,如果有包装物料的单据,不需要将包装物料的数量,打印到合计中,只需要计算其他非包装物料的合计总数。

解决方案


8、AfterDoOperation这个方法是不是无法在列表里触发,在表单里是可以触发的

问题描述:

写了一个AfterDoOperation审核成功后推送OA消息的方法,在表单里点击审核是可以触发的,但是在列表里,选中这个表单是不会触发的。我想不管在列表审核 还是在表单审核都会触发这个方法该怎么解决,或者有没有什么别的好方法。

解决方案


操作服务插件来做,插件注册在审核操作下面,不管是列表审核还是单据界面审核,调用的都是同一个操作,一个插件就解决问题,不用单据做一个插件,列表再做一个插件。


问题来源


AfterDoOperation这个方法是不是无法在列表里触发,在表单里是可以触发的 (kingdee.com)


9、如何设置按照提交人的部门来设置由谁审批

问题描述:

image.png




解决方案



【操作步骤】

1.  登录K/3Cloud后,在主控台进入【工作流】→【流程设计中心】;

201.png

2.  在流程设计中心界面点击【新增审批流】即弹出流程新增界面,在“入口单据”中选择需要启用审批流的单据,选择流程的模板(选择后也可以修改),点击【确定】,即进入流程设计器界面;(注意:① 需要登录网页版K/3Cloud才可以打开流程设计器,若用客户端登录则不能打开;② 新增界面如果选择“复制指定流程图”即可复制已启用流程,复制后仍需发布

202.png

203.png

3.  在流程设计器中分别双击打开“审批流点”和“终审节点”,在参与人页签设置该节点的审批人,点击【保存】。参与人可以设置“用户”“角色”“岗位”“部门”等,例如:选择角色,则会解析出具有该角色的用户;如果选择岗位,则会解析出当前组织下任该岗位的员工,然后根据员工解析出对应的用户,解析路径为:岗位→员工任岗→员工→用户;

204.png

4.  设置好每个节点参与人后(“开始节点”和“结束节点”除外),先点击左上角保存按钮206.png,然后点击测试按钮207.png,即可针对设计的流程先进行测试;(一般流程发布前都可以先进行测试,如果测试没问题就可以发布

205.png

5.  测试没有问题时,就可以点击发布按钮208.png进行发布,如果该单据是第一次启用审批流,则发布时需要勾选“生成流程模板”点击【下一步】,填写该流程适用的组织信息,以及发起人权限等信息,点击【下一步】再点击【完成】即可。(注意:第一次新增审批流后,一定要发布并生成流程模板,这样单据提交时才能启动审批流

209.png

210.png

211.png


【说明】

工作流新增的方式与审批流类似。


工作流相关帖子




问题来源


如何设置按照提交人的部门来设置由谁审批 (kingdee.com)




10、设置一个校验,当业务日期等于当月第一天的时候,保存单据提示,请问这个当月第一天公式是怎样的呢

问题描述:

设置一个校验,当业务日期等于当月第一天的时候,保存单据提示,请问这个当月第一天公式是怎样的呢

解决方案

 可以在保存操作里设置合法性检查

FDate =@currentshortdate.AddDays((1-float(@currentshortdate.ToString("dd"))))

image.png


问题来源

想设置一个校验,当业务日期等于当月第一天的时候,保存单据提示,请问这个当月第一天公式是怎样的呢 (kingdee.com)


11、设置单据类型为费用应付时,字段必录,但是供应商为某供应商的时候可以不必录

问题描述:

设置单据类型为费用应付时,字段必录,但是供应商为某供应商的时候可以不必录

解决方案

单据实体服务规则处设置

FBUSINESSTYPE ="FY"AND FSUPPLIERID. FNumber <>' gy001'

pic20220526081850.jpg


pic20220526081914.jpg


问题来源


设置单据类型为费用应付时,字段必录,但是供应商为某供应商的时候可以不必录 (kingdee.com)


12、寻找实体上FCustMatID对应的属性描述符失败,实体不存在此属性

问题描述:


寻找实体上FCustMatID对应的属性描述符失败,实体不存在此属性。

清了缓存也不行。麻烦哪位大神帮忙看下!

企业微信截图_16533740663923.png



解决方案

在BOS中打开单据

在批量编辑字段属性中,搜一下FCustMatID,看这个标识应该是客户物料编码

然后检查一下这个字段,看看 绑定实体属性标识是不是"FCustMatID" ,

注意看前面有没有F,如果没有的话加上试试。


问题来源

寻找实体上FCustMatID对应的属性描述符失败,实体不存在此属性 (kingdee.com)


13、多类别基础资料设置显示编码,不显示名称

问题描述:

    如何配置多类别基础资料,设置显示编码不显示名称

解决方案

比如往来单位;BOS设置下名称改成编码

image.png


问题来源多类别基础资料设置显示编码,不显示名称 (kingdee.com)


14、为什么我单据头有这个客户备注字段,然后字段映射关系找不到呢

问题描述:

图片.png图片.png图片.png图片.png

解决方案



15、【补丁】执行扩展包失败:服务器未提供有意义的回复;这可能是由协定不匹配、会话过早关闭或内部服务器错误引起的。

问题描述:


Server stack trace: 

   在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

   在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

   在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)


Exception rethrown at [0]: 

   在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

   在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

   在 Kingdee.BOS.DeployService.Contract.IWebServerDeployer.BeginInstall(InstallationArg arg)

   在 Kingdee.Tools.PackageTool.InstallUtility.InstallAtServer(InstallModel mode, InstallItem installTarget, String batchNum, String uri, IWebServerDeployer svr)

   在 Kingdee.Tools.PackageTool.InstallUtility.DoInstall(String pkgFilePath, InstallModel mode, InstallItem installTarget, PkgTopview tv, String& batchNum)

   在 Kingdee.Tools.PackageTool.UI.MainWindow.<>c__DisplayClass23.<ImplPkgAtServer>b__1a()


解决方案


16、如何设置此项需求,即明细有否,单据头为否;明细全是,单据头为是

问题描述:

image.png

解决方案


17、星空8.0单据转换规则提示不能映射多个子单据体

问题描述:

我在受托加工材料入库单添加了一个应收数量,关联受托加工材料收料单的数量,提示不能映射多个子单据体,这个该怎么解决呀


解决方案


18、套打模板怎么设置可以实现一行明细打印一次,有几行明细就打印几个出来?我设置的标签套打模板

问题描述:

套打模板怎么设置可以实现一行明细打印一次,有几行明细就打印几个出来?我设置的标签套打模板,目前只能打出来明细的第一行的,第二行的打不出来

解决方案


设置数据表每页固定打印行数为1呢

image.png

问题来源


套打模板怎么设置可以实现一行明细打印一次,有几行明细就打印几个出来?我设置的标签套打模板 (kingdee.com)


19、使用python语言和C#语言开发的区别

问题描述:

C#语言能开发的功能 用 Python语言是不是全部都能实现,有没有C#能做到,而Python做不到的。或者说Python能做到的,C#做不到

解决方案


两者在星空的运行机制和原理。 如果是C#编译的组件 必须要重启IIS的 ,然而 python是不需要的,它只在运行时的时候生效作用。很多比如构建插件,报表服务插件,操作插件这些,包括许多的后台服务这些python插件目前应该都是做不到的。

python更适用的场景是对标准功能的补充,比如二开一些简单的表单的操作,校验,界面的一些控制等等。


问题来源

使用python语言和C#语言开发的区别 (kingdee.com)


20、f7,弹出列新增 基础资料,1为啥没有删除按钮,2还有这个列数太少了

问题描述:

f7,弹出列新增 基础资料,1为啥没有删除按钮,2还有这个列数太少了 image.png

解决方案


1、“删除”按钮:


BOS IDE打开其他往来单位,在列表菜单中编辑“删除”菜单按钮的“是否可见”“是否可用”,


分别勾选“基础资料弹出列表可用”。

image.png



2、弹窗之后,点过滤,显示与隐藏列,勾选对应字段,另存


image.png


问题来源

f7,弹出列新增 基础资料,1为啥没有删除按钮,2还有这个列数太少了 (kingdee.com)


21、 新做的bos单生成凭证,能取小数吗 还是取金额字段

问题描述:


image.png

解决方案


参考标准产品,收款单,把来源单据,改成自定义单据:


目前看到,金额来源,是可以取 单据头字段的,试下;

image.png


问题来源

新做的bos单生成凭证,能取小数吗 还是取金额字段 (kingdee.com)


22、单据校验规则设置

问题描述:

单据保存校验规则能不能设置:   物料代码左包含01  04  10,可以保存,02  03  05 06 07 08 09,可以保存。但是两个分类如果混在一起就不能保存

解决方案


len(filter(lambda x: (x.物料标识.FNumber[0:2] in ['01','04','10']),单据体标识)) * len(filter(lambda x: (x.物料标识.FNumber[0:2] in ['02','03','05','06','07','08','09']),单据体标识)) = 0

说明:包含1、4、10的行数*包含2、3、5…的行数=0 代表其中至少一个因子为0,满足保存条件,若>0,代表同时包含2个类别,不允许保存


问题来源

单据校验规则设置 (kingdee.com)



【第2期】


1、页金蝶云星空,在审批任务处理的界面上如何通过插件取到对应单据的数据包

问题描述“首页待办任务”进入审批任务处理界面”时则无法取到对应单据的数据包。请问这时应该通过什么方式才能取到对应单据的数据包

image.png

解决方案

你先获取到单据的ID和FormID,这个可以从当前界面上获取,或者监听一下父页面传过来的参数,应该有的,不然系统也没办法动态加载单据,可以反编译这个审批任务处理动态表单(AP_ApprovalAssignHandle)的表单插件看看

然后再用BusinessDataServiceHelper.LoadSingle获取单据的数据包!



2、套打设置,按照物料编码变更打印顺序

问题描述:打印的时候按照单据里面现有的物料,将编码进行从大到小的排序打印出来,单据里的顺序不考虑

解决方案

image.png

销售订单为例,选择明细对应的 数据表格,属性---设置排序字段


问题来源套打设置,按照物料编码变更打印顺序。 (kingdee.com)


3、关于开发自动建立仓位的开发逻辑V7.3

问题描述:

咨询:

  我们启用了仓位管理

  启用了仓位值集

需要实现:

   在客户列表勾选某个客户之后,点击某个按钮,

   自动建立一个仓位(仓位编码是客户编码,名称是客户名称),

   并自动分配给某个特定仓库。

这个过程是直接写数据库?(相互关系不好掌握吧?)

还是有什么简便的写法?最好分享简单的代码


解决方案


4、信息中心体现出凭证号

问题描述在字段配置这里加上凭证号以便于在信息中心体现出凭证号,请问下怎么添加?有点着急帮忙看下,谢谢

解决方案

在处理审批流的过程中体现,与图二界面的显示没有联系,要实现图二界面的显示建议直接在审批的主题内容中体现即可

image.png


问题来源信息中心体现出凭证号!!!! (kingdee.com)


5、 页面中显示一段html, 打印一段html

问题描述:bos二开中,调用第三方接口,返回了一段html,如何在页面上展示,如何直接打印这段html的内容?

解决方案

可以找先写到文件中,后缀名为.html,路径要在IIS站点目录下,最好是写在星空本身站点目录下比较方便,然后再用动态表单打开这个html文件的url。

动态表单加载网页参考:https://vip.kingdee.com/article/182254?productLineId=1


问题来源页面中显示一段html, 打印一段html (kingdee.com)


6、请单据合法性校验里面的【关键字】字段是什么意思?

问题描述:【关键字】有什么作用?

image.png

解决方案:


7、打了8.0 3月31号补丁,监控到表T_BOS_MQMessages数据异常

问题描述

这个表是干什么的,数据行数不是很多,7.7的时候大概占了几个G,升级8.0后监控到一句SQL语句 (@FDATE datetime)DELETE FROM T_BOS_MQMessages WHERE (RECORDDATE < @FDATE) 一直在执行占用大量资源, 导致系统tempdb 数据库内存暴涨至C盘爆满 最后系统瘫痪,希望总部能够重视并给予解决方案 。

解决方案:

你好,T_BOS_MQMessages是一个消息队列的临时数据表。启用业务数据日志监控后。会在此表中写入一些临时数据用于存储中间数据。由于一些异常情况(如网络、程序异常或者消息队列配置等),此表会累计产生一些中间临时数据。21年11月份补丁做了一个定时清理此表数据的计划。题主安装了最新8.0补丁包含了这个部分。当执行清理时,可能是数据量大导致临时数据库占用过多问题(删除过程可能存在锁)。

     基于以上的原因及问题,建议题主采用以下方案:

     1.由于正常情况下,此表不会有数据,题主情况可以truncate table T_BOS_MQMessages 操作,清理掉此临时       表数据,此操作不会引起锁等功能,此表中的数据是消息队列中间临时数据,删掉不会引起业务数据问题;

    2.由于部分异常数据的原因,业务数据日志默认已经不再采用消息队列的方式,因此,T_BOS_MQMessages 表        不会再产生新的数据,就不会再发生此类问题;


问题来源打了8.0 3月31号补丁,监控到表T_BOS_MQMessages数据异常。 (kingdee.com)


8、同一事业部下采购申请单工作流一级审批人按部门进行区分了,该如何处理?

问题描述:

同一事业部下采购申请单工作流一级审批人按部门进行区分了,该如何处理?是在勾选审批参与人时都把不同部门审批人都选上吗?
可是这样的话,各个部门采购申请单就互相都能看了啊,也就没有区分部门的必要了??

image.png

解决方案

可以在申请单上,添加 部门字段;然后设置审批 参与人的时候,根据部门设置条件,不同部门条件,设置不同审批人

image.png

或者设置岗位汇报关系,等多种方案

https://vip.kingdee.com/article/172147?productLineId=1


问题来源同一事业部下采购申请单工作流一级审批人按部门进行区分了,该如何处理? (kingdee.com)


9、通过BOS新建向导复制一个销售订单业务。发布后无法提取到相关业务单据和销售员基础资料

问题描述:

image.png

解决方案

复制出来的单据,相当于就是一个新单据,复制过来的仅仅是单据的配置元数据信息。

单据类型以及对应的业务类型控制 :是无法复制的,需要自定添加实现。

销售员无法带出:这个不理解是什么意思,是指无法自动带出当前用户对应的销售员吗?这个看下原销售订单是如何实现的,应该是通过标准通用插件实现的,猜测在插件中可能判断了业务对象类型和单据类型, 复制出来单据,这些信息都不一致了,所以不会触发。


问题来源通过BOS新建向导复制一个销售订单业务。发布后无法提取到相关业务单据和销售员基础资料 (kingdee.com)


10、想通过webapi对“辅助属性值”进行修改,但是系统报错

问题描述:

{"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":"FMaterialAuxPropertyId","Message":"字段“辅助属性”是必填项","DIndex":0}],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":0},"Id":"","Number":"","NeedReturnData":[{}]}}。

解决方案

你填写的资料不完整,之前做过的一个案例,你可以参考补充以下参数,

FMaterialId.FNumber = '11032100010' 

AND FAuxPropId = 100137 

AND FStockId = 1134688 

AND FKeeperTypeId = 'BD_KeeperOrg' 

AND FKeeperId.FNumber = '102' 

AND FLot.FNumber = '210522'


问题来源WebAPi 修改辅助属性值 (kingdee.com)


11、同一单据编辑不同页签的值,基础资料字段A能将A的值赋值给基础资料字段B吗?

问题描述:详细需求为在应付单明细页签上增加基础资料字段A,付款计划页签上增加基础资料字段B,两字段绑定的为同一基础资料类型。编辑字段A需要同步赋值给B。如何配置?

解决方案

首先 这个和几个页签没有关系,页签只是一种界面布局方式。

楼主的问题在于,一个单据中两个单据体之间字段如何相互赋值?

答案是配置无法实现,因为2个单据体之间并没有明确的对应关系,明细单据体有X行,付款计划有y行,那明细单据体的第n行数据应该赋值给付款计划哪一行呢?这个需要一个对应逻辑。


如果存在对应逻辑,那么肯定可以实现的,写一个表单插件,在值更新事件中根据对应关系赋值就可以啦!


问题来源星空7.6.0.202101版本,同一单据编辑不同页签的值,基础资料字段A能将A的值赋值给基础资料字段B吗? (kingdee.com)


12、这么查看工作流中所有节点都有谁审核

问题描述:这么查看工作流中所有节点都有谁审核

解决方案:


13、怎么样循环把Value的值取出来

问题描述:

怎么样循环把Value的值取出来

解决方案:

参考,

var SubEntryEntity = this.View.BusinessInfo.GetEntryEntity("F_QYGN_SubEntity");

                var SubEntryRows = this.View.Model.GetEntityDataObject(SubEntryEntity);


                int index = this.Model.GetEntryCurrentRowIndex("FEntity");


                qty = Convert.ToDecimal(this.Model.GetValue("FQty", index));

                materialId = GetBaseDataByKey("FMaterialID", "id", index);

                // this.View.ShowMessage("此行的行号是:" + index + " 数量:" + qty + "  "+"物料内码 " + materialId + "");

                if (SubEntryRows.Count > 0)

                {

                    for (int i = 0; i < SubEntryRows.Count; i++)

                    {

                        //发货BOM物料编码

                        subMaterialId = Convert.ToString(SubEntryRows[i]["F_QYGN_MaterialId_Id"]);

                        //发货BOM明细应发数量

                        decimal subQty = Convert.ToDecimal(SubEntryRows[i]["F_QYGN_QTY1"]);


                        //发货BOM明细单品用量

                        decimal oneQty = Convert.ToDecimal(SubEntryRows[i]["F_QYGN_OneQty"]);

                        //发货BOM明物料类型

                        string subMaterialType = Convert.ToString(SubEntryRows[i]["F_QYGN_MaterialType"]);

                        //发货BOM子项后的父项编码

                        string subMasterId = Convert.ToString(SubEntryRows[i]["F_QYGN_MasterID_Id"]);


                        if (materialId == subMasterId && subMaterialType == "子项")

                        {

                            subIndex = i;

                            decimal sumQty = Math.Round((oneQty * qty), 2);

                            this.Model.SetValue("F_QYGN_QTY1", sumQty, i);

                        }

                        else if (materialId == subMaterialId && subMaterialType == "物料父项")

                        {

                            this.Model.SetValue("F_QYGN_QTY1", qty, i);

                        }

                    }


                }



问题来源怎么样循环把Value的值取出来 (kingdee.com)


14、 BOS中修改单据名称了,发布界面修改了,但是打开单据后的单据名称没有变过来?

问题描述:BOS中修改单据名称了,重新发布了一个新的菜单是可以,但是打开单据后的单据名称没有变过来?

解决方案:

单据维护界面的标题,只能显示单据的名称,标题不会根据单据类型对应的视图不同跟着变化的。

如果想要实现:标题跟着单据类型变化,可以写一个简单的表单插件实现。这种场景可以用Python脚本更方便。

参考代码如下:


#引入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.DependencyRules 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 *
from Kingdee.BOS.Core.DynamicForm import *

def AfterBindData(e):
    billObj = this.Model.DataObject;
    billTypeObj=billObj["BillTypeId"];
    if(billTypeObj==None):
        return;
    billTypeNum=("{0}").format(billTypeObj["Number"]);#单据类型编码
    if(billTypeNum=="001"):
        title="费用申请单";
        this.View.SetFormTitle(LocaleValue(title, 2052));    
    elif(billTypeNum=="002"):
        title="费用申请单1";
        this.View.SetFormTitle(LocaleValue(title, 2052));



问题来源BOS中修改单据名称了,发布界面修改了,但是打开单据后的单据名称没有变过来? (kingdee.com)


15、 关于流程终止并反审校验可用量的问题

问题描述:

咨询:

   启用预计可用量

   发货通知单审核状态时 进行校验可用量,并占用库存

   发货通知单反审时,取消占货

发货通知单 启用审批流(工作流)

但是 从流程中心 终止并反审 发货通知单时,会校验 预计可用量(库存没有时 无法 终止并反审)只能 终止 

前台 提交者撤销 也会失败(预计可发量不够,导致负库存)

如何实现:发货通知单 反审时 检查预计可发量 并进行校验,但是 流程中心 中 终止并反审 时 不进行校验?


解决方案:

不管是发货通知单反审核,还是流程中心终止反审,最终的结果都会导致发货通知单变成重新审核转态。

既然设置的业务逻辑是:审核状态的发货通知单占用可用量,那么未审核的发货通知单就应该释放可用量。

所以,【发货通知单 反审时 检查预计可发量 并进行校验,但是 流程中心 中 终止并反审 时 不进行校验?】这个需求本身是不合理的,自身矛盾了。


建议:取消反审核校验预计可发量,因为不管是从审核中变成未审核,还是从审核状态变成未审核,都不存在需要校验预计可发量的必要性。


问题来源关于流程终止并反审校验可用量的问题V7.3 (kingdee.com)


16、执行计划不能自动执行

问题描述:计划设置了时间,后台服务也启动了,状态也是准备状态,但不能自动执行,需要每次人工点“测试”才运行。然后其他的计划又没有问题

解决方案:


17、审批流 销售订单 设置消息节点,消息节点没有通过,现在销售订单不允许反审核怎么处理

问题描述:审批流 销售订单 设置消息节点,消息节点没有通过,现在销售订单不允许反审核怎么处理提示:单据已关联工作流实例,当前用户不是待办任务的处理人,没有任务处理权限。

解决方案:


18、在插件中如何根据条件锁定一整 行,而不是根据一个字段一个段去锁

问题描述在插件中如何根据条件锁定一整 行,而不是根据一个字段一个段去锁

解决方案:

建议变通实现:

  1. 在单据体增加单据状态类型字段,字段名为:行锁定状态,添加状态列表:正常,锁定。

  2. 对于锁定状态,勾选所有字段锁定。

  3. 在插件中根据条件设置锁定状态的值即可。


问题来源:在插件中如何根据条件锁定一整 行,而不是根据一个字段一个段去锁。 (kingdee.com)



19、怎么写自定义下推?

问题描述:

比如我要销售订单,直接下推到销售普通发票,然后我的下推不是在销售订单界面的,
是其他的界面按钮比如我选择单据,然后点击预开专票,然后根据商城订单号匹配出销售订单号,
然后再进行数据下推


解决方案:

  1. 首先需要添加单据转换规则:销售订单 下推 销售普通发票。

  2. 在销售订单的操作列表中,添加一个空操作-调用下推,操作代码设置为:DoNothing-Push

  3. 空操作的服务端服务中,添加自动下推服务,调用第1步中的单据抓换规则。

  4. 在其他触发的界面,开发插件,通过插件调用【空操作-调用下推(DoNothing-Push)】,调用空操作参考代码如下:



 List<object> PkIds = new List<object>();//需要执行空操作的单据ID
 //此处省略,根据自己的逻辑构建PkIds 
 string srcFormId="SAL_Order";//执行空操作的单据FormID
 FormMetadata meta = MetaDataServiceHelper.Load(this.Context, srcFormId) as FormMetadata;
 OperateOption Option = OperateOption.Create();
 string optCode = "DoNothing-Push";//自动下推空操作的操作代码
 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.DoNothing(this.Context, meta.BusinessInfo, PkIds .ToArray(), optCode, Option);

注意:以上方法仅能实现 单据一对一下推,无法实现多单合并下推。

问题来源怎么写自定义下推? (kingdee.com)


20、使用python 插件发送post get 请求

问题描述:

import clr
clr.AddReference("System")
clr.AddReference("System.Web.Extensions")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Newtonsoft.Json")
import sys
from System import *
from System.Collections.Generic import *
from System.Threading import *
from System.IO import *
from System.Net import *
from System.Text import *
from System.Security.Cryptography import *
from System.Web.Script.Serialization import *
from System.Collections.Generic import Dictionary
from Newtonsoft.Json.Linq import *
reload(sys)
sys.setdefaultencoding('utf-8')
def ButtonClick(e):        
#发送get请求    
#webRequest=get("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=XXX&corpsecret=XXX")    
#this.View.ShowMessage(webRequest)        
#解析json    
#JObject = JObject.Parse(webRequest)    
#this.View.ShowMessage(JObject['access_token'].ToString())        
#发送post请求    
	webRequest=post('http://ip:port/test','idArr=249348,249349')    
	this.View.ShowMessage(webRequest)        
#发送post请求    
#webRequest=post('https://www.anyan.com/anyan/22222.php','choose={"id":"123"}')    
#this.View.ShowMessage(webRequest)        

def get(url):        
	webRequest = WebRequest.Create(url)    
	webRequest.Method = "GET";    
	webResponse = webRequest.GetResponse();        
	stream = webResponse.GetResponseStream();    
	streamReader =StreamReader(stream, Encoding.GetEncoding("utf-8"));    
	result = streamReader.ReadToEnd();        
	return result    
	
def post(url,postdata):            
	webRequest = HttpWebRequest.Create(url);    
	webRequest.Method = "POST";    
	webRequest.ContentType = "application/x-www-form-urlencoded";        
	data=Encoding.ASCII.GetBytes(postdata);    
	webRequest.ContentLength = data.Length;    
	webRequest.GetRequestStream().Write(data, 0, data.Length);    
	webRequest.GetRequestStream().Flush();    
	webRequest.GetRequestStream().Close();    
	webResponse  =webRequest.GetResponse();    
	streamReader =StreamReader( webResponse .GetResponseStream(),Encoding.GetEncoding("utf-8") );    
	result=streamReader.ReadToEnd()    
	return result
	代码如上 发送不了


解决方案:

import clr
clr.AddReference("System")
clr.AddReference("System.Web.Extensions")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Newtonsoft.Json")
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
import sys
from System import *
from System.Collections.Generic import *
from System.Threading import *
from System.IO import *
from System.Net import *
from System.Text import *
from System.Security.Cryptography import *
from System.Web.Script.Serialization import *
from System.Collections.Generic import Dictionary
from Newtonsoft.Json.Linq import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.ServiceHelper import *
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 *
reload(sys)
sys.setdefaultencoding('utf-8')

def BarItemClick(e):
        btnKey = e.BarItemKey.ToUpper();
        if(btnKey=="FET_TS"):
                user = this.Context.UserName;
                url = 'http://*';
                postdata = "id=1"&sqr="+user;
                webRequest = HttpWebRequest.Create(url);    
                webRequest.Method = "POST";    
                webRequest.ContentType = "application/x-www-form-urlencoded";        
                data=Encoding.ASCII.GetBytes(postdata);    
                webRequest.ContentLength = data.Length;    
                webRequest.GetRequestStream().Write(data, 0, data.Length);    
                webRequest.GetRequestStream().Flush();    
                webRequest.GetRequestStream().Close();    
                webResponse  =webRequest.GetResponse();    
                streamReader =StreamReader( webResponse .GetResponseStream(),Encoding.GetEncoding("utf-8") );    
                result=streamReader.ReadToEnd();     
                this.View.ShowMessage(result);     


问题来源:使用python 插件发送post get 请求 (kingdee.com)


21、设置一个条件当业务类型=手工录入的时候才触发这个附件规则,但是设置前置条件后这个规则就不顶事儿了

问题描述:

image.png

解决方案:

 FSourceBillKey.FName  = '手工录入'

image.png


问题来源总账凭证不上传附件不让提交 (kingdee.com)


22、多选基础资料,可以设置默认值吗?怎么设置?

问题描述:多选基础资料,可以设置默认值吗?怎么设置?

解决方案:

我在本地,通过添加实体服务规则,多选基础资料字段,设置了默认值。

要点:1. 前置条件,需要设置一个只有新建时才符合条件的条件,如编码为空白;2. 计算公式配置界面,只勾选“新增”选项3. 给多选基础资料赋值,需要设置为基础资料内码,并使用中括号[]括起

图一:实体服务规则


图二:查询币别内码


图三:运行效果


问题来源:多选基础资料,可以设置默认值吗?怎么设置? (kingdee.com)

23、生成编码规则的BusinessDataServiceHelper.GetBillNoByField方法在循环体里多次调用

问题描述:

生成编码规则的BusinessDataServiceHelper.GetBillNoByField方法在循环体里多次调用,只能在第一次能得到编码,后面count是为1的,但编码为空字串,有解决办法么?

解决方案:

调用方法GetBillNoByField之前 加一行 this.View.Model.SetValue("FBILLNO", "");   获取到单据编号 的单据默认是不在获取单据编号的 所以你要清空单据编号


问题来源:生成编码规则的BusinessDataServiceHelper.GetBillNoByField方法在循环体里多次调用 (kingdee.com)


24、单据状态和单据类型对应关系的逻辑

问题描述:

 我需要知道单据状态、关闭状态、作废状态等状态表的逻辑。目前知道 记录表是:如下2个表
 select * from T_META_FORMENUMITEM_L  	select * from T_META_FORMENUMITEM我想知道 
 这个表 和单据的类型如何关联的?如销售订单的单据状态销售订单的 关闭状态销售订单 明细行的 终止状态 等,
 不想用case when


解决方案:

状态字段的状态集合来自于状态列表的定义。和枚举表T_META_FORMENUMITEM并无直接关系。

如果不想写case when,可以将状态列表的状态值映射到特定的枚举类型(如果没有对应的类型,就新建),然后就可以与枚举表进行关联查询了。

枚举类型相关查询sql,可参考:

【技术答疑.常用SQL】https://vip.kingdee.com/article/146201387037720320


问题来源:关于单据状态和单据类型对应关系的逻辑V7.3 (kingdee.com)


25、字段汇总至上级字段时,能不能只汇总满足某条件的数据

问题描述:

image.png

解决方案:

参考这篇帖子实现,https://vip.kingdee.com/article/87214388838194432?productLineId=1。

采购数量汇总  = sum(map(lambda x : (x.采购数量 if(x.物料编码<>null and x.物料属性 = "费用") else 0), 明细信息单据体))

一定要把实体服务规则写在单据头里,不然会报错。


问题来源字段汇总至上级字段时,能不能只汇总满足某条件的数据 (kingdee.com)


26、自定义的维护界面的列表怎么加过滤条件行?

问题描述:

要在这里加过滤条件行,但是是维护界面不是列表界面微信图片_20220424170953.png

解决方案:

image.png7.5以上的版本就有这个选项了


问题来源自定义的维护界面的列表怎么加过滤条件行? (kingdee.com)


27、 如何增加供应商联系人的 API?

问题描述:

    目前供应商的信息创建是通过API实现的。但是供应商主数据中的联系人 没有API可使用我想是否可以把供应商联系人 发布到主页,
    通过新增菜单权限项 可以创建 对应的API?目前我只看到了简单的API。如何可以 有 新增等 API?


解决方案:

联系人是另一个单独的基础资料,如果通过web api进行操作,不是调用客户的接口,而是调用联系人的接口。联系人基础资料在供应链--采购管理--基础资料--联系人,该基础资料为客户和供应商共用,通过类型和所属公司两个字段进行关联,其中类型字段区分是客户还是供应商,所属公司字段填写对应的客户或供应商的ID。因为联系人是不发布的,如果需要在系统的在线web api功能中进行测试使用,需要先将联系人发布为不可见的主控台菜单才可以看到,如果通过代码直接调用api接口,则不需要发布。


问题来源如何增加供应商联系人的 API?V7.3 (kingdee.com)





【第1期】

1、页签顺序如何调整?

问题描述:例如采购订单中的明细信息与交货安排两个页签,可以互换显示顺序,将交货安排显示在第一顺位的页签,明细信息显示在第二顺位上。

解决方案:

image.png

image.png



image.png

问题来源:页签顺序调整 (kingdee.com)


2、系统提示列名F_ORA_MULBASE无效

问题描述:出库申请单的表体仓库增加过滤条件FSTOCKID IN ( SELECT FSTOCKID FROM t_BD_Stock WHERE F_ORA_MULBASE IN ('GetValue(FDeptId)'))后,填写单据的仓库字段,系统提示列名F_ORA_MULBASE无效。

解决方案:

多选基础资料在存储在另一个独立的数据库物理表中的,您是可以在BOSIDE的【仓库-->可用部门】的字段属性中,查到此表名,有如下图:

image.png

假设您的[可用部门]多选基础资料字段的表名是PAEZ_t_Cust_Entry100157,再假设您具有初级的SQL功底。

那么,【Select * from PAEZ_t_Cust_Entry100157】查询一下这张表中的已有数据,您就什么都明白了,数据结构了解了,进而也知道怎么写过滤条件了。

image.png


综上,好事做到底,您的表体仓库过滤条件改写为如下,即可实现您的需求:

FSTOCKID In(Select m1.FStockId FROM PAEZ_t_Cust_Entry100157 as m1 where m1.F_ORA_MULBASE=GetValue(FDeptId))

--用您的多选基础资料字段的真实表名,替换掉上述过滤条件中的红字部分

问题来源:系统提示列名F_ORA_MULBASE无效 (kingdee.com)


3、如何控制选单界面,标红色箭头的需要怎么隐藏

问题描述:

image.png

解决方案:【二开案例.表单插件.选单界面控制可选的源单】https://vip.kingdee.com/article/286799979337867520

问题来源:如何控制选单界面,标红色箭头的需要怎么隐藏 (kingdee.com)


4、合并打印所选单据,要如何才能使得打印效果的序号一列正常按记录数依次递增

问题描述:

image.png

image.png

要怎么样才能使得这一列根据记录数显示1、2、3、4、5的序号


解决方案:

image.png


image.png

问题来源:发货通知单列表,合并打印所选单据,要如何才能使得打印效果的序号一列正常按记录数依次递增 (kingdee.com)


5、SQL增强报表,发布到主控台的时候,业务对象这里查询为空?

问题描述:

image.png

解决方案:

前台配置下新的权限对象列表,然后在BOS选择新建的或者已有的权限对象保存后,在发布页面 就可以选到了

image.png

image.png

问题来源:SQL增强报表,发布到主控台的时候,业务对象这里查询为空? (kingdee.com)


6、集成开发平台 打开项目报错

问题描述:

image.png

解决方案:

按提示错误信息应该是:协同开发平台SVN锁定,见下方链接官方处理方法。

https://vip.kingdee.com/article/269858819956349952

问题来源:集成开发平台 打开项目报错 (kingdee.com)


7、销售订单的订单号(自定义文本)携带不到采购订单的订单号(自定义文本)

问题描述:

image.png

解决方案:

image.png

问题来源:销售订单的订单号(自定义文本)携带不到采购订单的订单号(自定义文本),BOS单据转换里的字段映射关系也找不到订单号字段 (kingdee.com)


8、当视图封装基础资料时,如何处理FID生成?

问题描述:当视图封装基础资料时,如何处理FID生成?

解决方案:

将你提供的源视图修改了一下,也就是修改以下红字的部分,你试试,应该可以了。

说明:你的问题,利用SQL的开窗函数特性就能解决:开窗函数详解


SELECT   

FID=1000000+ROW_NUMBER()

    OVER(ORDER BY B.FLOTID ASC, C.FTIAOMA ASC, C.FUSEORGID ASC,C.FSTOREUNITID ASC,C.FAUXUNITID ASC,

                  C.FCARTONNUMBER ASC,(CASE WHEN C.FBATCHANDCARTONNUMBER IS NULL THEN a.FBATCHANDCARTONNUMBER ELSE c.FBATCHANDCARTONNUMBER END) ASC,

  C.FAREAMM ASC,C.FSQUAREFEET ASC,(CASE WHEN C.FMODELX IS NULL THEN a.FMODELX ELSE c.FMODELX END) ASC,

  (CASE WHEN C.FFUKUAN = 0 THEN a.FFWIDTH ELSE c.FFUKUAN END) ASC,C.FLENGTH ASC,C.FCUSMATERIALNUMBER ASC, C.FCUSPURNUMBER ASC),

                a.FSTOCKORGID, B.FLOTID AS OldFID, D.FISINVENTORY, C.FTIAOMA AS FNUMBER, E.FMATERIALID, C.FUSEORGID, 

                a.FBASEUNITID, C.FSTOREUNITID AS FStockUnitId, C.FAUXUNITID AS FSecUnitId, a.FSTOCKID, a.FLOT, 

                B.FNUMBER AS Flot_TXT, C.FTIAOMA, a.FBASEQTY AS FSUTTLE, a.FSECQTY AS FAUXQTY, 

                C.FCARTONNUMBER AS FXIANGHAO, CASE WHEN C.FBATCHANDCARTONNUMBER IS NULL 

                THEN a.FBATCHANDCARTONNUMBER ELSE c.FBATCHANDCARTONNUMBER END AS FBATCHANDCARTONNUMBER, 

                C.FAREAMM, C.FSQUAREFEET, a.FSTOCKLOCID, 'A' AS FFORBIDSTATUS, 'C' AS FDOCUMENTSTATUS, 

                CASE WHEN C.FMODELX IS NULL THEN a.FMODELX ELSE c.FMODELX END AS FMODELX, 

                CASE WHEN C.FFUKUAN = 0 THEN a.FFWIDTH ELSE c.FFUKUAN END AS FFUKUAN, a.FPRODUCEDATE, 

                a.FEXPIRYDATE, C.FLENGTH, C.FCUSMATERIALNUMBER, C.FCUSPURNUMBER

FROM      dbo.T_STK_INVENTORY AS a INNER JOIN

                dbo.T_BD_LOTMASTER AS B ON a.FLOT = B.FLOTID LEFT OUTER JOIN

                dbo.T_Cust_ZJTMSC AS C ON B.FNUMBER = C.FPICI INNER JOIN

                dbo.T_BD_MATERIALBASE AS D ON a.FMATERIALID = D.FMATERIALID INNER JOIN

                dbo.T_BD_MATERIAL AS E ON a.FMATERIALID = E.FMASTERID INNER JOIN

                dbo.T_BD_MATERIAL_L AS F ON E.FMASTERID = F.FMATERIALID

WHERE   (a.FSTOCKID > 0) AND (a.FBASEQTY > 0.0) AND (a.FSTOCKORGID = '901376') AND (F.FNAME LIKE '%纸') AND 

                (D.FISPRODUCE = '1') AND (E.FUSEORGID = '901376') AND (a.FLOT <> '')


问题来源:当视图封装基础资料时,如何处理FID生成? (kingdee.com)


9、html5下,页签显示异常

问题描述:

在单据上,在页签组中,添加了新的页签,名称为“新加”

image.png


在html5页面下,在页签组中看不到“新加”页签,以单独的形式出现(客户端不会出现这种情况)

image.png


解决方案:

1、可以试着在采购订单的新增或查看界面,打开选项-流式配置,在流式表单参数里,新增行,加入新增加的页签,如下图:

image.png

2、新增行

image.png


3、选择新增加的页签,返回

image.png

4、保存布局

image.png

5、效果

image.png


问题来源:html5下,页签显示异常 (kingdee.com)


10、协同平台重新安装后打开提示补锁,请问如何处理?

问题描述:

image.png

解决方案:

装个TortoiseSVN,清理一下

问题来源:协同平台重新安装后打开提示补锁,请问如何处理? (kingdee.com)


11、流程节点界面配置设置字段必填为什么没有生效?

问题描述:

image.png

解决方案:

对应节点的审批项里面,提交时保存勾上


image.png

问题来源:流程节点界面配置设置字段必填为什么没有生效? (kingdee.com)


12、单据上怎样设置成明细单独处一行?选中一个明细行进行套打只打印选中的那个?

问题描述:

例如这个单子,
想要实现的效果就是这样的,选中高层,就只打印高层,选中地下室就只打印地下室。

image.png

image.png


解决方案:

然后列表里,选择这个按钮打印(最好选预览的,看看是不是自己想要的效果)

image.png

问题来源:单据上怎样设置成明细单独处一行?选中一个明细行进行套打只打印选中的那个? (kingdee.com)


13、动态添加字段后,怎么设置动态添加的字段显示合计数

问题描述:

如图在表单构建设置合计列,结果显示的合计数为空,请教下要怎么动态设置合计列

image.png

解决方案:

BOS后台设置下值更新事件,勾选即时触发值更新

image.png

问题来源:动态添加字段后,怎么设置动态添加的字段显示合计数 (kingdee.com)


14、销售出库单多行同一物料、不同批号,套打送货单相同物料只打印一行,数量为该物料的汇总数量

问题描述:

我们的销售产品启用的批号管理,在销售出库是同一物料会有多个批次,销售出库单中同一物料不同批次为一行。打印送货单时客户不要这些明细信息,只需要某物料的信息(名称。规格、数量),在套打中怎么汇总这些同一物料不同批次的为一行,尝试了表格的分组和汇总功能,也没法实现。请大神指点

image.png

解决方案:

套打有汇总,选择物料编码即可 ,效果如图

image.png



image.png

问题来源:销售出库单多行同一物料、不同批号,套打送货单相同物料只打印一行,数量为该物料的汇总数量 (kingdee.com)


15、在数据库修改了辅助属性 数据长度,部分单据还是原来的限制长度

问题描述:

已在数据库修改了辅助属性长度,部分单据还是限定原来的长度2

image.png


image.png

解决方案:

1. 操作步骤 

    1、查询 辅助属性维度数据 的 标识 FPACKAGEID

select FPACKAGEID,* from T_META_OBJECTTYPE WHERE FID = 'BD_FLEXSITEMDETAILV_EXTEND'; 

2、更新客户供应商标记

UPDATE T_META_OBJECTTYPE SET FPACKAGEID = NULL WHERE FID = 'BD_FLEXSITEMDETAILV_EXTEND'; 

3、修改后,调整对应BOS设计器的值

 

4、 查询得到相关字段值 FID、FFLEXNUMBER

select FID,FFLEXNUMBER,* from T_BD_FLEXAUXPROPERTY where FNUMBER ='辅助属性编码

5、 通过FID更新FCUSTOMDATASTRMAXLEN设置数据长度

update T_BD_FLEXAUXPROPERTY set FCUSTOMDATASTRMAXLEN = '100' where FVALUETYPE = '2' and FID = 'FID'; 

6、 更改FFLEXNUMBER 字段长度,FFLEXNUMBER 为第四步查询的FFLEXNUMBER

alter table T_BD_FLEXSITEMDETAILV alter column FFLEXNUMBER nvarchar(100);

7、 恢复供应商标记 FPACKAGEID 为第一步查询的 FPACKAGEID

UPDATE T_META_OBJECTTYPE SET FPACKAGEID = 'FPACKAGEID' WHERE FID = 'BD_FLEXSITEMDETAILV_EXTEND';

8、使用管理员清除缓存或者重启IIS服务。

9、原则上辅助属性业务使用后。系统上控制不允许再修改相关属性。


问题来源:在数据库修改了辅助属性 数据长度,部分单据还是原来的限制长度 (kingdee.com)


16、如何对单据体中的表头列名进行多语言设置


解决方案:

平台有提供多语言字段的,默认存储在L表,即对应实体数据表+‘_L’ 比如 t_meta_objecttype   元数据对象名称 存储多语言在 t_meta_objecttype_l

如果你指的是字段名称标识的多语言(也叫做字段翻译),这个需要到元数据 对应语言下维护它的名称和标题。

image.png


问题来源:各位大佬,如何对单据体中的表头列名进行多语言设置 (kingdee.com)


1、  提交的审批流程,某一个审批节点卡住了(审批人休假),如何跳过这个节点,或者换人审批

问题描述:


解决方案


问题来源


1、  提交的审批流程,某一个审批节点卡住了(审批人休假),如何跳过这个节点,或者换人审批

问题描述:


解决方案


问题来源

1、  提交的审批流程,某一个审批节点卡住了(审批人休假),如何跳过这个节点,或者换人审批

问题描述:


解决方案


问题来源



1、  如何根据单据体列值,自动更新单据头字段值

问题描述:


解决方案


问题来源


1、  如何根据单据体列值,自动更新单据头字段值

问题描述:


解决方案


问题来源


1、  如何根据单据体列值,自动更新单据头字段值

问题描述:


解决方案


问题来源












赞 212