水晶报表开发
更新时间:2023-08-24 08:28:01 阅读量: 教育文库 文档下载
水晶报表开发源码,实例
1. 新建一个数据集(DataSet1.xsd),这个数据集就是水晶报表的数据源。
2. 设计报表样式,设置数据源时选择你新建的数据集
3. 在程序中编写代码,加载数据
DataSet1 dataset = new DataSet1();
SqlDataAdapter ap = new SqlDataAdapter();
ap.Fill(DataSet1,"这里的表名必须和新建数据集中的表名一样");
4. CrystalReport CrystalReport1 = new CrystalReport();
CrystalReport1.setdatasource(ds);
就是新建一个CrystalReport文件。CrystalReport CrystalReport1 = new CrystalReport();
你所实力化的类型就是刚才新建的CrystalReport文件,
你还要加CrystalReportViewer1.ReportSource = CrystalReport1;
CrystalReportViewer1在工具栏中有,它是承载报表文件的控件
5.
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Web
Imports CrystalDecisions.Shared
Public Class Form1
Public tempdb As String
Public temp As String
Dim strqx2(10000)
Public constr As String = "uid=sa;pwd=sa2000;database=smallsys;server=oa"
Public mycon As New System.Data.SqlClient.SqlConnection(constr)
Dim x As Integer
Dim xx As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If mycon.State = ConnectionState.Closed Then
Try
mycon.Open()
Catch ex As Exception
MsgBox("数据库连接失败!", MsgBoxStyle.Exclamation, "提示")
End Try
End If
Dim mcom As New SqlCommand("select remark from RPTdbinfo", mycon)
Dim myr As SqlDataReader = mcom.ExecuteReader
While myr.Read
End While
myr.Close()
Dim rpt As New CachedCrystalReport1
CrystalReportViewer1.ReportSource = rpt
水晶报表开发源码,实例
TreeView1.Enabled = False
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
temp = TreeView1.SelectedNode.Text
Try
okey()
Catch ex As Exception
End Try
End Sub
Sub okey()
If temp <> "" Then
Dim rdPublishers As New ReportDocument()
rdPublishers.Load(tmppath(temp))
Dim strUserID As String = ""
Dim strPassword As String = ""
If Trim(tmpkind(CStr(temp))) = "ERP" Then
strUserID = "sa"
strPassword = "******"
rdPublishers.SetDatabaseLogon(strUserID, strPassword)
End If
If Trim(tmpkind(temp)) = "MES" Then
strUserID = "sa"
strPassword = "******"
rdPublishers.SetDatabaseLogon(strUserID, strPassword)
End If
If Trim(tmpkind(temp)) = "OA" Then
strUserID = "sa"
strPassword = "******"
rdPublishers.SetDatabaseLogon(strUserID, strPassword)
End If
CrystalReportViewer1.ReportSource = rdPublishers
End If
End Sub
Function tmppath(ByVal temp As String) As String
Dim strpath
Dim dbase As New Data.DataSet
Dim dc As SqlDataAdapter
dc = New SqlDataAdapter("select * from RPTpath where RPTname='" & temp & "'", mycon) dc.Fill(dbase, "tbid")
strpath = dbase.Tables("tbid").Rows(0)("RPTpath")‘???
Return strpath
End Function
水晶报表开发源码,实例
Function tmpkind(ByVal temp2 As String) As String
Dim strkind
Dim dbase As New Data.DataSet
Dim dc As SqlDataAdapter
dc = New SqlDataAdapter("select * from RPTpath where RPTname='" & temp2 & "'", mycon) dc.Fill(dbase, "tbid")
strkind = dbase.Tables("tbid").Rows(0)("RPTkind")
Return strkind
End Function
Private Sub 首次运行必读RToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 首次运行必读RToolStripMenuItem.Click
infor.Show()
End Sub
Private Sub 关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem.Click
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strkind As String
Dim strqx As String
Dim dbase As New Data.DataSet
Dim dc As SqlDataAdapter
dc = New SqlDataAdapter("select * from users where uid='" & Trim(TextBox1.Text) & "'", mycon)
dc.Fill(dbase, "tbid")
strkind = Trim(dbase.Tables("tbid").Rows(0)("pass"))
strqx = Trim(dbase.Tables("tbid").Rows(0)("uqx"))
If strkind = Trim(TextBox2.Text) Then
TreeView1.Enabled = True
xx = 0
For x = 1 To 10000 Step 5
If Mid(strqx, x, 4) <> "" Then
strqx2(xx) = Mid(strqx, x, 4)
xx = xx + 1
Else
Exit For
End If
Next
Else
MsgBox("Password is wrong!")
End If
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
TreeView1.Nodes.Clear()
水晶报表开发源码,实例
Dim deptmp(100)
If mycon.State = ConnectionState.Closed Then mycon.Open()
Dim mcomm As New SqlCommand("select distinct dep from RPTpath", mycon)
Dim myrm As SqlDataReader = mcomm.ExecuteReader
Dim k As Integer = 0
While myrm.Read
deptmp(k) = Trim(myrm(0))
k = k + 1
End While
myrm.Close()
Dim h As Integer = 0
Dim y As Integer = 0
For h = 0 To k - 1 '部门数量
TreeView1.Nodes.Add(Trim(deptmp(h)))
' For y = 0 To y = xx - 1 '报表权限数量
dc=New SqlDataAdapter("select * from RPTpath where dep='"&Trim(deptmp(h))&"' ", mycon)
dc.Fill(dbase, "tbid1")
If (dbase.Tables("tbid1").Rows.Count > 0) Then
Dim i As Integer
For i = 0 To dbase.Tables("tbid1").Rows.Count - 1
For y = 0 To xx - 1
If Trim(dbase.Tables("tbid1").Rows(i)("rptid")) = strqx2(y) Then TreeView1.Nodes(h).Nodes.Add(Trim(dbase.Tables("tbid1").Rows(i)("rptname"))) End If
Next
Next
End If
dbase.Clear()
Next
MenuStrip1.TabIndex = 0
TreeView1.TabIndex = 9
End Sub End Class
'*****************************************************************
'*crystal report 的使用示例
'*适用版本:9.0
'*情况:此为在水晶报表软件中制作报表(rpt文件)的调用方式
'*菜单->工程->引用->选择:
'*1、Crystal Reports 9 ActiveX Desioner Desion and Runtime Library
'*2、Crystal Reports 9 activeX Desioner Run Time Library
水晶报表开发源码,实例
'*好多朋友有这个问题:报表显示后数据没有刷新,解决方法如下:
'*1、在报表的设计界面,菜单“文件”--“选项”-“建立报表”选项卡--把“将数据与报表一起保存”前的勾去掉即可
'*2、调用报表对象的DiscardSavedData方法
'*****************************************************************
Option Explicit
Dim Report As New CrystalReport1
Dim wjfilesys As FileSystemObject 'FSO 对象,用于文件操作
Dim WithEvents CrSecRH As Section '报表显示区对象
Dim capp As New CRAXDDRT.Application '报表集合对象
Dim carp As New CRAXDRT.Report '报表集合中的报表对象
Dim carsubp As New CRAXDRT.Report '
Dim Pic2 As OLEObject '
Dim mytxt As CRAXDRT.TextObject '
Private Sub Combo1_Change() '
CRViewer91.Zoom (CInt(Combo1.Text))
End Sub
Private Sub Command1_Click() '
CRViewer91.ShowFirstPage
End Sub
Private Sub Command10_Click() '
CRViewer91.PrintReport
End Sub
Private Sub Command11_Click()
CRViewer91.showclosebutton
End Sub
Private Sub Command2_Click() '
CRViewer91.Refresh
End Sub
Private Sub Command3_Click() '
CRViewer91.ShowPreviousPage
End Sub
Private Sub Command4_Click() '
CRViewer91.ShowNextPage
End Sub
Private Sub Command5_Click() '
CRViewer91.ShowLastPage
End Sub 报表集合对象中的子报表对象 报表对象中的Ole对象 报表对象中的Textbox对象 放大(缩小)比例 显示第一页 打印报表 刷新报表 显示上一页 显示下一页 显示最后一页
水晶报表开发源码,实例
Private Sub Command6_Click() '在报表内容内搜索
If (txtSearch.Text <> "") Then
CRViewer91.SearchForText (txtSearch.Text)
End If
txtSearch.Text = ""
End Sub
Private Sub Command7_Click() '导入出PDF
Dim myExportFile As String
myExportFile = App.Path + "\temp.pdf"
If wjfilesys.FileExists(myExportFile) Then
wjfilesys.DeleteFile (myExportFile)
End If
Report.ExportOptions.DiskFileName = myExportFile
Report.ExportOptions.FormatType = crEFTPortableDocFormat
Report.ExportOptions.DestinationType = crEDTDiskFile
Report.ExportOptions.PDFExportAllPages = True
Report.Export (False)
End Sub
Private Sub Command8_Click() '导出到Excel
Dim myExportFile As String
myExportFile = App.Path + "\temp.xls"
If wjfilesys.FileExists(myExportFile) Then
wjfilesys.DeleteFile (myExportFile)
End If
Report.ExportOptions.DiskFileName = myExportFile
Report.ExportOptions.FormatType = crEFTExcel97
Report.ExportOptions.DestinationType = crEDTDiskFile
Report.ExportOptions.PDFExportAllPages = True
Report.Export (False)
End Sub
Private Sub Command9_Click() '导出到WORD
Dim myExportFile As String
myExportFile = App.Path + "\temp.doc"
If wjfilesys.FileExists(myExportFile) Then
wjfilesys.DeleteFile (myExportFile)
End If
Report.ExportOptions.DiskFileName = myExportFile
Report.ExportOptions.FormatType = crEFTWordForWindows
Report.ExportOptions.DestinationType = crEDTDiskFile
Report.ExportOptions.PDFExportAllPages = True
Report.Export (False)
End Sub
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
水晶报表开发源码,实例
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
Dim i As Integer
If cn.State = adStateOpen Then cn.Close
'SQL SERVER连接方式
With cn
.Provider = "sqloledb"
.ConnectionString = "data source=dd;initial catalog=dfd;user id=sa;password=aaa" .Open
End With
'Mdb的连接方式
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" + App.Path + "\Test.mdb;Persist Security Info=False" .Open
End With
strsql = "select * from carsort"
If rs.State = adStateOpen Then rs.Close
With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.Open strsql, cn, adOpenDynamic, adLockOptimistic
End With
Set carp = capp.OpenReport(App.Path + "\CryStalTest.rpt") '取报表对象
Set carsubp = carp.OpenSubreport("myhgyp") '取子报表对象
Set CrSecRH = carp.Sections("PageHeaderSection1") '取报表头显示区对象 Set Pic2 = carp.Sections("PageHeaderSection1").ReportObjects("picture1")'取报表头显示区中的Ole对象
Set mytxt = CrSecRH.ReportObjects("mytxt")
For i = 1 To carp.Database.Tables.Count '设置报表的数据源
If carp.Database.Tables.Item(i).Name = "carsort" Then
carp.Database.Tables(i).SetDataSource rs
End If
Next
For i = 1 To carsubp.Database.Tables.Count '设置子报表的数据源
If carp.Database.Tables.Item(i).Name = "carsort" Then
carsubp.Database.Tables(i).SetDataSource rs
End If
Next
水晶报表开发源码,实例
Screen.MousePointer = vbHourglass
'第一种设置参数的方式(carp报表集合对象)
carp.ParameterFields(1).ClearCurrentValueAndRange
carp.ParameterFields(1).AddCurrentValue ("myhgyp")
carp.ParameterFields(2).ClearCurrentValueAndRange
carp.ParameterFields(2).AddCurrentValue (CInt("3"))
'第二种设置参数的方式(carp报表集合对象)
carp.ParameterFields.GetItemByName("gg").ClearCurrentValueAndRange
carp.ParameterFields.GetItemByName("gg").AddCurrentValue ("myh11" & vbCrLf & "-2gyp") carp.ParameterFields.GetItemByName("ff").ClearCurrentValueAndRange
carp.ParameterFields.GetItemByName("ff").AddCurrentValue (CInt("673"))
carp.DiscardSavedData
CRViewer91.ReportSource = carp
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
CRViewer91.Zoom 100
'----------------------
Screen.MousePointer = vbDefault
Set wjfilesys = CreateObject("Scripting.FileSystemObject")
End Sub
Private Sub CrSecRH_Format(ByVal pFormattingInfo As Object)'格式化报表头显示区中的对象 Set Pic2.FormattedPicture = LoadPicture(App.Path & "\tsconfig.bmp") 'changes the pic in the Report Header
mytxt.SetText Format(mytxt.Text, "####年##月##日") '格式化TextBox中的文本显示方式 End Sub
Private Sub Form_Resize() '设置报表显示区域
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub
水晶报表开发源码,实例
###
一、在使用自带的水晶报表时,请注册,否则只能使用30次
二、使用CrystalReportViewer进行预览 ,
CrystalReportViewer控件允许在应用程序中查看 Crystal Report
ReportSource 属性用于设置要查看哪个报表。该属性设置之后,报表显示在查看器中。
报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。
1. 打开“工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。
2. 通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。
3. 当运行应用程序时,报表将显示在查看器中。
三、创建新报表
1. 指向“添加”,单击“添加新项”。
2. 在“添加新项”对话框中,从“模板”区域选择 Crystal Report,将报表命名为rptClient,单击“打开”。
3. 在 Crystal Report 库中,选择下列选项之一:
· 使用报表专家 — 指导您完成报表的创建过程,并将您的选择添加到 Crystal Report Designer。
· 作为空白报表 — 打开 Crystal Report Designer。
· 来自于现有的报表 — 创建新报表,它与指定的另一报表设计相同。
注意 Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。
4. 单击“确定”按钮。
如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问 Crystal Report Designer 和您的报表
四、是否需要动态设置数据源?
Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。
拉和推模型
为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型 (读取):与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型 (写入):需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。
四、从 http://www.77cn.com.cn 数据集制作报表 从数据库创建数据集对象
1. 在项目中新建一个架构文件:
a. 在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”。
b. 在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”。
c. 在“模板”区域选择“数据集”。
水晶报表开发源码,实例
d. 接受默认名称 DataSet1.xsd。
这就创建了一个新的架构文件 (DataSet1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在 http://www.77cn.com.cn 数据集设计器中。
2. 指定数据库位置:
a. 在服务器资源管理器中,右击“数据连接”并选择“添加连接”。
b. 在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序。
c. 单击“连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。
d. 单击“确定”按钮。
此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面。
3. 在解决方案资源管理器中,双击 DataSet1.xsd (如果它尚不是活动视图)。
DataSet1.xsd 现在应显示在“数据集”选项卡中。
4. 若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到 DataSet1.xsd 的“数据集”选项卡上。
5. 单击“保存 DataSet1.xsd”来保存“Dataset1.xsd”文件。
6. 在“生成”菜单上,单击“生成”为项目生成数据集对象。
http://www.77cn.com.cn 数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 http://www.77cn.com.cn 数据集对象添加表。
请在使用“报表专家”创建新报表时调用“数据库专家”。或者,要从一个已经使用 http://www.77cn.com.cn 建立好的报表中访问“数据库专家”,请在 Report Designer 中右击,指向“数据库”,然后单击“添加/删除数据库”。
将报表连接到 http://www.77cn.com.cn 数据集对象
1. 在“数据库专家”中,展开“项目数据”文件夹。
2. 展开“http://www.77cn.com.cn 数据集”文件夹。
3. 选择所需数据集对象。
例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“DataSet1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。
4. 选择要向报表中添加的表,和使用其他数据源一样。
五、动态改变数据源的代码
Dim dsDataSet As New DataSet()
Dim oRpt As New rptClient() '已建立的报表rptClient
请读者自行填充数据集dsDataSet
'使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(dsDataSet.Tables(0))
' 将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew(CrystalReportViewer控件)
rptVew.ReportSource = oRpt
注意 FillDataSet 方法可连接到指定的数据库,提取数据,然后断开数据库连接。如果您希望将数据库中的多个表添加到报表中,请使用 SQL JOIN 语句将这些表联接在一起;然后在 FillDataSet 方法中指定一个结果表
六、创建主从报表
水晶报表开发源码,实例
在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现,
1. 新建一个工程
2. 往FORM1中添加一个CrystalReportViewer控件
3. 在服务噐资源管理器中连接到SQL SERVER 2000上的Northwind数据库
4. 添加一个数据集DataSet1,将服务器资源管理器中的Orders和 Order Details加入到数据集中。
5. 添加一个水晶报表,使用报表专家,在项目数据中选择“http://www.77cn.com.cn数据集”,插入表Orders和 Order Details,“链接”中是关联字段的链接,在“字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表OrdersID字段,总 计,图表,选择(可进行筛选),样式(可设置报表标题),可自行设置。设置完后,点击完成。
6. 在报表设计器中调整需要显示的字段的位置、宽度等。
7. 在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport1()
Dim dsDataSet As New Dataset1()
Dim CN As New Data.SqlClient.SqlConnection("datasource=PMSERVER;initial catalog=Northwind;user id=sa;password=sa")
CN.Open()
Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from orders", CN)
daOrders.Fill(dsDataSet, "orders")
Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)
daDetails.Fill(dsDataSet, "Order Details")
'使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(dsDataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8、运行程序
七、用程序改变报表中text的文本
代码如下:
Dim GetTextObject As TextObject
' 按名称获取 ReportObject,将其转换为 TextObject,并返回此对象。
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "XXXX系统"
总结:水晶报表具有非常强大的功能,还可进行导出WORD、EXCEL、RTF等文件,还可生成复杂、漂亮图表,是进行WEB和Windows报表开发的利器
水晶报表开发源码,实例
http://www.77cn.com.cn集成水晶报表的方法
Crystal Report Designer通过数据库专家工具可以建立与数据源的连接;
通过插入专家工具可在各节中插入字段、公式、SQL表达 式、参数等;
通过选择专家工具可以筛选出有用数据;
还可以使用Crystl语法和BASIC语法建立灵活的函数、公式等。
设计报表并在报表中通过选择专家工具加入一选择公式:{客户.ID} = {?ID}
首先新建一个Visual http://www.77cn.com.cn Windows应用程序项目。
在解决方案资源管理器中引用
CrystalDecisions.CrystalReports.Engine和
CrystalDecisions.Shared两个.NET组件。
按上图所示,在表单中摆放好四个控件,然后在按钮控件的Click事件中编写如下代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
'ParameterField类提供属性,以便检索和设置参数字段的选项和值。
Dim ParamFields As New ParameterFields()
Dim ParamField As New ParameterField()
'定义Crystal Report离散值
Dim DiscreteVal As New ParameterDiscreteValue()
Dim LogOnInfo As New TableLogOnInfo()
'表示一个报表,并且包含定义、格式化、加载、导出和打印该报表的属性和方法。
Dim Report As New ReportDocument()
'加载你事先做好的Crystal Report报表文件
Report.Load("D:\Temp\Order.RPT")
' 对报表中的每个表依次循环。
Dim i As Integer
For i = 0 To Report.Database.Tables.Count - 1
'ConnectionInfo提供属性,以便检索和设置与数据库服务器或 ODBC 数据源连接的选
项。
'当前表的连接信息,请设置为与你机器相关的正确数值
LogOnInfo.ConnectionInfo.ServerName = "localhost"
LogOnInfo.ConnectionInfo.DatabaseName = "MRP"
水晶报表开发源码,实例
http://www.77cn.com.cnerID = "sa"
LogOnInfo.ConnectionInfo.Password = "020617"
'应用连接信息
Report.Database.Tables.Item(i).ApplyLogOnInfo(LogOnInfo)
Next i
Dim CurrentID As Int16 = Convert.ToInt16(TextBox1.Text)
'重定义Crystal Report选择条件
If CurrentID = 0 Then
Report.DataDefinition.RecordSelectionFormula = "{客户.ID} > {?ID}"
Else
Report.DataDefinition.RecordSelectionFormula = "{客户.ID} = {?ID}"
End If
DiscreteVal.Value = Convert.ToInt16(TextBox1.Text)
ParamField.ParameterFieldName = "ID"
ParamField.CurrentValues.Add(DiscreteVal)
ParamFields.Add(ParamField)
'应用参数
CrystalReportViewer1.ParameterFieldInfo = ParamFields
CrystalReportViewer1.DisplayGroupTree = False
'将Crystal Replort查看器的数据源设为ReportDocumnet类的实例
CrystalReportViewer1.ReportSource = Report
Catch e1 As Exception
MessageBox.Show(e1.ToString & Chr(10) & "请检查SQL用户名,密码等连接参数和Order.RPT路径设置等!", "不正确的环境设置")
End Try
End Sub
水晶报表打印窗口--数据连接和调用报表源 (http://www.77cn.com.cn)
2007年11月25日 星期日 00:15
水晶报表提供的导出功能非常方便,可以导出Excel,Word等格式。这样程序员就可以省去导Excel的大量工作了。--应该为pull模式吧。下面是代码。
'pull模式
Imports CrystalDecisions
Imports CrystalDecisions.Shared
Public Class frmPrint
Dim cf As New ConnectionInfo
水晶报表开发源码,实例
''' <summary>
''' 打印报表
''' 周加飞
''' 2007-11-23
''' </summary>
''' <remarks></remarks>
'''
Public fileName As String
Private Sub frmPrint_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ConfigureCrystalReports()
End Sub
''' <summary>
''' 调用报表
''' 周加飞
''' 2007-11-23
''' </summary>
''' <remarks></remarks>
Private Sub ConfigureCrystalReports()
cf.ServerName = Dbnet.dbconn.DataSource ' 数据库服务器名称
cf.DatabaseName = Dbnet.dbconn.Database ' 数据库名称
http://www.77cn.com.cnerID = "sa" ' 登录用户名 cf.Password = ""
'fileName 一定是绝对路径!否则会出错 在web中
filename=server.mappath("abc.rtp")
'RtV1为报表查看器 viewer
RtV1.ReportSource = fileName
SetDBLogonForReport(cf)
End Sub
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
Dim myTableLogOnInfos As New TableLogOnInfos
myTableLogOnInfos = RtV1.LogOnInfo
For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
myTableLogOnInfo.ConnectionInfo = myConnectionInfo
Next
End Sub
End Class
' http://www.77cn.com.cn 2005 结束 以上
------------------------------------------------------------------------------------------------
水晶报表开发源码,实例
//PUSH模式 C# Web http://www.77cn.com.cn 2003
using System;
using System.Collections;
using http://www.77cn.com.cnponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
using UseCrystal.CrystalPush;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
namespace CrystalPush
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnExport;
protected System.Web.UI.WebControls.Button btnPrint;
protected CrystalDecisions.Web.CrystalReportViewer Crv;
protected http://www.77cn.com.cnbel Label1;
protected System.Web.UI.WebControls.DropDownList ddlFormat;
myReport ReportDoc = new myReport();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strProvider = "Server=(local);DataBase=myDatabase;UID=sa;PWD=111";
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from SaleOfCuntry";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
DataSet1 ds = new DataSet1();
MyAdapter.Fill(ds,"SaleOfCuntry");
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;
}
#region Web Form Designer generated code
水晶报表开发源码,实例
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 http://www.77cn.com.cn Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnExport_Click(object sender, System.EventArgs e)
{
CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts =
new CrystalDecisions.Shared.DiskFileDestinationOptions();
ReportDoc.ExportOptions.ExportDestinationType =
CrystalDecisions.Shared.ExportDestinationType.DiskFile;
switch (ddlFormat.SelectedItem.Text)
{
case "Rich Text (RTF)":
ReportDoc.ExportOptions.ExportFormatType
= CrystalDecisions.Shared.ExportFormatType.RichText;//
DiskOpts.DiskFileName = "c:\\Output.rtf";//
break;
case "Portable Document (PDF)":
ReportDoc.ExportOptions.ExportFormatType
= CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;//
DiskOpts.DiskFileName = "c:\\Output.pdf";//
break;
case "MS Word (DOC)":
ReportDoc.ExportOptions.ExportFormatType
= CrystalDecisions.Shared.ExportFormatType.WordForWindows;//
DiskOpts.DiskFileName = "c:\\Output.doc";//
break;
case "MS Excel (XLS)":
ReportDoc.ExportOptions.ExportFormatType
水晶报表开发源码,实例
= CrystalDecisions.Shared.ExportFormatType.Excel;//
DiskOpts.DiskFileName = "c:\\Output.xls";//
break;
default:
break;
}
ReportDoc.ExportOptions.DestinationOptions = DiskOpts;
ReportDoc.Export();
}
private void btnPrint_Click(object sender, System.EventArgs e)
{
// 指定打印机名称,这里是网络工作站Gigi上的打印机Hp Jet 6
string strPrinterName;
strPrinterName = @"Canon Bubble-Jet BJC-210SP";
// 设置打印页边距
PageMargins margins;
margins = ReportDoc.PrintOptions.PageMargins;
margins.bottomMargin = 250;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 450;
ReportDoc.PrintOptions.ApplyPageMargins(margins);
//应用打印机名称
ReportDoc.PrintOptions.PrinterName = strPrinterName;
// 打印 // 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
ReportDoc.PrintToPrinter(1, false,0,0);
}
}
}
水晶报表开发源码,实例
http://www.77cn.com.cn中操作水晶報表的類
Imports CrystalDecisions.Shared
Imports System.Data
Imports System.Data.OleDb
Public Class ReportUtil
Private access As DataAcc.DataAccess
#Region " Sub New "
Public Sub New()
access = New DataAcc.DataAccess
End Sub
#End Region
Public Shared Function AddParameter(ByVal paramName As String, ByVal paramValue As String, ByVal paramFields As ParameterFields) As ParameterFields
Dim paramField As ParameterField = New ParameterField
Dim paramDiscreteValue As ParameterDiscreteValue = New ParameterDiscreteValue Dim paramValues As ParameterValues = New ParameterValues
paramField.ParameterFieldName = paramName
paramDiscreteValue.Value = paramValue
paramValues.Add(paramDiscreteValue)
paramField.CurrentValues = paramValues
paramFields.Add(paramField)
Return paramFields
End Function
Public Shared Function GetCompanyName() As String
Dim companyTitle As String
Dim acc As New DataAcc.DataAccess
acc.OpenConnection()
Dim strSql As String = "Select VALUE From PARA Where PARA_ID = '4'"
Dim dt As DataTable = acc.QueryDatabase(strSql)
acc.CloseConnection()
If dt.Rows.Count <> 0 Then
companyTitle = dt.Rows(0)("VALUE").ToString
Else
companyTitle = ""
End If
水晶报表开发源码,实例
Return companyTitle
End Function End Class
在使用DataGridView显示来自DataTable的记录时,如果DataTable里的记录太多(上百条),那么用DataGridView查 看记录就很不方便,如果能让DataGridView分页显示,每页只显示10条(可以随意规定每页显示的条数),并且配以页面之间的跳转按钮,岂不是方 面了许多?现在就来说说我是怎么做到的吧。
我自己编写了一个类用于辅助DataGridView控件的记录分页显示,并提供页面跳转的方法。下面是这个类的源代码: http://www.77cn.com.cn/down3/20070610/10102852142.vb
Public Class ClsDataGridViewPage
'每页记录数
Private _RowsPerPage As Integer
'总页数
Private _TotalPage As Integer
'当前页数
Private _curPage As Integer = 0
'要分页的DataGridView
Private _DataGridView As Windows.Forms.DataGridView
'与需要分页显示的的DataView
Private _dv As DataView
'获取与设置每页记录数
Public Property RowsPerPage() As Integer
Get
Return _RowsPerPage
End Get
Set(ByVal value As Integer)
_RowsPerPage = value
End Set
End Property
'获取总页数
Public ReadOnly Property TotalPage() As Integer
Get
Return _TotalPage
End Get
End Property
'获取与设置当前页数
Public Property curPage() As Integer
正在阅读:
水晶报表开发08-24
教师个人业务自传09-25
环境质量自动监控分中心建设方案07-03
小学一年级语文下册 所见3名师公开课优质教案 西师大版09-27
介绍同学的英语作文02-05
职业生涯规划期中试题11-15
会计主管年度工作计划201802-26
Photoshop图形图像处理笔记08-20
浅谈对新闻深度报道的认识09-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 报表
- 水晶
- 开发
- (化学试卷10份合集)江苏省常州市2018-2019学年高一上学期期末化学试卷含答案
- 铆工考试试题
- 高绩效团队建设方法
- 福师《英汉互译》在线作业二(5)
- 5年级学困生转化计划
- 2016-2022年中国靛蓝行业分析及发展机遇研究报告
- 基于博弈论的ERP发展趋势研究
- 韦应物《滁州西涧》的诗意
- 规范统一公司内外部交流文件格式
- 哈大齐工业走廊大齐规划区综合运输线网协调布局研究
- 浙教版九年级上科学期末试卷+答案
- 研究生第2章(知识表示与推理3-谓词逻辑)
- 云南省质量技术监督局局属事业单位2012年公开招聘人员计划表
- 2016年家居建材发展现状及市场前景分析
- There be 句型练习及答案
- 天大《环境保护与可持续发展》在线作业一
- 基于单片机控制的交流调速系统设计
- 微生物实验报告
- 鲁班培训2012二建机电实务考前通
- 2015-2020年中国手表市场监测及投资前景分析报告