本文是金蝶云·星空版主OUT_MAN发布的协同开发产品应用问答汇总,包含Panel面板控件清空动态表单方法、动态表单中点击树形控件后直接显示基础资料新增或查看界面、webapi返回行数限制及分页解决、单据附件字段更新到控件方法、字段点击弹出表单元素选择器实现思路、过滤框模型获取问题、开发环境登录语言未加载问题及表单插件设置单据体颜色无效等问题的描述与解决方案。
各位社区的小伙伴们,大家好,我是 版主 OUT_MAN
在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里!
本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟
【第25期】
更新日期:2024-10
1、 Panel面板控件没有Clear()或ClearAll()方法可以调用,要如何用代码动态删除或清空Panel加载的控件?
问题描述:
Cloud Panel面板控件没有Clear()或ClearAll()方法可以调用,要如何用代码动态删除或清空Panel里加载的动态表单每次点击树形控件都会在面板中加载一个动态表单信息,有问题。如何实现每次点击事件都可以清空面板中的动态表单再重新加载。
解决方案:
每次show新的动态表单之前,先把之前的Close掉! 每次show的时候把当前表单对应的PageId记录到全局变量里面。 然后可以根据pageId可以获取当前显示的表单页面,然后close之后再show新的表单,更新pageId 参考我下面的代码:(我这个案例里面的代码:#使用技巧#Python插件实现单据批改-万能终极版)
#使用技巧#Python插件实现单据批改-万能终极版:https://vip.kingdee.com/link/s/l8Ly4
问题来源:https://vip.kingdee.com/link/s/l8LS6
2、 如何在动态表单中点击树形控件后,动态表单右方直接显示某个基础资料的新增或查看界面,而不是弹出一个新的基础资料界面直?
问题描述:
在树形控件点击事件中应该怎么实现,是不是得在这个动态表单中右方添加一个面板控件什么的
想直接在右方显示
我用这个代码的话要么弹出一个弹框,要么时跳转到一个新界面
解决方案:
参考资料:
树形控件开发参考:【插件开发】树形控件二次开发相关示例演示以及注意事项
更多插件打开各种界面可以参考:【插件开发笔记】插件打开各种列表
问题来源:https://vip.kingdee.com/link/s/l8Lax
3、 调用webapi为什么最多给返回一万行?
问题描述:
调用webapi
limit给六万
{data: {formid: "bd_material",FieldKeys:"fmaterialid,fnumber,fname",limit:60000}}
返回的结果中,每个物料占5行,一共五万行,大约是返回一万个物料,为什么其他的不返回了?
解决方案:
可以分页获取 0-1W条 StartRow=0 Limit=10000 1W-2W条 StartRow=10000 Limit=10000
"StartRow": 0, //开始行索引,整型(非必录)
例如你要查询前1W条就可以 startRow填0从第0条开始 Limit=10000
假如您要查2W条数据则先执行
"StartRow": 0,Limit:10000
第二次请求
"StartRow": 10000,Limit:10000
问题来源:https://vip.kingdee.com/link/s/l8LP5
4、 附件(文件服务器)字段存在哪个表里,怎么更新到单据附件控件中?
问题描述:
1. 附件(文件服务器)字段存在哪个表里?在对应单据体表中只能看到对应编码,在附件控件表中找不到这个编码。
2. 有什么方法能让单据审核时,把这个附件字段里的附件更新到单据附件控件中。
解决方案:
首先,参考这个,理解一下 附件(文件服务字段)和附件列表的区别
然后就是生成到单据附件列表中去,只需要生成附件信息就行了。
可以参考这个:文件服务.二开案例.附件保存时携带到另外的单据
问题来源:https://vip.kingdee.com/link/s/l8Lgh
5、 字段点击后,弹出表单元素选择器的实现思路是什么?
问题描述:
老师们好,没做过这块,不知道实现思路是什么,实现方式是点击文本字段触发动态表单吗
点击单据编号的字段旁边的三个点,后出现了表单元素选择器,这个表单元素选择器的内容和单据名称字段代表的对象有关。选择对应的字段信息后会反写到单据编号字段上。
解决方案:
是插件开发实现的,文本字段的编辑按钮"3个点",点击之后会触发BeforeF7Select事件。
可以参考:文本框点击右侧三个点可以弹出框选项这个是什么事件?
然后在这个事件中弹出需要调用的界面,这个界面可以是自己开发的,也可以是系统已存在的!
要实现这个,必须要知道怎么做界面交互的插件开发(弹出各种界面、传参、读取返回值)
可以参考:
然后这个表单元素选择器,应该系统预置的一个界面(ENG_BillFieldSelector),根据FormId读取业务对象的元数据BusinessInfo,然后解析业务对象中的所有实体和字段信息,用树形结构来展示。
可以在插件中调用这个界面,需要反编译看下这个界面如何接受参数和返回数据,才知道如何与这个界面交互!
如果要自己实现这个界面的功能,就需要掌握如何读取解析业务对象的元数据BusinessInfo,树形展示界面倒是次要的,也不复杂,实在不会开发,也可以用单据体来展示字段信息,也可以实现同样的效果!
例如,我这2个案例就是用的单据体来选择业务对象的字段的:
问题来源:https://vip.kingdee.com/link/s/l8L3o
6、 为什么拿不到过滤框模型或者说拿不到过滤条件控件?
问题描述:
然后因为上图实现的过滤框中条件可选择的字段都是空的,所以想实现修改过滤框条件,添加某个字段的比较条件
debug如下图
是我实现的思路有问题吗?咋整?希望大佬指点一二,谢谢
解决方案:
你截图的这个条件过滤里面的字段需要手动在BOS里面的过滤表单界面配置的。你在过滤表单的插件里面试试如下代码:
this.CommonFilterModel.FilterObject.FilterRows;
this.CommonFilterModel.FilterObject.GetFilterRows();
this.CommonFilterModel.FilterObject.GetFilterSQLString(this.Context)
问题来源:https://vip.kingdee.com/link/s/l8L5u
7、 协同平台搭建开发环境后,登录提示“语言未加载”?
问题描述:
在协同平台搭建开发环境,登录页面能出来,但是登录一直提示“语言未加载”。1.按照如下链接已经操作过了:https://vip.kingdee.com/link/s/l8LiV2.有小伙伴说可能是版本不一致的问题,检查了是一致的3.数据库1433的端口,在开发环境测试也是通的不知道到底是什么问题,有没有其他处理方案?,或者有日志能看?
解决方案:
1.管理中心中数据库列表中账套的数据库服务器名称应该是可访问的域名或者ip,不能是“.”、“localhost”、“127.0.0.1”或“本机机器名”。
2.进入【 .....WorkSpace\应用名称\K3Cloud\bin】,删除全部以ora开头的dll文件。
协同平台启动开发环境,提示“语言未加载”或者“初始语言列表失败”:https://vip.kingdee.com/link/s/l8LiV
问题来源:https://vip.kingdee.com/link/s/l8LnE
8、 表单插件设置单据体颜色的问题?
问题描述:
请问,我在应付单中写了这段设置颜色的代码,调试能正常通过,为啥前端就没有效果呢?
解决方案:
grid.SetRowBackcolor直接设置整行颜色好像不会生效。
我之前是循环单据体每个字段来设置整行颜色的。 grid.SetBackcolor("字段标识","#00FF00",index);
问题来源:https://vip.kingdee.com/link/s/l8L8r
我创建了<<协同开发,轻松入门>>的学习清单,推荐给你,和我一起学习交流吧!
<<协同开发,轻松入门>>
查看往期精选:
【汇总】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选
推荐阅读