如何在报表中使用自定义尺寸的纸张
来源:优易学  2011-12-9 17:26:23   【优易学:中国教育考试门户网】   资料下载   IT书店

  将下列代码粘贴到一个新模块中,并调用CheckCustomPage过程检查指定报表的自定义纸张。

  Typestr_DEVMODE

  RGBAsString*94

  EndType

  Typetype_DEVMODE

  strDeviceNameAsString*16

  intSpecVersionAsInteger

  intDriverVersionAsInteger

  intSizeAsInteger

  intDriverExtraAsInteger

  lngFieldsAsLong

  intOrientationAsInteger

  intPaperSizeAsInteger

  intPaperLengthAsInteger

  intPaperWidthAsInteger

  intScaleAsInteger

  intCopiesAsInteger

  intDefaultSourceAsInteger

  intPrintQualityAsInteger

  intColorAsInteger

  intDuplexAsInteger

  intResolutionAsInteger

  intTTOptionAsInteger

  intCollateAsInteger

  strFormNameAsString*16

  lngPadAsLong

  lngBitsAsLong

  lngPWAsLong

  lngPHAsLong

  lngDFIAsLong

  lngDFrAsLong

  EndType

  PublicSubCheckCustomPage(ByValrptNameAsString)

  '用途:检查报表的自定义纸张

  '调用方法:CallCheckCustomPage(rptName)

  '参数说明:rptName:为检查的报表名称

  '调用举例:设有名为"MyReport"的报表,

  'CallCheckCustomPage("MyReport")

  '当该报表使用的是自定义纸张时,则显示自定义纸张的大小,

  '并询问是否更改纸张的大小并进行设置;

  '当该报表使用的是标准纸张时,则询问是否使用自定义纸张,

  '如果选择“是”,则要求输入纸张的大小并进行设置。

  DimDevStringAsstr_DEVMODE

  DimDMAstype_DEVMODE

  DimstrDevModeExtraAsString

  DimrptAsReport

  DimintResponseAsInteger

  '在设计视图下打开报表

  DoCmd.OpenReportrptName,acDesign

  Setrpt=Reports(rptName)

  IfNotIsNull(rpt.PrtDevMode)Then

  strDevModeExtra=rpt.PrtDevMode

  '获取当前的DEVMODE结构

  DevString.RGB=strDevModeExtra

  LSetDM=DevString

  IfDM.intPaperSize=256Then

  '显示用户自定义纸张的尺寸

  intResponse=MsgBox("当前的自定义纸张为(mm):"&_

  DM.intPaperWidth/10&"(宽)X"&_

  DM.intPaperLength/10&"(长)。你想改变吗?",_

  vbYesNo+vbQuestion)

  Else

  '非自定义纸张

  intResponse=MsgBox("报表没有使用自定义纸张。"&_

  "你想使用自定义纸张吗?",vbYesNo+vbQuestion)

  EndIf

  IfintResponse=6Then

  '用户要改变纸张设置,初始化DM的各个域

  DM.lngFields=DM.lngFieldsOrDM.intPaperSizeOrDM.intPaperLength_

  OrDM.intPaperWidth

  '设置为自定义纸张

  DM.intPaperSize=256

  '提示输入长度和宽度

  DM.intPaperLength=InputBox("请输入纸张的长度(mm):")*10

  DM.intPaperWidth=InputBox("请输入纸张的宽度(mm):")*10

  '更新属性值

  LSetDevString=DM

  Mid(strDevModeExtra,1,94)=DevString.RGB

  rpt.PrtDevMode=strDevModeExtra

  EndIf

  EndIf

  '关闭报表并保存

  DoCmd.CloseacReport,rptName,acSaveYes

  '预览报表

  DoCmd.OpenReportrptName,acViewPreview

  EndSub

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训