のスマートフォーム SAP ABAP
⚡ スマートサマリー
のスマートフォーム SAP ABAPは、プリンター、ファックス、電子メール、またはインターネットへの出力に対応した、大量印刷用のフォームを作成および保守します。このページでは、アーキテクチャ、フォームビルダーのノード、ウィンドウ、テーブル、テンプレート、スタイル、および生成される関数モジュールについて説明します。

Smart Formsとは何ですか? SAP ABAP?
SAP スマートフォームは、大量印刷用のフォームを作成および管理するために使用されます。 SAP システム。出力媒体として SAP スマート フォームは、プリンター、ファックス、電子メール、またはインターネット (生成された XML 出力を使用) をサポートします。
SAP 1998年にSmartFormsを導入し、 SAP スクリプト。SmartFormsは、開発、保守、転送が簡単です。 SAP 脚本。
Smart FormsとSapScriptsの比較
- SmartForms では複数のページ形式が可能ですが、SmartForms ではそうではありません。 SAP スクリプト
- メイン ウィンドウなしで SmartForm を使用することも可能です。
- ルーチンは SmartForms ツールで作成できます。
- SmartForms は、アクティブ化されると汎用モジュールを生成します。
- SmartForms ではラベルを作成できません。
| 基準 | スマートフォーム | SAPスクリプト |
|---|---|---|
| ページフォーマット | 1つのフォームに複数のページ形式が含まれています | フォーム1枚につき1ページ形式 |
| メインウィンドウ | 必須ではありません | メインウィンドウは1つだけ必要です |
| ルーチン | 用紙自体の中に書かれている | 別の印刷プログラムに記載されています |
| アクティベーション | 関数モジュールを生成します | 関数モジュールは生成されません |
| ラベル | 作成できません | 作成可能 |
スマートフォームの利点
- 完全にグラフィカルなユーザーインターフェースのおかげで、プログラミングの知識がなくてもフォームの適応が容易になります。
- スマートフォームを有効化すると、システムは実行時に汎用モジュールを自動的に生成します。
- 変更を加えるには、ドラッグ アンド ドロップ、カット アンド ペーストを使用する必要があります。 これらのアクションには、コーディング行の作成やスクリプト言語の使用は含まれません。
- 静的テーブルと動的テーブルを挿入できます。 これには、表の個々のセルの改行、表の見出しと小計のイベントのトリガー、出力前のデータの並べ替えが含まれます。
- スマート フォームを使用すると、フォームの一部として、または背景グラフィックとして表示できるグラフィックを含めることができます。印刷中に、ユーザーは必要に応じて背景グラフィックを非表示にすることができます。
- 生成されたファイルを使用して Web パブリッシングが可能です XML 出力
Archiの構造 SAP スマートフォーム
アーキテクチャ図は、関連する3つのレイヤーを示しています。フォームはフォームビルダーで設計され、アクティベーションによって関数モジュールが生成され、印刷プログラムがそのモジュールをアプリケーションデータとともに呼び出します。最初のレイヤーの設計手順については、次に説明します。
スマートフォームガイド
それを見てみましょう SAP –
- トランザクションを入力してください スマートフォーム 取引コードボックスに入力します。
- 次の画面でフォーム名を入力し、「作成」をクリックします。
次の画面は XNUMX つのセクションに分かれています。
ナビゲーションウィンドウ ノードとサブノードで構成されます。 sap フォームに属するすべての要素 (テキスト、ウィンドウなど) が含まれています。
- メンテナンスウィンドウ 要素の属性を示します
- フォームプリンター ウィンドウにはページのレイアウトが表示されます
スマートフォームを作成するときはいつでも、 SAP 関数モジュールを作成/生成します。 SAPスクリプト、 SAP フォームを使用すると言語を変更できます。
ナビゲーションウィンドウには以下が表示されます
グローバルデータ宣言 : ここで定義されたデータは、コーディング目的でスマートフォーム全体で使用できます。
フォームインターフェイス : ここでは、Print プログラムからスマートフォームに渡されるすべてのデータが定義されます。
ページを右クリックすると、新しいページ、ウィンドウ、グラフィック、またはアドレスを作成できます。
印刷は「次のページ」フィールドに基づいて行われます。
ただし、処理はナビゲーション ウィンドウの順序に従って行われます。
背景画像とグラフィックスについては、白黒またはカラーのビットマップ画像を選択でき、標準テキストの形式で保存されます。 スマートフォーム画面から迂回してフォームグラフィックス画面を開くこともできます。 トランザクションコード: Se78
Smart Form ウィンドウでのグラフィック設定 -
Windows スマートフォームで
2つのタイプがあります Windows
- メイン
- 二次
注意すべき重要なポイント
- 1ページに複数のメインウィンドウを表示することはできません。複数のセカンダリウィンドウを表示できます。
- セカンダリ ウィンドウに印刷するものは何でも、静的である必要があります。(購買発注に 20 行あり、ページ制約がある場合、行はメイン ウィンドウの次のページに繰り越されます。つまり、先行コンテンツと後続コンテンツ タイプでは、メイン ウィンドウに順番に印刷されます。これはセカンダリ ウィンドウでは許可されません。
メイン ウィンドウ内で、フォーム出力をカスタマイズするための導入としてテキストを追加できます。
各ウィンドウの出力オプションにより、配置する線のサイズ、幅、色、背景が決まります。
Smartforms には、中央住所管理で維持される住所番号を指定するオプションがあります。 アドレスは ADRC テーブルから直接取得され、フォームに入力されます。
Smartformsでは、通常のエディタと
そしてグラフィックエディター。
この設定は、ユーティリティの構成エディターを使用して変更できます。
窓際のテーブル
テーブル ペインターでは、クライアントの要件に応じて形式を描画できます (例: 見出し、サブ見出し、項目、小計、総計など)。
テーブル レイアウトを使用して、次のことを決定できます。
- 行とセルの数
- 各行の高さ
- 各セルの幅
- ウィンドウ内のテーブルの配置
表には、表で使用されるさまざまな線の種類が示されています。 線の種類は、各セルのサイズと各線のセルの数を定義します。
スマートフォームプログラミングフロー
とき SAP スマート フォーム テンプレートが作成され、ユーザーはスマート フォーム ビルダーを使用してフォーム レイアウトを作成し、スマート フォーム テンプレートで必要なフィールド、条件、および特別なプログラミング指示を定義します。
フォームの設計が完了したら、印刷プログラムでフォームをテストしたりアクセスしたりする前に、フォームをアクティブ化する必要があります。フォームをアクティブ化すると、フォームのすべての処理を処理する汎用モジュールの生成が開始されます。
この汎用モジュールは、アプリケーションプログラム/印刷プログラムと対話して、指定されたデバイスのユーザー定義出力メディアに出力を作成します。
スマートフォームの場合、スマートフォームの処理には2つの機能モジュールを使用します。 最初の汎用モジュールに、スマート フォームの名前をインポート パラメータとして渡します。 これにより、実際にスマートフォームを呼び出す動的に生成された汎用モジュールの名前が返されます。
スマートフォーム名は関数モジュールに渡すことができます – 'SSF_FUNCTION_MODULE_NAME'
これにより、参照されるスマートフォームの汎用モジュール名が返されます。
印刷プログラムは FM を呼び出します。 「SSF_FUNCTION_MODULE_NAME」 実行時に関数モジュール名を取得します。 その後、取得した関数モジュールを呼び出してスマートフォームを実行します。
印刷プログラムからスマートフォームを呼び出す方法
上記で説明した2段階の呼び出しは、常に同じ方法で記述されます。プログラムはまず生成された名前を解決し、次にアプリケーションデータを使用してそれを実行します。
- 関数モジュール名を解決します。 フォーム名をSSF_FUNCTION_MODULE_NAMEに渡してください。生成される名前はシステムごとに異なるため、ハードコーディングしてはいけません。
- 生成されたモジュールを動的に呼び出す: 解決済みの名前を保持する変数を使用して CALL FUNCTION 関数を使用し、フォームインターフェースで定義されたパラメータを通してデータを渡します。
- 出力制御: 印刷ダイアログを非表示にするかプレビューを要求するには、制御構造SSFCTRLOPに値を設定し、出力デバイスをSSFCOMPOPに値を設定します。
- 例外処理: 生成されたモジュールはFORMATTING_ERROR、INTERNAL_ERROR、SEND_ERROR、およびUSER_CANCELEDを発生させるため、呼び出し後にSY-SUBRCを確認する必要があります。
DATA: lv_fm_name TYPE rs38l_fnam, ls_control TYPE ssfctrlop, ls_output TYPE ssfcompop. * 1. Get the name of the generated function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_SMART_INVOICE' IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE e001(zsf). " Form not found ENDIF. * 2. Call the generated module with the form data ls_control-no_dialog = 'X'. ls_control-preview = 'X'. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ls_control output_options = ls_output is_header = ls_header TABLES it_items = lt_items EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
⚠️ 警告: 生成される関数モジュール名(例:/1BCDWB/SF00000123)は、システムごとに異なります。必ずSSF_FUNCTION_MODULE_NAMEを使用して解決してください。そうしないと、移送後にプログラムが失敗します。
テンプレ
テンプレートは、出力の正確なサイズがわかっている場合、または出力が固定形式である場合に使用できます。
例: 税金フォーム/小切手/航空券フォーム/鉄道チケット: これらはすべてテンプレートを使用します。
テーブルとテンプレートの大きな違いは、テーブルでは高さが動的に変化する点です。テンプレートでは、行を「ライン」と呼びます。
スマートなスタイル
スマート スタイルには次のものが含まれます。
- スマート スタイルのデフォルト値を含むヘッダー データ
- インデントと間隔、フォント属性、タブ、アウトラインと番号付けを含む段落フォーマット
- 効果(上付き文字、下付き文字)、バーコード、フォント属性を含む文字形式
- 段落または文字形式の色と下線
トランザクション「smartforms」/「smartstyles」を使用してスマート スタイルを作成できます。
💡ヒント: スマートスタイルは、各テキストノードではなく、フォーム属性に割り当ててください。そうすれば、スタイルの変更がフォーム内のすべての段落に反映されます。
このチュートリアルはこれですべてです






















