2017-06-14 2 views
0

私はAcumaticaカスタム開発を初めて使いました。私は非常に簡単だと思うことをしようとしています。私は、Selectorコントロール(DataClass:FSServiceOrder、DataField:BranchLocationID)をSales Orderヘッダーに配置して、ユーザーが支店の場所を設定できるようにします。以下では、在庫グリッドで、私は単に、上記のセレクタの値と等しい新しい行の倉庫項目を設定する必要があります。私は、ハードコーディングされた値と倉庫を設定することができますが、渡されたPXCacheオブジェクトの範囲外であると思われるように私は、どのようにセレクタを参照するか、それが値です取得する見当がつかない:Acumatica:グリッドイベントのヘッダーフィールドの値を取得する

protected void FSSODetPart_RowSelected(PXCache cache, PXRowSelectedEventArgs e) 
{  
    string BranchLocationID = "" // Not sure how to get this value 

    var row = (FSSODetPart)e.Row; 
    cache.SetValueExt(row, "SiteID", BranchLocationID); 
} 

私は期待していました私はASP.NETに似たすべてのUIコントロールを単純に参照できますが、そうではありません。どんな助けもありがとうございます。画面から価値を得ることは基本的だと思われますが、ドキュメントには何の助けもありません。ありがとう。

+0

これは簡単な作業ですが、私はAcumaticaのトレーニング資料を確認することをお勧めします。 RowSelectedは値を更新する場所ではないので、私はこれを言う。イベントを理解し、それらをいつ使用するかによって、頭痛を軽減し、カスタマイズの品質を向上させることができます。現在のドキュメントの値を取得するには、ビュー名Currentプロパティを使用します。例:受注ヘッダのDocument.Current DAC – Brendan

+0

合意。私は昨日完成する必要があった新しいシステムとカスタマイズで銃の下にいたことを理解してください。問題を解決したので、最終的にトレーニングに没頭するのに必要な時間を取ることができます。ありがとう。 – TJP

+0

私はそれが当てはまると仮定しました。 Acumaticaを学ぶ私の経験から - イベントをメモし、いつそれらを使うのが最も良いかをメモしてください。あなたのAcumatica開発プロジェクトで幸運を祈ってください。 – Brendan

答えて

2

Acumaticaでは、画面コントロールがDataViewにバインドされています。 DataViewにはDACレコードが含まれています。一般的な方法は、バインドされたDataViewの現在のDACレコードから値を取得することです。

はFSServiceOrder DACレコードを保持しているデータビューの現在のオブジェクトを使用します。

string BranchLocationID = myDataview.Current.BranchLocationID; 

あなたはデータビューの名前がわからない場合は、ウェブサイト上のCtl + Altキーを押しながらBranchLocationID UIフィールドをクリックしてください。 DataView名を示すポップアップが表示されます。

DACのコレクションから現在のオブジェクトがあまりにも動作するはずの取得が、それはデータビューを使用するのが好ましいです:

string BranchLocationID = Base.Caches[typeof(FSServiceOrder)].Current.BranchLocationID; 

はまた、あなたがCommitChangesをがASPXファイルにBranchLocationIDフォームフィールド上の属性をtrueに設定してください。これにより、値が変更されたときに、現在のオブジェクトがバックエンドのイベントを発生させます。

 <px:PXSelector ID="edBranchLocationID" runat="server" 
        DataField="BranchLocationID" CommitChanges="True" /> 
+0

優れています。ありがとうございました! – TJP

関連する問題