ABAP/4 报表编程模板

 

ABAP/4 报表编程模板 初学者必看
*&--------------------------------------------------------------*
*& Report  Z_X_XXXXX                                                
*& Module                   :  Module / SubModule                      
*&--------------------------------------------------------------*
*& Created                  :  author  (2003.10.09)                    
*& Modified                 :  author  (someday)                      
*  Intention                :  程序的详细说明                          
*  请用户在ABAP/4 REPORT编程时,参考本程序提供的编程框架              
*                        
*  在编码规范有出入时,以本程序为准
*  以下各事件可根据实际编程需要使用,对于需要处理的事件,可将该事
*  件后面的语句注释去掉,再编写相应的子程序代码。
*&--------------------------------------------------------------*

INCLUDE Z_X_XXXXXTOP .           " TOP 子程序,用来声明全局变量

*----以下三个子程序只有在多个程序调用同一逻辑时才建议使用-----*
*INCLUDE Z_X_XXXXXO01 .               " PBO 子程序
*INCLUDE Z_X_XXXXXI01 .               " PAI 子程序
*INCLUDE Z_X_XXXXXF01 .               " form 子程序

INITIALIZATION.
*  PERform  INI_SELECTION_SCREEN.       " 初始化选择屏上的变量

AT SELECTION-SCREEN.
*  PERform  INI_DATA.                   " 初始化全局变量

START-OF-SELECTION.
*  PERform  PRECESS_DATA.               " 主要数据处理逻辑

AT LINE-SELECTION.
*  PERform  PRECESS_LINE_SELECTED.      " 行选择时的处理

AT USER-COMMAND.
*  PERform  PRECESS_USER_COMMAND.      * 用自定义命令按钮时的处理

TOP-OF-PAGE.
*  PERform  PAGE_HEADER.                " 页眉

END-OF-PAGE.
*  PERform  PAGE_FOOT.                  " 页脚


*&--------------------------------------------------------------*
*&      form  PRECESS_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*

form PRECESS_DATA.
*如果逻辑简单, 则合并若干form为一个
 PERform  SEL_DBTAB_XXXXX.   " 从透明表中取数据赋给内表
 PERform  CMP_ITAB_XXXXX.    " 内表中数据计算处理
 PERform  WRT_ITAB_RESULT.   " 输出内表数据
ENDform.                    " PRECESS_DATA

*&--------------------------------------------------------------*
*&      form  SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
        from bsid
        where bukrs = s_bukrs.

    authority-check object Z:FI-00001
       id ACTVT field 03
       id BUKRS field itab_sales-bukrs
       id GSBER field itab_sales-gsber.   "权限检查

if sy-subrc ne 0.                            "权限检查未通过
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform.                    " SEL_DBTAB_XXXXX

*&--------------------------------------------------------------*
*&      form  CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*

form CMP_ITAB_XXXXX.

ENDform.                    " CMP_ITAB_XXXXX

*&--------------------------------------------------------------*
*&      form  WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
*  PERform WRT_ITAB_SUB.
ENDform.                    " WRT_ITAB_RESULT

*&--------------------------------------------------------------*
*&      form  PAGE_HEADER
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PAGE_HEADER.

ENDform.                    " PAGE_HEADER

*&--------------------------------------------------------------*
*&      form  INI_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_DATA.

ENDform.                    " INI_DATA

*&--------------------------------------------------------------*
*&      form  INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.

ENDform.                    " INI_SELECTION_SCREEN





*&--------------------------------------------------------------*
*& Include Z_X_XXXXXTOP                                              
*&--------------------------------------------------------------*
REPORT   Z_X_XXXXX                   .
*-------------------声明系统字典对象----------------------------*
TABLES: t001.

*--------------------声明 Selection-screen 变量-----------------*
SELECTION-SCREEN BEGIN OF BLOCK B1
                         WITH FRAME
                         TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS  FOR  T001-BUKRS MEMORY ID  BUK.
PARAMETERS:     P_DATE   LIKE SY-DATUM   DEFAULT SY-DATUM.

SELECTION-SCREEN END   OF BLOCK B1.

*--------------------声明全局变量-------------------------------*
*声明内表时,表名为 ITAB_XXXX,后缀尽可能为关联DBTab或内表用途
DATA:   bldat  like  bsid-bldat.
RANGES: R_FIELD   FOR   DBTAB-FIELD.

说明:以上是模板程序的框架及说明,在R/3系统的开发环境中有该模板程序(Z_X_XXXXX),建议编程序之前,先将该程序另存一新文件,再根据需要修改这新文件。

*&--------------------------------------------------------------*
*& Report  Z_X_XXXXX                                                
*& Module                   :  Module / SubModule                      
*&--------------------------------------------------------------*
*& Created                  :  author  (2003.10.09)                    
*& Modified                 :  author  (someday)                      
*  Intention                :  程序的详细说明                          
*  请用户在ABAP/4 REPORT编程时,参考本程序提供的编程框架              
*                        
*  在编码规范有出入时,以本程序为准
*  以下各事件可根据实际编程需要使用,对于需要处理的事件,可将该事
*  件后面的语句注释去掉,再编写相应的子程序代码。
*&--------------------------------------------------------------*

INCLUDE Z_X_XXXXXTOP .           " TOP 子程序,用来声明全局变量

*----以下三个子程序只有在多个程序调用同一逻辑时才建议使用-----*
*INCLUDE Z_X_XXXXXO01 .               " PBO 子程序
*INCLUDE Z_X_XXXXXI01 .               " PAI 子程序
*INCLUDE Z_X_XXXXXF01 .               " form 子程序

INITIALIZATION.
*  PERform  INI_SELECTION_SCREEN.       " 初始化选择屏上的变量

AT SELECTION-SCREEN.
*  PERform  INI_DATA.                   " 初始化全局变量

START-OF-SELECTION.
*  PERform  PRECESS_DATA.               " 主要数据处理逻辑

AT LINE-SELECTION.
*  PERform  PRECESS_LINE_SELECTED.      " 行选择时的处理

AT USER-COMMAND.
*  PERform  PRECESS_USER_COMMAND.      * 用自定义命令按钮时的处理

TOP-OF-PAGE.
*  PERform  PAGE_HEADER.                " 页眉

END-OF-PAGE.
*  PERform  PAGE_FOOT.                  " 页脚


*&--------------------------------------------------------------*
*&      form  PRECESS_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*

form PRECESS_DATA.
*如果逻辑简单, 则合并若干form为一个
 PERform  SEL_DBTAB_XXXXX.   " 从透明表中取数据赋给内表
 PERform  CMP_ITAB_XXXXX.    " 内表中数据计算处理
 PERform  WRT_ITAB_RESULT.   " 输出内表数据
ENDform.                    " PRECESS_DATA

*&--------------------------------------------------------------*
*&      form  SEL_DBTAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form SEL_DBTAB_XXXXX.
select * into corresponding fields of itab_sales
        from bsid
        where bukrs = s_bukrs.

    authority-check object Z:FI-00001
       id ACTVT field 03
       id BUKRS field itab_sales-bukrs
       id GSBER field itab_sales-gsber.   "权限检查

if sy-subrc ne 0.                            "权限检查未通过
continue.
endif.
append itab_sales.
clear itab_sales.
endselect.
ENDform.                    " SEL_DBTAB_XXXXX

*&--------------------------------------------------------------*
*&      form  CMP_ITAB_XXXXX
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*

form CMP_ITAB_XXXXX.

ENDform.                    " CMP_ITAB_XXXXX

*&--------------------------------------------------------------*
*&      form  WRT_ITAB_RESULT
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form WRT_ITAB_RESULT.
*  PERform WRT_ITAB_SUB.
ENDform.                    " WRT_ITAB_RESULT

*&--------------------------------------------------------------*
*&      form  PAGE_HEADER
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form PAGE_HEADER.

ENDform.                    " PAGE_HEADER

*&--------------------------------------------------------------*
*&      form  INI_DATA
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_DATA.

ENDform.                    " INI_DATA

*&--------------------------------------------------------------*
*&      form  INI_SELECTION_SCREEN
*&--------------------------------------------------------------*
*       text
*---------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------*
form INI_SELECTION_SCREEN.

ENDform.                    " INI_SELECTION_SCREEN





*&--------------------------------------------------------------*
*& Include Z_X_XXXXXTOP                                              
*&--------------------------------------------------------------*
REPORT   Z_X_XXXXX                   .
*-------------------声明系统字典对象----------------------------*
TABLES: t001.

*--------------------声明 Selection-screen 变量-----------------*
SELECTION-SCREEN BEGIN OF BLOCK B1
                         WITH FRAME
                         TITLE TEXT-001.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: S_BUKRS  FOR  T001-BUKRS MEMORY ID  BUK.
PARAMETERS:     P_DATE   LIKE SY-DATUM   DEFAULT SY-DATUM.

SELECTION-SCREEN END   OF BLOCK B1.

*--------------------声明全局变量-------------------------------*
*声明内表时,表名为 ITAB_XXXX,后缀尽可能为关联DBTab或内表用途
DATA:   bldat  like  bsid-bldat.
RANGES: R_FIELD   FOR   DBTAB-FIELD.

说明:以上是模板程序的框架及说明,在R/3系统的开发环境中有该模板程序(Z_X_XXXXX),建议编程序之前,先将该程序另存一新文件,再根据需要修改这新文件.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值