父表格是相同的,我只在请求中更改公司,而在某些公司中,我得到母表格而不是子表格。因此,例如,我有默认公司发出请求以获取某种形式。根据用户的操作,我在表单请求中更改了公司(但表单名称相同)。
此后,我尝试获取一些子表单,并在一个特定的公司/表单上获取父子表单,而不是子表单。
我已经阅读了有关该问题的主题,但是获取行并设置活动行对我没有帮助。 有人遇到这个问题吗?
async getDocuments(formName: string, getMappedRows: Function) {
const _currentOrderType = this.priorityService.getCurrentOrderType();
const _groupForm = await this.priorityService.getFormBridge(eSharedForm.GROUP.toString());
await _groupForm.setActiveRow(_currentOrderType.company.key);
const ListForm = await this.priorityService.getSubFormBridge(formName.toString(), _groupForm);
//some more logic
}
private async _getSubForm(name: string, form: any) {
try {
const subform = await form.startSubForm(name, this.onMessage, this.onUpdate);
debugger;
return subform;
} catch (e) {
this.subForms[name] = undefined;
const _e = JSON.stringify(e);
console.log(`[PriorityService::_getSubForm] Error starting subform '${name}': ${_e}`);
throw e;
}
}
然后我看到的表格与以前一样
答案 0 :(得分:1)
从您的代码片段中不清楚getSubFormBridge
是做什么的,还是_currentOrderType.company.key
的值是数字的吗?这是您要检索的行号吗?
启动父窗体时,尝试将autoRetrieveFirstRows
设置为1,这意味着选择当前窗体的第一行。如果您确定要检索的行,请传递正确的行号。
例如:
const form = await priority.formStart('ORDERS', this.onError, this.onSuccess, '', 1);
如果需要先过滤并选择一行,请使用setActiveRow
方法,并将要获取的行号传递给它。 (从1开始)
一旦选择了该行,就检索子窗体。例如:
const subform = await form.startSubForm("ORDERITEMS");