U9客开中UI插件开发过程中碰到有一个坑

U9系统太大了,不可避免会发生一些隐含的重大BUG。今天碰到一个这样的问题,在请购单列表上做了一个【模拟提交】的按钮,目的是取代原来的【提交】按钮,目的是可以加上个性化需要的防呆措施,实现客制化的目的。效果如下图。

//在BE界面上才可以调用提交按钮的SubmitClick方法,UI界面上不可以调。有二种方式:

//1、调用SubmitClick方法

UIActionEventArgs uIActionEventArgs = new UIActionEventArgs();

this.part.Action.SubmitClick(sender, uIActionEventArgs);//提交

//2、调用服务

var submitService = new UFIDA.U9.PR.PurchaseRequest.Proxy.PRSubmitBPNewProxy();

var iDS = new List<long>();

//要拿到请购单行的ID,才能提交成功

foreach (UFIDA.U9.SCM.PM.PRUIModel.PR_PRLineListRecord rec in this.part.Model.PR_PRLineList.Records)

{

var recType = rec.GetType();

System.Diagnostics.Debug.WriteLine(recType.FullName);

if (rec != null && rec.ID > 0)

{

iDS.Add(rec.ID);

}

}

if (iDS.Count == 0)

{

throw new Exception("未找到有效的请购单行,请重新选择。");

}

submitService.PRLines = iDS;

submitService.Do();

PR_PRLineListRecordrec 竟然还有另外一种类型的匹配,相关的dll文件内部有BUG吧。有错误提示。

操作:PRSubmitBPNew的参数:PRLineKeys设置不正确,此异常出现的原因为该操作的调用方提供的参数值不正确导致

曾几何时用var去标识,是不破的万金油,每每顺利解决掉阻碍。此次因为还有另外一种类型也是返回PR_PRLineListRecord 。分析了很久,不得其解。无奈之下,问下万能的AI,果然解决了!措施:把类的全路径信息标全。完美解决掉问题。

相关推荐
xiaoye-duck22 分钟前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
Funlang2 小时前
龙芯上的 Fun:从跑起来到机器码
开发语言·龙芯
总要学点什么2 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
旖旎夜光2 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
ShineWinsu2 小时前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
普通人63 小时前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节
꧁细听勿语情꧂3 小时前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法
SomeOtherTime3 小时前
Rust集合(AI回答)
开发语言·后端·rust
曦樂~4 小时前
【Web Development】03JavaScript 基础和事件
开发语言·前端·javascript
郝学胜-神的一滴4 小时前
LangChain Skill 实现(渐进披露 On-Demand Skill,LangChain 官方 Deep Agent Skill 模式)
开发语言·python·langchain·numpy