当满足某些条件时,我需要通过客户端脚本显示alert()
。但是我无法打印记录号,这将是对用户的关键信息,这些特定记录正在导致系统显示警报。我做了一个for循环,在其中将docNo
(记录ID)的值压入名为docNoArr
的数组中。然后在另一个for循环中,我使用在docNoArr
数组中推送的值触发了警报。谁能建议我一个更好的方法来优化代码,使其不断重复。我的老师对DRY说:不要重复自己。但是这里我卡住了,就像不重复一样。
我的代码:
var docNoArr = [];
/* 1st For Loop */
for (var e = 0; e < count; e++) {
isApplied = rec.getSublistValue({
sublistId: subid,
fieldId: reqid,
line: e
});
if (isApplied == true) {
rectype = rec.getSublistValue({
sublistId: subid,
fieldId: 'custpage_am_rectype',
line: e
});
if (rectype == 'qcs') {
var supplierFld = rec.getValue({ fieldId: 'custpage_am_vendor' });
var docNoFld = rec.getSublistValue({
sublistId: subid,
fieldId: 'custpage_am_docnum',
line: e
});
var recomdSupplier = rec.getSublistValue({
sublistId: subid,
fieldId: 'custpage_am_supplier',
line: e
})
if (recomdSupplier != supplierFld) {
docNoArr.push(docNoFld);
}
}
}
}
/* 2nd For Loop */
for (var ee = 0; ee < count; ee++) {
isApplied1 = rec.getSublistValue({
sublistId: subid,
fieldId: reqid,
line: ee
});
if (isApplied1 == true) {
rectype1 = rec.getSublistValue({
sublistId: subid,
fieldId: 'custpage_am_rectype',
line: ee
});
if (rectype1 == 'qcs') {
var supplierFld1 = rec.getValue({ fieldId: 'custpage_am_vendor' });
var recomdSupplier1 = rec.getSublistValue({
sublistId: subid,
fieldId: 'custpage_am_supplier',
line: ee
});
if (recomdSupplier1 != supplierFld1) {
alert('Vendor selected in not recommended in ' + docNoArr + ' \nPlease enter Correct Vendor!');
return false;
}
}
}
}
我不完全确定代码的作用,但是看起来您只是为了获取警报索引而创建了一个新数组?
可以吗?
if (recomdSupplier != supplierFld) {
docNoArr.push(docNoFld);
alert('Vendor selected in not recommended in ' + docNoArr.length - 1 + ' \nPlease enter Correct Vendor!');
}