导图社区 ABAP报表开发
SAP ABAP报表开发思维导图。导图从报表屏幕开发、ALV列表开发、打印配置几个方面作了详细的介绍,供大家学习参考。
编辑于2022-07-19 11:57:16微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
社区模板帮助中心,点此进入>>
微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
ABAP报表开发
一、 报表屏幕开发
屏幕(Screen)是ABAP程序设计非常重要的工作之一,SAP的单据、输出报表、各种业务主数据的维护界面等操作都会使用到屏幕,而且一个程序也可以包含多个屏幕。
创建简单屏幕程序
1||| 建立一个新程序
2||| 设计Screen,处理控件、逻辑流
3||| 调整程序,调用新建立的Screen
详细步骤
(1) 在命令栏输入“SE38”命令,然后输入程序名“Z_TEST01”,单击创建按钮,如图1
图1
(2) 在标题栏中输入程序标题以及选择程序类型等信息后,单击保存按钮,如图2
图2
(3) 系统会要求输入“开发类”和“传输请求号”,完成后同样单击保存按钮创建完成。系统进入程序设计界面,直接保存后退回,如图3
图3
(4) 在命令栏输入“SE51”命令,进入“屏幕制作器:初始屏幕”界面,在“程序”栏中输入刚建立的程序名“Z_TEST01”,输入“屏幕编号”100后单击创建按钮,如图4
图4
(5) 在弹出的界面的“属性”页中输入屏幕描述后单击保存按钮,如图5
图5
(6) 单击工具条上的“格式”按钮进入设计界面,从中添加一个“文本字段”控件,输入“名称”和“文本”,如果控件显示红色,则表示未正确设置属性,如图6
图6
(7) 设置“退出”按钮,“退出”按钮的属性如图7所示。注意属性中的功能码为EXIT,函数类型“E”表示退出函数
图7
使用屏幕
(1) 菜单编辑器:要进行工具条和菜单设计,需要使用菜单编辑器功能(在命令栏中输入“SE41”命令),也可以在屏幕设计界面通过单击“工具条”按钮进入
1||| 单击工具条的“其他对象”按钮,如图8
图8
2||| 在弹出的“Object Selection”对话框中,在“GUI状态”名称后面填入要创建的状态名,然后单击创建按钮,如图9
图9
3||| 在弹出的对话框中输入“短文本”描述,“状态类型”选择“联机状态”选项,然后单击确定按钮,如图10
图10
4||| 在弹出的界面中展开“应用工具条”,在项目“1-7”的第1个栏目中输入“BIN1”后双击,如图11
图11
5||| 在弹出的对话框中选择“静态文本”选项,然后单击“确认”按钮继续,如图12
图12
6||| 在弹出的对话框中输入“函数文本”,可以选择图标,但在选择图标后,该按钮仅显示图标,文本则做提示,如图13
图13
7||| 设置完成单击确认按钮继续,为按钮分配一个功能键,如图14
图14
8||| 在弹出的按钮属性对话框中输入“图标文字”,如图15
图15
9||| 用同样的方式添加第2个按钮,完成后单击工具条上的模拟按钮,输出结果如图16
图16
(2) 菜单设计
1||| 在图11中单击“菜单栏”后将其展开,输入主菜单名称后双击,然后输入相应的菜单项,如图17
图17
2||| 单击测试按钮,输出界面如图18
图18
(3) 系统按钮设计
1||| 在图12中单击“功能键”后将其展开,如图19
图19
2||| 在标准工具条中输入功能代码,测试界面如图20所示
图20
3||| 设计完成保存后,单击工具条上的激活按钮激活状态条。然后单击返回按钮回到Screen设计界面,单击逻辑流按钮设计逻辑流
(4) 逻辑流设计
单击逻辑流按钮进入设计逻辑流界面后,将程序中默认的PAI和PBO两个MODULE设为有效,去掉*注释,如图21。可以看到程序中有两个MODULE,其中在MODULE STATUS_0100中调用设计的状态条,在MODULE USER_COMMAND_0100中处理各类按键事件
图21
(5) 设置输入输出字段
进入屏幕设计界面,添加两个文本字段和两个输入字段。选择输入字段时,设定属性为输入输出字段,如图22
图22
(6) 设置OKCODE属性
在图22中单击“元素清单”按钮,可以定义OK_CODE变量来处理屏幕交互,如图23,在最下面的“名称”中输出OK_CODE,然后单击保存按钮保存,按激活按钮将所有的配置激活以后,可以进行整体的测试
图23
(7) 屏幕程序设计
REPORT Z_TEST01. DATA:FORINPUT(20) TYPE C VALUE '北京', FORCODE(20) TYPE C . *功能码返回值 DATA: OK_CODE TYPE SY_UCOMM, SAVE_OK TYPE SY_UCOMM . *直接调用窗口 CALL SCREEN 100. *输出返回变量 WRITE:FORINPUT , / FORCODE . *-----------------------------------------* *MODULE status_0100 OUTPUT *-----------------------------------------* *PBO输出前控制 *-----------------------------------------* MODULE STATUS_0100 OUTPUT. *定义状态条、包括菜单、工具条按钮、系统按钮等 SET PF-STATUS 'TESTSTA1'. *将变量值输出至屏幕字段 FORCODE=SAVE_OK. ENDMODULE."STATUS_0100 OUTPUT *-----------------------------------------* MODULE cancel INPUT *-----------------------------------------* * CANCEL MODULE与屏幕逻辑流对应 *-----------------------------------------* MODULE CANCEL INPUT. LEAVE PROGRAM. ENDMODULE ."cancel INPUT *-----------------------------------------* * MODULE user_command_0100 INPUT *-----------------------------------------* *PAI输入后控制 *-----------------------------------------* MODULE USER_COMMAND_0100 INPUT. SAVE_OK=OK_CODE. CLEAR OK_CODE. *分析功能码,如果是工具条上的第2个按钮,则退出当前屏幕 CASE SAVE_OK. WHEN 'BIN2' . LEAVE TO SCREEN 0. ENDCASE. ENDMODULE."user_command_0100 INPUT
程序在SE38程序编辑界面编辑完成后,需要对语法进行检查,没有问题后对程序进行激活,然后单击测试按钮进行测试,结果如图24
图24
二、 ALV列表开发
ALV(SAP List Viewer)控件是SAP业务中最常用的控件之一
简单的ALV控件实例:以销售机构表(B001)为例,使用数据字典定义结构,通过ALV控件显示数据。
程序代码: REPORT Z_TEST02. *定义内表 DATA WA_B001 LIKE TABLE OF B001 WITH HEADER LINE. *内表赋值 SELECT * INTO TABLE WA_B001 FROM B001. *通过数据字典结构显示ALV CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING I_STRUCTURE_NAME ='B001' TABLES T_OUTTAB=WA_B001 EXCEPTIONS PROGRAM_ERROR=1 OTHERS=2. IF SY_SUBRC <> 0. *MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO *WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 . ENDIF.
输出结果如图25
图25
自定义输出字段的ALV控件实例
程序代码: REPORT Z_TEST02. *ALV使用到的类库 TYPE-POOLS: SLIS. *一列描述 DATA WA_ALV_FIELD TYPE SLIS_FIELDCAT_ALV. *列描述内表,列清单 DATA WA_ALV_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. *定义内表 DATA WA_B001 LIKE TABLE OF B001 WITH HEADER LINE. *内表赋值 SELECT * INTO TABLE WA_B001 FROM B001. *定义第1到第4个字段 WA_ALV_FIELD-COL_POS=1. WA_ALV_FIELD-FIELDNAME ='ID'. WA_ALV_FIELD-SELTEXT_M='销售负责人'. APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT. WA_ALV_FIELD-COL_POS=2. WA_ALV_FIELD-FIELDNAME='CONNID'. WA_ALV_FIELD-SELTEXT_M='销售线'. APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT. WA_ALV_FIELD-COL_POS=3. WA_ALV_FIELD-FIELDNAME='CITYFROM'. WA_ALV_FIELD-SELTEXT_M='发货城市'. APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT. WA_ALV_FIELD-COL_POS=4. WA_ALV_FIELD-FIELDNAME='CITYTO'. WA_ALV_FIELD-SELTEXT_M='销售城市'. APPEND WA_ALV_FIELD TO WA_ALV_FIELDCAT. *调用ALV显示表单数据 CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING IT_FIELDCAT=WA_ALV_FIELDCAT TABLES T_OUTTAB=WA_B001. IF SY=SUBRC <> 0. ENDIF.
程序编辑完成后,首先激活,然后单击测试输出如图26的结果
图26
三、 打印配置
1. SAP系统的打印控制:SAP系统的打印控制一般分为两步,首先生成与打印设备 无关的打印请求,然后生成与打印设备相关的输出请求。通过选择菜单“工具->CCMS->Spool->SP01-Output Controller”选项(或者直接在命令栏中输入“SP01”命令),进入输出控制器中,在输出控制器中,可以查看“假脱机请求”和“输出请求”。 一般来说,根据需求的不同,SAP系统会以不同的方式处理ABAP列表打印与与SmartForms的打印,它们的配置过程相似,但实际控制方式不同。具体ABAP列表的打印配置过程如图27所示
图27
2. 创建终端打印设备:在SAP系统中可以自己定义“终端打印设备”,自己定义的“终端打印设备”可以由最终用户指定的本地打印机打印,创建步骤如下
1||| 通过选择菜单“工具->CCMS->Spool->SPAD->Spool Administration”选项(或者直接在命令栏中输入“SPAD”命令),进入“假脱机管理:初始屏幕”界面,如图28
图28
2||| 选择“设备/服务器”页,然后在“输出设备”栏中输入要创建的输出设备名称“test”,并单击“输出设备”按钮,进入如图29所示的界面
图29
3||| 单击修改按钮,然后单击创建按钮进入“假脱机管理:建立输出设备”界面,如图30所示
图30
在“设备属性”页视图有如下选项
I. 设备类:选择“打印标准”
II. 设备类型:将“在SAP系统中锁定打印机”选项勾上
4||| 选择“Access method”页面,从中可以设置“主机假脱机访问方式”及HOST地址、“主机名称”等选项,如图31所示
图31
tips:
1||| 主机假脱机访问方式:选择“F:计算机前台打印”
2||| Host printer:输入“_default”
3||| 不查询主机假脱机的输出请求选项:如果选中,则SAP只能利用客户端的默认打印机打印
5||| 完成设置后,单击保存按钮对配置内容保存即可
3. 为SAP用户设置默认输出设备:通过在命令栏中输入“SU01”命令即可进入图32所示的界面。在此界面中可以为用户设置输出设备为自己配置的打印设备“test”,并且指定打印后的内容能够“立即输出”和“输出后删除”。不过由于授权限所限,用户自己不能给自己设置默认输出设备,一般都是由系统管理员统一授权进行设置
图32