ALV1:使用函式顯示ALV格式報表

lijunhai發表於2007-12-25
1)定義ALV
type-pools slis. "呼叫型別組
data: myrepid like sy-repid. "程式為當前程式
data: i_layout type slis_layout_alv. "ALV顯示格式內表
data: allfields type slis_t_fieldcat_alv. " ALV顯示欄位內表
data: i_fieldcat type line of slis_t_fieldcat_alv. "ALV欄位資訊結構
data: e_status type slis_formname value 'STANDARD_ER01'. "ALV自定義非標準按鈕
myrepid = sy-repid.
2)ALV顯示屬性
i_layout-colwidth_optimize = 'X'. "自動調整列寬
i_layout-zebra = 'X'. "變換行顏色
2)ALV寫法,有兩種:
(1)法一,寫成塊形式
data: pos type i.
define alv_append_field. "定義模組
i_fieldcat-col_pos = pos. "列標誌
i_fieldcat-fieldname = &1. "欄位名
i_fieldcat-seltext_l = &2. "欄位描述
i_fieldcat-no_zero = 'X'. "不顯示值為0的資料和前導0
... "其它的fieldcat屬性
append i_fieldcat to allfields. "寫進顯示欄位內表
clear i_fieldcat.
pos = pos + 1. "下一列
end-of-definition.
refresh allfields.
pos = 1.
clear i_fieldcat.
alv_append_field 'FLDNAME' 'FLDTXT' .
(2)法二:標準形式
clear i_fieldcat.
i_fieldcat-fieldname = 'FLDNAME'. "欄位名
i_fieldcat-seltext_l = 'FLDTXT'. "欄位描述
i_fieldcat-no_zero = 'X'.
... "其它fieldcat屬性
append i_fieldcat to allfields.
... "迴圈同上
3)呼叫ALV顯示函式
call function 'REUSE_ALV_GRID_DISPLAY' "statt LIST
exporting
i_callback_program = myrepid
i_callback_pf_status_set = e_status "使用非標準按鈕
is_layout = i_layout
i_CALLBACK_USER_COMMAND = 'USER_COMMAND' "非標準按鈕動作
it_fieldcat = allfields "顯示欄位的內表
i_save = 'A' "是否開啟儲存
tables
t_outtab = itab " 內表名
exceptions
program_error = 1
others = 2.[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/505541/viewspace-995759/,如需轉載,請註明出處,否則將追究法律責任。

相關文章