@bknights发布了一个有关在套件中填充子列表的另一个问题的好答案。
但是,在使用bk的代码时,我的问题随之而来:
function getJoinedName(col) {
var join = col.getJoin();
return join ? col.getName() + '__' + join : col.getName();
}
searchResults[0].getAllColumns().forEach(function(col) {
sublist.addField(getJoinedName(col), 'text', col.getLabel());
nlapiLogExecution('DEBUG', 'Column Label', col.getLabel());
});
var resolvedJoins = searchResults.map(function(sr) {
var ret = {
id: sr.getId()
};
sr.getAllColumns().forEach(function(col) {
ret[getJoinedName(col)] = sr.getText(col) || sr.getValue(col);
});
return ret;
});
sublist.setLineItemValues(resolvedJoins);
以上内容适用于不带公式的标准搜索...当我有多个包含公式的搜索列时怎么办?
使用API1.0
答案 0 :(得分:0)
您只需获取搜索结果的所有列。 columns = result[0].getColumns()
。引用公式列所在的列。因此,如果您查看的是用户界面,它是自上而下的第三个,则可以使用result[0].getValue(columns[2])
此解决方案取决于行的顺序不变。
如果保存的搜索中有公式的标签,则只需将标签用作字段ID。
答案 1 :(得分:0)
在搜索定义中,将标签添加到所有公式列。然后,您的列键可以像这样导出:
function getJoinedName(col) {
if(col.getName().indexOf('formula') === 0 && col.getLabel()){
return 'lbl_'+ col.getLabel().toLowerCase();
}
var join = col.getJoin();
return join ? col.getName() + '__' + join : col.getName();
}