フォームのスタイルとパターン

この記事では、フォーム パターンの概念について説明し、パターンを適用および削除するプロセスについて説明します。 この記事では、よく寄せられる質問の一覧にも回答します。

Dynamics AX 2012: フォームのスタイルとパターン

Microsoft Dynamics AX 2012 では、いくつかのフォームのスタイルが導入され、形式化されました。 基本データ型は、リスト ページと詳細フォーム スタイルで表されます。 セカンダリ データ型は、単純なリストおよび詳細フォームと単純なリスト フォーム スタイルで表されます。 これらの主なフォーム タイプに加えて、設定用の目次、ダイアログ フォーム用のドロップ ダイアログ、ルックアップ フォーム用のルックアップなどのフォームをサポートするためのその他のフォーム スタイルが存在します。 ウィザードなど、それほど正式でない他のフォーム パターンも存在します。 多くの場合、Dynamics AX 2012 で特定のスタイルの新しいフォームを作成したい開発者は、対応するテンプレート フォームを開始点として使用しています。 フォームの内容を含め必要な修正を加えた後、開発者はフォーム スタイル チェッカー アドインを実行し、そのフォーム スタイルのテンプレート フォームに対して構造の条件とプロパティ値のフォームを検証します。

財務と運用: フォーム パターン

フォーム パターン (Dynamics AX 2012 フォーム テンプレート、スタイル、およびフォーム スタイル チェッカーの進化形である新しい概念) は、フォームの開発経験の統合された部分となりました。 これらのパターンは、特定のスタイル (必須およびオプションの各コントロールを含む) に基づいてフォーム構造を提供し、多くの規定コントロール プロパティも提供します。 トップ レベルのフォーム パターンに加えて、サブパターンはコンテナー コントロールに適用することができ、フォーム (たとえば、クイック タブ) のサブコンテンツのガイダンスと整合性を提供します。 パターンを使うと、パターンをフォームに適用して正確で一貫していることを保証するためのガイド付きエクスペリエンスが提供されるため、フォーム開発が簡単になります。 パターンは、フォームとコントロールの構造を検証するだけでなく、いくつかの場所でのコントロールの使用を検証するためにも役立ちます。 パターンは、ユーザーが検出した新しい各フォームの外観と機能をすぐに認識できることを保証できます。 フォーム パターンは、多くの規定のコントロール プロパティを提供し、それらはよりガイドされた開発経験にも貢献できます。 パターンは多くの既定のレイアウト プロパティを提供するため、フォームには応答レイアウトが含まれることを保証します。 最後に、パターンはアップグレードを伴うより良い互換性も保証します。 Dynamics AX 2012 からの既存のフォーム スタイルとテンプレートの多くは引き続きサポートされます。 ただし、サポートされていないレガシ フォーム スタイルおよびテンプレートには、移行パスが存在します。 基本要素はレガシ フォーム スタイルとパターンに基づいて構築されているため、出来るだけ簡単に移行できます。

パターンの適用

パターンの適用は、フォーム上の複数のコンテナーおよびコントロールのプロパティを変更できる単純なプロセスです。 パターンを適用するための標準フローを次に示します。

  1. ターゲットの取得。
  2. パターンを決定します。
  3. パターンを適用します。
  4. エラーを処理します。

ターゲットの取得

最初に、対象フォームを識別し、プロジェクトに追加する必要があります。 Microsoft Visual Studio アドインを使用して生成されるフォーム パターン レポートでは、パターンを持たないフォームを検索できます。 レポートを実行する詳細については、フォーム パターン アドインを参照してください。Microsoft Excel でレポート ファイルを開き、パターンがないフォームにフィルター処理します。 そして、Visual Studio でアプリケーション エクスプローラーを開き、フォームを検索します。 フォームを右クリックし、プロジェクトに追加 を選択します。 デザイナーでフォームを開いたとき、デザイン ノードに、パターン: <未選択> の表示があるはずです。

パターンを決定する

適用するパターンを決定します。 使用可能なパターンには、Dynamics AX 2012 フォーム テンプレートに基づくパターンと、財務と運用シナリオ向けに設計されたパターンがあります。 パターンを選択する上でヘルプをリクエストする場合は、パターンを選択する の記事を参照します。 特定のパターンの詳細については、個々のパターンのガイドライン ドキュメントを参照してください。 パターンの適用の詳細については、フォーム パターンの選択 を参照してください。

パターンを適用

次の 3 つの方法でパターンを適用することができます。

  • メタデータの使用
  • ビジュアルの使用
  • デザイナーの使用。パターンの適用の詳細については、フォーム パターンの選択 を参照してください。

エラーの処理

パターンに関する情報はパターン タブに表示されます。パターン構造の詳細については、パターン タブのコントロール名をクリックしてパターン構造を操作します。 フォームを保存または作成するときは、Visual Studio のエラー一覧にパターン エラーが表示されます。

  • コントロールが存在する場合、エラーが報告されたコントロールに移動するには、エラーをダブルクリックします。
  • コントロールが欠落している場合は、いずれかの手順に従います。
    • コントロールがフォーム上に既に存在していても別の場所にある場合は、パターンが示すように、コントロールを正しい場所に移動します。
    • コントロールが存在しない場合は、コントロールを作成します。

サブパターン

フォームにパターンを適用した後、フォームのコンテナー コントロールにサブパターンを適用する必要があります。 このプロセスは、フォームにパターンを適用することに似ています。すなわち、ターゲットを取得し、サブパターンを決定し、サブパターンを適用し、エラーを処理します。 サブパターンが必要なフォームでコンテナー コントロールを検索するには、Visual Studio のフォーム デザイナーの上部にある検索ボックスで「指定しない」を検索します。 これらのコントロールは、フォーム デザイナーで Pattern: <select> 指定を選択する必要があります。 コンテナーごとに、内容を確認し、最も適切なサブパターンを選択する必要があります。 フォーム パターンと同様に、使用可能なサブパターンは Dynamics AX 2012 の一般的なコンテナー レイアウトをカバーしているだけでなく、いくつかの新しいサブパターンを含んでいます。 サブパターンを選択する上でヘルプをリクエストする場合は、「パターンを選択する」というトピックを参照します。 特定のサブパターンの詳細については、個々のサブパターンのガイドライン ドキュメントを参照してください。 サブパターンを選択した後、フォーム デザイナーのコントロールを右クリックしてパターンの適用を選択し、 サブパターンをクリックし適用します。

よく寄せられる質問

パターンを適用するとどうなるでしょうか。

パターンを適用することで、1 つのクイック アクションで複数のノードの複数のプロパティを変更できます。 したがって、何が起きているのかを理解することが重要です。

パターンに関する情報はどこで入手しますか

パターン情報 パネル (フォーム デザイナーの下のパターン タブ)、エラーの一覧 (表示>エラー一覧)、フォーム統計アドイン (フォーム デザイナーでフォーム名を右クリックし、アドイン>フォーム統計を選択) はすべて、パターンを適用しようとしたときに貴重な情報を提供します。 パターンを適用するときは、忍耐を持って、読み取り、および着実なペースで進めることが重要です。 パターン ガイドライン ドキュメントは、パターンおよびサブパターンごとにも使用できます。 これらのドキュメントには、特定のパターンを使用するタイミング、パターンに含まれるもの、パターンを使用する際の注意事項など、多くの追加情報が含まれています。

パターン適用時に間違いをした場合、どうすればいいでしょうか

間違えた場合には、いくつかの対処方法があります。

  • 元に戻す – 元に戻すコマンド (Ctrl+Z) は、パターンを適用したり、削除する時も含めて、通常すべてのアクションで使用できます。
  • パターンの削除 – 間違ったパターンを適用した場合は、右クリックしてパターンの削除を選択します。 パターンがエラーなく正常に適用された後に、プロパティがノードに適用されることに注意してください。 したがって、パターンが削除された後でも、パターンによって変更されたプロパティはすべて新しい値に設定されます。
  • 元に戻す – すべて失敗した場合は、ソース コントロール システムを活用し、フォームに加えた変更を元に戻します。

パターンが適用されるときに一部のプロパティが非表示になるのはなぜですか。

パターンは、パターン構造が正常に満たされた後にプロパティを適用します。 パターンによって制御されるプロパティは、開発者がその詳細を考慮する必要がないため、開発者から隠されています。 これにより、パターンによって設定されたプロパティからプロパティ ペインの「ノイズ」を減らすことによって、開発経験をすっきりさせることができます。パターンが適用されている間は、これを開発者は変更できません。 パターンが設定されているプロパティに関心のある開発者は、パターンを削除できます。 すべてのプロパティ値はパターンの対象となるすべてのコントロールに表示されます。

パターン作業をより多く実行すべきフォームのセットをどのように識別しますか。

パターン作業がまだ残っているフォーム セットを特定するには、フォーム パターンレポートを生成して調べる必要があります。 レポートを実行する詳細については、フォーム パターン アドイン を参照してください。

  • (空白) のみを表示する「パターン」列のフィルター処理 - フォーム パターンが適用されない (Form.Design でパターンが指定されていない) すべてのフォームが表示されます。
  • 限定カウント列の0 より大きい値のみのフィルター処理 - Form.Design またはフォームのどこかのコンテナー コントロールのいずれかでパターンが予想されるすべてのフォームが表示されます。 このフィルターを「パターン」列で事前に言及されたフィルターと結合して、残っているサブパターン作業があるフォームのみを表示することができます。

以前に示されたフィルターが適用された後に行が存在しない場合、モデルに残った残りのパターン作業がないことに注意してください。 すべてのフォームがパターンによって完全にカバーされていることを確認する場合は (不特定のノードおよびカスタム ノードもないことを意味する)、「パーセント制御されたコントロール」が 100 パーセント未満の行まで、レポートをフィルター処理します。

パターンが適用されるフォームの場所をどのように見つけますか。

フォームでパターンが適用されていなければならないコンテナ コントロールを検索するには、フォーム デザイナーで “unspecified” を検索します。 この検索では、 : <未指定> の指定を持つフォーム内のすべてのノードが強調表示されます。 各コンテナを別々に調べて、最も適切なサブパターンを適用することができます。

「未指定」の指定を持つノードの検索結果

フォームでより多くのパターン作業を実行する必要があるかどうかをどのように確認しますか。

開いているフォームでさらにパターン作業を行う必要があるかどうかを確認するには、デザイナーでフォームを右クリックし、アドイン>フォーム統計情報を選択します。 Pattern = Unspecified カウントが 0 (ゼロ) を超える場合、フォームには適用されるパターンに必要なコンテナーがまだ含まれています。 理想的には、すべてのフォームにはパターン = カスタムのカウントが 0 (ゼロ)、パターン カバレッジの値が 100 パーセントである必要があります。 これらの値は、フォームがパターンによって完全にカバーされていることを示します。

パターンによって完全にカバーされているフォームを示す値のダイアログ ボックス。

フィールドおよびフィールド グループのサブパターン内で静的テキストが使用できないのはなぜですか。 今後フォームで静的テキストは許可されませんか。 フィールドおよびフィールド グループのサブパターンが受け入れない静的テキストは、どうすればよいでしょうか。 静的テキストではなく、ユーザー ヘルプを表示する方法はありますか。

フォーム内の静的テキストは、フォームのヘルプを提供するためのかなり見やすいメカニズムとしてよく使用されます。 ツール バーおよびリスト サブパターン、フィールドおよびフィールド グループのサブパターンなど、多くのパターンでは、静的テキストをフォーム上に直接配置できません。 ユーザー アシスタンスをお勧めしますが、多くの場合他の方法で提供することができます。 高レベルでは、明示的なヘルプ コンテンツを不要にするために、より優れたラベルとわかりやすいユーザー インターフェイスを提供することが目標です。 ただし、明示的なヘルプ コンテンツが必要な場合、HelpText またはフォーム レベルのヘルプ コンテンツのフィールドとして提供される必要があります。 グリッドで静的テキストがイメージの意味について説明している場合、ユーザーがイメージの上をマウスで移動したり、そのイメージに接触したり長押ししたら、ツールヒントを使用して支援することを検討します。 フォーム上の静的テキストを扱うには、これらの手順に従います。

  1. フォーム上の静的テキストの置換を決定する。

    • 静的テキストを介して提供されるユーザー情報が依然として必要かどうかを検討します。
    • フィールド ラベルをより簡単に作成できるかどうかを検討します。
    • フィールド HelpText が適切かどうかを検討します。
    • フォーム レベルのヘルプ コンテンツが適切かどうかを検討します。
  2. 置き換えが決定され、実装された後、静的テキストを削除して、パターンを適用します。

  3. 置換えがまだ実装できない場合は、静的テキストをそのまま残して、パターン: カスタムを使用してください。

フィールドおよびフィールド グループ サブパターン内のフィールド上で WidthMode を変更できないのはなぜですか。 フィールドおよびフィールド グループ サブパターン内のフィールド上で手動の幅を指定できないのはなぜですか。

サブパターンは HeightMode と WidthMode プロパティを入力コントロールの SizeToContent に意図的に設定するため、HeightMode と WidthMode の両方のプロパティは、フィールドとフィールド グループのサブパターン内のコントロールで使用できません。 SizeToContent 幅の入力コントロールは、DisplayLength を 4 つの事前に定義された個別サイズ (極小、小、中、または大) の 1 つにマッピングすることに基づいて大きさが決まります。 この入力制御幅の離散化は、シンプルで一貫性のある新鮮でクリーンなユーザー エクスペリエンスを提供するために行われました(任意の幅フィールドに起因するジャグ エッジを最小限に抑える)。 個別のサイズはまた、これらのフィールドを組み合わせて組織化され視覚的に魅力的なフィールド セットを形成できるように選択されました (より大きいフィールド サイズは、幅に関して最小のフィールドサイズの倍数であるため)。

一般に、フィールドおよびフィールド グループのサブパターンで現在許可されていないフィールドに使用できるその他 2 つの幅オプションがあります。

  • SizeToAvailable - ColumnsMode=Fill レイアウトアルゴリズムでは機能しないため、このサブパターンの内部で SizeToAvailable 幅コントロールを使用することはできません (列の中で最適なレイアウトのコントロールの方法を決定しようとするのは意味がありません)
  • 手動 - 手動の幅のコントロールはほとんどありません。コントロールの大部分は、SizeToAvailable または SizeToContent にする必要があります。 手動の幅コントロールでは、特にこれらのコントロールがユーザーが選択した密度に基づいてサイズを適用しない場合、フィールドの幅と列幅の個別のセットに不整合が発生します。 手動の幅コントロールは特定のビューポートによって対応できるものより大きいサイズに設定できるため、レスポンシブ デザインの保証が難しくなる場合があります。 目的の応答フィールド レイアウトを保持してインターフェイスを整理するため、および手動でサイズ変更するコントロールは非常に珍しいため、フィールドおよびフィールド グループのサブパターンでそれらを許可しないように選択しました。

手動でサイズを指定するコントロールを必要とするシナリオの現在のオプションには、より幅の広いフィールドへのテキスト入力 サブパターンの潜在的な使用 (これにより、コンテナごとに 1 つの全幅のフィールドを使用できます。任意の数の全幅のフィールドが可能になるようにテキスト入力 サブパターンを拡張する予定ですが) とともに、カスタム パターンの使用 (「カスタム」のサイズがフィールドに必要な場合に適切です) が含まれます。

フィールドおよびフィールド グループのサブパターンに適用しようとすると「一致しない」グループがあるのはなぜですか。

グループとコントロールまたは、任意のコントロールがパターンにより許可されていない場合、それらはパターン情報パネルで「不一致」と表示されます。

一致しないコントロールの例。

フィールドとフィールド グループの各サブパターンに、グループが「一致しない」と表示される典型的な理由は 2 つあります。

  • グループの深さには複数のレベルがあります。 ソリューション: フィールドおよびフィールド グループのサブパターンを適用しようとしているコンテナ内の 1 つだけの奥行レベルになるように、グループをリファクタリングします。
  • グループ内に画像または静的テキストがあります。 ソリューション: 可能であれば、そのコントロールを削除または再配置してください。

自分のフォームがフォーム パターンに近いが、カスタムというほど何らかの逸脱がある場合、どうすればいいでしょうか

一部のフォームは、定義済みのフォーム パターンに構造的に近くなっていますが、いくつかの側面がパターンに合わないため、カスタム パターンがフォームに適用されます。 この場合、次の手順に従ってフォーム パターンの恩恵を受けることができます (たとえば、レイアウトのプロパティを自動的に設定することができます)。

  1. パターンに完全に適合するように、フォームを変更します (たとえば、パターンから逸脱しているコントロールを移動または一時的に削除します)。
  2. 目的のパターンを適用します。
  3. プロパティ値がパターンにより設定されるように、フォームを保存します。
  4. パターンを削除します。
  5. パターンから逸脱しているコントロールを元の場所に移動します。