首页 ASP.NET 正文
  • 本文约5547字,阅读需28分钟
  • 3690
  • 0
举报该广告
vb.net 水晶报表的步骤与经验教训

vb.net 水晶报表的步骤与经验教训

  ADO.NET   数据集制作报 
从数据库创建数据集对   
1.   在项目中新建一个架构文件:   
a.   在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”   
b.   在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”   
c.   在“模板”区域选择“数据集”   
d.   接受默认名称   Dataset1.xsd   
这就创建了一个新的架构文   (Dataset1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在   ADO.NET   数据集设计器中  

注意一下:我做的时候将上述的引进的数据集,改成了汉字,这种做法是不正确的,正确的做法是,在这不用改


2.   指定数据库位置:   
a.   在服务器资源管理器中,右击“数据连接”并选择“添加连接”   
b.   在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序(例如   Microsoft   OLE   DB   Provider   for   SQL   Server)   
c.   单击“连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息   
d.   单击“确定”按钮   
此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面   
3.   在解决方案资源管理器中,双击   Dataset1.xsd   (如果它尚不是活动视图)   
Dataset1.xsd   现在应显示在“数据集”选项卡中   
4.   若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到   Dataset1.xsd   的“数据集”选项卡上   
5.   单击“保   Dataset1.xsd”来保存“Dataset1.xsd”文件   
6.   在“生成”菜单上,单击“生成”为项目生成数据集对象   
ADO.NET   数据集对象提供数据的描述,从它可以向   Crystalreport   添加表。使   Crystal   Report   Designer   中的“数据库专家”从   ADO.NET   数据集对象添加表  

注意一下:······添加表以后更改页眉的题目时,应该单击右键在编辑文本这显示你想要的标题
请在使用“报表专家”创建新报表时调用“数据库专家”。或者,要从一个已经使   ADO.NET   建立好的报表中访问“数据库专家”,请在   Report   Designer   中右击,指向“数据库”,然后单击“添/删除数据库” 
将报表连接到   ADO.NET   数据集对   
1.   在“数据库专家”中,展开“项目数据”文件夹   
2.   展开“ADO.NET   数据集”文件夹   
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.   添加一个水晶报表,使用报表专家,在项目数据中选择“ADO.NET数据集”,插入表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( "data   source=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 

/*
Private Sub daywaterlevel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
'创建一个内含连接信息的数据库链接对 
Dim myConnection As New SqlConnection 
myConnection.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=cwfzx;server=yllsony;Connect Timeout=30 " 
'定义一个报表对 
Dim myreportDoc As New ReportDocument 
Dim myDBConncetionInfo As ConnectionInfo 
Dim myTable As Table 
'循环处理Tables集合中的每一个Table对象并设置登陆信 
For Each myTable In myReportDoc.Database.Tables 
myDBConncetionInfo = myTable.LogOnInfo.ConnectionInfo() 
With myDBConncetionInfo 
.ServerName = "yllsony " 
.databaseName = "cwfzx " 
.UserId = "sa " 
.Password = "636490 " 
End With 
Next 
'定义一个sqldataAdapter类型的变 
Dim MyCommand As SqlDataAdapter 
'创建数据集对 
Dim ds As DataSet = New dsDayWater 
'创建一个SqlDataAdapter对象 
MyCommand = New SqlDataAdapter( "select stcd,tm,z from tb_river_r ", myConnection) 
'链接到数据库,提起数据,然后中断链接 
MyCommand.Fill(ds, "tb_river_r ") 
'载入报表 
myReportDoc.Load(Application.StartupPath & "\crdaywater.rpt ") 
'将数据集ds传递给报表对象 
myReportDoc.SetDataSource(ds) 
'绑定报表查看器控 
CrtViewerWater.ReportSource = myReportDoc 
End Sub
*/ 

/*
Private Sub BindReport()
Dim myConnection As New SqlClient.SqlConnection()
myConnection.ConnectionString = "Server=主机名或者是你的ip地址(本127.0.0.1;database=数据库名;uid=用户;pwd=密码"
Dim myCommand As New SqlClient.SqlCommand()
myCommand.Connection = myConnection’定义连
myCommand.CommandText = "Select * from....." '这里的sql语句就看你的需要来构造了
myCommand.CommandType = CommandType.Text
Dim myDA As New SqlClient.SqlDataAdapter()
myDA.SelectCommand = myCommand
Dim myDS As New Dataset1()
myDA.Fill(myDS, "Stores")
Dim oRpt As New CrystalReport1()
oRpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = oRpt
End Sub
*/

📱 扫码关注公众号

公众号二维码

扫描二维码关注我们,获取更多精彩内容
实时更新 · 干货满满

收藏

扫描二维码,在手机上阅读
评论
更换验证码
友情链接