首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >priority-web-sdk: startSubForm返回父窗体

priority-web-sdk: startSubForm返回父窗体
EN

Stack Overflow用户
提问于 2018-08-22 23:43:25
回答 2查看 93关注 0票数 2

下面的代码启动一个窗体和子窗体,问题是I获取父窗体的subform实例:

代码语言:javascript
复制
    await actions.loginTest();
    const form = await actions.priority.formStart(this.formName, 
    onShowMessgeFunc, onUpdateFieldsFunc);
    console.log("form", form);
    if(form.subForms["SHIPTO2"]) {
      const subForm = await form.startSubForm("SHIPTO2");
      console.log("subform", subForm);
      subForm.choose("CUSTDES", '').then(options => {
        let custOptions = options.SearchLine.map(x => {return 
       {label:x.retval + " - " + x.string1, value: x.retval }});
        this.setState({
          customersShippingOptions: custOptions,
        })
      }).catch((err) => {
        console.log("CHOOSE ERROR", err);
      })
    }

输出:

EN

回答 2

Stack Overflow用户

发布于 2018-08-23 15:39:57

为了启动子窗体,父窗体中必须有活动的行,因此该子窗体将为该行启动。

在启动子窗体之前,应该使用getRows()函数来检索行,然后调用setActiveRow(rowIndex)来设置活动行。然后,您可以启动子窗体。

将您的代码修改为:

代码语言:javascript
复制
await actions.loginTest();
const form = await actions.priority.formStart(this.formName, 
             onShowMessgeFunc, onUpdateFieldsFunc);
console.log("form", form);
const rows = await form.getRows();
await setActiveRow(5);
if(form.subForms["SHIPTO2"]) {
   const subForm = await form.startSubForm("SHIPTO2");
   console.log("subform", subForm);
   ...
}

顺便说一下:我看到你在使用choose(),这里也需要有一个活动的(子窗体)行,使用getRows()setActiveRow(),或者在调用choose()之前创建一个newRow()

票数 2
EN

Stack Overflow用户

发布于 2018-08-23 16:10:00

如果您不想仅仅使用函数formStart中的autoRetrieveFirstRows参数,而是希望在屏幕上显示第一行

Link to the function on the Web SDK site

我个人将此值定义为默认值

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51970526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档