概要
基本的なALVの作り方を記載。流れはデータの取得->編集->ALVの設定->表示。
たったこれだけで簡単なALVであれば作成できます。
それぞれの設定には汎用モジュールが利用できますので、パラメータを設定するだけで要件にあった表示が可能です。
サンプルコード
REPORT ytest. TYPE-POOLS:slis. ************************************************************************ * Internal Table ************************************************************************ DATA: gi_sflight TYPE TABLE OF sflight. *** ALV *** DATA: gi_fieldcat TYPE slis_t_fieldcat_alv. "フィールドカタログ ************************************************************************ * Structure ************************************************************************ FIELD-SYMBOLS: <fs_sflight> LIKE LINE OF gi_sflight. *** ALV *** DATA: gw_layout TYPE slis_layout_alv. "レイアウト DATA: gw_variant TYPE disvariant. "バリアント DATA: gw_fieldcat TYPE slis_fieldcat_alv. "フィールドカタログ ************************************************************************ * Variable ************************************************************************ DATA: v_carrid TYPE sflight-carrid, v_fldate TYPE sflight-fldate. ************************************************************************ * Screen ************************************************************************ SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-t01. SELECT-OPTIONS s_carrid FOR v_carrid OBLIGATORY. SELECT-OPTIONS s_fldate FOR v_fldate. SELECTION-SCREEN END OF BLOCK b01. ************************************************************************ * Initial Process ************************************************************************ INITIALIZATION. CLEAR: gi_sflight. ************************************************************************ * Main Process ************************************************************************ START-OF-SELECTION. PERFORM get_data. PERFORM edit_data. PERFORM set_variant. PERFORM set_layout. PERFORM get_fieldcatalog. PERFORM output_alv. ************************************************************************ * GET_DATA ************************************************************************ FORM get_data. SELECT * INTO TABLE gi_sflight FROM sflight WHERE carrid IN s_carrid AND fldate IN s_fldate. ENDFORM. ************************************************************************ * EDIT_DATA ************************************************************************ FORM edit_data. LOOP AT gi_sflight ASSIGNING <fs_sflight>. ****** 処理が必要な場合は記述 ****** ENDLOOP. ENDFORM. ************************************************************************ * SET_VARIANT ************************************************************************ FORM set_variant. gw_variant-report = sy-cprog. ** IT_VARIANT-HANDLE = ** IT_VARIANT-LOG_GROUP = gw_variant-username = sy-uname. ** IT_VARIANT-VARIANT = ** IT_VARIANT-TEXT = ** IT_VARIANT-DEPENDVARS = ENDFORM. ************************************************************************ * SET_LAYOUT ************************************************************************ FORM set_layout. gw_layout-zebra = 'X'. "縞模様 gw_layout-colwidth_optimize = 'X'. "項目長にあわせる gw_layout-window_titlebar = sy-title. "ALV枠のタイトル ** GW_LAYOUT-no_colhead = ** GW_LAYOUT-no_hotspot = ** GW_LAYOUT-no_vline = ** GW_LAYOUT-no_hline = ** GW_LAYOUT-cell_merge = ** GW_LAYOUT-edit = ** GW_LAYOUT-edit_mode = ** GW_LAYOUT-numc_sum = ** GW_LAYOUT-no_input = ** GW_LAYOUT-f2code = ** GW_LAYOUT-reprep = ** GW_LAYOUT-no_keyfix = ** GW_LAYOUT-expand_all = ** GW_LAYOUT-no_author = ** GW_LAYOUT-def_status = ** GW_LAYOUT-item_text = ** GW_LAYOUT-countfname = ** GW_LAYOUT-colwidth_optimize = ** GW_LAYOUT-no_min_linesize = ** GW_LAYOUT-min_linesize = ** GW_LAYOUT-max_linesize = ** GW_LAYOUT-window_titlebar = ** GW_LAYOUT-no_uline_hs = ** GW_LAYOUT-lights_fieldname = ** GW_LAYOUT-lights_tabname = ** GW_LAYOUT-lights_rollname = ** GW_LAYOUT-lights_condense = ** GW_LAYOUT-no_sumchoice = ** GW_LAYOUT-no_totalline = ** GW_LAYOUT-no_subchoice = ** GW_LAYOUT-no_subtotals = ** GW_LAYOUT-no_unit_splitting = ** GW_LAYOUT-totals_before_items = ** GW_LAYOUT-totals_only = ** GW_LAYOUT-totals_text = ** GW_LAYOUT-subtotals_text = ** GW_LAYOUT-box_fieldname = ** GW_LAYOUT-box_tabname = ** GW_LAYOUT-box_rollname = ** GW_LAYOUT-expand_fieldname = ** GW_LAYOUT-hotspot_fieldname = ** GW_LAYOUT-confirmation_prompt = ** GW_LAYOUT-key_hotspot = ** GW_LAYOUT-flexible_key = ** GW_LAYOUT-group_buttons = ** GW_LAYOUT-get_selinfos = ** GW_LAYOUT-group_change_edit = ** GW_LAYOUT-no_scrolling = ** GW_LAYOUT-detail_popup = ** GW_LAYOUT-detail_initial_lines = ** GW_LAYOUT-detail_titlebar = ** GW_LAYOUT-header_text = ** GW_LAYOUT-default_item = ** GW_LAYOUT-info_fieldname = ** GW_LAYOUT-coltab_fieldname = ** GW_LAYOUT-list_append = ** GW_LAYOUT-xifunckey = ** GW_LAYOUT-xidirect = ** GW_LAYOUT-dtc_layout = ENDFORM. ************************************************************************ * GET_FIELDCATALOG ************************************************************************ FORM get_fieldcatalog. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid * i_internal_tabname = I_STRUCTURE_NAME = 'SFLIGHT' * I_CLIENT_NEVER_DISPLAY = 'X' * I_INCLNAME = * I_BYPASSING_BUFFER = * I_BUFFER_ACTIVE = CHANGING ct_fieldcat = gi_fieldcat * EXCEPTIONS * INCONSISTENT_INTERFACE = 1 * PROGRAM_ERROR = 2 * OTHERS = 3 . IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFORM. ************************************************************************ * OUTPUT_ALV ************************************************************************ FORM output_alv. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid is_layout = gw_layout it_fieldcat = gi_fieldcat is_variant = gw_variant TABLES t_outtab = gi_sflight * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFORM.
最近のコメント