web里如何调用水晶报表

asxulong 2004-12-11 03:59:11
报表我建完了!
CrystalReportViewer1东西怎么用??
王高手指教!
如何确定报表源和CrystalReportViewer1源
...全文
315 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haonanernet 2004-12-12
  • 打赏
  • 举报
回复
asp.net中水晶报表的使用(2)
使用Pull模式
  我们将通过下面的这些步骤来通过Pull模式来执行水晶报表
  1.首先创建rpt文件,并使用水晶报表设计接口设置一些必须的数据连接。
  2.拖放一个 CrystalReportViewer控件至aspx页面,设置它的属性指定我们上一步创建的.rpt文件。
  3. 在代码中调用DataBind方法。
  创建 .rpt 文件:
  1) 在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”Crystal Report”  

  2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。  

  3)这里将弹出水晶报表设计器。  

  4) 右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."
  5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE DB(ADO)“窗口。
  6) 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next"

  7) 指定连接的信息
  服务器 : ASPCN (您的机器是什么名字就写什么)
  用户 ID: sa
  密码:
  数据库 : Pubs
  8) 单击”Next“,最后单击”Finish“按钮。
  9) 这时你就能在”数据库专家“窗口中看到我们选择的数据库。
  10) 扩展”Pubs“数据库,扩展”表“,选择”Stores“表并将其加到”选定的表“区中,单击”OK"按钮。
 
  11) 现在在”字段资源浏览器“中就会在左边”数据库字段“区中显示你选择的表,以及表中的字段。
  12) 拖放需要的字段进入报表的”详细资料“区。字段名将会自动出现在”页眉“区。如果你想修改头部文字,则可以右击”页眉“区中的文字,选择”编辑文本对象“选项并进行编辑。

  13) 保存,这样我们就有了一个水晶报表文件。
  创建 CrystalReportViewer 控件
  14) 回到前面的WebForm中,拖放一个Crystal Report Viewer控件到页面中去。
  15) 调出Crystal Report Viewer控件的属性窗口,选择“DataBindings"区点击[...]
  16) ”Crystal Report Viewer 数据绑定窗口”中,在右边的“可绑定属性”中选择”ReportSource“,并选择右下角的“自定义绑定表达式”中指定.rpt文件路径。  

  17) 此时你能够从Crystal Report Viewer 控件中看到使用一些虚拟数据组成的报表文件的预览。
  注意:在上面的例子中,CrystalReportViewer可以在设计时直接调用真实的数据,因为此时数据已经保存。在这种情况下,设计时当没有保存数据时,他是不能显示数据的。取而代这的是显示一些虚拟的数据,只有在执行时才会选取真实的数据。
  Code Behind 程序设计
  18) 在Page_Load方法中调用DataBind方法。
  执行你的程序
  19) 创建并运行你的程序!  
  您现在就可以直接在Web页面中使用水晶报表内置的一些功能,如页面导航,缩放等
haonanernet 2004-12-12
  • 打赏
  • 举报
回复
Asp.Net中使用水晶报表(3)
使用PUSH模式
  我们采用下面的几步使用Push模式执行水晶报表:
  1. 设计一个DataSet
  2. 创建一个.rpt文件同时将其指定给上一步建立的DataSet。
  3. 在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
  4. 在代码中访问数据库并把数据存入DataSet
  5. 调用DataBind方法。
  设计一个DataSet
  1) 右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”
  2) 从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS数据库中)。


  3) 此时在数据集中就会有一个Stores表的结构图。

  - .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
  创建 .rpt 文件 :
  4) 使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
  5)建立.rpt文件之后,右击“详细资料”-->"添加/删除数据库“
  6) 在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“ADO.Net数据集”--"DataSet1“,选择”Stores“表。
  7) 将”Stores"表添加到“选定的表”中,点击“OK”

  8) 使用PULL模式下的方法,建立一个WebForm
  建立一个Crystal Report Viewer 控件
  9) 建立一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。
  Code Behind 代码:
  10) 在Page_Load方法中使用下面的子函数:
VB.Net代码:
  Sub BindReport()
    Dim myConnection As New SqlClient.SqlConnection()
    myConnection.ConnectionString= "server= (local)\NetSDK;database=pubs;Trusted_Connection=yes"
    Dim MyCommand As New SqlClient.SqlCommand()
    MyCommand.Connection = myConnection
    MyCommand.CommandText = "Select * from Stores"
    MyCommand.CommandType = CommandType.Text
    Dim MyDA As New SqlClient.SqlDataAdapter()
    MyDA.SelectCommand = MyCommand
    Dim myDS As New Dataset1()
    '这就是我们在设计模式上使用的DataSet
    MyDA.Fill(myDS, "Stores")
    '你不得不使用与你前面DataSet相同名字。
    Dim oRpt As New CrystalReport1()
    ' 水晶报表绑定
    oRpt.SetDataSource(myDS)
    ' 设定水晶报表的ReportSource
    CrystalReportViewer1.ReportSource = oRpt
  End Sub

C#代码:
private void BindReport()
{
  string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
  CrystalReport1 oCR = new CrystalReport1();
  Dataset1 ds = new Dataset1();
  SqlConnection MyConn = new SqlConnection(strProvider);
  MyConn.Open();
  string strSel = "Select * from Stores";
  SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
  MyAdapter.Fill(ds,"stores");
  oCR.SetDataSource(ds);
  this.CrystalReportViewer1.ReportSource = oCR;
}

  注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。如果你需要使用"UnTyped"报表,你得使用ReportDocument对象,然后再调用报表文件。
  运行你的程序。
  11) 运行你的程序
  将报表文件导出成为其它格式
  你能够将报表文件导出成为下列格式:
      1. PDF (Portable Document Format)
      2. DOC (MS Word Document)
      3. XLS (MS Excel Spreadsheet)
      4. HTML (Hyper Text Markup Language – 3.2 or 4.0 compliant)
      5. RTF (Rich Text Format)
  使用Pull模式导出报表
  当导出使用Pull模式创建的文件时,水晶报表准确地打开所需要的数据,下面是执行导出功能的代码:
C#代码:
VB.Net代码:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim myReport As CrystalReport1 = New CrystalReport1()
  '注意:这里我们建立一个strong-typed的水晶报表实例。
    Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions()
    myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
  ' 导出成为其它文件时也需要这个选项
  ' 如Microsoft Exchange, MAPI等.
    myReport.ExportOptions.ExportFormatType = CrystalDecisions. [Shared].ExportFormatType.PortableDocFormat
  '这里我们导出成为.pdf格式文件,你也能选择上面的其它类型文件
    DiskOpts.DiskFileName = "c:\Output.pdf"
  '如果你不指定确切的目录,那么文件就会保存到[Windows]\System32目录中去了
    myReport.ExportOptions.DestinationOptions = DiskOpts
  '水晶报表文件不包含直接的FileName属性,因此你不能直接指定保存的文件名
  '所以你不得不使用DiskFileDestinationOptions对象,设置它的DiskFileName属性
  '为你想要的路径,最后将水晶报表的DestinationsOptions属性指定为上面的DiskFileDestinationOption
    myReport.Export()
  '上面的代码将完成导出工作。
End Sub

  使用PUSH模式导出水晶报表
  当导出的报表是由PUSH模式建立的时,第一步就是通过编程建立连接并组装DataSet,设置报表的的SetDataSource属性。再下面的步骤就有Pull模式一样的了。
流梓 2004-12-11
  • 打赏
  • 举报
回复
见意看看。net水晶报表实例

MSDN是最好的帮手!!!!
GmLibra 2004-12-11
  • 打赏
  • 举报
回复
CrystalReport1.SetDataSource(Dataset);
CrystalReportViewer1.ReportSource = CrystalReport1;
CrystalReportViewer1.DataBind();

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧