收录日期:2019/06/20 14:02:02 时间:2016/06/01 15:44:11 标签:数据库(包含打印,安装,报表)
请问哪里有详细的VB操作水晶报表方面的资料,包括如何设计报表及调用语句
水晶报报设计和办公软件应用一样,在调用可以用OCX或用DLL
VB调用并显示、汇出水晶报表代码示例:
Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim CRpt As New Rpt1    'Rpt1是dsr格式的水晶报表文件
Dim strSql As String

Private Sub cmdExport_Click()
'汇出当前显示的水晶报表到Excel文件,文件名为"testxls.xls"
    CRpt.ExportOptions.FormatType = crEFTExcel80
    CRpt.ExportOptions.DestinationType = crEDTDiskFile
    CRpt.ExportOptions.DiskFileName = App.Path & "\testxls.xls"
    CRpt.ExportOptions.ExcelExportAllPages = True
    CRpt.ExportOptions.ExcelPageBreaks = True
    CRpt.Export False
    MsgBox "Export to file successfully."
End Sub

Private Sub Form_Load()
'动态赋给水晶报表记录源,并显示报表内容
'CRV为水晶报表显示控件
    strSql = "Provider=sqloledb.1;data source=bgserver;user id=sa;initial catalog=northwind"
    Con.Open strSql
    strSql = "select top 100 * from [orders qry] order by orderid"
    Rst.Open strSql, Con, adOpenStatic, adLockReadOnly, adCmdText
    CRpt.Database.SetDataSource Rst
    CRpt.PaperSize = crPaperA4
    CRpt.PaperOrientation = crPortrait
    CRV.ReportSource = CRpt
    CRV.ViewReport
End Sub
'上例是调用集成VB开发环境里的水晶报表,此例直接调用水晶报表的rpt文件
Dim crApp As New CRAXDRT.Application
Dim crRpt As New CRAXDRT.Report
Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim strSql As String

Private Sub Form_Load()
    strSql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Crystal Decisions\Crystal Reports 9\Samples\chs\Databases\xtreme.mdb;Persist Security Info=False"
    Con.Open strSql
    strSql = "SELECT top 5 客户.*, 订单.* FROM 客户 INNER JOIN 订单 ON 客户.[客户 ID] = 订单.[客户 ID] order by 客户.[客户 ID], 订单.[订单 ID]"
    Rst.Open strSql, Con, adOpenStatic, adLockReadOnly, adCmdText
    Set crRpt = crApp.OpenReport(App.Path & "\order.rpt")
    crRpt.DiscardSavedData
    crRpt.Database.SetDataSource Rst, 3, 1
    crRpt.Database.SetDataSource Rst, 3, 2
    crRpt.EnableParameterPrompting = False
    
    CRV.ReportSource = crRpt
    CRV.DisplayBackgroundEdge = False
    CRV.DisplayGroupTree = False
    CRV.Refresh
    CRV.ViewReport
End Sub
楼主,光给你点代码怕是不够用吧,给你两个专家的Blog:

haibodotnet的专栏
http://blog.csdn.net/haibodotnet/

阿泰的软件实用主义
http://blog.csdn.net/babyt/category/39074.aspx
对了你用这个是做的项目,如果可以的话可以借看看吧
谢谢大家的热心帮助!

leayh(云卷云舒) 
请问在你的程序里,如何加入Rpt1
leayh(云卷云舒)
刚才那个问题解决了,不过在运行到“CRpt.Database.SetDataSource Rst”的时候提示 实时错误'9',下标溢出,请问是什么引起的,数据库已经连上了
搂主,“刚才那个问题解决了”怎么解决的 能告诉我吗  谢谢
搂主,“刚才那个问题解决了”怎么解决的 能告诉我吗  谢谢
点击“工程”——>“添加Crystal Reports 9” ,然后把名字改为Rpt1就可以了

好东东大家一起分享
工程引用-->添加相应类库。
既然问题解决了, 那就请结贴吧。
请问是添加哪个类库啊
自己顶一下
///请问是添加哪个类库啊

有两个类库,要看你是什么样的需求
友情UP
'水晶报表连接串 '在系统初始化时进行
    strRptCn = "DSN = " & strODBC & ";UID =" & strUid _
             & ";Pwd=" & strPWD & ";DSQ = " & strODBC & ""

    '设计好的水晶报表文件所在的路径 '在系统初始化时进行
    strRptPath = App.Path & "\Reprots"

1、在项目中引用水晶报表库:工程->部件->“...”
2、在窗体上添加水晶报表控件:名称为CryRpt。
3、在你的打印代码中,如下调用CryRpt控件:

'其它代码
'初始化打印数据的代码
'其它代码

        With CryRpt
            .Connect = strRptCn '设置水晶报表连接数据库的连接串
            .WindowBorderStyle = crptFixedDouble '水晶报表窗口样式
            .WindowState = crptMaximized '水晶报表窗口最大化
            .WindowControlBox = True '显示水晶报表自身的工具栏
            .ReportFileName = strRptPath & "\rptDayCount.rpt" '要调用的水晶报表文件
            
    '打印时,水晶报表可以说有自己的“窗口”,
    '但是我们一般给它一个单独的窗口,以便于在程序中控制其关闭。
            .WindowParentHandle = frmPrintTmp.hwnd '设置水晶报表窗口的父窗口(句柄)

    '打印到那里?
            'ToWindow表示打印预揽
    'ToPrint表示直接输出到打印机,如果这样的话,就无须设置其父窗口的句柄了;
    '但是一般情况我们都是给客户预揽一下。
            .Destination = crptToWindow
            
            .Action = 1 '激活水晶报表控件(一定要有这一句)
        End With

'其它代码
up
up

如何在数据库中存储整个文件? 数据库查询的问题,解决送100分,或是送一个国际域名,或是100M空间! 不知道现在的C#反编译器还有用没? 请问哪位高手有车牌识别的关键算法的源码? 求软件开发文档模版 智能客户端问题 这段话看了半天还是有点乱,请大家指点指点... 求助!!!过软件设计师我应该看哪些书?? 如何在控件中间绘制文本 畅通无阻破解 求贪吃蛇的源代码(加注释的) 急救!!!!!!!!!!! 如何用c实现对输入字符回显‘*’的功能? 新手问题 大家帮帮忙啊,怎么在C#中用SEESION?? 我的机器配置跑JBX够不够?? sbc 生日快乐! 大家好,请教1下,如何安装.pas为后缀的组件,最近我得到一些组件,是以.pas为后缀的,请问如何安装呀 return msg.wParam 和 return 0 的区别 热烈庆祝: 中国 4:0 马来西亚 关于模板的问题. 有没有c#.net单独安装包,不想占用那么多地方 大家好,请教1下,如何安装.pas为后缀的组件,最近我得到一些组件,是以.pas为后缀的,请问如何安装呀,我的QQ:148085126 Email:asdfg69 收录网址:有网站的朋友快来看看 Session和Cookie在asp中有什么区别》》》 关于WSAEnumProtocols的问题 求助:有关实时采集数据的数据存贮方式问题 收录网址:有网站的朋友快来看看 在CFormView视图下,如何在启动时以最大化形式显示。 tabctrl控件 右上角的两个button,点击时会重画标签,请问是响应哪个消息?