2017-07-21 2 views
0

オートメーションステップを使用するのではなく、コードを使用してSOオーダーエントリページのレポートメニューにレポートを追加しようとしています。私が使用しているコードは次のとおりですが、エラーが発生しています: エラーCS0122:保護レベル エラーのため 'PX.Objects.SO.SOOrderEntry.Report(PX.Data.PXAdapter、string)'にアクセスできませんエラーCS0119: PX.Objects.SO.SOOrderEntry.Report(PX.Data.PXAdapter、文字列は)誰もがにレポートを追加する方法の提案を持っています与えられた文脈オートメーションステップではなくコード経由でレポートメニュー項目を追加

public SOOrderEntry_Extension() 
{ 
    Base.Report.AddMenuAction(sOAcknowledgementReport); 
} 

public PXAction<SOOrder> sOAcknowledgementReport; 
    [PXButton] 
    [PXUIField(DisplayName = "SO Acknowledgement Report")] 
    protected void SOAcknowledgementReport() 
     { 
      if (Base.Document.Current.OrderNbr != string.Empty) 
     { 
      throw newPXReportRequiredException(Base.Document.Current, "SO641010", string.Empty); 
     } 
     } 

には有効でない方法 『」は』オートメーションステップを使用するのではなく、コードを使用してレポートメニューを表示しますか?

答えて

0

私はあなたがInitialize()メソッドをオーバーライドしてそこにReport to Reportメニューを追加できると思います。 SOOrderEntryグラフ延長線上に以下のスニペットコードを参照してください

public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry> 
{ 


    public override void Initialize() 
    { 
     Base.report.AddMenuAction(sOAcknowledgementReport); 
    } 


    public PXAction<SOOrder> sOAcknowledgementReport; 
    [PXButton] 
    [PXUIField(DisplayName = "SO Acknowledgement Report")] 
    protected void SOAcknowledgementReport() 
    { 
     if (Base.Document.Current.OrderNbr != string.Empty) 
     { 
      throw new PXException("Test"); 
     } 
    } 

} 
1

最初に、「初期化」コールでメニュー追加を実行し、「レポート」と「レポート」を使用します。

public override void Initialize() 
{ 
    base.Initialize(); 
    //Edit: use report vs Report as HB_ACUMATICA mentioned 
    Base.report.AddMenuAction(sOAcknowledgementReport); 
} 

第2に、RowSelectedを拡張することでボタンを有効にする必要があります。私はオートメーションのものはボタンを無効にすると思いますので、ボタンを有効にするために必要な条件を使用してボタンを元に戻す必要があります。

public virtual void SOOrder_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected del) 
{ 
    del?.Invoke(sender, e); 
    sOAcknowledgementReport.SetEnabled(true); 
} 
+0

「レポート」識別子は、エラー署名従って、メソッド定義を指す:PX.Objects.SO.SOOrderEntry.Report(PX.Data.PXAdapter、列) 。アクションを参照する "レポート"である必要があります。 –

+0

良いキャッチ@HB_ACUMATICA。初期化を使用しないコンボのようですが、アクション "レポート"と "レポート"の間違った使用を指摘するエラーも表示されます。 – Brendan

関連する問題