Sap-smart-forms-advance-development-concepts
高度な開発コンセプト
この章では、SAP Smart Formsの高度な開発コンセプトについて詳しく説明します。 この章では、特殊ノード、フォーム処理、汎用モジュールなどの側面もカバーします。
SAPスマートフォーム-特別なノード
SAPスマートフォームには、高度な開発コンセプトの一部として使用できるさまざまな特別なノードがあります。 スマートフォームに特別なノードを追加するには、ナビゲーションツリーに移動する必要があります。
各ページで、右クリック→コンテキストメニューを開く→作成→制御ロジック→コマンド。
特別なノードタイプの次のリストを使用することができます-
コマンドノード
これは一般に、さまざまなアプリケーションの目的にコマンドを挿入するために使用されます。 コマンドノードを使用して、メインウィンドウに動的な改ページを挿入できます。 動的改ページを適用するには、コマンドノードの下にさまざまなオプションがあります-
- 新しいページに移動-このコマンドは改ページを提供するために使用され、メインウィンドウでのみ許可されます。
- 段落番号のリセット-このオプションを使用して、指定されたアウトライン段落のカウンターを設定できます。
- Include Printer Control -このオプションは、印刷制御を出力デバイスに送信するために使用されます。
- スプールリクエストの無料属性-このオプションを使用して、スプールリクエストの属性を定義できます。
プログラム行
プログラム行を使用して、合計および小計の計算を実行できます。 ツリー構造にプログラム行を挿入できます。
「一般属性」タブで、入力パラメーターと出力パラメーターの表を使用して、グローバルフィールドを渡します。 ABAPコードを使用すると、これらのテーブルに入力されたグローバルフィールドにアクセスできます。
複雑なセクション
このオプションを使用してノードタイプのタブページを結合し、複雑なセクションノードを作成するには、作成→複雑なセクションをクリックします。
複合セクションの一般属性タブでは、次のような異なるタブページを組み合わせるための設定を定義できます-
- イベントタブ
- テーブルタブと
- テンプレートタブ。
SAPスマートフォーム-フォーム処理
スマートフォームでは、フォームビルダの下のツリー構造を使用して、フォームロジックを定義し、スマートフォームのテキスト、グラフィックス、およびさまざまな要素を印刷します。 スマートフォームが有効化されると、汎用モジュールが生成され、SAPスマートフォームはフォームのツリー構造を処理し、ABAPプログラミングコードを使用してフォームの内容を印刷します。
スマートフォームの出力は、フォームビルダーのページとウィンドウを構成するツリー構造の下位ノードによって決定されます。 ツリー内のノードごとに、出力オプションと条件を定義できます。
ノードは、次のシナリオで処理されます-
条件-
- ノードに条件が設定され、システムが条件を評価するとき。 falseであると判断された場合、ツリー構造内のノードとその下位ノードは処理されません。
- 下位ノードは、ノードタイプに応じて直接処理できます。
- ノードに割り当てられたアクションも処理できます。
- ノードの出力オプションを定義し、その下位ノードと個々の出力オプションが下位ノードに割り当てられると、オプションは上位ノードの出力オプションを上書きします。
以下の条件タイプは、ノードの処理に使用できます。
- シンプルなIF条件-これはANDまたはORオプションを使用して行われます。
- 複雑なIF条件-これはプログラム行を使用して使用されます。
イベントクエリの組み合わせ
SAPスマートフォーム-汎用モジュール
スマートフォームが有効化されると、汎用モジュールが生成されます。 汎用モジュールに適用できるさまざまな標準パラメータがあります。 これらのパラメーターはフォームインターフェースに直接表示され、変更できません。 スマートフォームをアクティブにするには、上部の[アクティブ化ボタン]をクリックします。
汎用モジュールがアプリケーションから呼び出されると、これらのパラメーターを使用して、出力形式またはスプール要求またはその他のさまざまな目的を定義できます。
- レポート-zcall_smartform。
- コール関数-'/1BCDWB/SF00000279'
ここでSF00000279 –汎用モジュールを表します。
ただし、これは、システム内の番号範囲に従って汎用モジュール名が生成されるため、汎用モジュールを呼び出す推奨方法ではありません。 スマートフォームを運用システムに転送すると、新しい汎用モジュールが生成されます。
これを処理するには、関数- SSF_FUNCTION_MODULE_NAME を使用して、汎用モジュール名を動的に取得することをお勧めします。
- レポート-zcall_smartform。
- データ-fname TYPE rs38l_fnam。
- コール関数-'SSF_FUNCTION_MODULE_NAME'
汎用モジュール名を取得する方法は?
スマートフォームの汎用モジュール名を確認するには、上部の[環境]タブ→[汎用モジュール名]に移動します。
汎用モジュールは、次のウィンドウに表示されます-
また、 Transaction SE 11 を使用して逆の手順を実行し、表に移動することもできます- STXFADMI 。