Acumatica - 需要对象引用或非静态字段、方法或 属性
Acumatica - An object Reference is Required or the non-static field, method, or property
嗨,有人遇到过这个错误吗?每次我在 foreach 循环上使用 PXSelect 时,在另一个源代码上使用 PXSelect 而在我的代码上没有,任何人都可以找出原因吗?下面的代码也是 Acumatica 的原始源代码,但我只将 Datamember 从 PaymentCharges 更改为 OtherCharges
[PXOverride]
public void VoidCheckProc(ARPayment doc)
{
foreach (PXResult<ARPaymentChargeTran> paycharge in PXSelect<ARPaymentChargeTran, Where<ARPaymentChargeTran.docType, Equal<Required<ARPayment.docType>>, And<ARPaymentChargeTran.refNbr, Equal<Required<ARPayment.refNbr>>>>>.
Select(this, doc.DocType, doc.RefNbr))
{
ARPaymentChargeTran charge = PXCache<ARPaymentChargeTran>.CreateCopy((ARPaymentChargeTran)paycharge);
charge.DocType = Document.Current.DocType;
charge.CuryTranAmt = -1 * charge.CuryTranAmt;
charge.Released = false;
charge.CuryInfoID = Document.Current.CuryInfoID;
charge.CashTranID = null;
//PaymentCharges.Insert(charge);
OtherCharges.Insert(charge);
}
}
Select
方法是非静态的,如错误消息所述,但您在 PXSelect<...>
类型上调用它。您需要有一个该类型的实例。
根据 Hybridzz 的回答,我假设您使用了错误的 Select
方法重载。可能你的参数没有正确的类型,所以编译器选择最合适的方法重载。在本例中,它选择仅接受非静态参数 params object[] o
的参数。您使用的 API 设计有点误导。
我相信,您是在基本 BLC 的扩展中编写此方法
所以不要使用“this”,而是使用“this.Base”
嗨,有人遇到过这个错误吗?每次我在 foreach 循环上使用 PXSelect 时,在另一个源代码上使用 PXSelect 而在我的代码上没有,任何人都可以找出原因吗?下面的代码也是 Acumatica 的原始源代码,但我只将 Datamember 从 PaymentCharges 更改为 OtherCharges
[PXOverride]
public void VoidCheckProc(ARPayment doc)
{
foreach (PXResult<ARPaymentChargeTran> paycharge in PXSelect<ARPaymentChargeTran, Where<ARPaymentChargeTran.docType, Equal<Required<ARPayment.docType>>, And<ARPaymentChargeTran.refNbr, Equal<Required<ARPayment.refNbr>>>>>.
Select(this, doc.DocType, doc.RefNbr))
{
ARPaymentChargeTran charge = PXCache<ARPaymentChargeTran>.CreateCopy((ARPaymentChargeTran)paycharge);
charge.DocType = Document.Current.DocType;
charge.CuryTranAmt = -1 * charge.CuryTranAmt;
charge.Released = false;
charge.CuryInfoID = Document.Current.CuryInfoID;
charge.CashTranID = null;
//PaymentCharges.Insert(charge);
OtherCharges.Insert(charge);
}
}
Select
方法是非静态的,如错误消息所述,但您在 PXSelect<...>
类型上调用它。您需要有一个该类型的实例。
根据 Hybridzz 的回答,我假设您使用了错误的 Select
方法重载。可能你的参数没有正确的类型,所以编译器选择最合适的方法重载。在本例中,它选择仅接受非静态参数 params object[] o
的参数。您使用的 API 设计有点误导。
我相信,您是在基本 BLC 的扩展中编写此方法
所以不要使用“this”,而是使用“this.Base”