我希望有人能提供帮助。我最近写了一个SuiteScript 2.0项目。主套件在具有SublistType为LIST的子列表中显示交易/客户信息。现在,我们一次在列表中显示750条记录,但是可能会有成百上千条甚至几千条其他记录,因此用户希望有一个“下一个”和“上一个”按钮,以便他们可以循环到下一页。结果。
问题在于我似乎无法终生更新该子列表。子列表上的字段是除一个复选框以外的所有文本字段。在客户端脚本中,我一直在尝试类似于以下代码的操作。 (我删除了除setCurrentSublistValue调用之外的所有调用,以缩短代码):
var currentRec = currentRecord.get();
currentRec.selectLine({
sublistId: 'custpage_studstatement',
line: 0
});
currentRec.setCurrentSublistValue({
sublistId: 'custpage_studstatement',
fieldId: 'custpage_show',
value: false
});
currentRec.commitLine({sublistId: 'custpage_studstatement'});
它将旋转所有子列表项,但仅复选框会更新。文本字段均未更改,并且不会引发任何异常。
如果将子列表更改为EDITOR,则可以更新该行上的所有字段,而不会出现问题。从本质上来说,它们表现出了我想要的方式。另外,如果我更改了任何文本字段的FieldDisplayType,则可以更新这些单独的字段,但是这些选项都不可接受。我们不希望用户能够像这样编辑这些字段/行。 LIST子列表是我们想要的列表,但是我开始认为您无法从客户端脚本更新LIST子列表,即使文档建议您也可以。 (尽管不是确定的。文档有些粗略)
所以我想我基本上只是在寻找一个高水平的答案,因为我不确定我是否正确地解决了这个问题。如果您有一个仅是LIST的自定义子列表,您将如何添加分页显示下一组结果的功能?是否应该在客户端脚本中完成子列表的更新?如果是这样,怎么办?还是应该在小套房中?如果是这样,怎么办? (我也尝试了Suite中的一些其他操作,但是为了避免这种情况不再存在,我将忽略掉)
答案 0 :(得分:0)
我在这里做一些假设: 您的套件创建一个自定义页面-它有一个子列表。子列表是一个form.sublist。里面是字段sublist.addfields。
您可以使用sublist.setSublistValue,它可以填充整个子列表。
现在,这取决于您如何获取子列表的值-正文中可以包含其他字段-正文将定义用于过滤此搜索的过滤器。这样可以将页面上显示的结果按比例缩小以达到您想要的结果。
您确实可以拥有下一页和上一页-您拥有搜索对象,而下一页/上一页按钮将影响结果。getRange()函数-而不是例如getRange({start:0 end: 1000})将getRange({start:1000 end:2000})扩大到更大。 (这不是唯一的方法,但是我想我会怎么做)
无论哪种方式,如何获取数据集-search.create将位于您的套件中,getRange将位于您的套件中。您如何设置SublistValue将在您的套件中。如何创建按钮将在套件中。
但是,按钮触发的功能将在您的客户端脚本中,通过form.clientScriptModulePath ='./xxx.js'加载;这样的事情。此客户端脚本可以通过url.resolveScript触发脚本,并触发Suitelet添加参数。传递一些参数以指示要加载哪个“页面”(第一组结果...第二组结果等)
希望这会为您指明正确的方向!
答案 1 :(得分:0)
您无法使用客户端脚本以及子列表为LIST
类型来更新套件中的子列表。
您可以创建Next
和Previous
按钮,然后单击这些按钮,您可以再次从ClientScript中点击套件网址,并传递pagenumber
参数,并向前和向后显示子列表数据集向后的方向取决于pagenumber
的值。
例如:-如果您一次显示750页,则第一次按Next
时,您的pagenumber
参数将为2,然后在页面中显示下750个条目。