1.2.3.按回车(Enter)4.字体和段落设计(程序名:zsf_test),注:操作顺序见红色标记数字,以下不在提示。4.创建段落PN步骤(注:有窗口重叠,标记3和标记4位于新的窗口中,后面不在提示.)5.设置缩进和空格6.设置PN字体7.其他字段设置步骤同4、5、6段落格式描述缩进和空格字体对齐左边距右边距字体族字体大小字体样式下划线颜色PN定义数字右边-对齐0.1CNSONG9蓝色LR左右边框左对齐0.1CNSONG8PH标题左对齐CNSONG20粗体PL表格左对齐0.1CNSONG9PS统计右边-对齐0.1CNSONG9粗体PT表头左对齐0.1CNSONG9粗体TT表头下线CNSONG10粗体√8.设置表头数据9.保存10.激活11.创建SmartForm版面设计,程序的名称:zsf_test12.设置表格属性结果:13.全局定义-类型(注:标记3定义类型代码见下面)标记3类型代码,自己动手复制即可(注:与后面创建的ALV程序中定义的数据类型部分相同):TYPES:BEGINOFt_out,MAIN窗口使用VBELNLIKEVBAK-VBELN,销售订单POSNRLIKEVBAP-POSNR,项目编号MATNRLIKEVBAP-MATNR,物料编号ARKTXLIKEVBAP-ARKTX,物料描述KWMENGLIKEVBAP-KWMENG,订单数量VRKMELIKEVBAP-VRKME,销售单位NETPRLIKEVBAP-NETPR,销售净价WAERKLIKEVBAP-WAERK,货币名称BSTKDLIKEVBKD-BSTKD,采购订单ZTERMLIKEVBKD-ZTERM,付款条件DISPOLIKEMARC-DISPO,物料计划人KUNNRLIKEKNA1-KUNNR,客户编号NAME1LIKEKNA1-NAME1,客户名称ORT01LIKEKNA1-ORT01,所在城市STRASLIKEKNA1-STRAS,街道名称ADRNRLIKEKNA1-ADRNR,详细地址TELF1LIKEKNA1-TELF1,固定电话ENDOFt_out,BEGINOFt_lr,左右[Left/Right]窗口使用VBELNLIKEVBAK-VBELN,销售订单BSTNKLIKEVBAK-BSTNK,采购订单BSTDKLIKEVBKD-BSTDK,下单日期VBTYPLIKEVBAK-VBTYP,订单类型NETWRLIKEVBAK-NETWR,销售净价WAERKLIKEVBAK-WAERK,货币名称ZTERMLIKEVBKD-ZTERM,付款条件KUNNRLIKEKNA1-KUNNR,客户编号NAME1LIKEKNA1-NAME1,客户名称ORT01LIKEKNA1-ORT01,所在城市STRASLIKEKNA1-STRAS,街道名称ADRNRLIKEKNA1-ADRNR,详细地址TELF1LIKEKNA1-TELF1,固定电话ENDOFt_lr,BEGINOFt_sum,页脚[Footer]窗口使用NETPRTYPES_PRICE,销售总价WAERKTYPES_CURRCODE,货币名称ENDOFt_sum.不要少此处的点号14.全局定义-全局数据(注意:利用定义的数据类型定义数据,详见步骤13)15.全局定义-初始化(注:标记4中(ZSF_TEST)为后面创建的ALV程序文件名称)16.全局定义-货币/数量字段17.保存程序,方法同上18.更改面名称,其他更改名称类似19.打开页面布局预览20.设置main窗口21.增加LOGO窗口(注:如果多个窗口,可以拖拽窗口调整个个窗口的排列顺序)22.增加LOGO图片23.设置LOGO输出选项23.创建新窗口24.设置新窗口为Title窗口25.同样的方法创建left窗口26.同样的方法创建Right窗口27.同样的方法创建Footer窗口28.各个窗口布局结果:29.在Title窗口中创建文本30.在Title窗口中设置标题31.创建循环32.设置循环LFT_LOOP33.创建模板34设置模板LFT35.在LFT模板下创建L1_C1_TXT文本[创建文本方法如上]模板中的各个属性设置表文本描述一般属性输出选项文本内容段落格式行列L1_C1_TXT销售订单总览TT11L1_C2_NULL12L2_C1_TXT销售订单:PL21L2_C2_VBELN&G_REC_LR-VBELN&LR22L3_C1_TXT采购订单:PL31L3_C2_BSTNK&G_REC_LR-BSTNK&LR32L4_C1_TXT下单日期:PL41L4_C2_BSTDK&G_REC_LR-BSTDK&LR42L5_C1_TXT订单类型:PL51L5_C2_VBTYP&G_REC_LR-VBTYP&LR52L6_C1_TXT付款条件:PL61L6_C2_ZTERM&G_REC_LR-ZTERM&LR6236.以同样的方法在Right窗口中创建并设置RGT_LOOP37.以同样的方法RGT_LOOP下创建并设置RGT模板模板中的各个属性设置表文本描述一般属性输出选项文本内容段落格式行列L1C1_TXT供应商信息TT11L1C2_NULL12L2C1_TXT客户编号:PL21L2C2_KUNNR&G_REC_LR-KUNNR&LR22L3C1_TXT客户名称:PL31L3C2_NAME1&G_REC_LR-NAME1&LR32L4C1_TXT所在城市PL41L4C2_ORT01&G_REC_LR-ORT01&LR42L5C1_TXT详细地址PL51L5C2_ADRNR&G_REC_LR-STRAS&&G_REC_LR-ADRNR&LR52L6C1_TXT固定电话PL61L6C2_TELF1&G_REC_LR-TELF1&LR6238.以同样的方法在Footer窗口中创建并设置Footer模板模板中的各个属性设置表文本描述一般属性输出选项文本内容段落格式行列PAGE第&SFSY-PAGE&页,共&SFSY-FORMPAGES&页PT11DATE打印日期:&SFSY-DATE&PS1239.在Main窗口下增加表40.设置表属性41.设置表行(步骤上同,帮省略)42.在Grid表头下创建表行43.设置表头44.修改列名称45.给列增加文本45.方法同上,设置各个列结果:46.表头各个文本属性:文本内容段落格式POSNR_TXT项目PTMATNR_TXT料号PTARKTX_TXT物料描述PTKWMENG_TXT数量PTVRKME_TXT单位PTNETPR_TXT净价PTWAERK_TXT货币PTDISPO_TXT计划人PT47.以设置表头的步骤,设置主要区域(42~45)结果:48.主要区域各个文本属性文本内容段落格式POSNR&G_REC_OUT-POSNR&PLMATNR&G_REC_OUT-MATNR&PLARKTX&G_REC_OUT-ARKTX&PLKWMENG&G_REC_OUT-KWMENG(C)&PNVRKME&G_REC_OUT-VRKME&PLNETPR&G_REC_OUT-NETPR(C)&PNWAERK&G_REC_OUT-WAERK&PLDISPO&G_REC_OUT-DISPO&PL49.对脚标进行设置[LEFT窗口一样的操作过程]49-1.增加循环49-2创建表行49-3脚标各个文本属性单元格文本内容段落格式C1C1总计:PSC2C2&G_REC_SUM-NETPR(C)&PNC3C3&G_REC_SUM-WAERK&PL49-4结果50.在Main窗口增加一个程序行51.设置程序行为CODE_CLEAR,作为数据清理52.同样的方法增加一个金额计算求和的SUM程序行53.设置Main窗口表格边框54.绘制LEFT窗口LFT模板边框55.同样的方法,绘制RIGHT窗口RGT模板边框56保存并激活57-1.TCode38创建程序ZSF_TEST(注:详细代码附本教程最后部分)57-2.设置选择文本57-3.57-458.切换到TCode80模式59.创建GUI状态60-1.创建Print按钮60-2.60-3.60-4.60-5.60-6.60-7.60-8.结果61.保存并激活62-1.运行程序,结果一:62-2.运行程序,结果二:62-3.运行程序,结果三:恭喜你完成SMARTFORM。ALV程序代码:*&---------------------------------------------------------------------**&ReportZSF_TEST*&*&---------------------------------------------------------------------**&自己完成此处注释*&*&---------------------------------------------------------------------*REPORTZSF_TEST.自己更改所需要的文件名TABLES:vbak,vbap,vbkd,kna1,mara,marc.定义Fieldcat一定要先调用该类型池TYPE-POOLS:slis.DATA:BEGINOFgt_outOCCURS0,vbelnLIKEvbak-vbeln,销售订单posnrLIKEvbap-posnr,项目编号matnrLIKEvbap-matnr,物料编号arktxLIKEvbap-arktx,物料描述kwmengLIKEvbap-kwmeng,订单数量vrkmeLIKEvbap-vrkme,销售单位netprLIKEvbap-netpr,销售净价waerkLIKEvbap-waerk,货币名称bstkdLIKEvbkd-bstkd,采购订单ztermLIKEvbkd-zterm,付款条件dispoLIKEmarc-dispo,物料计划人kunnrLIKEkna1-kunnr,客户编号name1LIKEkna1-name1,客户名称ort01LIKEkna1-ort01,所在城市strasLIKEkna1-stras,街道名称adrnrLIKEkna1-adrnr,详细地址telf1LIKEkna1-telf1,固定电话ENDOFgt_out,gw_outLIKELINEOFgt_out.FIELD-SYMBOLS:outLIKELINEOFgt_out.DATA:BEGINOFgt_lrOCCURS0,vbelnLIKEvbak-vbeln,销售订单bstnkLIKEvbak-bstnk,采购订单bstdkLIKEvbkd-bstdk,下单日期vbtypLIKEvbak-vbtyp,订单类型netwrLIKEvbak-netwr,销售净价waerkLIKEvbak-waerk,货币名称ztermLIKEvbkd-zterm,付款条件kunnrLIKEkna1-kunnr,客户编号name1LIKEkna1-name1,客户名称ort01LIKEkna1-ort01,所在城市strasLIKEkna1-stras,街道名称adrnrLIKEkna1-adrnr,详细地址telf1LIKEkna1-telf1,固定电话ENDOFgt_lr,gw_lrLIKELINEOFgt_lr.*定义Fieldcat与LayoutDATA:fieldcatTYPEslis_t_fieldcat_alv,WITHHEADERLINE,gw_fieldLIKELINEOFfieldcat,layoutTYPEslis_layout_alv,g_repidLIKEsy-repid.*定义事件DATA:gt_eventTYPEslis_t_event,gs_eventTYPEslis_alv_event.**gs_event-name='PF_STATUS_SET'.*gs_event-form='ALV_STATUS_SET'.*APPENDgs_eventTOgt_event.D