Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netsuite 添加行项目后,交易记录列公式字段是否可以更新?或者仅在记录保存之后_Netsuite - Fatal编程技术网

Netsuite 添加行项目后,交易记录列公式字段是否可以更新?或者仅在记录保存之后

Netsuite 添加行项目后,交易记录列公式字段是否可以更新?或者仅在记录保存之后,netsuite,Netsuite,我想在费用报告费用行上创建一个“合计行”字段,将税款中的金额添加到小计“金额”中,以给出特定费用的总额。 但我的问题是,添加行后,它是空的。 它只在保存记录后起作用,但这对员工没有多大帮助,因为他们正在输入他们的费用。 这是NetSuite的限制吗? 我是否需要加入一个脚本,在添加一行后以某种方式刷新记录?我不熟悉脚本编写 公式为{amount}+({amount}*{taxrate1})+({amount}*{taxrate2}) 字段id为custcol\u total\u行 谢谢 下面是我

我想在费用报告费用行上创建一个“合计行”字段,将税款中的金额添加到小计“金额”中,以给出特定费用的总额。 但我的问题是,添加行后,它是空的。 它只在保存记录后起作用,但这对员工没有多大帮助,因为他们正在输入他们的费用。 这是NetSuite的限制吗? 我是否需要加入一个脚本,在添加一行后以某种方式刷新记录?我不熟悉脚本编写

公式为{amount}+({amount}*{taxrate1})+({amount}*{taxrate2})

字段id为custcol\u total\u行

谢谢


下面是我将使用的字段更改功能。我将使用下面的函数使其成为客户端脚本。如果行中的金额发生变化,则当前将触发此操作

/**
 * The recordType (internal id) corresponds to the "Applied To" record in your script deployment. 
 * @appliedtorecord recordType
 * 
 * @param {String} type Sublist internal id
 * @param {String} name Field internal id
 * @param {Number} linenum Optional line item number, starts from 1
 * @returns {Void}
 */
function clientFieldChanged(type, name, linenum){
    if(type == 'item' && name == 'amount'){
        var amount = nlapiGetLineItemValue('item','amount', linenum);
        var taxRate1 = nlapiGetLineItemValue('item','taxrate1', linenum);
        var taxRate2 = nlapiGetLineItemValue('item','taxrate2', linenum);

        var totalLineAmt = amount + (amount*taxRate1) + (amount*taxRate2);
        nlapiSetLineItemValue('item', 'custcol_total_line', linenum, totalLineAmt);
    }
}

我很难让上述功能正常工作,所以我向NetSuite寻求帮助,如果它对其他人有用的话,这就是我们最终得到的结果。我们把它作为一个验证行函数。我把它添加到费用报告表上的自定义代码中。非常感谢您的帮助@TMAnn

function validatetotalline(type){
    if(type == 'expense'){
    var amount = parseFloat(nlapiGetCurrentLineItemValue('expense','amount'));
    var taxRate1 = parseFloat(nlapiGetCurrentLineItemValue('expense','taxrate1'));
    var taxRate2 = parseFloat(nlapiGetCurrentLineItemValue('expense','taxrate2'));

    var totalLineAmt = (amount) + (amount*taxRate1/100) + (amount*taxRate2/100);
    nlapiSetCurrentLineItemValue('expense', 'custcol_total_line', totalLineAmt);
    return true;

}
}

你完全可以用脚本来完成。但是要尝试并停留在公式字段上,您可以提供您正在尝试的公式吗?谢谢,它是{amount}+({amount}*{taxrate1})+({amount}*{taxrate2})字段id是custcolu-total_line@TMann你能给我一个剧本的建议吗?看起来你知道你在做什么!非常感谢,剧本很简单。您可以有一个字段更改函数,该函数可以触发数量更改。您将获得每个函数的值,然后进行数学运算,并在新字段中设置计算量。我将尝试编写代码,并在稍后作为答案发布。仅供参考-我看到你刚刚用脚本信息再次发布了这个问题。一般来说,你不想为同一件事发表两篇文章。人们把它看作是这里的重复,可能会否决投票,甚至结束这个问题。最好one@TMann非常感谢!我删除了另一个问题。我想知道recalc是否会自动查看总金额的变化?也许我看错了。我开始尝试做我自己的(我对脚本一无所知),但就是这样。函数recalc(,'myrecalc'){nlapiSetFieldValue('custcol_total_line','{amount}+({amount}*{taxrate1})+({amount}*{taxrate2});}非常感谢@TMann,所以我在费用记录表单的自定义代码下添加了它作为“total_line_stackoverflow.js”,在字段更改函数下我添加了“clientFieldChanged”。我还需要做些什么来完成这项工作吗?当我添加费用线时,它似乎不起作用。谢谢again@gabe17,是否创建了脚本部署记录?没有问题。对不起,我没有看到你的后续问题。我忘记了parseFloat,没有在我的帐户中测试它。很高兴我的代码为您提供了一个良好的开端,让您能够到达需要的地方。谢谢@TMann事实证明,该脚本停止了NetSuite的拖放文件功能,因为它正在为所有子列表运行,包括添加文件,并且它不知道如何处理该脚本。NetSuite研究了这个问题,但我不得不承认我不理解他们的反应。它说……”“添加”按钮被禁用的原因是If(type==“expense”)费用不是有效类型的行,因为它暗示了记录的实际类型。应用选项卡下的列表也不能与nlapiGetCurrentLineItemValue一起使用,因为它是一个完全不同的记录,因为您无法从中提取类型。要检查哪些字段可以为任何类型的记录编写脚本,您可以参考记录浏览器,请参阅Id 10511(使用SuiteScript记录浏览器)“您知道如何解决此问题吗?是否需要说明“金额”字段是否大于0?