您的位置:首页 > 其它

abap开发alv篇

2015-10-14 10:51 295 查看
abap 报表开发之alv(刚接触abap,所以用到的都是最基本的配置):

在start-of-selection中调用了两个函数:

start-of-selection.

perform frm_data_get.

perform frm_data_show.

get用于将表中的数据存储到内表当中,用于存储数据;show用于数据展示。

我的select语句是:

SELECT DISTINCT mara~matnr “物料编码

makt~maktx “物料描述

mara~mtart “物料类型

mara~matkl “物料组

mara~meins “基本计量单位

t006a~mseh6”单位描述

mara~gewei “重量单位

mara~brgew “毛重

mara~ntgew “净重

FROM mara

INNER JOIN makt ON mara~matnr = makt~matnr

INNER JOIN t006a ON mara~meins = t006a~mseh6

INTO CORRESPONDING FIELDS OF TABLE it_data

WHERE mara~matnr IN s_wlbm “物料编码范围确定

AND (it_con) “物料类型条件确定

AND mara~lvorm <> ‘X’ “去除掉删除的物料

AND MAKT~SPRAS = 1 “只取出含中文描述

AND (it_con1) . “物料组的范围确定

这里定义了一个it_data的内表

TYPES: BEGIN OF ty_data,

matnr TYPE mara-matnr , “物料编码

maktx TYPE makt-maktx , “物料描述

mtart TYPE mara-mtart , “物料类型

matkl TYPE mara-matkl , “物料组

meins TYPE mara-meins , “基本计量单位

mseh6 TYPE t006a-mseh6, “单位描述

gewei TYPE mara-gewei , “重量单位

brgew TYPE mara-brgew , “毛重

ntgew TYPE mara-ntgew , “净重

END OF ty_data.

DATA: it_data TYPE STANDARD TABLE OF ty_data, “物料信息内表

wa_data TYPE ty_data. “物料信息工作区

*it_data作为应用程序的参数传递到函数当中去

frm_data_get函数中要实现的功能:

要用到的变量:1.wa_layout 2. it_fieldcat 3.wa_fieldcat

wa_layout:用于设置表单的样式

wa_fieldcat:用于保存列字段属性的工作区

it_fieldcat:用于保存列字段属性的内表

然后编辑设置alv要显示的字段属性:

perform frm_edit_fieldcat using :(frm_edit_fieldcat方法见最后)

‘1’ ‘MATNR’ ‘IT_DATA’ ‘物料编码’ ,

‘2 ’ ‘MAKTX’ ‘IT_DATA’ ‘物料描述’ ,

‘3’ ‘MTART’ ‘IT_DATA’ ‘物料类型’ ,

‘4’ ‘MATKL’ ‘IT_DATA’ ‘物料组’ ,

‘5’ ‘MEINS’ ‘IT_DATA’ ‘基本计量单位’,

‘6’ ‘MSEH6’ ‘IT_DATA’ ‘单位描述’ ,

‘7’ ‘GEWEI’ ‘IT_DATA’ ‘重量单位’ ,

‘8’ ‘BRGEW’ ‘IT_DATA’ ‘毛重’ ,

‘9’ ‘NTGEW’ ‘IT_DATA’ ‘净重’ .“大写

传递4个参数:1.列显示的位置 2.对应表中的字段id 3.对应表 4 显示的列名称

主要实现方法:

调用标准SAP函数输出ALV报表方法reuse_alv_grid_display

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’

EXPORTING

* I_INTERFACE_CHECK = ’ ’

* I_BYPASSING_BUFFER = ’ ’

* I_BUFFER_ACTIVE = ’ ’

i_callback_program = sy-repid

* I_CALLBACK_PF_STATUS_SET = ’ ’

* I_CALLBACK_USER_COMMAND = ’ ’

* I_CALLBACK_TOP_OF_PAGE = ’ ’

* I_CALLBACK_HTML_TOP_OF_PAGE = ’ ’

* I_CALLBACK_HTML_END_OF_LIST = ’ ’

* I_STRUCTURE_NAME =

* I_BACKGROUND_ID = ’ ’

* I_GRID_TITLE =

* I_GRID_SETTINGS =

is_layout = wa_layout

it_fieldcat = it_fieldcat

* IT_EXCLUDING =

* IT_SPECIAL_GROUPS =

* IT_SORT =

* IT_FILTER =

* IS_SEL_HIDE =

* I_DEFAULT = ‘X’

* I_SAVE = ’ ’

* IS_VARIANT =

* IT_EVENTS =

* IT_EVENT_EXIT =

* IS_PRINT =

* IS_REPREP_ID =

* I_SCREEN_START_COLUMN = 0

* I_SCREEN_START_LINE = 0

* I_SCREEN_END_COLUMN = 0

* I_SCREEN_END_LINE = 0

* I_HTML_HEIGHT_TOP = 0

* I_HTML_HEIGHT_END = 0

* IT_ALV_GRAPHICS =

* IT_HYPERLINK =

* IT_ADD_FIELDCAT =

* IT_EXCEPT_QINFO =

* IR_SALV_FULLSCREEN_ADAPTER =

* IMPORTING

* E_EXIT_CAUSED_BY_CALLER =

* ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_data

* EXCEPTIONS

* PROGRAM_ERROR = 1

* OTHERS = 2

.

IF sy-subrc <> 0.

* Implement suitable error handling here

ENDIF.

frm_edit_fieldcat方法用于编辑字段属性并通过wa_fieldcat保存至it_fieldcat当中去

FORM frm_edit_fieldcat USING p_col_pos TYPE any

p_fieldname TYPE any

p_tabname TYPE any

p_seltext TYPE any.

wa_fieldcat-col_pos = p_col_pos.

wa_fieldcat-fieldname = p_fieldname.

wa_fieldcat-tabname = p_tabname.

wa_fieldcat-seltext_m = p_seltext.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. ” FRM_EDIT_FIELDCAT

(程序名:zrmm20193014-张放)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sap-abap