1. 主界面
2. Form Attributes
设置:Style
3. Form Interface
设置:内表
代码:IT_DATA LIKE ZXLI001
IT_PURNM LIKE ZXLI002
IT_BLANKS LIKE ZXLI001
4. Global Definitions
设置:1).全局变量
WA_DATA TYPE ZXLI001
WA_PURNM TYPE ZXLI002
G_COUNT TYPE I
G_CURRLINE TYPE I
G_TOTALLINES TYPE I
G_CURRPAGE TYPE I
G_TOTALPAGE TYPE I
WA_BLANKS TYPE ZXLI001
C_X TYPE I
2).初始化
输入参数:G_TOTALLINES, IT_DATA.
代码:DESCRIBE TABLE IT_DATA LINES G_TOTALLINES.
5. %LOOP2 表数据循环
位置:数据-〉loop循环-〉内表:IT_PURNM INTO WA_PURNM.
6. %LOOP3 计算单个凭证总页码
位置:数据-〉loop循环-〉内表:IT_DATA INTO WA_DATA.
WHERE 条件:PUR_NUM = WA_PURNM-PURNM
7. %CODE3 累计单个凭证记录数
输入参数:G_COUNT, C_X.
代码:G_COUNT = G_COUNT + 1.
C_X = G_COUNT.
8. %CODE2 计算总页码数
输入参数:G_COUNT, G_TOTALPAGE.
代码:DATA : L_LINE TYPE I.
L_LINE = G_COUNT MOD 10.
IF L_LINE = 0.
G_TOTALPAGE = G_COUNT DIV 10.
ELSE.
G_TOTALPAGE = G_COUNT DIV 10 + 1.
ENDIF.
L_LINE = 0.
G_COUNT = 0.
9. %LOOP1 循环明细
位置:数据-〉loop循环-〉内表:IT_DATA INTO WA_DATA.
WHERE 条件:PUR_NUM = WA_PURNM-PURNM
10. %CODE1 累计当前记录数
输入参数:G_COUNT, C_CURRLINE.
代码:G_COUNT = G_COUNT + 1.
G_CURRLINE = G_CURRLINE + 1.
11. %TEMPLATE2 数据明细
12. %CODE4 计算当前页码数
输入参数:G_COUNT, G_CURRPAGE.
代码:DATA : L_LINE TYPE I.
L_LINE = G_COUNT MOD 10.
IF L_LINE = 0.
G_CURRPAGE = G_COUNT DIV 10.
ELSE.
G_CURRPAGE = G_COUNT DIV 10 + 1.
ENDIF.
13. %CODE5 计算空行
输入参数:G_COUNT, IT_BLANKS.
代码:G_COUNT = G_COUNT MOD 10.
IF G_COUNT <> 0.
G_COUNT = 10 - G_COUNT.
ENDIF.
CLEAR IT_BLANKS[].
DO G_COUNT TIMES.
APPEND WA_BLANKS TO IT_BLANKS.
ENDDO.
G_COUNT = 0.
14. %LOOP4 补充打印空行
位置:数据-〉loop循环-〉内表:IT_BLANKS INTO WA_BLANKS.
15. %TEMPLATE4 空数据明细
16. %CONDITION1 分页
条件:G_CURRLINE <> G_TOTALLINES
17. %COMMAND1 强制分页
普通:Go to New Page -> %PAGE1
18. %CODE6 清除内表数据
输入参数:IT_DATA, IT_PURNM.
代码:CLEAR IT_DATA[].
CLEAR IT_PURNM[].
我还是没找到方法,把我的截图从excel表里搞出来,没有画图工具,看附件吧
其实,做sap的alv调用smartforms输出,只要一步一步来,耐心读完肯定就可以的。
1. 首先,在窗口属性设置-〉输出设置-〉Style
一般一个Style就足够用了,在T-Code smartforms第二栏,新建Style。
新建Style,在段落格式-〉右键-〉创建节点-〉如TH(Table Header)、etc.,其中设置第一页相关信息就够了,常用到的Alignment选择左、右、中,Indent中设置Left Margin 2mm,Spacing中设置Line Spacing 1ln;然后是在Header Data中设置默认的段落格式,一般选择左排列的格式;最后是创建字体格式,一般创建第二页也就是Font那页,设置字体、大小、粗体、下划线这几样,第一页Standard Setting是为了创建Bar Code而设置的。
2. 其次,在接口参数设定中。
Table也就是第三栏中设置内表like数据字典中的结构体,这样减去了缓存放入内存中调用的弊端,在数据字典中,可以设置“Z”开头的结构体,T-Code SE11的第三栏,点击创建,在第一列输入任意,第三列输入你like的地段,敲回车,这样把你所需要的结构体建立起来。
3. 再次,在定义全局变量中。
第一列全局变量,还有第四列初始化,这两个会用到,而Types没有用到,这也就是防止产生大量的缓存
4. 剩下的就是SMARTFORMS的主界面了,看附件吧!
分享到:
相关推荐
本实例将详细介绍如何利用ALV进行数据展示,并结合SMARTFORMS实现数据打印。 首先,ALV是SAP提供的一种标准的列表显示组件,它允许开发者快速地创建和定制复杂的表格视图。在使用ALV时,通常需要以下步骤: 1. **...
### SAP ABAP ALV 分页显示技术解析 #### 核心知识点:SAP ABAP ALV 分页显示 本篇文章将深入分析一个基于SAP ABAP的ALV(Application List Viewer)分页显示的实现方法。ALV是SAP GUI中用于展示表格数据的一种...
REUSE_ALV_GRID_DISPLAY_LVC函数是ABAP ALV编程中常用的一个函数模块,它负责初始化并显示ALV网格。这个函数的主要步骤包括: 1. 初始化ALV:调用FUNCTION模块`REUSE_ALV_GRID_DISPLAY`,并传递必要的参数,如选择的...
本文将重点介绍`REUSE_ALV_GRID_DISPLAY`函数,并结合具体示例来探讨其在SAP ABAP编程中的应用。 #### 二、`REUSE_ALV_GRID_DISPLAY`函数详解 `REUSE_ALV_GRID_DISPLAY`是SAP ALV的一个核心函数模块,用于展示表格...
[SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...
" 从数据库中获取数据并填充到内表 endform. form fields. " 列定义 " 定义每个列的名称、宽度、格式等 endform. form display_data. data: lo_salv_table type ref to cl_salv_table. call method cl_salv_...
"ABAP-ALV进阶知识点详解" ABAP-ALV进阶是指在SAP系统中使用ABAP语言开发的高级列表查看器(ALV)。ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出。下面是ABAP-ALV进阶的知识点详解: 一、ALV概要 ...
**ALV GRID CONTROL (ALV 网格控制器)** 是实现精美屏幕显示的关键组件,它利用控制器技术并通过系统的全局类方法响应各种操作事件。 ##### 控制结构概述 - **字段目录 (Field Catalog)**:用于控制 ALV 显示的...
本篇将深入探讨如何通过ABAP编程实现ALV的多层输出,并调用系统方法。 首先,我们需要理解ABAP(Advanced Business Application Programming)是SAP开发的编程语言,用于在R/3系统上构建业务应用。在ABAP中,ALV的...
然而,在某些应用场景下,ALV界面中预设的一些功能按钮可能并不符合特定业务流程的需求,比如用户可能不需要打印、导出或者某些高级查询功能,这些不必要的按钮不仅占用了屏幕空间,还可能引起用户的混淆。...
在ABAP(Advanced Business Application Programming)中,ALV(ABAP List Viewer)是SAP提供的一种用于显示数据表的标准化接口。本篇我们将深入探讨如何使用Function来实现ALV Table的弹出窗口形式,这对于创建用户...
SAP SMARTFORMS 凭证连续打印设置操作之三 本文档介绍了如何在 SAP 系统中实现凭证连续打印设置操作,使用 SMARTFORMS FORM ...10. 通过使用 SMARTFORMS FORM,可以实现自动分页打印处理,并满足不同类型的打印需求。
首先,我们需要定义一个报表程序,例如`ZMMR3009`,并在其中调用`REUSE_ALV_GRID_DISPLAY`函数来显示ALV。该函数接受一系列参数,如`I_CALLBACK_PROGRAM`用于指定当前程序,`I_LAYOUT`用于传递布局信息,`IT_...
代码片段中展示了如何通过SQL查询读取数据,并通过ALV展示。 “PERFORM frm_set_alv_toolbar”这一行代码表明系统中存在一个自定义的功能,用于设置ALV工具栏。工具栏可以包含各种按钮,例如用于执行特定操作的快捷...
SAP ALV Grid 是一种灵活的工具,用于显示列表,并提供了常见的列表操作通用函数,可以通过自定义选项来增强其功能。ALV Grid 控件可以创建非层次的友好交互式报表,是一个基于客户端的控件。 ALV Grid 控件的功能...
通过本教程的学习,你应该掌握了如何在Webdynpro中集成ALV组件,并能够利用ALV来展示数据。ALV不仅提供了强大的列表展示能力,还可以通过进一步定制来满足特定的应用需求。希望本教程对你有所帮助,让你在Webdynpro...
- `ALV_PROCESS`方法接收`LT_TAB`作为输入参数,创建`CL_SALV_TABLE`实例,并显示ALV。 - `MAIN`方法是整个流程的入口点,它调用`GETDATA`获取数据,然后将数据传递给`ALV_PROCESS`进行ALV展示。 通过这样的设计,...
2. **DATAGS_PARENTTYPEREFTOCL_GUI_CUSTOM_CONTAINER**:此变量用于引用`CL_GUI_CUSTOM_CONTAINER`类的对象,它是ALV的容器,负责容纳ALV并控制其外观和行为。 3. **DATAGT_FIELDCATTYPELVC_T_FCAT**:此变量类型...