优先级Web SDK方法getSubform返回父表单

时间:2018-10-15 11:21:27

标签: priority-web-sdk

父表格是相同的,我只在请求中更改公司,而在某些公司中,我得到母表格而不是子表格。因此,例如,我有默认公司发出请求以获取某种形式。根据用户的操作,我在表单请求中更改了公司(但表单名称相同)。

此后,我尝试获取一些子表单,并在一个特定的公司/表单上获取父子表单,而不是子表单。

我已经阅读了有关该问题的主题,但是获取行并设置活动行对我没有帮助。 有人遇到这个问题吗?

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

然后我看到的表格与以前一样

1 个答案:

答案 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");