プロジェクト請求の実行画面を使用して、AR /請求書とメモにレコードを作成しています。プロジェクト請求実行画面の傍受プロセス
請求書&メモ画面では、得意先受注ヘッダを入力するプロセスが必要です。 「文書の詳細」タブのグリッドセクションに追加されているユーザーフィールドとともに表示されます。現時点では、プロセスはこれを実行していません。
私は、すなわち「のAddHandler」を使用して、私は精通してる技術を使用して、画面上の処理動作を傍受したいと思います:
[PXOverride]
protected virtual IEnumerable Items (PXAdapter adapter)
{
PXGraph.InstanceCreated.AddHandler<BillingProcess>((graph) =>
{
graph.RowInserting.AddHandler<BillingProcess.ProjectsList>((sender, e) =>
{
//Custom logic goes here
});
});
return Base.action.Press(adapter);
}
私はそれをリモート似ている「ビル一切Base.Actionsを見ません'または' Bill All '。
これは明らかに私が必要とするコードではありませんが、これは一般的な場所であると思います。
ソースビジネスロジックを確認した後、私は「Bill」または「Bill All」アクションや「アクション」を全く見ません(困惑しています)。私は 'items'というIEnumerableメソッドを見ています。
これは正しい方法ですか?
更新日:2017年2月14日
答えを使用して再提供:オーバーライドされたメソッドInsertTransaction(...を)私は、次のロジックを使用して(必要)当社ARTranユーザーフィールドを設定しようとしました:
PMProject pmproj = PXSelect<PMProject, Where<PMProject.contractID, Equal<Required<PMProject.contractID>>>>.Select(Base, tran.ProjectID);
if (pmproj == null) return;
PMProjectExt pmprojext = PXCache<PMProject>.GetExtension<PMProjectExt>(pmproj);
if (pmprojext == null) return;
ARTranExt tranext = PXCache<ARTran>.GetExtension<ARTranExt>(tran);
if (tranext == null) return;
tranext.UsrContractID = pmprojext.UsrContractID;
これが正しい値に、ユーザーフィールドを設定していても、それはまだプロセスが終了したときに必須フィールドが空であることを私にエラーを与えます。私の限られた知識は、私がなぜそれを理解するのを妨げる。
私はInsertTransactionsオーバーライドメソッドを使用しようとしましたが、これはうまくいきませんでした。編集したオリジナルの投稿を参照してください。 – pmfith
このリクエストをさらに支援する唯一の方法は、カスタマイズをデバッグすることです。明らかに、それはサポートの場合が必要です。 – RuslanDev
これはRuslanによって解決されました。この問題は、カスタマイズプロジェクトの拡張ライブラリとコードウィンドウのDACフィールドの複製にありました。ありがとう、ルスラン!... – pmfith