首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >priority-web-sdk:选择字段的fieldUpdate失败

priority-web-sdk:选择字段的fieldUpdate失败
EN

Stack Overflow用户
提问于 2018-08-27 14:59:40
回答 1查看 87关注 0票数 0

我的表单包含一个带有下拉值的字段(这些值来自choose函数),当我第二次尝试更新该字段(使用fieldUpdate)时,我总是得到以下错误:“屏幕中已经存在具有相同值的记录”,为了实现正确的行为,需要执行的操作的正确顺序是什么?这是我实现这一目标的尝试:

代码语言:javascript
复制
await actions.loginTest();
const form = await actions.priority.formStart(this.formName, 
this.onShowMessgeFunc, this.onUpdateFieldsFunc);
_formInstance = form;
const rows = await form.getRows(1);
console.log("parent form rows", rows);
await _formInstance.setActiveRow(1);
form.choose("CUSTNAME", '').then(options => {
let custOptions = options.SearchLine.map(x => {return {label:x.retval + " - 
" + x.string1, value: x.retval }});     
}).catch((err) => {
console.log("CHOOSE ERROR", err);
})    

当我从下拉列表中选择一个值时,以下是我的操作:

代码语言:javascript
复制
await _formInstance.fieldUpdate("CUSTNAME", data.value);
await _formInstance.saveRow(1);
const rows = await _formInstance.getRows(1);
console.log("rows", rows);

第一次它工作得很好,但是当我第二次选择一个不同的值时,我得到了一个错误,说这个值已经存在(就像它认为我正在尝试更新值,但我不是这样做的,我只是想获得当我将字段保留为优先级时,作为字段触发器的结果返回的其他字段的值)。我没有任何更改值的目的,只是从子窗体获取其他字段和数据的信息。

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 16:23:05

我没有任何更改值的目的,只是从子窗体获取其他字段和数据的信息。

为了达到你的目的,你可以选择以下流程之一,这应该是可行的:

  1. Recommended:在拥有setSearchFilter()之后使用getRows(),以便检索您感兴趣的行,包括它的字段。然后很容易用它的索引setActiveRow()startSubForm()。您始终可以使用clearRows()清除当前行并检索其他行。

示例:

常量form =等待actions.priority.formStart(this.formName,this.onShowMessgeFunc,this.onUpdateFieldsFunc);常量过滤器={ QueryValues:{ field:'CUSTNAME',fromval: value,op:'=‘}}等待form.setSearchFilter(过滤器)常量行=等待form.getRows(1);console.log(“父窗体行”,行);等待form.setActiveRow(1);等待form.startSubForm(1);

  • 在不调用getRows()的情况下对newRow()执行“更新”。然后使用saveRow()startSubForm()来获取您需要的信息。对您尝试检索其数据的每个记录执行此操作。

说明:当调用getRows()时,您会检索一些行。然后,您将无法使用检索到的行中已存在的值更新key字段,否则将出现错误。

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

https://stackoverflow.com/questions/52034074

复制
相关文章

相似问题

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