Я бы рекомендовал использовать user event before submit
скрипт для установки значения поля как нуль, так как клиент сценарий может не сработать, если точка ввода данных через импорт CSV, SuiteScript и т.д.
if (nlapiGetFieldValue(TO_BE_SUBMITTED_FIELD_ID) == 'F'){
nlapiSetFieldValue('tranid', null);`
}
Если вы хотите, вы можете написать дополнительный скрипт клиента для отключения/очистки поля, если значение флажка установлено в false, для лучшего UX.
Для порядкового номера я бы сказал, используйте следующий код (я предполагаю, что порядковые номера чистые номера)
if (nlapiGetFieldValue(TO_BE_SUBMITTED_FIELD_ID) == 'T'){
//search in descending order (use this code in your same before submit script)
var search = nlapiCreateSearch(RECORD_TYPE, ['mainline', 'is', 'T'], new nlobjSearchColumn('tranid').setSort(true));
var results = search.runSearch();
var records = results.getResults(0, 1);
var nextTranId = praseInt(records[0].getFieldValue('tranid'), 10) + 1;
nlapiSetFieldValue(tranid, nextTranId);
}
Моя немедленная мысль была, что это должно быть сценарий клиента, используя событие fieldChanged, любая причина, почему это должен быть сценарий пользовательского события? – John
Пользователь должен проверить/снять флажок с помощью пользовательского интерфейса, поэтому я написал код типа 'if (bToBePrinted == 'F')' '{' 'recBillPayment.setFieldValue ('tranid', null);' '}' – Winona
Теперь проверка # автоматически генерируется в последовательности. Мое требование: 1) Если пользователь редактирует чек # и сохраняет его, он должен сохранить значение, введенное пользователем. 2) Старая последовательность должна следовать за следующими платежами. – Winona