acumatica
ユーザーインターフェイスのテクニック
サーチ…
スクリーン用のドロップダウンメニューの作成
次のスクリーンショットの[Reports]メニューなど、特定のAcumatica画面のドロップダウンメニューを定義する必要があるとします。
これは、3つの異なる方法で達成できます。
- 画面のASPXにメニュー項目を含むツールバーを追加することで
- グラフに特別な「フォルダ」アクションを宣言し、コードにメニュー項目を追加することで
- Acumatica Frameworkのオートメーションサブシステムを使用することで(この例ではカバーしていない)
オプション1:ASPXでのドロップダウンメニューの作成
まず、ASPXページのPXDataSource要素に、メニュー項目をクリックしたときに実行するグラフアクションに対応するすべての必要なコマンドが含まれていることを確認します。
<px:PXDataSource
ID="ds" runat="server" Visible="True" PrimaryView="TranslHistRecords" TypeName="PX.Objects.CM.TranslationHistoryMaint">
<CallbackCommands>
...
<px:PXDSCallbackCommand Name="TranslationDetailsReport" Visible="False"/>
...
</CallbackCommands>
</px:PXDataSource>
次に、PXDataSource要素の直後にカスタムツールバー要素を追加します。その中に、次のコードに示すように、それぞれのデータソースコマンドにリンクする目的のドロップダウンメニュー項目を持つPXToolbarButtonを定義します。
<px:PXToolBar ID="toolbar1" runat="server" SkinID="Navigation" BackColor="Transparent" CommandSourceID="ds">
<Items>
<px:PXToolBarButton Text="Reports">
<MenuItems>
<px:PXMenuItem Text="Translation Details" CommandSourceID="ds" CommandName="TranslationDetailsReport"/>
</MenuItems>
</px:PXToolBarButton>
</Items>
<Layout ItemsAlign="Left" />
</px:PXToolBar>
このオプションは、単純さのために魅力的に見えるかもしれません。しかし、1つの重要な欠点がある 。このようなドロップダウンを処理インジケータ(ドキュメントリリース画面や一括処理画面など)を持つ画面に実装すると、以下のように、ドロップダウンメニューの左側にインジケータが表示されます。
これが望ましくない場合は、下のオプション2のセクションで説明したように、コードにドロップダウンメニューを定義することを検討してください。
オプション2:グラフにメニューを作成する
まず、ページのグラフで、ドロップダウンメニューボタンに対応する「フォルダ」アクションを宣言します。
public PXAction<TranslationHistory> reportsFolder;
[PXUIField(DisplayName = "Reports", MapEnableRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.Report)]
protected virtual IEnumerable Reportsfolder(PXAdapter adapter)
{
return adapter.Get();
}
次に、グラフのコンストラクタで、アクションが実際にドロップダウンメニューであることを示し、メニュー項目として表示する必要があるすべてのアクションを以下に示すように追加します。
public TranslationHistoryMaint()
{
this.reportsFolder.MenuAutoOpen = true;
this.reportsFolder.AddMenuAction(this.translationDetailsReport);
}
この方法を選択すると、処理インジケータが常にメニューの右側に表示されます。これはおそらくUXの方が優れています。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow