电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

怎么查询单据体的数据

来源:金蝶云社区作者:金蝶2024-09-234

怎么查询单据体的数据

问题描述

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


解决方法

场景一:

    在表单插件中获取单据体数据

    

表单插件获取代码:

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);
        }
    }
}


场景二:

通过BusinessDataServiceHelperQueryServiceHelper获取,例如在单据列表上获取单据体数据:



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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信