<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ALV開発]]></title><description><![CDATA[ALV開発]]></description><link>http://www.isummary.jp/category/125</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 16:18:33 GMT</lastBuildDate><atom:link href="http://www.isummary.jp/category/125.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Dec 2019 05:20:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[ALV出力で項目カテゴリの制御]]></title><description><![CDATA[<p>ALV出力時の項目カテゴリ制御は主に以下三つの方法があります。</p>自動生成マニュアル生成半自動生成<p>このトピックでは、各方法をそれぞれ取り上げて説明します。</p>自動生成<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/26#%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90"></a><p>出力テーブルの構造がデータディクショナリに定義されている場合、汎用モジュールを呼び出す際に入力パラメータI_STRUCTURE_NAMEで構造体の名前を指定することにより、項目カテゴリは内部に自動的に生成されることになります。 ここで注意すべきのは、出力テーブルは必ず該当構造体を使って定義しなけれなりません。そうではない場合、なかみが同じでも、実行時ランタイムエラーが発生します。</p><p><a href="https://www.sappane.com/96/36/46/16" class="wikilink2" title="96:36:46:16" rel="nofollow">16</a>をこのやり方で見直す場合、ABAPディクショナリに該当構造体を定義しておけば、以下のようにソースプログラムがすごくシンプルになります。</p>REPORT  YLWF_ALV_FC_AUTO.
*ALV用のタイププール
TYPE-POOLS: slis.
TYPES ttbl_account_doc TYPE STANDARD TABLE OF YLWF_FC_AUTO_STRUC.
DATA g_account_doc TYPE YLWF_FC_AUTO_STRUC.
DATA gtbl_account_doc TYPE ttbl_account_doc.
DATA: g_bukrs TYPE bukrs.
SELECTION-SCREEN BEGIN OF BLOCK LAYOUT WITH FRAME .
SELECT-OPTIONS: S_BUKRS FOR  g_bukrs.
SELECTION-SCREEN END OF BLOCK LAYOUT.
START-OF-SELECTION.
  SELECT
    bukrs
    belnr
    gjahr
    buzei
    pswbt
    pswsl
  FROM bseg
  INTO CORRESPONDING FIELDS OF TABLE gtbl_account_doc
  UP TO 10 ROWS
  WHERE
    bukrs in  s_bukrs.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
     i_structure_name = 'YLWF_FC_AUTO_STRUC'
     i_grid_title       = '伝票照会'
   TABLES
      t_outtab           = gtbl_account_doc
    EXCEPTIONS
     OTHERS             = 0
      .
マニュアル生成<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/26#%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E7%94%9F%E6%88%90"></a><p>データディクショナリでは、テーブルデータ型LVC_T_FCAT によって項目カタログが定義されています。項目カタログテーブルの各行には、出力テーブルの項目が記述されています。 項目カタログのマニュアル生成は、上記のテーブルを作成して、汎用モジュールを呼び出す際に入力パラメータIT_FIELDCATとして受け渡します。</p><p>実装の詳細は、<a href="https://www.sappane.com/96/36/46/16" class="wikilink2" title="96:36:46:16" rel="nofollow">16</a>をご参照ください。</p>半自動生成<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/26#%E5%8D%8A%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90"></a><p>項目カタログの半自動生成は、</p>ABAPディクショナリーの構造体から項目カタログを自動生成する自動生成された項目カタログに対してマニュアル修正を加える<p>というプロセスになります。</p><p>ABAPディクショナリーの構造体から項目カタログを自動生成するには、汎用モジュールLVC_FIELDCATALOG_MERGEを使用します。</p>]]></description><link>http://www.isummary.jp/topic/258/alv出力で項目カテゴリの制御</link><guid isPermaLink="true">http://www.isummary.jp/topic/258/alv出力で項目カテゴリの制御</guid><dc:creator><![CDATA[峯文]]></dc:creator><pubDate>Sat, 07 Dec 2019 05:20:00 GMT</pubDate></item><item><title><![CDATA[ALV出力でレイアウト選択機能の実装]]></title><description><![CDATA[<p>ALVを出力する前に、選択画面でユーザにALVの出力レイアウトを指定してもらう場面があります。 このトピックでは、<a href="https://www.sappane.com/36/46/16" class="wikilink2" title="36:46:16" rel="nofollow">16</a>を元に出力レイアウト選択機能を追加する例を取り上げて説明します。</p><p></p><p></p><p></p>プログラムの実装<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%AE%9F%E8%A3%85"></a>変数の定義を追加<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E5%A4%89%E6%95%B0%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%82%92%E8%BF%BD%E5%8A%A0"></a>DATA: g_variant TYPE disvariant.
DATA:  VG_SAVE       TYPE CHAR1,
           VG_EXIT       TYPE CHAR1,
           VG_VARIANT    TYPE DISVARIANT,
           VG_VARIANT_EX TYPE DISVARIANT.選択パラメータを追加<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E9%81%B8%E6%8A%9E%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E8%BF%BD%E5%8A%A0"></a>PARAMETERS:     P_LAYOUT TYPE DISVARIANT-VARIANT.初期化処理を追加<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E5%88%9D%E6%9C%9F%E5%8C%96%E5%87%A6%E7%90%86%E3%82%92%E8%BF%BD%E5%8A%A0"></a><p>初期化処理で、デフォルトのバリアント値を取得して自動提案します。</p>INITIALIZATION.
  VG_SAVE = 'A'.   "ユーザ定義レイアウトとグローバルレイアウトの両方を保存できます。
  VG_VARIANT-REPORT = SY-REPID.
  VG_VARIANT_EX = VG_VARIANT.

バリアントの初期化<br />
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'<br />
EXPORTING<br />
I_SAVE        =  VG_SAVE<br />
CHANGING<br />
CS_VARIANT    =  VG_VARIANT_EX<br />
EXCEPTIONS<br />
WRONG_INPUT   = 1<br />
NOT_FOUND     = 2<br />
PROGRAM_ERROR = 3<br />
OTHERS        = 4.<br />
IF SY-SUBRC = 0.<br />
P_LAYOUT = VG_VARIANT_EX-VARIANT.<br />
ENDIF.検索ヘルプ実装<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E6%A4%9C%E7%B4%A2%E3%83%98%E3%83%AB%E3%83%97%E5%AE%9F%E8%A3%85"></a>* AT SELECTION-SCREEN  選択画面：レイアウトのヘルプ設定<br />
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LAYOUT .
レイアウトのヘルプ設定<br />
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'<br />
EXPORTING<br />
IS_VARIANT    = VG_VARIANT<br />
I_SAVE        =  VG_SAVE<br />
IMPORTING<br />
E_EXIT        = VG_EXIT<br />
ES_VARIANT    = VG_VARIANT_EX<br />
EXCEPTIONS<br />
NOT_FOUND     = 1<br />
PROGRAM_ERROR = 2.<br />
IF SY-SUBRC &lt;&gt; 0.<br />
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO<br />
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.<br />
ELSE.<br />
IF VG_EXIT = SPACE.<br />
P_LAYOUT = VG_VARIANT_EX-VARIANT.<br />
ELSE.<br />
ENDIF.<br />
ENDIF.入力チェックを追加<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E5%85%A5%E5%8A%9B%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%92%E8%BF%BD%E5%8A%A0"></a><p>入力チェック処理で、入力されたレイアウトバリアント値が存在するかどうかをチェックします。</p>AT SELECTION-SCREEN.
バリアント存在チェック<br />
IF P_LAYOUT IS NOT INITIAL.<br />
VG_VARIANT-VARIANT = P_LAYOUT.<br />
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'<br />
EXPORTING<br />
I_SAVE        = VG_SAVE<br />
CHANGING<br />
CS_VARIANT    = VG_VARIANT<br />
EXCEPTIONS<br />
WRONG_INPUT   = 1<br />
NOT_FOUND     = 2<br />
PROGRAM_ERROR = 3.<br />
IF SY-SUBRC &lt;&gt; 0.<br />
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO<br />
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.<br />
ENDIF.<br />
ENDIF.レイアウト選択値を反映<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/46/38#%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E9%81%B8%E6%8A%9E%E5%80%A4%E3%82%92%E5%8F%8D%E6%98%A0"></a><p>汎用モジュールを呼び出してALV一覧出力を行う時、汎用モジュールの入力パラメータとしてレイアウトの選択値を受け渡します。</p>  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'<br />
EXPORTING

  i_callback_pf_status_set = 'PF_STATUS_SIMP'

it_fieldcat        = gtbl_fieldcat

 i_structure_name = 'YLWF_AL'



is_layout          = g_layout
IS_VARIANT    = VG_VARIANT
i_save             = VG_SAVE

TABLES<br />
t_outtab           = gtbl_account_doc<br />
EXCEPTIONS

 program_error      = 0

OTHERS             = 0<p></p>

]]></description><link>http://www.isummary.jp/topic/257/alv出力でレイアウト選択機能の実装</link><guid isPermaLink="true">http://www.isummary.jp/topic/257/alv出力でレイアウト選択機能の実装</guid><dc:creator><![CDATA[峯文]]></dc:creator><pubDate>Sat, 07 Dec 2019 05:18:55 GMT</pubDate></item><item><title><![CDATA[ALVコントールを使用してALV出力]]></title><description><![CDATA[<p>このトピックでは、ALVコントロールを利用したALV出力実装の基本方法を取り上げて説明します。</p>宣言<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#%E5%AE%A3%E8%A8%80"></a><p>イベントキャッチ</p>*---------------------------------------------------------------------*
*       クラス　イベントキャッチ（定義）
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER DEFINITION .
  PUBLIC SECTION.
*   選択行のダブルクリックイベント
*   CATCH THELINE BOUBLECLICK EVENT
    METHODS CATCH_DOUBLECLICK
      FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
      IMPORTING E_ROW
                E_COLUMN.
*   グリッドのツールバー（PDFボタン＝オン）
*   CATCH THE TOOLBAR'S PDF BUTTON
    METHODS HANDLE_TOOLBAR_PDF
      FOR EVENT TOOLBAR  OF CL_GUI_ALV_GRID
      IMPORTING E_OBJECT.
*   グリッドのコマンド
*   CATCH THE GRID COMMAND EVENT
    METHODS HANDLE_UCOMM
      FOR EVENT USER_COMMAND  OF CL_GUI_ALV_GRID
      IMPORTING E_UCOMM  .
ENDCLASS.                    "lcl_event_receiver DEFINITION
<p>ALV出力用コンテナ対象</p>DATA  VG_GRID      TYPE REF TO CL_GUI_ALV_GRID.<p>ALVイベントキャッチ</p>DATA: EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.コントロールの実例化<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E5%AE%9F%E4%BE%8B%E5%8C%96"></a><p>ALV出力用コンテナ対象をインスタンス化する。</p>    CREATE OBJECT VG_GRID
      EXPORTING
        I_PARENT = CL_GUI_CONTAINER=&gt;SCREEN0.カタログの作成<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0%E3%81%AE%E4%BD%9C%E6%88%90"></a>ALV出力<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#alv%E5%87%BA%E5%8A%9B"></a>  CALL METHOD VG_GRID-&gt;SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT                     = WL_SLA
    CHANGING
      IT_OUTTAB                     = TG_ALV[]
      IT_FIELDCATALOG               = TG_FIELDCAT[]
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION = 1
      PROGRAM_ERROR                 = 2
      TOO_MANY_LINES                = 3
      OTHERS                        = 4.
  CALL METHOD VG_GRID-&gt;SET_READY_FOR_INPUT "
    EXPORTING
      I_READY_FOR_INPUT = 1.イベント処理の設定<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E5%87%A6%E7%90%86%E3%81%AE%E8%A8%AD%E5%AE%9A"></a><p>ALV出力用イベント対象をインスタンス化します。</p>CREATE OBJECT EVENT_RECEIVER.<p>ALV出力用イベント「ダブルクリック」を実装します。</p>SET HANDLER EVENT_RECEIVER-&gt;CATCH_DOUBLECLICK FOR VG_GRID.<p>「ツールバー」イベントを実装します。</p>SET HANDLER EVENT_RECEIVER-&gt;HANDLE_TOOLBAR_FAX FOR VG_GRID ALV表示<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/26/16#alv%E8%A1%A8%E7%A4%BA"></a><p>ALVを再表示します。</p>  CALL METHOD VG_GRID-&gt;REFRESH_TABLE_DISPLAY
    EXPORTING <p>      IS_STABLE = WL_STABLE.</p>]]></description><link>http://www.isummary.jp/topic/256/alvコントールを使用してalv出力</link><guid isPermaLink="true">http://www.isummary.jp/topic/256/alvコントールを使用してalv出力</guid><dc:creator><![CDATA[峯文]]></dc:creator><pubDate>Sat, 07 Dec 2019 05:17:16 GMT</pubDate></item><item><title><![CDATA[ABAPのALV開発：項目カタログ]]></title><description><![CDATA[<p>このトピックでは、ALVの項目カタログを取り上げて説明します。</p><p></p>概要<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/06/16#%E6%A6%82%E8%A6%81"></a><p>項目カタログは、ALVで出力される各列(項目)のデータ型情報等が定義されます。 項目カタログに格納される定義情報は、以下のように分類することができます。</p>項目名<br />内部出力テーブルの項目名を指定します。列定義構造体のキー項目になります。データ型情報<br />ABAPデータ型や出力長などの情報が定義されます。<br />ABAPディクショナリーの項目を参照して定義するとマニュアルで定義するとの2パターンがあります。単位や通貨情報<br />数量や金額などの項目は、それぞれ関連する単位や通貨の情報を定義する必要があります。列の書式情報列の出力オプション項目カタログの項目<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/06/16#%E9%A0%85%E7%9B%AE%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0%E3%81%AE%E9%A0%85%E7%9B%AE"></a><p>項目カタログの項目一覧は下記のリンクをご参考ください。 <a href="http://help.sap.com/saphelp_470/helpdata/ja/ff/4649a6f17411d2b486006094192fe3/content.htm" class="urlextern" target="_blank" title="http://help.sap.com/saphelp_470/helpdata/ja/ff/4649a6f17411d2b486006094192fe3/content.htm" rel="nofollow noopener">項目カタログの項目-SAP Help Portal</a></p>項目カタログの生成<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/06/16#%E9%A0%85%E7%9B%AE%E3%82%AB%E3%82%BF%E3%83%AD%E3%82%B0%E3%81%AE%E7%94%9F%E6%88%90"></a><p>基本的に、ALVを使用して表示する一覧ごとに項目カタログが必要です。項目カタログを生成する方法として、以下の方法があります。</p>データディクショナリ構造を使用して自動的に生成ABAPプログラムでマニュアル生成上記の2 つの方法を組み合わせて半自動的に生成外部リンク<a class="anchorjs-link " href="https://www.sappane.com/kdict/abap/36/06/16#%E5%A4%96%E9%83%A8%E3%83%AA%E3%83%B3%E3%82%AF"></a><p><a href="http://help.sap.com/saphelp_470/helpdata/ja/22/a3f5fed2fe11d2b467006094192fe3/content.htm" class="urlextern" target="_blank" title="http://help.sap.com/saphelp_470/helpdata/ja/22/a3f5fed2fe11d2b467006094192fe3/content.htm" rel="nofollow noopener">項目カタログ-SAP Help Portal</a></p>]]></description><link>http://www.isummary.jp/topic/255/abapのalv開発-項目カタログ</link><guid isPermaLink="true">http://www.isummary.jp/topic/255/abapのalv開発-項目カタログ</guid><dc:creator><![CDATA[峯文]]></dc:creator><pubDate>Sat, 07 Dec 2019 05:15:51 GMT</pubDate></item></channel></rss>