ALV & SMARTFORMS 并分页

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的主界面了,看附件吧!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值