SAP报表开发文档格式.docx
- 文档编号:7775111
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:9
- 大小:61.22KB
SAP报表开发文档格式.docx
《SAP报表开发文档格式.docx》由会员分享,可在线阅读,更多相关《SAP报表开发文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
三、报表的通常格式
通常,一个报表程序包含如下几部分:
1、程序说明。
包括:
程序名称、作者、日期等信息。
2、关键字Report。
3、数据定义。
内表、参数都在这里定义。
4、Include部分。
指定包含文件。
5、定义选择屏幕。
利用SELECT-OPTIONS和PARAMETERS声明多个选择参数,系统会自动产生一个屏幕号为1000的选择屏幕。
6、INITIALIZATION事件。
完成对选择屏幕参数的默认值填充。
7、ATSELECTION-SCREEN事件。
对用户的输入参数作校验。
8、START-OF-SELECTION事件。
在这里完成数据处理。
9、END-OF-SELECTION事件。
在这里定义报表的输出。
10、如果不是采用ALV的方式输出报表,而是采用WRITE语句输出,则还有TOP-OF-PAGE和END-OF-PAGE事件。
四、关于选择屏幕
定义选择屏幕的常用关键字:
1、PARAMETERS….<
ASCHECKBOX/RADIOBUTTONGROUPrg1>
。
用来定义单值参数。
2、SELECT-OPTIONS。
用来定义单值、多值、范围参数。
3、SELECTION-SCREEN。
用来格式化选择屏幕。
定义选择屏幕时,我们会用到SELECT-OPTIONS这个关键字,该参数能够接受单值、多值、范围,实际上,该参数是一个内表,其结构如下:
DATA:
BeginofseltabOCCURS0,
SIGN
(1),OPTION
(2),LOWLIKEf,HIGHLIKEf,
ENDOFseltab.
Seltab-SIGN:
可选值为I和E。
I表示包含(Include),E表示排除(Exclude)。
Seltab-OPTION:
可选值为EQ、NE、GT、LE、LT、BT、NB。
EQ表示等于,NE表示不等于,GT表示大于,LE表示小于或等于,LT表示小于,BT表示在..之间,NB表示不在…之间。
SELECT-OPTIONS定义的选择参数能够直接用在OPENSQL语句中,例如:
WherefINseltab。
大家想想,一条这样的WHERE语句,如果用T-SQL需要多少个AND和OR?
这可是个好东西呀。
为了利用OPEN-SQL的这个特性,有时候,我们会自己定义这样的内表,自己填充数据,然后在OPEN-SQL语句中使用,即使我们不需要定义选择屏幕。
我们常用的屏幕格式化语句有:
1、在选择屏幕上产生空行:
SELECTION-SCREENSKIP.
2、定义屏幕块。
SELECTION-SCREENBEGINOFBLOCKblk0WITHFRAMETITLEtext-010.
SELECTION-SCREENENDOFBLOCKblk0.
如果大家对这个屏幕格式还是不满意,那么,请利用屏幕制作器,尽情地修改屏幕1000吧。
五、选择屏幕上的文本
定义完选择屏幕后,测试运行程序。
此时,我们看到的只是各个参数的名称,通常我们要用文本来替换裸露显示的参数名。
点击菜单“转到->
文本元素->
选择文本”,屏幕如下:
在Text栏中输入我们希望显示的选择文本。
如果参数定义来源于数据字典元素或数据元素,选中“Dictionaryref.”,则Text栏自动显示数据字典中定义的文本。
下面是“Textsymbols”屏幕,它在程序中通过text-010调用该文本符号(例如:
Writetext-010)。
如果开发多语言程序,这些textsymbols就必不可少了。
报表实例
财务部在实际业务处理时,有时候需要将会计凭证导出到Excel,而SAP提供的行项目显示在格式方面不能满足要求,在这一章中,我会将这一简单需求作为例子说明报表的写法。
第一步:
运用SE38或SE80创建一个报表,报表名称Z_FI_16(其实以Y或Z开头的名称都可以啦)。
第二步:
写代码,本程序代码如下:
=============================================================
REPORTz_fi_16.
*&
---------------------------------------------------------------------*
*声明全局变量
BEGINOFitabOCCURS0,
ndLIKEbkpf-gjahr,qjLIKEbkpf-monat,pzbhLIKEbkpf-belnr,
pzlxLIKEbkpf-blart,jzrqLIKEbkpf-budat,czLIKEbkpf-xblnr,
hbLIKEbkpf-waers,hlLIKEbkpf-kursf,ttwbLIKEbkpf-bktxt,
yhmLIKEbkpf-usnam,hxmLIKEbseg-buzei,jzdmLIKEbseg-bschl,
zhlxLIKEbseg-koart,tbzzLIKEbseg-umskz,jfdfLIKEbseg-shkzg,
jeLIKEbseg-wrbtr,bwbjeLIKEbseg-dmbtr,zzkmLIKEbseg-hkont,
kmmc(50)TYPEc,khLIKEbseg-kunnr,khmc(40)TYPEc,
gysLIKEbseg-lifnr,gysmc(40)TYPEc,cbzxLIKEbseg-kostl,
cbzxmc(20)TYPEc,xmwbLIKEbseg-sgtxt,
ENDOFitab.
BEGINOFipzbhOCCURS0,
sign
(1)TYPEc,
option
(2)TYPEc,
low(10)TYPEc,
high(10)TYPEc,
ENDOFipzbh.
i_countTYPEi,
c_tmp(50)TYPEc,
i_tmpTYPEi.
TABLES:
bkpf,bseg.
INCLUDEzincform.
*选择屏幕
SELECT-OPTIONSp_yearFORbkpf-gjahr.
SELECT-OPTIONSp_periodFORbkpf-monat.
SELECT-OPTIONSp_pzbhFORbkpf-belnr.
SELECT-OPTIONSp_pzlxFORbkpf-blart.
SELECT-OPTIONSp_jzrqFORbkpf-budat.
SELECT-OPTIONSp_hbFORbkpf-waers.
SELECT-OPTIONSp_yhmFORbkpf-usnam.
SELECTION-SCREENBEGINOFBLOCKblk1WITHFRAMETITLEtext-020.
SELECT-OPTIONSp_jzdmFORbseg-bschl.
SELECT-OPTIONSp_zhlxFORbseg-koart.
SELECT-OPTIONSp_zzkmFORbseg-hkont.
SELECT-OPTIONSp_khFORbseg-kunnr.
SELECT-OPTIONSp_gysFORbseg-lifnr.
SELECTION-SCREENENDOFBLOCKblk1.
*初始化选择屏上的变量
INITIALIZATION.
*初始化全局变量,检查用户的输入
ATSELECTION-SCREEN.
REFRESHipzbh.
SELECTbelnrASlow
INTOCORRESPONDINGFIELDSOFTABLEipzbh
FROMbkpf
WHEREgjahrINp_yearANDmonatINp_period
ANDbelnrINp_pzbhANDblartINp_pzlx
ANDbudatINp_jzrqANDwaersINp_hbANDusnamINp_yhm.
IFsy-dbcnt=0.
MESSAGEe846(so)WITH'
没有符合条件的会计凭证!
'
.
ENDIF.
IFsy-dbcnt>
2000.
超过2000条会计凭证分录,请缩小查寻范围'
LOOPATipzbh.
ipzbh-sign='
I'
ipzbh-option='
EQ'
MODIFYipzbh.
ENDLOOP.
*主要数据处理逻辑
START-OF-SELECTION.
SELECTgjahrASndbelnrASpzbhbuzeiAShxmbschlASjzdm
koartASzhlxumskzAStbzzshkzgASjfdfwrbtrASje
dmbtrASbwbjehkontASzzkmkunnrASkhlifnrASgys
kostlAScbzxsgtxtASxmwb
INTOCORRESPONDINGFIELDSOFTABLEitab
FROMbseg
WHEREbelnrINipzbhANDgjahrINp_yearANDbschlINp_jzdm
ANDkoartINp_zhlxANDhkontINp_zzkmANDkunnrINp_kh
ANDlifnrINp_gys.
LOOPATitab.
SELECTSINGLEmonatblartbudatxblnrwaerskursfbktxtusnamINTO(itab-qj,
itab-pzlx,itab-jzrq,itab-cz,itab-hb,itab-hl,itab-ttwb,itab-yhm)
WHEREgjahr=itab-ndANDbelnr=itab-pzbh.
*下面几个Perform分别用来获得帐户描述、客户描述、供应商描述、成本中心描述
PERFORMget_acctnameUSINGitab-zzkmCHANGINGitab-kmmc.
PERFORMget_custnameUSINGitab-khCHANGINGitab-khmc.
PERFORMget_supplynameUSINGitab-gysCHANGINGitab-gysmc.
PERFORMget_ccnameUSINGitab-cbzxCHANGINGitab-cbzxmc.
MODIFYitab.
PERFORMdisplay_data.
*行选择时的处理
ATLINE-SELECTION.
*用自定义命令按钮时的处理
ATUSER-COMMAND.
*页眉
TOP-OF-PAGE.
LOAD-OF-PROGRAM
*页脚
END-OF-PAGE.
显示数据
FORMdisplay_data.
TYPE-POOLSslis.
ws_fieldcatTYPEslis_t_fieldcat_alvWITHHEADERLINE,
ws_fieldgroups_tabTYPEslis_t_sp_group_alv,
ws_layoutTYPEslis_layout_alv,
ws_sortfields_tabTYPEslis_t_sortinfo_alvWITHHEADERLINE,
ws_eventsTYPEslis_t_event.
nnTYPEiVALUE0.
DEFINEhout.
nn=nn+1.
ws_fieldcat-tabname='
itab'
ws_fieldcat-fieldname='
&
1'
ws_fieldcat-seltext_m=&
2.
ws_fieldcat-col_pos=nn.
ws_fieldcat-outputlen=&
3.
ws_fieldcat-datatype='
4'
ws_fieldcat-do_sum='
5'
ws_fieldcat-lzero='
X'
ws_fieldcat-no_zero='
appendws_fieldcat.
clearws_fieldcat.
END-OF-DEFINITION.
CALLFUNCTION'
SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage=100
text='
正在进行数据处理,请稍等...'
houtnd'
年度'
4numc'
.houtqj'
期间'
2numc'
houtjzrq'
记帐日期'
10dats'
.houtxmwb'
项目文本'
20char'
houtkh'
客户'
10char'
.houtkhmc'
客户名称'
40char'
houtgys'
供应商'
.houtgysmc'
供应商名称'
houtcbzx'
成本中心'
.houtcbzxmc'
成本中心名称'
houtpzlx'
凭证类型'
2char'
.houtpzbh'
凭证编号'
houthxm'
行项目'
6numc'
.houtzzkm'
总账科目'
houtkmmc'
科目名称'
50char'
.houthb'
货币'
5char'
houthl'
汇率'
8numc'
.houtjfdf'
借方/贷方'
houtje'
金额'
11curr'
.houtbwbje'
本位币金额'
houtcz'
参照'
.houtyhm'
用户名'
houtjzdm'
记帐代码'
.houtzhlx'
帐户类型'
houttbzz'
特别总账标识'
.houtttwb'
抬头文本'
ws_layout-zebra='
ws_layout-get_selinfos='
ws_layout-colwidth_optimize='
ws_layout-detail_popup='
ws_layout-no_keyfix='
ws_layout-no_totalline='
REUSE_ALV_GRID_DISPLAY'
is_layout=ws_layout
it_fieldcat=ws_fieldcat[]
it_special_groups=ws_fieldgroups_tab[]
it_sort=ws_sortfields_tab[]
it_events=ws_events[]
i_grid_title='
TABLES
t_outtab=itab
EXCEPTIONS
program_error=1
OTHERS=2.
ENDFORM."
display_data
第三步:
定义选择屏幕文本。
ABAP编辑器菜单:
转到文本->
元素->
选择文本。
第四步:
分配事务代码和自定义菜单。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP 报表 开发