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

【第16期】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选 2024年1月发布

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

【第16期】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选 2024年1月发布

各位社区的小伙伴们,大家好,我是  版主 OUT_MAN


在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里!  

本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟


玩转金蝶云社区


【第16期】

  更新日期:2024-1


1、 IBillView创建单据如何批量给单据体赋值

问题描述:
通过SQL查到值
如何将查到的值给到,构建的单据体;最好是可以批量,若是逐行每个字段给值效率会比较低。

image.webp


解决方案:

用IBillView赋值的话,只能逐行循环赋值,并且可以触发相关的值更新和实体服务规则,尽可能使用数据包赋值,不要用SetValue赋值,这样的话,效率会高一点。


如果要批量的话,也可以使用批量插入表格的方式赋值。但是需要先批量生成单据体新增行的主键ID。

可以参考:

系统运维.数据库.修复种子表(单据)

https://wenku.my7c.com/link/s/lVDMz 


平台接口-批量插入功能

https://wenku.my7c.com/link/s/lVDfo 


问题来源:https://wenku.my7c.com/link/s/lg57e       


2、 未能加载文件或程序集System.ComponentModel.Primitives.Version=8.0.0.0

问题描述:
早上好!各位老师,请教一个问题:我在ViSualStudio2022上编写了一个操作服务插件,生成解决方案成功,但在注册到系统上有如下提示报错,是什么原因所导致?是不是因为.net8.00这个版本太高,不兼容?可否远程协助一下调试,万分感谢!!!

image.webp

解决方案:

看下服务器 System.ComponentModel 这个组件是不是没有

image.webp


问题来源:https://wenku.my7c.com/link/s/lVDmD        


3、 构建行时单据id和分录id都设置了,以前都是只下推构建的行,现在突然整单被下推了。。。。是什么问题导致的啊

问题描述:
构建行时单据id和分录id都设置了,以前都是只下推构建的行,现在突然整单被下推了。。。。是什么问题导致的啊

image.webp

解决方案:

①单据内码不用传值。

②selectedRow.EntryEntityKey要赋值单据体的标识。(最容易忘记的)

③设置SelectByBillId参数为false

image.webp



问题来源:https://wenku.my7c.com/link/s/lVDKb


4、 求助!协同开发平台打不开单据,报错

问题描述:
在协同开发平台打开单据就这样了,之前使用还好好的,客户端都能进,扩展的内容也还在

尝试过在门户里卸载重装了,没有解决

完整报错信息如下:
发生时间:	2024-01-03 09:35:04
错误来源:	mscorlib
错误信息:	程序集“Kingdee.BOS.DomainModelDesigner, Version=8.0.144.1, Culture=neutral, PublicKeyToken=null”中的类型“Kingdee.BOS.DomainModelDesigner.View.DynamicFormDesigner”的方法“CreateView”没有实现。
===================================================
调用堆栈:
   在 System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
   在 System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
   在 System.Type.GetType(String typeName)
   在 Kingdee.BOS.DomainModelDesigner.ViewManager.GetDesignerContent(DomainModel dm, SolutionNode currNode, Enu_SolutionAction action)
   在 Kingdee.BOS.DomainModelDesigner.ViewManager.OpenForm(SolutionNode currNode, Enu_SolutionAction action)
   在 Kingdee.BOS.DomainModelDesigner.ViewManager.SolutionView_SolutionAction(Object sender, SolutionActionArgs e)
错误数据:	System.Collections.ListDictionaryInternal

image.webp

解决方案:

64位的操作系统,试试用这个X64打开BOS设计器。


image.webp


问题来源:https://wenku.my7c.com/link/s/lPAIc        

        

5、 如何在插件中释放网络控制?

问题描述:
 如何在插件中释放网络控制?

解决方案:

可参考二开案例.WebApi.网控


问题来源:https://wenku.my7c.com/link/s/lVumW        



6、 操作插件的撤销操作的代码是Operation_CancelAssign吗?为什么没有生效

问题描述:
操作插件的撤销操作的代码是Operation_CancelAssign吗?我在这个方法里面打了断点,但是点击撤销没有进去

image.webp

解决方案:

OperationId不是对应的操作代码,而是操作ID。

this.FormOperation.Operation,这个才是操作代码。


另外,你这个开发要注意的是,未启用工作流的情况下,点击撤销是触发撤销(CancelAssign),

如果启用工作流的情况下,点击撤销,系统触发的是反审核

image.webp

问题来源:https://wenku.my7c.com/link/s/lqFoB        


7、 企业版8.2 在插件中获取银行存款流水账表,报错“未将对象引用设置到对象的实例。 ”

问题描述:
因业务需要,二开需要获取到指定日期的银行账号余额,因此参考 小技巧 - 如何在服务层获取简单账表数据结果 (kingdee.com) 获取系统的【银行存款流水账】数据,可是代码在执行到获取报表数据
SysReportServiceHelper.GetListAndReportData(param);
时报错“未将对象引用设置到对象的实例”,已对比系统报表直接运行的参数RptParams与插件自定义的RptParams是一致的,可以帮忙看看是哪里的问题吗?附件中有源码,谢谢!
var bRpt = GetReportData(this.Context, "CN_BankDetailReport", "CN_BankDetailReportFilter", "657aafe41dd9dd", 0);


        /// <summary>
        /// 获取账表数据
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="rptFormId">账表FormId</param>
        /// <param name="rptFilterFormId">账表过滤方案FormId</param>
        /// <param name="schemeId">过滤方案内码</param>
        /// <param name="currentPosition">账表当前位置</param>
        /// <returns></returns>
        private IMoveReport GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, int currentPosition)
        {
            var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。
            var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFormId);//加载报表
            var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFilterFormId);//加载报表过滤条件元数据。
            var reportFilterServiceProvider = reportFilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider();
            var model = new SysReportFilterModel();
            model.SetContext(ctx, reportFilterMetadata.BusinessInfo, reportFilterServiceProvider);
            model.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
            model.FilterObject.FilterMetaData = filterMetadata;
            model.InitFieldList(reportMetadata, reportFilterMetadata);
            //List<Kingdee.BOS.Core.CommonFilter.FilterScheme> schList = model.GetSchemeList();//过滤方案的主键值,可通过该SQL语句查询得到:SELECT * FROM T_BAS_FILTERSCHEME
            var entity = model.Load(schemeId);
            var dyn = DeserializeCustomFilter(reportFilterMetadata.BusinessInfo, entity.CustomFilterSetting);
            model.DataObject = dyn;
            var filter = model.GetFilterParameter();

            #region 自定义过滤条件
            DateTime cDate = Convert.ToDateTime(this.Model.GetValue("F_UAWV_EDate"));
            DynamicObject cfilter = filter.CustomFilter;
            cfilter["StartDate"] = cDate;
            cfilter["EndDate"] = cDate;
            #endregion

            //var openParameter = new Dictionary<string, object>();

            var parameterDataFormId = reportMetadata.BusinessInfo.GetForm().ParameterObjectId;
            var parameterDataMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, parameterDataFormId);
            var parameterData = UserParamterServiceHelper.Load(ctx, parameterDataMetadata.BusinessInfo, ctx.UserId, rptFormId, KeyConst.USERPARAMETER_KEY);

            ReportVchInfo rptVchInfo = new ReportVchInfo();
            rptVchInfo.IsSetData = false;

            IRptParams rptParam = new RptParams();
            rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
            rptParam.CurrentPosition = cur

【第16期】金蝶云·星空-协同开发 | 产品应用典型/热门问答精选 2024年1月发布

各位社区的小伙伴们,大家好,我是 版主 OUT_MAN在金蝶云·星空-协同开发产品应用中,你需要了解的典型/热门问答都在这里! 本帖每月持续...
点击下载文档文档为doc格式

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

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