SAPSMARTFORMS凭证连续打印设置操作之三.docx

上传人:b****5 文档编号:4487505 上传时间:2022-12-01 格式:DOCX 页数:27 大小:141.94KB
下载 相关 举报
SAPSMARTFORMS凭证连续打印设置操作之三.docx_第1页
第1页 / 共27页
SAPSMARTFORMS凭证连续打印设置操作之三.docx_第2页
第2页 / 共27页
SAPSMARTFORMS凭证连续打印设置操作之三.docx_第3页
第3页 / 共27页
SAPSMARTFORMS凭证连续打印设置操作之三.docx_第4页
第4页 / 共27页
SAPSMARTFORMS凭证连续打印设置操作之三.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

SAPSMARTFORMS凭证连续打印设置操作之三.docx

《SAPSMARTFORMS凭证连续打印设置操作之三.docx》由会员分享,可在线阅读,更多相关《SAPSMARTFORMS凭证连续打印设置操作之三.docx(27页珍藏版)》请在冰豆网上搜索。

SAPSMARTFORMS凭证连续打印设置操作之三.docx

SAPSMARTFORMS凭证连续打印设置操作之三

SAPSMARTFORM凭证连续打印设置操作之三

---利用ALV显示,并进行手动选择打印

在SAP系统中,凭证经常需要连续打印,如从凭证号100,打印至120;要求系统在打印的时候自动按凭证号进行分页处理。

下面的例子是利用内表传递数据至SMARTFORMS并且利用打印程序中的内表循环来实现凭证的自动分页打印处理;而SMARTFOR的设置则非常的简单,按一张凭证号来进行设置即可。

下面进行具体的操作讲解。

一、打印效果显示,如下图所示:

运行报表程序:

按钮,即可进行选择性的连续打印,如下图:

 

:

...

售单号

i肖售輙

幼赣退誚動事处请苦组奴

粵户代科

清号单号

订单创逢刁期

4

I71Q

1000

100D

1Q10

110

0000001175

4970

1997-D1-Q3

4

'71

1000

1000

1000

1Q1

0000001001

^71

1997-01-07

72

1000

1000

1010

110

0000002200

书72

1997-01-21

4

73

1000

1000

1030

130

0000001033

M73

1997-01-21

4

174

10OT

1000

1000

101

0000002140

笹羽

1997-01-21

4

75

1000

1000

1030

130

0000001002

M75

1997-01-21

4

76

1000

1000

1030

130

0000002004

书76

1997-01-21

4

77

1000

1000

1030

130

0000001360

咄77

1997-01-21

4

7Q

1000

1000

1000

101

0000002130

M78

1997-01-21

4

79

1000

1000

1030

130

0000001360

书79

1997-01-21

4

80

1000

1000

1000

101

0000002130

笹00

1997-01-21

4

1000

1000

1030

130

0000001033

噸62

1997-01-22

4

IODO

1DQD

1QKI

101

0Q0QQK14Q

■WS3

19ffF-Dl-22

4

04

1000

1000

1030

130

0000001002

49^1

1997-01-22

4

S5

1000

1000

1030

130

0000002004

4905

1997-01-22

4

10X

1D0D

imn

110

0000051460

钩96

1丹7-CI1-22

4

67

1000

1000

1010

110

0000001171

4967

1997-01-22

4

1000

1000

1010

110

000000

4968

1997-01-22

4

69

10W

1D0D

1010

110

OOQQQO;171

4geg

199=01-22

4

190

1000

1000

1000

101

0000002140

卿90

1997-01-23

上面为显示连续打印三张销售凭证,运行后如下图所示:

中(n的打印強覧;第doom薫,oooo3薫

l^ii-

行号

物料代玛

锄料嶽述

单价

单谊

金慈

备注

10

So^iv

5000

IA30.00

PC

0150.OKS

20

5v*iirXal

乩Q如

“瓯帕

P首

3Q

isI775r

2350业血

K

WCLOG

40

I-U

■MDI1sr/fn

4.她

M42.aa

FC

iaooo

焙金趣

32.B38,00

 

行号

物料代码

将料描述

数量

单价

单位

壷额

10

L-«F

€liwhlaHoe斗。

・aitBail:

120l/2J5¥

20.OM

6IQ.00

CAR

12?

4M.QQ

m000

总金站

1Z2Q0.QQ

业务员:

掾件员:

业务经理:

行号

悔料代码

物料描述

单价

单位

金飯

备注

W

孑01

3GOO

U3Q00

PC

翎加-閒

Z0

KJ2

$iiWXaD

4.000

issa.oo

PC

7552_(Ki

310

Tst.ra13

5LgO

1730.^

PC

afiso_ao

40

1-04

-SiliiqyEeIfHH

4.OChO

i87a.aa

7512-GO

.QOT

2B.604.00

销售组绘=

数据结构体的定义zwyvbap;TC0DESE11,此结构体在后面的程序中也要用到,是传递数据的接口。

定义如下图所示:

结枸^TVBAP迦话

筲晅描述1肖隼订单和印堀薛构I

国性组件I棗目劑肋J檢査盘币fSll鱼宝jg_

険回「&应两匣|冃鱼|■-.Hi

1/6

I

I

机••

教据类型

KS小教柱

YEM

r~|

1类型

*VBELJr

CHAR

10

D悄售础誚凭证号

POSUK

1类型

十FOSNR

NUHC

6

0销卑和分梢凭证的顶目是

1类型

▼也TMR

CHAR

18

物料娟羽

ARKTX

ii~|

1类型

*ARKTK

CHAR

40

0誚售订单项巨担丈本

KVMENQ

1类型

▼KMEim

QUAN

15

3以讷鱼单位表示的宰计订单埶蚩

METWR

n

1类型

▼FETffR

CURR

15

2凭证童币卄垂的净怕也

NETPK

1类型

-WETPR

CURR

11

2净伯

HEINS

1类型

■KLEINS

UNIT

3

D星血计里单位

SMARTFORMSF0界面设置

1、表格接口的数据,如下图所示:

_/导入t辱出卜農卜例外陋陌]團跑團匾I西

类型分駅

关联类型

缺省值i

USERSETTINGS

TYPE

TDBOOL

'X'

YKORG

TYPE

VKORG

VTWEG

TYPE

VTWEG

VKBUR

TYPE

VKBUR

WKGRP

TYPE

VKGRF

KUNNR

TYPE

KUNNR

MEI

TYPE

NAME1_CP

VEELH

TYPE

VBELN

AUDAT

TYPE

AUDAT

2、表格接口表的数据如下图所示:

 

夷格

2SD_FRINfl0bl

活动的

JS述

涓售打印格我

异入导出,表例外

呵画岡厮画瓦阙

类型倾

pTVBAK

LIKE

ZWYVBAP

3、全局定义中的数据定义如下图所示:

岡画画爾國園嗣

缺省值

GS.VBAK

LIKE

ZWYVEAF

TOTAL

TYPE

CHAR1O

PRICE

TYPE

CHARI0

SUM.PRICE

TYPE

CHAR10—

SU1ITOTAL

TYPE

BSEG-DMETR

S_PRICE

TYPE

BSEG-DMBTR

四、SMARTFOR页S口窗口的操作:

1页头显示内容。

下面的操作都只进行截图显示。

如下图所示:

▼◎页和窗口

*a学PAGE1新页面

•'d%WIWDOW1页头显示内容

▼®%TEMPLATE1公司窑称%TEXT1埜司名称%TEXT40fl印日期%TEXT2销售组织%TEXT3稍害组织字鞍%TEXT4分诸渠道%TEXT5甥肖渠道宇段%TEXT6销售办事处%TEXT7销售办事处字段%TEXT8供应商名称%TEXT9供应商名称宇段%TEXT10单据日期%TEXT11单据日期字段%TEXT12彳肖售单号%TEXT13梢售单号宇段

・0MAIN主窗口

►'Cj%WIND0W2页尾

-苗WTEXT5也ii«巧碗

•田%TEXT6帥■亦事老

・I方■if.TUjT-r£±・4<.ifchk占也

2、MAIN主窗口的设置:

▼O页和窗口

▼包%PAGE1新页面

*DKWIMDO四1页头显示内容卜霜%tewplatEi扯旨左琲

▼Q]MAIN主窗口

厂吐芒@r旦即3列表标题

*©^LCCPl'Sig环i

*®%TEMPLATE4统计区域

*H^TEMPLATES页尾

»^WIMD0W2页屋

打印表体的表头显示,如下图所示:

T拄TEMPLATES列表标题

表体循环显示:

妙%L00P1厮錘』

▼曲%TEP■云MEW刊丢手用

•鲁%CODE1Mg序行1

・必%TEXT22行号

・\2%TEXT23物料编码

・眩%TEXT24物料描述

•寄%TEXT25数重

・\3%TEXT26单侑

*席%TEXT27单位

・区%TEXT28金额

•%TEXT29备注

數据计算_苇件

r输出选项:

条件]

LOOP循环

垃内部表J

GTJ/HAK

I转至▼GSVBAK

行|

13

 

新程序行的设置:

—骰属性条件

输入蚩數

输出蚩埶

GS.VBAK-KWMEliG

TOTAL

Jb.

GS_VBAK-NETIR

w

PRICE

<►t►

4b4卜

 

一噸厲性幷:

喘人垂数

础寥舉

GS_VEAK-NETPR

SUM_FRICE

4

SUN_TOTAL

<卜

4卜

4・

 

紐晏数1

GSVBAE-NETFR

J

SPKICE

w

r

"1

_J

4>

4乍

’回

I►

一般属性

条件

GSVBAK-NETFR

total=gs_vbakkwen?

.

price=gE_vbak-netirr.

jum_price=(s_vbaknetpr.

sumtotal=subtotal+total.

10

s_price=s_prxce十price.

”曰前Iff口

'已^aaeiaf页面

*D%WINDDW1页头显示内昏

■曲%TEM=LATE1圧词名祢Q)阳川主前口

Pffi临TEIWFL4TE2列垂标蚩

▼◎^locpl就丽环1

-函%TEJiT23初梯騙

・0屯广匚eT;ll疊

-虽%TFVT55救里

文略出E衣丰元翳

统计区域的设置:

-QMfiffl主芮口

,園%.T6MR_fiTE2

*◎%UOOPL.tfijiT1

F囲%■旧血ATE1密+区威

・r?

鳴TtKT苟口ks»

-朗怡在和如.賊里圭段宙%TCXTg.鮭砸—

,朗粘阿T3M总淳轉宇段

*圈^temkatesSE

»9WINDOWS页u

li

bi^totalC3)iP

页尾的设置:

*H7cTEMPLATE5页尾

•团阪〒五方讯业劳员—*区%TEXT35业势员宁段*区WTEXT3自换作员*眩%TEXT39操作员字段*区%TEXT37业奔经理

*\2%TEXT3S业劳经理宇段

五、REPORT!

整代码清单,如下图所示(TCODESE38:

*&*

*&ReportZP_SD_006

*&

*&

*&

 

*&

*&

REPORTzp_sd_007.

INCLUDEzp_sd_007_varl

INCLUDEzp_sd_007_form

INCLUDEzp_sd_007_alv

START-OF-SELECTION

PERFORMget_data_alv

色含文件ZP_SD_007^VARL动

*&*

*&包含ZP_SD_007_VARL

*&*

TABLESvbak.

DATAformnameTYPEtdsfname,

fm_nameTYPErs38l_fnamcontrolTYPEssfctrlop,

errtabTYPEtsferror.

DATA

BEGINOFgt_vbak

OCCURS0.

"定义内表

INCLUDE

TYPEzwyvbap.

DATA

ENDOFgt_vbak.

DATA

BEGINOFgt_vbap

OCCURS0,

"定义内表

vbelnLIKEvbak-vbeln.

DATAENDOFgt_vbap.

DATAp_vbelnTYPEvbak-vbeln

*定义传递到FORM中的页头数据

DATA

vkorg

TYPE

vbak-vkorg,

"销售组织

vtweg

TYPE

vbak-vtweg,

"分销渠道

vkbur

TYPE

vbak-vkbur,

"销售办事处

vkgrp

TYPE

vbak-vkgrp,

"销售组

kunnr

TYPE

vbak-kunnr,

"供应商代码

namel

TYPE

knal-namel,

"供应商名称

vbeln

TYPE

vbak-vbeln,

"订单号码

audat

TYPE

vbak-audat.

"过账日期

*定义显示在

ALV界面上的内表

DATABEGIN

OFgt_vbak_alvOCCURS0,

vkorg

TYPE

vbak-vkorg,

"销售组织

vtweg

TYPE

vbak-vtweg,

"分销渠道

vkbur

TYPE

vbak-vkbur,

"销售办事处

vkgrp

TYPE

vbak-vkgrp,

"销售组

kunnr

TYPE

vbak-kunnr,

"供应商代码

namel

TYPE

knal-namel,

"供应商名称

SELECTION-SCREENBEGINOFBLOCK100WITHFRAMETITLEtext-001.*PARAMETERSS_vbelnTYPEvbak-vbelnOBLIGATORY.

"定义需要打印的凭

SELECT-OPTIONSs_vbelnFORvbak-vbelnDEFAULT'4970'TO'4990'证号码

SELECTION-SCREENENDOFBLOCK100.

包含文件舌动

*&*

*&包含ZP_SD_007_FORM

*$显示在界面上的数据

*&*

FORMget_data_alv

SELECT

vkorg

vtweg

vkbur

vkgrp

kunnrvbelnaudat

INTOCORRESPONDINGHELDS

OFTABLEgt_vbak_alv

FROMvbak

WHEREvbelnINs_vbeln

 

ENDFORM

"get_data_alv

 

*&

*

*&

Form

print_so

*&

*

*

text

设置打印的程序

*

*

FORMprint_so

CLEARgt_vbap[]

IN

SELECTvbelnINTOCORRESPONDIINGELDSOFTABLEgt_vbapFROMvbakWHEREvbeln

s_vbeIn.

*获取选中的数据,并把选中的数据传递至内表中。

APPENDgt_vbap.

ENDLOOP

formname='ZSD_PRINT_001'.

CALLFUNCTION'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname=formname"#########Form##importing

IMPORTING

fm_name=fm_name

EXCEPTIONS

no_form=1

no_founction_module=2

OTHERS=3.

IFsy-subrc<>0.

MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno

WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.

ENDIF

control

-no_dialog

='X'.

control

-preview

=X.

control

-no_open

=X.

control

-noclose

=X.

 

CALLFUNCTION'SSF_OPEN'

EXPORTING

*

ARCHIVE_PARAMETERS

=

*

USER_SETTINGS

='X'

*

MAIL_SENDER

=

*

MAIL_RECIPIENT

=

*

MAIL_APPL_OBJ

=

*

OUTPUT_OPTIONS

=

control_parameters

=control

*

IMPORTING

*

JOB_OUTPUT_OPTIONS

=

EXCEPTIONS

formatting_error

=1

internal_error

=2

senderror

3

user_canceled

OTHERS

=4

=5.

IFsy-subrc<>0.

errorhandling

MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno

WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.

EXIT.

ENDIF

LOOPATgt_vbap."对凭证号进行循环处理,即在程序中进行分页的设置

p_vbeln=gt_vbap-vbeln.

*获取打印的表头数据

SELECTSINGLE

 

kunnrvbelnaudat

INTO(vkorg,vtweg,vkbur,vkgrp,kunnr,vbeln,audat)

FROMvbak

WHEREvbeln=p_vbeln.

*获取打印的表体数据

CLEARgt_vbak[]."清空内表

SELECT

vbeln

posnrmatnrarktxkwmeng

INTOCORRESPONDINGHELDSOFTABLEgt_vbak

FROMvbap

WHEREvbeln=p_vbeln.

CALLFUNCTIONfm_name

EXPORTING

control_parameters

=control

vkorg

=vkorg"销售订单

vtweg

=vtweg"客户

vkbur

=vkbur"日期

vkgrp

=vkgrp"日期

kunnr

=kunnr

vbeln

=vbeln

audat

=audat

name1

=name1

TABLES

gt_vbak=gt_vbak"传递内表数据到SMARTFORMS

EXCEPTIONS

formatting_errorinternal_errorsend_error

user_canceled

OTHERS

=4

=5.

 

IFsy-subrc<>0.

errorhandling

MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno

WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.

ENDIF

ENDLOOP

CALLFUNCTION'SSF_CLOSE'

IMPORTING

JOB_OUTPUT_INFO

EXCEPTIONS

formatting_errorinternal_errorsend_error

=4.

OTHERS

IFsy-subrc<>0.

errorhandling

MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgno

WITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.

ENDIF

*analyseinternalerrortableofSmartForms

CALLFUNCTION'SSF_READ_ERRORS'

IMPORTING

errortab=errtab.

IFNOTerrtabISINITIAL.

addyourhandling

ENDIF.

"print_so

ENDFORM

包含文件

[ZPSD007ALV

*&*

*&包含ZP_SD_007_ALV

*&*

TYPE-POOLSslis.

*ALV相关内表和

DATAit_fieldcatTYPEslis_t_fieldcat_alv,

wa_layoutTYPEslis_layout_alv,

wa_status

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

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1