RQRequisitionのマスターデータビューに3つのカスタムフィールドを作成しました。各カスタムフィールドのFieldUpdatedイベントを追加します。これらのフィールドの値を合計し、それをラインのデータビュー(RQRequisitionLine)のカスタムフィールドにコピーします。 RQRequisitionためマスタのカスタムフィールドを計算し、それをライン上のカスタムフィールドにコピーする - Acumatica
DAC拡張定義:RQRequisitionLineため
//Non UI Field for UsrEngCost
[PXDBDecimal]
[PXDefault(TypeCode.Decimal, "0.0")]
// definition for UsrCuryEngCost
[PXDBCurrency(typeof(RQRequisition.curyInfoID), typeof(RQRequisitionExt.usrEngCost))]
[PXUIField(DisplayName="Est. Eng. Cost")]
[PXDefault(TypeCode.Decimal, "0.0")]
//Non UI Field for UsrShipCost
[PXDBDecimal]
[PXDefault(TypeCode.Decimal, "0.0")]
// definition for UsrCuryShipCost
[PXDBCurrency(typeof(RQRequisition.curyInfoID), typeof(RQRequisitionExt.usrShipCost))]
[PXUIField(DisplayName="Est. Ship. Cost")]
[PXDefault(TypeCode.Decimal, "0.0")]
//Non UI Field for UsrCleCost
[PXDBDecimal]
[PXDefault(TypeCode.Decimal, "0.0")]
// definition for UsrCuryCleCost
[PXDBCurrency(typeof(RQRequisition.curyInfoID), typeof(RQRequisitionExt.usrCleCost))]
[PXUIField(DisplayName="Est. Clear. Cost")]
[PXDefault(TypeCode.Decimal, "0.0")]
DAC拡張定義:
protected virtual void RQRequisition_UsrEngCost_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
RQRequisition row = (RQRequisition)e.Row;
if (row == null) return;
RQRequisitionExt rowExt = PXCache<RQRequisition>.GetExtension<RQRequisitionExt>(row);
RQRequisitionLine reqLine = ReqLines.Current;
RQRequisitionLineExt reqLineExt = PXCache<RQRequisitionLine>.GetExtension<RQRequisitionLineExt>(reqLine);
reqLineExt.usrCuryAddCost = rowExt.usrCuryEngCost + rowExt.usrCuryShipCost + rowExt.usrCuryCleCost;
row.Update(reqLine);
}
を公開し、エラーを取得:ここ
//Non UI Field for UsrAddCost
[PXDBDecimal]
[PXDefault(TypeCode.Decimal, "0.0")]
// definition for UsrCuryAddCost
[PXDBCurrency(typeof(RQRequisitionLine.curyInfoID), typeof(RQRequisitionLineExt.usrAddCost))]
[PXUIField(DisplayName="Additional Cost")]
[PXDefault(TypeCode.Decimal, "0.0")]
はFieldUpdatedイベントのコードです:
エラー: 'usrCuryAddCost':式で型を参照できません。コードではなく、 'PX.Objects.RQ.RQRequisitionLineExt.usrCuryAddCost'を実行してください。コード#RQRequisitionEntry(41) エラー: 'usrCuryEngCost':式で型を参照できません。コードではなく、 'PX.Objects.RQ.RQRequisitionExt.usrCuryEngCost'を試してください:コード#RQRequisitionEntry(41)
あなたの助言が必要です。
プロパティは既に拡張DACで宣言されています。あなたは上記の更新された質問でそれを見つけることができます。 – Arsiadi
プロジェクトエディタを使用している場合は、[データクラス]画面の[ソースの表示]ボタンをクリックして、フィールドのプロパティを表示できます。あなたがあなたの質問に加えたのは、フィールドの属性です。プロパティは次のように宣言されます: 'override decimal? UsrEngCost {get;セット} '。代わりに参照クラスを使用しているようです:abstract class UsrEngCost:IBqlField {}。少なくとも、それは '式で型を参照できません'というエラーです。 –
私は抽象クラスlowercasedを意味しました:抽象クラスusrEngCost:IBqlField {}。 –