大名鼎鼎的 Crystal Reports(水晶报表)已内嵌为微软 Visual Studio NET的标准报表工具 同时升级到 Crystal Reports for Visual Studio NET 它的优点是 在 NET 平台能够轻松创建交互式的 高质量显现的报表内容 这也是 Crystal Reports 长期以来所具有的主要优势 使用 Crystal Reports for Visual Studio NET 可以在 Web 平台和 Windows 平台上承载报表 并将 Crystal 报表作为报表 Web 服务在 Web 服务器上发布 利用Crystal Report 创建的Web应用程序 使用户可以深化图表并根据需要筛选信息 在 NET 中 图表实际上就是一个与应用程序中其他控件进行交互的 Crystal 报表 在这里我向大家介绍如何在 Windows 窗体应用程序中浏览水晶报表
设计步骤
软件环境 要求系统已安装Visual Studio Net 集成开发系统 仅装有 Net Framework SDk 不能实现本例效果 成为 Net Framework SDK 没有水晶报表控件
新建一个 Visual C# 项目 Windows 应用程序 设置Form 的Text= 水晶报表浏览器 StartPosition=CenterScreen //程序开始出现在屏幕中央 其它属性均保持默认
从工具箱拖入一个CrystalReportViewer 一个Button 一个openFileDialog 到窗体
整个设计器的窗体布局只需将button 置于窗体底边中部 不再需要其它多余布局
设置crystalReportViewer 的属性如下
this crystalReportViewer Dock = System Windows Forms DockStyle Fill//停靠方式为充满整个窗体//展开+DockPaddingthis crystalReportViewer DockPadding Bottom = //底部空出放置Button的区域this crystalReportViewer DockPadding Left = this crystalReportViewer DockPadding Right = this crystalReportViewer DockPadding Top = this crystalReportViewer ReportSource = null//先不载入报表资源
设置button 的属性如下
this button Anchor = System Windows Forms AnchorStyles Bottom//与窗体的下边保持固定this button Text = 打开报表 openFileDialog 是打开文件的控件 设置其属性如下 this openFileDialog Filter= Crystal Report (* rpt)|* rpt|所有文件(* *)|* * //提供打开文件对话框的文件类型 默认类型就是此字符串的最前一种定义的类型this openFileDialog Title = 打开水晶报表 //打开文件对话框的标题
布局效果图如下
lishixinzhi/Article/program/net/201311/14655
在VS 中新建一个“Windows 窗体应用程序”项目 在该项目中添加一个水晶报表“CrystalReport rpt” 然后在项目上点击鼠标右键属性 将“目标框架”改为“ Net Framework ”
打开app config文件 在“startup”节点一个“useLegacyV RuntimeActivationPolicy="true"”属性
复制代码 代码如下: <startup useLegacyV RuntimeActivationPolicy="true"><supportedRuntime version="v " sku=" NETFramework Version=v "/></startup>在Form 窗体中 从工具箱拖出一个Crystal Report Viewer控件 双击Form窗体 是双击Form窗体 不是Crystal Report Viewer 在后台的Form_Load事件中写入如下代码
复制代码 代码如下: private void Form _Load(object sender EventArgs e) { string connStr = "Data Source= SqlExpressInitial Catalog=dbTestUser ID=saPassword=test"SqlConnection conn = new SqlConnection(connStr)conn Open()try { string sql = "SELECT * FROM Customer where email!= test@gmail "SqlDataAdapter sda = new SqlDataAdapter(sql conn)DataSet ds = new DataSet()sda Fill(ds "tmpTable")string reportPath = System Windows Forms Application StartupPath + @"CrystalReport rpt"ReportDocument rd = new ReportDocument()rd Load(reportPath)rd SetDataSource(ds Tables[ ] DefaultView)this crystalReportViewer ReportSource = rd} catch (Exception ex) { throw new Exception(ex Message ToString())} finally { conn Close()} }
lishixinzhi/Article/program/net/201311/14223
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)