关于星空列表插件的一个系统缺陷之正解(this.ListModel.GetData()失效问题)
今天接到一个比较简单的活,在星空列表界面做个按钮功能操作单据及附带的一些业务。
这比起之前做的功能来说属于基础性的开发了。
马上安排代码~
这里只体现要重点将的缺陷处
案例一:
ListSelectedRowCollection listSelecteds = this.ListView.SelectedRowsInfo;
if (listSelecteds.Count == 0)
{
this.View.ShowErrMessage("未选择需要修改的列");
return;
}
else
{
DynamicObjectCollection list = this.ListModel.GetData(listSelecteds);
foreach (DynamicObject row in list)//遍历收款单列表选中行数据
{
案例二:
ListSelectedRowCollection listSelecteds = this.ListView.SelectedRowsInfo;
if (listSelecteds.Count == 0)
{
this.View.ShowErrMessage("未选择需要修改的列");
return;
}
else
{
IEnumerable<string> FIDs = listSelecteds.Select(o => o.PrimaryKeyValue);
foreach (string FID in FIDs)
{
FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "SAL_SaleOrder") as FormMetadata;
DynamicObject row = BusinessDataServiceHelper.LoadSingle(this.Context, FID, formMetadata.BusinessInfo.GetDynamicObjectType());
对比两个代码可以看出不同之处。
但是案例一,在执行时在修改查询不通分录的情况下是娶不到list的。这个问题我思考了很久
很纳闷。标准的官方文档都是这样写,怎么就在这里不行了。
主要是之前的代码也是这样写的,还可以用得很好。
后面经过多方资料查阅,修改成了第二个方案:
只在界面取id。
再通过id去取对应的对象的方式。
完美解决
感谢分享,今天正好遇到同样的问题以及同样的疑惑
这个问题我也遇到过,获取列表的选中行数据这个和单据过滤界面的显示隐藏列有关系,不显示的字段数据包里面里面获取不到值
关于星空列表插件的一个系统缺陷之正解(this.ListModel.GetData()失效问题)
本文2024-09-16 18:35:04发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23100.html