获取基础资料列表的数据

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

获取基础资料列表的数据

问题描述

列表点击按钮时,获取所有列信息


原因分析

这时候通过代码获取选中行信息,只能获取到模板预置的字段:id,单据体id,编码,名称,数据状态;想要获取列表更多列,需要通过QueryServiceHelper或BusinessDataServiceHelper进一步查询获取

BillList billList = this.getControl(AbstractListPlugin.BILLLISTID);
ListSelectedRowCollection selectedRows = billList.getSelectedRows();


解决方案

在插件中通过QueryServiceHelper或BusinessDataServiceHelper获取列表完整信息

BillList billList = this.getControl(AbstractListPlugin.BILLLISTID);
//获取选中行信息,只能拿到id,number,name,enable,status信息;要获取其他列信息,需要通过QueryServiceHelper或BusinessDataServiceHelper查询
ListSelectedRowCollection selectedRows = billList.getSelectedRows();
//获取选中行pkid
Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues();
StringBuffer str = new StringBuffer();
for (Object primaryKeyValue : primaryKeyValues) {
//获取基础资料列表信息
QFilter qFilter = new QFilter("id", QCP.equals,primaryKeyValues);
String selectFields = "id,number,name,enable,status,kdec_basedatafield1.name,kdec_entryentity.kdec_basedatafield.name,kdec_entryentity.kdec_mulbasedatafield.fbasedataid.name";
DynamicObjectCollection query = QueryServiceHelper.query(billList.getBillFormId(),selectFields,new QFilter[]{qFilter});
//DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(primaryKeyValue, billList.getBillFormId());
for (DynamicObject dynamicObject : query) {
Object id = dynamicObject.get("id");
DynamicObjectType dynamicObjectType = dynamicObject.getDynamicObjectType();
DataEntityPropertyCollection properties = dynamicObjectType.getProperties();
for (IDataEntityProperty property : properties) {
String name = property.getName();
Object o = dynamicObject.get(name);
str.append(name+":");
str.append(o);
str.append(",");
}
}
}
this.getView().showMessage(str.toString());


注意事项

  • 当有一些比较复杂的字段不知道如果获取时,如:单据体中的多选基础资料字段的名称或编码;

    selectFields传空,可以获取到实体的所有值,再查看DynamicObject对象的结构分析,可以拿到想要数据的标识;


  • 通过QueryServiceHelper获取的是一个平铺对象PlainObject,因为有两条分录信息,并且分录中有多选基础资料,每个多选基础资料选择了两项数据,所以查出来会包含四条信息

如果只想查询其中一条分录信息,在列表开启支持分录被选择,并在查询的时候QFilter添加单据体id


参考资料














获取基础资料列表的数据

问题描述列表点击按钮时,获取所有列信息原因分析这时候通过代码获取选中行信息,只能获取到模板预置的字段:id,单据体id,编码,名称,数...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息