Для начала скажу, что я работаю с модулем управления сервисами в Acumatica в версии 6.1. Это означает, что Service Management является проектом и не является стандартным на данный момент. Я пытаюсь создать настраиваемое поле Usr, необходимое на вкладке на экране «Заказы на обслуживание», основываясь на значении другого настраиваемого поля Usr. Я пробовал как RowUpdated
, так и FieldUpdated
события. Я включил код для обоих ниже с соответствующими ошибками на обоих.
Поле обновлено:
protected void FSServiceOrder_Usrwarrstat_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
if(InvokeBaseHandler != null)
InvokeBaseHandler(cache, e);
var row = (FSServiceOrder)e.Row;
if(row == null) return;
var WarrantyStatus = row.Usrwarrstat;
if (WarrantyStatus == null) return;
if (WarrantyStatus == "W" || WarrantyStatus == "P"){
PXDefaultAttribute.SetPersistingCheck<FSServiceOrderExt.usrTransModelNbr>(cache, e, PXPersistingCheck.NullOrBlank);
}
}
Ошибка:
\App_RuntimeCode\ServiceOrderEntry.cs(484): error CS1061: 'FieldService.ServiceDispatch.FSServiceOrder' does not contain a definition for 'Usrwarrstat' and no extension method 'Usrwarrstat' accepting a first argument of type 'FieldService.ServiceDispatch.FSServiceOrder' could be found (are you missing a using directive or an assembly reference?)
Ряд обновлен:
protected void FSServiceOrder_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e)
{
var row = (FSServiceOrder)e.Row;
var WarrantyStatus = Base.Caches[typeof(FSServiceOrder)].Current.Usrwarrstat;
if(row == null) return;
if (WarrantyStatus == null) return;
if (WarrantyStatus == "W" || WarrantyStatus == "P"){
PXDefaultAttribute.SetPersistingCheck<FSServiceOrderExt.usrTransModelNbr>(cache, e, PXPersistingCheck.NullOrBlank);
}
}
Ошибка:
\App_RuntimeCode\ServiceOrderEntry.cs(377): error CS1061: 'object' does not contain a definition for 'Usrwarrstat' and no extension method 'Usrwarrstat' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
Мне кажется, что это как-то связано с управлением службами. В настоящее время Acumatica не является стандартом для этой версии, поэтому создание полей cusotm не будет привязывать его к правильному представлению, но я могу ошибаться.