Office中国论坛/Access中国论坛

标题: [求助]报表预览问题 [打印本页]

作者: sgrshh29    时间: 2006-5-25 02:36
标题: [求助]报表预览问题
[求助]报表预览问题

这个问题搞了一段时间,还是没有解决.只好有劳各位了.

报表比方讲共有9页,在预览打开的时候,要求直接转到指定的页比如第7页,请问如何实现?gotopage报表中不支持.
作者: nxjswt    时间: 2006-5-25 02:44
转帖网友的

报表打印如何用代码设定页面
Dim qdf As QueryDef
   Dim ctlLabel As Control, ctlText As Control
   Dim intDataX As Integer, intDataY As Integer
   Dim intLabelX As Integer, intLabelY As Integer
   Dim ncnt As Integer
   Dim i As Integer
   Dim ttlwidth As Double
   Dim rptWaste As Report
   Me.Painting = False
   On Error Resume Next
   Dim Dbs As Database, ctr As Container, doc As Document
   Set Dbs = CurrentDb
   ncnt = 0
       Set rptWaste = CreateReport
       Dbs.QueryDefs.Delete "www"
    Set qdf = Dbs.CreateQueryDef("www", sql)
   Dbs.QueryDefs.refresh
   ttlwidth = 30
   rptWaste.Section(acPageHeader).Height = 800
   For i = 1 To 30 - 1
           If Not (IsNull(adata(i)) Or Trim(adata(i)) = "") Then
              Set ctlText = CreateReportControl(rptWaste.name, acTextBox, , "", "", intDataX, intDataY)
              Set ctlLabel = CreateReportControl(rptWaste.name, acLabel, acPageHeader, , "NewLabel", intLabelX, intLabelY)
              ctlLabel.Caption = adata(i)
              
              ctlText.Width = 1000
              If adata(i) = "card_no" Then
                   ctlText.Width = 1200
                   ctlLabel.Caption = "卡号"
              End If
              If adata(i) = "date" Then
                    ctlText.Width = 1300
                   ctlLabel.Caption = "日期"
              End If
              If adata(i) = "op_name" Then
                   ctlText.Width = 1300
                   ctlLabel.Caption = "工序号"
              End If
              If adata(i) = "class_name" Then
                   ctlText.Width = 1300
                   ctlLabel.Caption = "产品类型"
              End If
           If adata(i) = "dept_code" Then
                   ctlText.Width = 1000
                   ctlLabel.Caption = "车间代码"
                    
              End If
              If adata(i) = "totalwaste_qty" Then
                   ctlText.Width = 1000
                   ctlLabel.Caption = "废品总重"
              End If
     '  End If
       ctlLabel.Width = ctlText.Width
       ctlText.ControlSource = adata(i)
       ctlText.BorderStyle = 1
       ctlLabel.BorderStyle = 1
       ctlText.Left = ttlwidth
       ctlLabel.Left = ttlwidth
       ctlLabel.Top = 800 - ctlLabel.Height
       ctlLabel.FontBold = True
       ttlwidth = ttlwidth + ctlText.Width
       End If
   Next i
   rptWaste.RecordSource = "www"
   rptWaste.Section(acDetail).Height = ctlText.Height
   Set ctlLabel = CreateReportControl(rptWaste.name, acLabel, acPageHeader, , "NewLabel", intLabelX, intLabelY)
   ctlLabel.Top = 0
   ctlLabel.Caption = Trim(txtDepartment.value) & "废品统计报表"
   ctlLabel.TextAlign = 2
   ctlLabel.FontSize = 16
   ctlLabel.FontBold = True
   ctlLabel.Width = 4000
   ctlLabel.Height = 500
   ctlLabel.Left = (rptWaste.Width - ctlLabel.Width) / 2
   Const DM_PORTRAIT = 1
   Const DM_LANDSCAPE = 2
   Dim DevString As str_DEVMODE
   Dim DM As type_DEVMODE
   Dim strDevModeExtra As String
   If Not IsNull(rptWaste.PrtDevMode) Then
       strDevModeExtra = rptWaste.PrtDevMode
       DevString.RGB = strDevModeExtra
       LSet DM = DevString
       DM.lngFields = DM.lngFields Or DM.intOrientation    ' Initialize fields.
       'If DM.intOrientation = DM_PORTRAIT Then
           DM.intOrientation = DM_LANDSCAPE
       'Else
       '    DM.intOrientation = DM_PORTRAIT
       'End If
       LSet DevString = DM                     ' Update property.
       Mid(strDevModeExtra, 1, 94) = DevString.RGB
       rptWaste.PrtDevMode = strDevModeExtra
   End If
   DoCmd.DeleteObject acReport, "rptwaste_tmp"
   DoCmd.Save , "rptwaste_tmp"
   DoCmd.Close acReport, "rptwaste_tmp", acSaveNo
'  For i = 0 To FORMs.Count - 1
'
作者: sgrshh29    时间: 2006-5-25 02:55
谢谢关注.这么长的代码,都看晕了,也没有看到与我所提问题有关的语句.
作者: sgrshh29    时间: 2006-5-26 13:37
还没有解决.
作者: sgrshh29    时间: 2006-5-27 01:22
标题: ???
以下是引用sgrshh29在2006-5-26 5:37:00的发言:
还没有解决.

是不是办不到?
作者: wu8313    时间: 2006-5-27 02:11
你的这个问题,我认为是如何使用 report对象的page属性 为您服务。

可是,我曾经在这个 page属性 上面感觉到很郁闷的,没有完美解决。



如果感兴趣的话,请看看我这个地址上面,我在7楼的更贴 和 上传的附件。

http://www.office-cn.net/forum.php?mod=viewthread&tid=39114&extra=&page=1#39114

[此贴子已经被作者于2006-5-26 18:17:58编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3