单据体与子单据体取值、赋值操作原创
金蝶云社区-lilinpo
lilinpo
4人赞赏了该文章 2518次浏览 未经作者许可,禁止转载编辑于2023年12月25日 15:07:38

假设页面存在单据体、子单据体

    单据体标识:entryentity

    子单据体标识:subentryentry

一、给页面上单据体entryentity赋值、取值

    1、给单据体某一行中某一字段赋值、取值

this.getModel().setValue("fieldname", value, rowIndex);
this.getModel().getValue("fieldname", rowIndex);

    2、给单据体所有行中某一字段赋值

DynamicObjectCollection entryentityCols= this.getModel().getEntryEntity("entryentity");
for (int index = 0; index  < entryentityCols.size(); index ++) {
    this.getModel().setValue("fieldname", value, rowIndex);
}

二、给页面上子单据体subentryentry赋值取值

    1、给子单据体某一行中某一字段赋值、取值

// 赋值
this.getModel().setEntryCurrentRowIndex("entryentity", entryentityRow); // 设置单据体行号
this.getModel().setValue("fieldname", value, rowIndex);
// 取值
int entryentityRow= this.getModel().getEntryCurrentRowIndex("entryentity"); // 单据体行
this.getModel().getValue("expenseitem", rowIndex, entryentityRow);

    2、给子单据体所有行中某一字段赋值(最好使用方式二)

DynamicObjectCollection entryentityCols= this.getModel().getEntryEntity("entryentity"); // 单据体
for (int index = 0; index  < entryentityCols.size(); index ++) {
    DynamicObject entryentity= entryentityCols.get(i);
    this.getModel().setEntryCurrentRowIndex("entryentity", index);
    DynamicObjectCollection subentryentryCols= entryentity.getDynamicObjectCollection("subentryentry"); //子单据体
    for (int rowIndex= 0; rowIndex< subentryentryCols.size(); rowIndex++) {
        this.getModel().setValue("fieldname", value, rowIndex);
    }
}


// 方式二
DynamicObjectCollection entryentityCols= this.getModel().getEntryEntity("entryentity"); // 单据体
for (int index = 0; index  < entryentityCols.size(); index ++) {
    DynamicObject entryentity= entryentityCols.get(i);
    DynamicObjectCollection subentryentryCols= entryentity.getDynamicObjectCollection("subentryentry"); //子单据体
    for (int rowIndex= 0; rowIndex< subentryentryCols.size(); rowIndex++) {
        this.getModel().setValue("fieldname", value, rowIndex, index );
    }
}



赞 4