ABAP培训课堂练习指导.docx

上传人:牧羊曲112 文档编号:4882679 上传时间:2023-05-21 格式:DOCX 页数:24 大小:1.16MB
返回 下载 相关 举报
ABAP培训课堂练习指导.docx_第1页
第1页 / 共24页
ABAP培训课堂练习指导.docx_第2页
第2页 / 共24页
ABAP培训课堂练习指导.docx_第3页
第3页 / 共24页
ABAP培训课堂练习指导.docx_第4页
第4页 / 共24页
ABAP培训课堂练习指导.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ABAP培训课堂练习指导.docx》由会员分享,可在线阅读,更多相关《ABAP培训课堂练习指导.docx(24页珍藏版)》请在三一办公上搜索。

1、SAMRTFORMS的设计与调用前提准备:1、已经有一个开发完成的报表程序ZTEST_XXX_ALV_012、该报表程序的最终输出结果存储在内表gt_out中3、内表gt_out的结构类型为报表程序中自定义的类型itab_out课堂练习指导:第一部分:SMARTFORMS设计1、打开SMARTFORMS设计器在GUI系统工具栏命令行输入框内键入事务代码SmartForms,回车即打开SmartForms 设计器初始界面,如下:2、表格属性设置系统默认类型为表格,在文本框中键入ZTESTtFM_DHW_001,然后单击创建,即打开 表格设计器,初始功能为表格属性设置,下图即为主界面,修改描述为“

2、课堂练习-航班计 划表”。然后点击保存按钮日,在弹出窗口中选择本地对象后即完成保存。表格设计器左侧为导航树,右侧为属性维护区,点击右侧维护区的【输出选项】选项卡, 可以看到表格的默认输出页格式为DINA4,即为A4纸张幅面输出,如果需要修改,可单击 右侧按钮在弹出框中选择其他幅面格式,本练习中页格式采用默认的DINA4即可;另外,我们看到表格默认样式为System,鼠标点击样式输入框右侧的按钮,在弹出列表 中选中ZGQ_STYLE,单击1词确定选择。表格绘制器|衰格|ZTESTFM_DHV_OO1未瞄描述课堂练习-航班计划表页格式DINA4字符每英寸10, 00行每英寸6, 00样式SYSTE

3、M审SAP Smart样式:样式名称266找到条目DH输出7圈瓯IUig I伺直I I倒叵p ZTESTFM_DHW_001寸口全局设置a表格雇性b表格接口a全局定义p日页和窗口 %PAGE1新页面I寸|四|冏熠|舸噌饵J 国名称1含义1ZEOF_STYLEZGQ_STYLE张国强设计的样式ZHRRCF_SF_STYLE_CAND_PREVIEWZLEGAL_STYLEZPROF.SVCJNVOlZSYSTEM电子招募数据总览266找到条目表格(E)第丝旦)转到(Q)实用程序(会环境(怛系统(丫匚希助丝0W| o E)。秋T昌冏良。站1a必辨国团围SAP表格设计器:更改表格ZTESTFM DH

4、W OO1 ZTESTFM_DHW_OO1寸口全局设置a表格雇性b表格接口a全局定义p &页和窗口 口 %PAGE1新页面参数名称类型分配参考打印缺省值可选的WertubARCHIVE.INDEXTYPETOA_DARAEsARCHIVE_INDEX_TABTYPETSFDARAEEsARCHIVE_PARAMETERSTYPEARC_PARAMSEECONTROL.FARAMETERSTYPESSFCTRLOFEEMAIL_APPL_OEJTYPESVOTOEJIDEEMAIL_RECIFIENTTYPESVOTOBJIDEEMAIL_SENDERTYPESVOTOBJIDEEOUTPUT_

5、OPTIONSTYPESSFCOMPOPEEUSER_SETTINGSTYPETDBOOLXEEG_TITLETYPESTRINGG_AUDATTYFESTRING slIIHI1JEE导出表 例外T|T1lTIKIIT13、表格接口定义鼠标双击左侧导航树中全局设置下表格接口节点,出现如下窗口,可以在这里定义表格 的接口参数,以便报表程序调用表格时传递变量。默认的许多系统变量,我们无法进行变动。在这里,我们定义两个参数,参数名称分别为G_TITLE、G_AUDAT,类型分配填入TYPE,参考打印填入STRING。点击保存!&口回区表格(E)编辑低)转到恒)实用程序(口)环境 系统 帮助旧)苜3

6、(9 7 Q oa 03 幻图园也围SAP表格设计器:更改表格ZTESTFM DHW OO1圈匪匡图回直囹11叶表格绘制器衰格|ZTESTFM DHV OO1未瞄描述课堂练习-航班计划表牌表格ZTESTFM DHW OO1已保存4、全局定义鼠标双击左侧导航树中全局设置下全局定义节点,出现如下窗口,可以在这里完成表格 的一些全局类型、变量以及相关初始化设置。SAP表格设计器:更改表格ZTESTFM DHW OO1口幽图画图|囹 t表格绘制器|p 口表格 ZTESTFM_DHW_001p 口全局设置E)表格扈性国表格接口淮T圣扃畚或D %PAGE1新页面表格描述|ZTESTFM DHW 001 课

7、堂练习-航班计划表未激活厕BS变量名称Typisierung参考打印缺省值IluhjirZZHS3HHH全局数据格式化程序货币/数量字段类型字段符号d 表格 ZTESTFM_DHW_001勺口全局设置E)表格属性E表格接口E全局定曳D 31页和窗口D %PAGE1新页面|字段符号 初始化 格式化程序货币/数量字段方 m rn点击右侧【类型】选项卡,在文本输入区内输入以下类型定义代码段然后保存,完成结 构类型ITAB_OUT的声明。&表格(E)编辑旧转到恒)实用程序狙)环境(N)系统帮助旧)匚回区砂5J o hSAP表格设计器:更改表格ZTESTFM DHW OO1口幽图画图I囹 t表格绘制器I

8、表格ZTESTFM DHW 001未激活描述课堂练习-航班计划表TYPES: BEGIN OF ITAB_0ULCARRIDLIKESFLIGHT-CARRID.,CONNIDLIKESFLIGHT-CONNID,FLDATELIKESFLIGHT-FLDATE,PLANETYPELIKESFLIGHT-PLANETYPE,PRICELIKE胡LIGHT - PRICE,SEATSMAXLIKESFLIGHT-SEATSMA:,END OF ITAB|_OUT.UHrI然后单击【全局数据】选项卡,定义全局变量,一个是内表对象GT_OUT, 一个是对应 的工作区对象GS_OUT。前者用以存放报表

9、程序中待输出的内表数据,后者则用以逐行获 得每行数据。两个变量的参考打印类型均为刚刚定义的结构类型:ITAB_OUT。单击【初始化】选项卡,定义表格初始化代码,在本次课堂练习中,我们采字段符号 变量的方式,直接从报表程序的内存区中获取内表地址,并直接把内表数据赋给表格变量。注意:需要在输出参数中键入GT_OUT变量,否则系统会提示GT_OUT没有定义。在设计代码行编辑的节点,如表格初始化和程序行,凡是在代码段中涉及的全 局变量,均需要根据情况在输入参数或者输出参数中予以体现。该段代码中,assign语句后以括号围起的字符串变量(field)为动态对象,系统自动将该 字符串指定的报表程序内表地址

10、取出并赋给字段符号变S0字符串变量field的取值,需要注意,括号内为要调用当前表格的报表程序名称,后边 紧跟着的就是该报表程序中存放待输出数据的内表对象名称,如果该内表带有表投行,那么 必须增加口显式区别要访问的是内表。比如本练习中 (ZTEST_XXX_ALV_01)TD_SFLIGHT”5、窗口输出设置单击左侧导航树页面和窗口一新页面节点前的小箭头 口:-三】新页面,可以展 开页面下级节点,默认已经有一个主窗口节点,双击该节点,单击右侧【输出选项】选项卡, 修改左边距为1CM,宽度为19CM.,然后保存。注意:此处的左边距与宽度之和不得大于表格属性中选择的页格式定义的宽度, 上边距与高度

11、之和也不能大于表格属性中页格式定义的高度。6、新建表节点在左侧的导航树中选中主窗口节点后单击鼠标右键,选择创建一 表,窗口节点下会自 动出现一个新表1节点,如图修改表节点名称和描述如下图,表节点下自行创建了表头、主要区域和脚标三个输出区 域。7、表绘制器和行类型在导航树中双击刚刚创建的表节点,单击右侧【表】选项卡,可以看到右侧的表绘制器 中已经有一个名称为%LTYPE1的行类型,鼠标移动在表格行上单击右键选择重命名,修改 行类型名称为LTYPE_TITLE,点击 回确定修改。表绘制器的使用鼠标选中表绘制器上/按钮,切换鼠标到绘制行列状态,然后按下鼠标后横向移动即可看到绘制区会出现横向分割线,松

12、开鼠标左键后即可创建新的行类型;垂直拖拽鼠标则 出现竖向分割线,松开鼠标后即可创建新的单元格,而拖动竖向分割线还可以调整单元格的 宽度。也可以点击表绘制器右上方的细节按钮,切换到细节编辑界面直接输入行类型及列数,并可以精确指定单元格宽度,如下图。表宽度不得大于窗口属性中设定的宽度,各行类型的单元格宽度之和必须等于表宽度。LTYPE_DATA行类型增加表格框线。最终效果如下图:总共创建四个行类型,分别划出若干单元格,其详细信息如下:行类型表格线单元格数单元格宽度(CM)LTYPE_TITLE无119LTYPE_HERDER无2415LTYPE_DATA有62.803.233.253.4642.2

13、6LTYPE_BOTTOM无2910表格框线的设置点击表绘制器按钮令表绘制器,可以切换回图形编辑界面,单击工具栏上口 行列绘制按钮,将鼠标切换到选择状态;然后按住键盘上SHIFT键的同时,单击鼠标左键选中LTYPE_DATA行,然后先后点击外部框架匚1和内部框架曰两个按钮,即为8、在表节点中创建表行在导航树中选中表节点下表头节点,然后单击鼠标右键,选择创建一 表行,系统自动 在表头区节点下增加表行节点,我们修改其名称和描述为ROW_TITLE和“标题”,并在右 侧属性区中指定行类型为LTYPE_TITLE后,可以看到系统自动在当前行节点下增加一个单 元列节点,同样修改节点名称和描述为CELL_

14、TITLE和“标题”。按照同样方法,在标题行节点后依次创建抬头行ROW_TABLEHEADER和列头行ROW_LISTHEADER,行类型分别为 LTYPE_HERDER和 LTYPE_DATA在主要区域节点下创建表格数据行ROW_DATA,行类型为LTYPE_DATA。在脚标节点下创建页码行ROW_BOTTOM,行类型为LTYPE_BOTTOM,如下图:9、创建标题文本及抬头文本选中导航树中CELL_TITLE节点,单击鼠标右键选择创建一文本,系统自动在选中节 点下增加一个文本节点,我们修改节点名称和描述为TEXT_TITLE和“标题”。然后单击表格设计器上方的巴按钮,打开左下侧的字段列表,

15、展开导入接口,可以看 到之前在表格接口中自定义的参数列表,用鼠标左键点击选中G_TITLE并拖拽到右侧的文 本输入区中,并选择段落格式为C7,即指定标题显示格式为宋体三号居中。SAP表格设计器:更改文本TEXT TITLE n用同样方法,在抬头行ROW_TABLEHEADER的第二个单元格节点下创建文本节点, 将导入接口中的变量G_AUDAT拖入文本输入区内,选择段落格式为RB,即指定统计周期 显示为宋体五号居右。10、创建表格列头行文本及相应静态内容设置用同样方法,在表头节点表头行ROW_LISTHEADER的第一个单元格节点下创建文本 节点,将其文本输入区内直接输入内容:航线承运人ID,选

16、择段落格式为CB,即指定统计 周期显示为宋体五号居中。在表头行ROW_LISTHEADER的第二个单元格节点下创建文本节点,将其文本输入区 内直接输入内容:航班连接ID,选择段落格式为CC。在表头行ROW_LISTHEADER的第三个单元格节点下创建文本节点,将其文本输入区 内直接输入内容:航班日期,选择段落格式为CC。在表头行ROW_LISTHEADER的第四个单元格节点下创建文本节点,将其文本输入区 内直接输入内容:航空运费,选择段落格式为CC。在表头行ROW_LISTHEADER的第五个单元格节点下创建文本节点,将其文本输入区 内直接输入内容:飞机类型,选择段落格式为CC。在表头行ROW

17、_LISTHEADER的第六个单元格节点下创建文本节点,将其文本输入区 内直接输入内容:最大容量,选择段落格式为CC。11、创建表格数据行文本及相应动态数据设置采用相同方法,在主要区域节点下表格数据行ROW_DATA的第一个单元格节点下创建 文本节点,修改其节点名称和描述为:CELL_CARRID和航班承运人ID;然后在字段列表 中展开全局数据后,打开工作区变量GS_OUT,选中CARRID字段拖入右侧文本输入区, 然后选择段落格式为匚匚中-宋-洒小5)*。在表头行表格数据行ROW_DATA的第二个单元格节点下创建文本节点,修改相应节点 名称和描述,然后从字段列表将GS_OUT-CONNID字

18、段拖入右侧文本输入区,然后选择段 落格式为CC。在表头行表格数据行ROW_DATA的第三个单元格节点下创建文本节点,修改相应节点 名称和描述,然后从字段列表将GS_OUT-FLDATE字段拖入右侧文本输入区,然后选择段 落格式为CC。在表头行表格数据行ROW_DATA的第四个单元格节点下创建文本节点,修改相应节点 名称和描述,然后从字段列表将GS_OUT-PLANETYPE字段拖入右侧文本输入区,然后选 择段落格式为RC。在表头行表格数据行ROW_DATA的第五个单元格节点下创建文本节点,修改相应节点 名称和描述,然后从字段列表将GS_OUT-PRICE字段拖入右侧文本输入区,然后选择段落 格

19、式为CC。在表头行表格数据行ROW_DATA的第六个单元格节点下创建文本节点,修改相应节点 名称和描述,然后从字段列表将GS_OUT-SEATSMAX字段拖入右侧文本输入区,然后选择 段落格式为CC。12、创建页码文本及系统字段设置依然采用同样方法,在脚标区页码行ROW_PAGE的第二个单元格点下创建文本节点, 修改其节点名称和描述为:DATA_PAGE和页码;然后在字段列表中展开系统字段后,打开 系统对象SFSY,选中PAGE字段拖入右侧文本输入区,然后选择段落格式为LB,即指定 页码显示为宋体五号居左。SAP表格设计器:更改文本DATA PAGE圈圜0国HB国|十表格篷镰固表格届性国表格接

20、口a全局定受 口页和窗口p %PAGE1新页面=Q MAIN 主窗口p TABLE_GIRD数据输出表表头主要区域p脚标= ROW_BOTTOM 合计行 口 CELL_NULL1 空 口 CELL_PAGE 页码 区 DATA_PAGE页码立本描述DATA PAGE页码| 燎 |聘 | 高|冏 |曲| |斜Fcimats |畛1Formats | 不 |l|W|F :=lt agi- aph F orm at eiSFSY-PAGE&3倒 Ch:=Lt_acter!字段名称 全局数据=口系统字段=Q SFSYPAGEFORMPAGESJOBPAGES页号页数表格的总页数 打印作业的总页数COP

21、YCOUNT鼠标拖瑰rGUI STATUS,在弹出窗口中状态名称输入STANDARD, 短 文本描述输入工具条,然后确定即可打开状态条编辑界面。状态条编辑界面如下图展开应用工具条,可以看到全是空白的,选其中一个单元格,输入字符串PRT,并双击该字符串,弹出如下窗口:默认为静态文本,无需改动,直接点击杪确认创建函数文本完成以下输入,函数文本:打印,图标:ICON_PRINT,信息文本:打印当前报表;然后点击确认,在下图中分配一个功能键给当前按钮确定功能键分配后在后续弹出的窗口,可以输入快捷键P然后点击确认,即完成自定义工具条和打印按钮的创建,如下图囹囹I圈口匿I匪U国段圆圜口圆国圄圜国国 仰占F

22、unktiona用户界面ZTEST_DHW_TESTALV_02已激活检查消息菜单栏*+ IH 遍工具条应用工具条弋IH 遍工具条我们通常采用相同的方法将ALV控件内置的系统功能按钮分别创建到自定义工具 条中,如下图,最后会附上其相应的功能码一览表供开发时候参考。用户界面ZTEST菜单栏竭 Q工具条画 1DHW TESTALV 02a 思工具条a 思工具条不活动的项目1 - 7(LETA胃11&ALL&SAL B1&OUFS项目S - 14号DN&ILT 邓&ILD 等1&UMC 雪isuiii 鬼OPA 画项目15 - 21Imp1&XXL 疆%PC审%SL 囱&AEC%项目22 - 28&

23、OLO H&OAD相&AVE 强1&LFOtNFO 国选择项目29 - 35&CRE&CRL&CRR&CRE功能键卜+ IH 思工具条状态条中应用工具条的自定义已经创建完成,接下来需要对系统工具条的默认 功能键创建到自定义的状态条中;展开功能键列表,可以看到标准工具条中有所有 图标,但功能码均为空,所以,在相应的图标上填入对应的预置功能码即可。用户界面ZTEST DHW TESTALV 02不活动的菜单栏幅 匹思 H具条应用工具条满工具条功能键思 工具条沛隹&F03&F15 &F12e%sc ta%sc+F呆留F4可能的条目Shift-F10环境菜单至此,自定义状态条的设计完成,保存并激活,然

24、后在程序运行中的最终结果 即如下图:航班价格表航践承运人|连接号码|航班日期|航班价格|货币|飞机类型AZ788 12.06.2001.030,001030.0 DC-10-10AZ789 13.06.20071.030,001030.0DC-10-10AZ790 13.06.20071.014.001014.0747-400DL106 11.06.2007611,01611.01A310-300JL407 15.06.20071.061,361U61.3DC-10-10JL408 16.06.20071.061,361U61.3747-400LH400 16.06.2007666,00666

25、.00A310-300LH401 15.06.2007666,00666.00A319LH402 11.06.2007666,00666.00DC-10-10QF5 15.06.2007788,64788.64A310-300QF6 13.06.2007788,647S8.64A319SQ2 14.06.20072.320,042320.0DC-10-10SQ15 13.06.20072.320,042320.0DC-10-10SQ988 14.06.2007910,15910.15A310-300UA941 14.06.2007879,82879.82A319UA3504 15.06.200

26、7879,82879.82DC-10-10UA3516 12.06.2007611,01611.01DC-10-10UA3517 11.06.2007611,01611.01747-400ALV控件内置功能码一览表功能代码:函数文本:图标名称:&ETA细节ICON_SELECT_DETAIL&EB9调用报告.ICON_TABLE_SETTINGS&REFRESH刷新ICON_REFRESH&ALL全部选择ICON_SELECT_ALL&SAL取消全选ICON_DESELECT_ALL&OUP按升序排列ICON_SORT_UP&ODN按降序排列ICON_SORT_DOWN&ILT设置过滤器ICO

27、N_FILTER&UMC总计ICON_SUM&SUM小计.ICON_INTERMEDIATE_SUM&RNT_PREV打印预览ICON_LAYOUT_CONTROL&VEXCELMicrosoft ExcelICON_XLS&AQW字处理.ICON_WORD_PROCESSING%PC本地文件.ICON_EXPORT%SL邮件收件人ICON_MAIL&ABCABC分析ICON_ABC&GRAPH图形ICON_GRAPHICS&OL0更改布局.ICON_ALV_VARIANTS&OAD选择格式.ICON_ALV_VARIANT_CHOOSE&AVE保存格式.ICON_ALV_VARIANT_SA

28、VE&INFO信息ICON_INFORMATION在报表程序中定义菜单处理子程序FRM_SET_MENU在报表程序中增加如下代码段,完成菜单处理子程序的创建*&*&Form frm_set_menu*&* 实现ALV自定义状态条的绑定处理* *form FRM_SET_MENU using rt_extab type slis_t_extab.set pf-status STANDARD.引号内字符串为状态条对象的名称endform. FRM_SET_MENU在调用函数模块进行ALV报表显示时增加相应参数调用修改报表程序中关于ALV报表显示的原有代码段,增加菜单处理参数call functio

29、n REUSE_ALV_GRID_DISPLAYexportingi_callback_program = g_repidit_fieldcatis_layoutit_eventsi_callback_pf_status.=it_field=gs_layout=e03_lt_events set = FRM_SET_MENU参数内容必须为大写3、定义用户命令处理子程序并绑定到ALV事件响应处理中定义用户命令处理子程序FRM_USER_COMMAND在报表程序中增加如下代码段,完成用户命令处理子程序的创建*&*&Form frm_user_command*&* 实现对用户命令的响应* * -R_

30、UCOMM text* -RS_SELFIELD slis_selfield*form FRM_USER_COMMAND using p_ucomm like sy-ucomm selfield type slisselfield.case p_ucomm.when PRT.响应自定义工具条中的自定义按钮事件 if not gt_out is initial.perform frm_print_selected. 调用打印输出子程序 else.message e888 with 没有可打印的数据!.endif.when BACK.返回leave program.endcase.endform.

31、frm_user_command在调用函数模块进行ALV报表显示时增加相应参数调用修改报表程序中关于ALV报表显示的原有代码段,增加用户命令处理参数call function REUSE_ALV_GRID_DISPLAYexportingi_callback_program=g_repidit_fieldcat=it_fieldis_layout=gs_layoutit_events=e03_lt_eventsi_callback_pf_status_set =FRM_SET_MENUi_callback_user_command = FRM_USER_COMMAND4、 定义打印输出子程序在

32、报表程序中增加如下代码段,完成打印处理子程序的创建*&*&Form frm_print_selected*&* 实现对SmartForm的调用* * - pltext* - p2text* *form frm_print_selected .data: fm_name type rs38l_fnam.call function SSF_FUNCTION_MODULE_NAMEexportingformname = ZTESTFM_DHW_001 参数传值为要调用的Form名称 importingfm_name = fm_name.if sy-subrc 0.message id sy-msgi

33、d type sy-msgty number sy-msgnowith sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.call function fm_name参数列表与Form中定义的接口对象需完全一致exportingg_title= g_titleg_audat= g_audatexceptionsformatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 others = 5.if sy-subrc 0.if sy-subrc 4.message id sy-m

34、sgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.endif.endif.endform. frm_print_selected五、打印预览效果图:LPO1 页 00001 of 00001 打印预览国归档眼打印和存档|航班计划表统计周期:20口7年06月01日至2Q07年06月30 0赫日期曜i费最檐量LITSS21:ILIT-Litl2L 030.00DC-10-103S0078920IIHI6l13L 030.00DC-10-1U380魅07902i:iLi7-Utl3h 014. UL

35、I747-4L0385EL010621jLlT-Utll611.01A310-3002SUXIXU72007-06-15h 061.36DC-10-10380JLLUUS21:lLlT-Utl6h 061.36747-4L0385IHIXUU21jLlT-Utl6666.00A310-3002SULHLULU2007-06-15666.00A319220LHIXU221jLl7-Utll666.00EC-10-10380篆ITIU521:ILI7-Utl57SS.t4A31LH:Tiu280:?L0LI621:ILIT-Litl3TSS.&lA31922093ITIU22007-06-142, 320. IMDC-10-1038093LLI1521:lLlT-Utl32.32LLIMEC-1LH1038033098821jLlT-Utl4910.15A310-3002SU亟L&4121:ILIT-Lltl4ST9.S2A319220351肖21:lLl7-Utl5879.82EC-1LH10380::61621jLlT-Utl2611.01rc-io-io3SU::61721:lLlT-Llt-ll611.0174T-4L03S5页码:1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号