У меня есть настройка для формы заказа на продажу (SO301000), которая действует очень странно.Цель состоит в том, чтобы использовать 5 настраиваемых полей для расчета добавленной стоимости в строке.У меня работают 5 полей (1 int, 4 decimal 8,3), я добавил код и атрибуты, чтобы они обновили строку после редактирования.После каждого обновления полей я запускаю функцию обновления строки, в конце которой он обновляет количество, сумму скидки и настраиваемое поле (предназначенное для устранения неполадок).
Что сводит меня с ума, так это то, что он отлично обновляет количество и настраиваемое поле ... но в 4 десятичных полях, похоже, он обновляет скидку только через раз.Сначала я подумал, что столкнулся с некоторой логикой: поле int (и я понятия не имею, связано ли оно с типом переменной, но это единственное различие, которое я вижу) работает каждый раз
Кодобновлять после каждого изменения поля все одно и то же (кроме, конечно, имени поля):
protected void SOLine_UsrWidthAdder_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
UpdateLineDirect(cache, (SOLine)e.Row);
}
А код в конце UpdateLineDirect выглядит так:
cache.SetValue<SOLine.manualDisc>(TheRow, true);
cache.SetValue<SOLine.discPct>(TheRow, dDiscountPercent);
cache.SetValue<SOLineExt.usrCostCalc>(TheRow, TestString);
cache.SetValue<SOLine.curyDiscAmt>(TheRow, dDiscountAmount);
cache.SetValueExt<SOLine.orderQty>(TheRow, dQO);
Я пробовал различные порядки обновления полей и обновления их всех с помощью Ext для принудительного вычисления каждый раз, но ни одна из комбинаций, которые я пробовал, кажется, не имеет большого значения.
Заранее спасибо!