今天接到一个比较简单的活,在星空列表界面做个按钮功能操作单据及附带的一些业务。
这比起之前做的功能来说属于基础性的开发了。
马上安排代码~
这里只体现要重点将的缺陷处
案例一:
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去取对应的对象的方式。
完美解决
推荐阅读