如何把mshflexgrid控件的数据方便地用报表控件预览打印,mshflexgrid中的数据是
很多个表经过复杂的比较,查询才得到的,
什么报表控件比较好,data report ?水晶报表?
水晶报表很大,而且我不太熟悉,我怕系统在实际使用中出现授权等问题,或和vb6结合不好,各位高手使用中感觉如何?我是否要花点时间仔细看一下水晶报表?
是否它的功能要大很多?

解决方案 »

  1.   

    是否可以这样做
    在数据库中临时建立一张表,把mshflexgrid中的数据反存到临时表中,然后再把临时表中的数据直接用报表显示出来,这样很麻烦,大家有何意见
      

  2.   

    我是用PrintGrid打印预览控件
    http://nj.onlinedown.net/soft/7089.htm
      

  3.   

    不用,也不麻烦,就用datareport,在数据环境中建立command时用sql查询,一般都能搞定
      

  4.   

    比较用一下下面的代码,应该会有所帮助,表名自己定吧
    Private Sub CmdPrint_Click()
    Dim str_mdb As String
    CRptAcc.ReportFileName = App.Path & "\report\jzrbb.rpt"
    str_mdb = "Driver={Microsoft Access Driver (*.mdb)};Uid=;Pwd=;Dbq= " & App.Path & "\report\report.mdb"
    PUBmdb.Open str_mdbPUBmdb.Execute "delete * from tmpprint"
    Dim Y1 As Integer
    StrSql = "select * from tmpprint"
    PUByiliaoRS.Open StrSql, PUBmdb, adOpenKeyset, adLockPessimisticMSG_RBB.Row = 0
    MSG_RBB.Col = 0
    Do While (Trim(MSG_RBB.Text) <> "")
        PUByiliaoRS.AddNew
        For Y1 = 0 To MSG_RBB.Cols - 2
            MSG_RBB.Col = Y1
            PUByiliaoRS.Fields(Y1) = Trim(MSG_RBB.Text)
        Next Y1
        PUByiliaoRS.Update
        If MSG_RBB.Row < MSG_RBB.Rows - 1 Then
            MSG_RBB.Row = MSG_RBB.Row + 1
            MSG_RBB.Col = 0
        Else
            Exit Do
        End If
    Loop
      
      
    '指定报表模板的数据来源
    CRptAcc.DataFiles(0) = App.Path & "\report\report.mdb"
    CRptAcc.Formulas(0) = "StrDate  = '" & Left(Trim(StrBeging), 10) & "∽" & Left(Trim(StrEnd), 10) & " '"Dim ianswer As Stringianswer = MsgBox("确认打印!", vbQuestion + vbYesNo, "系统提示")
    If ianswer = vbYes Then
    PUBmdb.Close
    Set PUByiliaoRS = Nothing
    On Error GoTo Prnerr:
    CRptAcc.Action = 1
    Exit Sub
    Prnerr:
    MsgBox "打印机错误"
    Else
    Set PUByiliaoRS = Nothing
    PUBmdb.Close
    End IfEnd Sub