2016-12-24 12 views
0

私はカスタムページのタブ内にカスタム処理ページを作成しようとしています。私はカスタムエクステンションを操作し、エクステンションクラスでDACを宣言しています。Acumaticaタブ内に処理ページを追加する

イム私のPXProcessingオブジェクトに

マイ処理BLC

public class tableProcess: PXGraph<submittalProcess> { public PXCancel<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable> Cancel; public PXProcessing<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable, Where<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable.contractID, Equal<Current<Contract.contractID>>>> fixtureItems; public submittalProcess()
{ fixtureItems.SetProcessCaption("Approve"); fixtureItems.SetProcessAllCaption("Approve All"); fixtureItems.SetProcessDelegate<ProjectCustom.submittal>(delegate(ProjectCustom.submittal graph, PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable items) { graph.Clear(); graph.ApproveOrder(items, true); }); } }

メインBLC delcaringアクション

public class submittal: PXGraph<submittal,  ProjectEntry_Extension.atcProjectLinesTable> 
{ 
    public PXSelect<ProjectEntry_Extension.atcProjectLinesTable> Orders; 
    public void ApproveOrder(ProjectEntry_Extension.atcProjectLinesTable order, bool isMassProcess = false) 
    { 
    Orders.Current = order; 

Orders.Update(order); 
Persist(); 
if (isMassProcess) 
{ 
PXProcessing.SetInfo(String.Format(
"Order {0} has been successfully approved.", order.ItemNumber)); 
} 
} 


public PXAction<ProjectEntry_Extension.atcProjectLinesTable> Approve; 
[PXProcessButton] 
[PXUIField(DisplayName = "Approve")] 
protected virtual IEnumerable approve(PXAdapter adapter) 
{ 
foreach (ProjectEntry_Extension.atcProjectLinesTable order in adapter.Get()) 
{ 
Actions.PressSave(); 
PXLongOperation.StartOperation(this, delegate() 
{ 
submittal graph = PXGraph.CreateInstance<submittal>(); 
graph.ApproveOrder(order); 
}); 
yield return order; 
} 
} 

アイブに自分の名前空間を使用してみましたが、私のグラフのデータメンバーを設定することができませんtableProcess.fixtureItemsをグリッドに割り当てますが、拡張クラスのスコープから外します。

ProjectEntry_ExtensionクラスでtableProcessを初期化する方法はありますか?

答えて

2

現在、Acumaticaでは、別のページのタブ内にネストされたページを作成することはできません。あなたのケースでは、タブ内の処理画面のルックアンドフィールをエミュレートする方が、選択列と処理グリッドのすべてのプロセス/プロセスボタンを宣言する方が良いでしょう。処理グリッド内の選択されたレコードまたはすべてのレコードの一部のプロセスを起動するには、セクションの説明にあるように、静的PXLongOperation.StartOperationメソッドを使用します。T200トレーニングコース。

関連する問題