我正在尝试在“支票和付款”屏幕(AP302000)上添加自定义字段数据,并将通过“准备付款”屏幕(AP503000)填充数据。我在下面编写了用于创建付款的扩展方法。
**public delegate void _createPaymentsDelegate(List<APAdjust> list, PayBillsFilter filter, CurrencyInfo info, PaymentMethod paymenttype);
[PXOverride]
public void _createPayments(List<APAdjust> list, PayBillsFilter filter, CurrencyInfo info, PaymentMethod paymenttype, _createPaymentsDelegate baseMethod)
{
baseMethod?.Invoke(list, filter, info, paymenttype);
}**
我只需要更新用户定义字段。有人可以提供指导或为我指出适当解决方案的方向吗?
任何帮助都会很棒。
谢谢。
我创建了APRegisterExt的dac扩展,并添加了自定义字段UsrABC。
***[PXDBString(50)]
[PXUIField(DisplayName = "Test")]
public virtual string UsrABC { get; set; }
public abstract class usrABC : PX.Data.BQL.BqlString.Field<usrABC> { }***
此处正常工作,并保存用户定义字段的数据。
也在PayBillsFilterExt中创建了相同的字段。
从“准备付款”屏幕创建支票时,我无法在“支票和付款”屏幕上添加自定义字段数据。
***public delegate void _createPaymentsDelegate(List<APAdjust> list, PayBillsFilter filter, CurrencyInfo info, PaymentMethod paymenttype);
[PXOverride]
public void _createPayments(List<APAdjust> list, PayBillsFilter filter, CurrencyInfo info, PaymentMethod paymenttype, _createPaymentsDelegate baseMethod)
{
foreach (APAdjust adj in list)
{
APAdjustExt adjext = PXCache<APAdjust>.GetExtension<APAdjustExt>(adj);
PayBillsFilterExt pbillext =
PXCache<PayBillsFilter>.GetExtension<PayBillsFilterExt>(filter);
adjext.UsrSendMethod = pbillext.UsrSendMethod;
APPaymentEntry pe = APPaymentEntry.CreateInstance<APPaymentEntry>();
var res = payments.Select();
APPayment ct = (APPayment)res;
var ds = ct.GetExtension<APRegisterExt>();
ds.UsrSendMethod = adjext.UsrSendMethod;
pe.Save.Press();
}
baseMethod?.Invoke(list, filter, info, paymenttype);
}***