Приоритетный веб-метод SDK getSubform возвращает родительскую форму
Родительская форма та же самая, я только меняю компанию в запросе, а в какой-то компании я получаю родительскую форму вместо подформы. Так, например, у меня есть компания по умолчанию сделать запрос получить какую-то форму. В соответствии с действиями пользователя я изменяю компанию в форме запроса (но это то же имя формы).
После этого я пытаюсь получить какую-либо суб-форму и в одной конкретной компании / форме получить родительскую суб-форму вместо дочерней.
Я уже читал тему о проблеме, которая выглядит одинаково, но получить строки и установить активные строки мне не помогает. У кого-нибудь была эта проблема?
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 ответ
Из вашего фрагмента кода не ясно, что 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");