'当该报表使用的是自定义纸张时,则显示自定义纸张的大小,
8 G3 m: }1 l% R4 ~4 T7 p '并询问是否更改纸张的大小并进行设置;
% h( ^" Q/ {+ `# i+ `/ ` '当该报表使用的是标准纸张时,则询问是否使用自定义纸张,
* V$ e$ i+ ~( n7 U( n# V2 U7 L '如果选择“是”,则要求输入纸张的大小并进行设置。
9 ]/ A* a0 d) T5 i DimDevStringAsstr_DEVMODE8 }; ~ t, e: ]! `" o6 ^+ d
DimDMAstype_DEVMODE9 O* Q3 N: \9 L
DimstrDevModeExtraAsString
2 g+ P- [. o1 \' a DimrptAsReport X" X, A9 p7 R, _
DimintResponseAsInteger
5 H8 z# B/ `* j8 k/ @4 S '在设计视图下打开报表
! C( ~2 r2 k" L DoCmd.OpenReportrptName,acDesign
0 t9 W- t* Y8 X) U4 [8 D Setrpt=Reports(rptName)
! f5 I6 u' h7 l0 d- A6 J; P4 r IfNotIsNull(rpt.PrtDevMode)Then: @; r. x1 ?0 r' v! T2 A H" i$ H
strDevModeExtra=rpt.PrtDevMode& b3 Y. t0 e8 e+ R- y1 Y% z3 v8 A
'获取当前的DEVMODE结构
4 U5 m9 p$ r( C2 M1 |/ d& |* n! ~ DevString.RGB=strDevModeExtra( R3 p9 \. X, w( P l
LSetDM=DevString
9 S' c' }3 \; z, f7 R IfDM.intPaperSize=256Then
; I9 c: X0 c3 e h( Z '显示用户自定义纸张的尺寸
5 ^$ q9 ?( m, S intResponse=MsgBox("当前的自定义纸张为(mm):"&_
- P* s0 l4 l6 `: b. b DM.intPaperWidth/10&"(宽)X"&_' A) L1 t( T3 {) U
DM.intPaperLength/10&"(长)。你想改变吗?",_2 o$ E" l8 G% n# C
vbYesNo+vbQuestion)
8 G2 Y/ x5 P) b* @ B9 u Else
. C$ ~3 I/ d# `$ j k, A '非自定义纸张
; k& X6 P% ^. p intResponse=MsgBox("报表没有使用自定义纸张。"&_0 |1 L7 p0 G5 q3 K5 `2 X
"你想使用自定义纸张吗?",vbYesNo+vbQuestion)
% C* Y' _5 }, V EndIf: j/ l1 W2 ?, q4 H
IfintResponse=6Then& D6 k$ {, a* F1 G# G9 ?
'用户要改变纸张设置,初始化DM的各个域
) i# J; I- h' @" U. H" J DM.lngFields=DM.lngFieldsOrDM.intPaperSizeOrDM.intPaperLength_
6 D# ^% Z3 h0 C( Z, d3 e2 } OrDM.intPaperWidth [+ b: L& k6 y9 b5 G# A
'设置为自定义纸张
0 J8 a: ]! Q- @3 m# t1 l DM.intPaperSize=256
" A9 e5 B0 _0 k+ L* s' l+ B '提示输入长度和宽度
) [/ n$ R* e1 ~2 q DM.intPaperLength=InputBox("请输入纸张的长度(mm):")*10; e$ G6 z4 c$ Q) m, j5 Q d+ Z
DM.intPaperWidth=InputBox("请输入纸张的宽度(mm):")*10
6 P) X j( q! K$ p/ g '更新属性值
2 ~7 V1 R- Y5 O9 ] LSetDevString=DM
; Z6 E8 `+ I1 u9 W Mid(strDevModeExtra,1,94)=DevString.RGB6 ^( G% Q1 w1 [1 k
rpt.PrtDevMode=strDevModeExtra
' H& {. ]" ~- s6 Z# n0 ~ EndIf2 l/ O! q9 A. n+ F
EndIf& q j5 S' J: X$ |, h. b+ b; }
'关闭报表并保存% U& Z9 o$ \ }0 r. C2 V
DoCmd.CloseacReport,rptName,acSaveYes7 U4 R! `# z, O! c- e8 L
'预览报表; Z4 g9 y2 [4 g9 I+ d6 K3 q
DoCmd.OpenReportrptName,acViewPreview9 i% i$ Y# }7 W: u. }0 A; M
EndSub |