怎么查询单据体的数据

问题描述
单据和单据体的关系是一对多,所以我们是不能单独去获取单据体数据的,必须要先要获取单据,才能去获取单据体数据,获取单据体的场景有很多,方式也有很多,例如在表单界面,可以通过表单插件this.getModel对象去获取,在没有Modle对象时,可以通过查询帮助类:BusinessDataServiceHelper与QueryServiceHelper去获取。
解决方法
场景一:
在表单插件中获取单据体数据

表单插件获取代码:
public class Demo05Edit extends AbstractBillPlugIn {
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if("kdec_baritemap".equals(itemKey)){
//方式一
DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("entryentity");
for (DynamicObject dynamicObject : entryEntity) {
String kdec_textfield = dynamicObject.getString("kdec_textfield");
int kdec_integerfield = dynamicObject.getInt("kdec_integerfield");
}
//方式二
DynamicObjectCollection entryentity1 = (DynamicObjectCollection) this.getModel().getValue("entryentity");
//方式三,页面只存在一个单据体:获取分录第一行的文本值
String kdec_textfield = (String) this.getModel().getValue("kdec_textfield", 0);
//方式四,获取子单据体数据:父单据体第一行中子单据体第一行的数据
this.getModel().getValue("kdec_textfield1",0,0);
}
}
}场景二:
通过BusinessDataServiceHelper与QueryServiceHelper获取,例如在单据列表上获取单据体数据:

public class Demo02Edit extends AbstractListPlugin {
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if("kdec_baritemap".equals(itemKey)){
BillList billList = this.getView().getControl(Demo02Edit.BILLLISTID);
//获取表单选中行
ListSelectedRowCollection selectedRows = billList.getSelectedRows();
//获取单据id
Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues();
for (Object primaryKeyValue : primaryKeyValues) {
//通过BusinessDataServiceHelper.loadSingle获取单据体数据
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "kdec_wfb1115");
//获取单据体数据,返回DynamicObjectCollection集合对象
DynamicObjectCollection entryentity = dynamicObject.getDynamicObjectCollection("entryentity");
//遍历集合获取单据体字段值
for (DynamicObject object : entryentity) {
String kdec_textfield = object.getString("kdec_textfield");
int kdec_integerfield = object.getInt("kdec_integerfield");
}
//通过BusinessDataServiceHelper.load获取单据体数据,并指定获取字段标识selectProperties,获取单据体数据需要单据体标识.字段标识,如:entryentity.kdec_textfield
String selectProperties = "id,billno,entryentity.kdec_textfield,entryentity.kdec_integerfield";
DynamicObject[] load = BusinessDataServiceHelper.load("kdec_wfb1115", selectProperties, new QFilter("id", QCP.eq怎么查询单据体的数据
问题描述单据和单据体的关系是一对多,所以我们是不能单独去获取单据体数据的,必须要先要获取单据,才能去获取单据体数据,获取单据体的场...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



