图挂了.实际你查询到了一些记录, 然后需要用水晶报表输出?这个水晶报表真心不熟. 一般简单的输出我直接用VB的printer对象.复杂点的就用EXCEL模版解决. 感觉比水晶报表更简单.

解决方案 »

  1.   


    非常感谢,有没有  EXCEL模版 使用的相关资料或例程源码,谢谢。
      

  2.   


    非常感谢,有没有  EXCEL模版 使用的相关资料或例程源码,谢谢。
    就是用EXCEL做一个固定格式的文件呀, 抬头,框格,划线,什么都设定好保存起来.
    要打印的时候就用VB打开这个文件,把数字一个萝卜一个坑填进去,再调用EXCEL打印
      

  3.   

    水晶报表啊,10年前用过,现在都隔了好久没用了,那时候用的还是8.0的。用水晶报表之前得先设计报表,选择数据库啊,表格啊什么的,当然直接绑定到SQL语句也行,这里绑定的目的只是为了报表设计时候用,然后就是画线、拖字段调整位置什么的,最终生成出一个rpt文件。用的时候就简单了,用他自带的crviewer控件载入这个rpt文件再重新指定数据源就完事了,当然重新指定数据源的时候 新数据源里面的字段列表和设计阶段的字段列表必须一一对应,不然就该出问题了。以下是当年某软件中的一段代码,或许你用得上。Dim myReport As CRAXDRT.Report
    Dim Report_App As CRAXDRT.ApplicationSet Report_App = New CRAXDRT.Application
    Set myReport = Report_App.OpenReport("d:\123.rpt")Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Open "select * from 表", dbConnection, adOpenKeyset, adLockReadOnly
    myReport.Database.Tables(1).SetDataSource rs
    Set rs = NothingWith CRViewer1
            .ReportSource = myReport
            
            .EnableGroupTree = False
            .EnableAnimationCtrl = False
            .EnableDrillDown = False
            .EnableHelpButton = False
            .EnablePopupMenu = False
            .EnableSearchControl = False
            .EnableSearchExpertButton = False
            .EnableSelectExpertButton = False
            .EnableStopButton = False        .ViewReport
    End With
      

  4.   

    额,这里还有一段是根据水晶报表里面FormulaFields字段名字替换他的内容的,一般用在表头啊、页眉页脚啊之类的不是从数据库里来的数据。Private Sub EditField(strSource As String, strReplace As String)
        Dim i As Long
        For i = 1 To myReport.FormulaFields.Count
            If myReport.FormulaFields(i).FormulaFieldName = strSource Then
                myReport.FormulaFields(i).Text = "'" & strReplace & "'"
                Exit Sub
            End If
        Next
    End Sub