知识大全 VS2005+Crystal Report开发Web应用

Posted

篇首语:读书和学习是在别人思想和知识的帮助下,建立起自己的思想和知识。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VS2005+Crystal Report开发Web应用相关的知识,希望对你有一定的参考价值。

VS2005+Crystal Report开发Web应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

提要 本文试验将帮助你创建一个使用Crystal Report的Web应用程序—报告中的数据来源于一个对象集合 你将创建一个专门的类来保存股票市场数据    一 开发目标  结束本试验后 你将能够更好地   · 创建一个专门的类来保存股票市场值   · 实例化这个类   · 使用数据填充一个对象集合   · 通过一个web表单动态地添加数据   · 使用Crystal Report Designer熟练地创建一个水晶报表    二 内容说明  本实验将引导你创建一个Crystal Reports web应用程序—报告中的数据来源于一个对象集合 该应用程序是用Crystal Reports for Visual Studio Beta 进行开发成功   然后 你将创建一个专门的类来保存股票市场值 实例化该类并使用数据填充一个对象集合 并且通过一个web表单进一步动态地添加数据 然后 你将创建一个水晶报表 通过使用Crystal Report Designer控件—它连接到对象集合并且动态地生成一个图表和股票摘要信息    三 练习一 Web应用程序安装  说明 在本练习中 你将创建一个新的网站 并且应用标准设置来完成此练习   详细步骤   在Visual Studio中创建一个新的ASP NET Web站点   · 双击桌面上的Visual Studio Beta 快捷方式   · 点击 文件|新建|网站   · 在 新建网站 对话中 点击 ASP NET 网站   · 在 位置 列表中 选择 文件系统   · 在 语言 列表中 选择 Visual C#   · 在 位置 文本域中 接受默认的路径和名称   · 点击OK    添加Crystal Report Viewer 控件   · 从Solution Explorer中 双击Default aspx以打开该web表单   · 点击在该表单底部的 设计 按钮来把Web表单改变到设计视图   · 从工具栏中 展开Crystal Reports结点并且定位到CrystalReportViewer控件   · 把CrystalReportViewer控件拖动到该Web表单    · 如果 Smart Task 面板上的 CrystalReportViewer Tasks 被打开 则按下Esc键关闭它   · Smart Task 面板是Visual Studio 中的一个新特征—允许用较少的代码来创建工程 在这个选项卡中 你将使用一种编程方式 因此不必使用 Smart Task 面板   · 点击Properties选项卡并且选择CrystalReportViewer   · 从Properties窗口中 把ID属性设置为crystalReportViewer   · 从文件菜单下 点击SaveAll    添加编程环境   · 点击Solution Explorer选项卡   · 在Solution Explorer中 右击Default aspx并且点击 View Code   · 在类签名的上面 使用 using 语句加入对装配集命名空间的引用声明   · ConfigureCrystalReports()是一个助理方法—它负责在运行时刻与报告交互 它还负责以编程方式与报告进行交互 为了正确地配置CrystalReportViewer 必须从中Page_Init()调用它   · 使用显示的适当语法添加Page_Init事件处理器 private void Page_Init(object sender EventArgs e)  · 在Visual Studio 的一个C# Web表单中 在code behind类中的Page_Init事件处理器是被自动地依附到Init事件的 这个事件处理器签名必须正确匹配以便进行调用   · 最后 在Page_Init事件处理器中 加入对ConfigureCrystalReports()助理方法的调用 ConfigureCrystalReports();

  · 从文件菜单下 点击 Save All   · 现在 你已经准备好创建你的定制股票市场信息类了

   

  四 练习 :创建一个定制的股票市场信息  说明 在本练习中 你要创建一个定制的类来保存股票市场信息 这个类将用于填充一个对象集合 详细步骤  · 在Solution Explorer中 右击粗体的网站名 然后点击 Add New Item

  · 然后 出现 Add New Item 对话框   · 在Visual Studio Installed Templates 域中 选择 Class   · 在Name字段中 输入Stock 然后点击Add   · 在随后出现的对话框中点击Yes   · 在Visual Studio 中 所有的类必须被放置到一个App Code文件夹下 如果要使用它们的话 当你点击Add按钮时 将出现一个警告对话框问你是否想把你的类放到这个App_Code文件夹下   · 本文中的Stock类必须被设置为public类 以便当你创建报告时存取它 请一定要确保你创建的类是public型

   public class Stock public Stock() 

  · 在这个类中 加入三个private字段

   private string _symbol;private double _price;private int _volume;

  · 然后 你将把三个public读/写属性加入以封装这三个private字段   · 创建一个新的属性 命名为Symbol

   public string Symbol get   return _symbol;  set   _symbol = value; 

  · 创建一个新的属性 命名为Price

   public double Price get   return _price;  set   _price = value; 

  · 创建一个新的属性 命名为Volume

   public int Volume get   return _volume;  set   _volume = value; 

  · 最后 创建一个新的构造器 它使用三个public属性作为参数

   public Stock (String symbol int volume double price) _symbol = symbol; _volume = volume; _price = price;

  · 从Build菜单下 点击 Build Website   · 如果你有任何构建错误现在就修改它们   · 现在 你已经准备好从内置的Crystal Report Designer中存取这个对象了

   

  五 练习 :创建一个水晶报表  说明 在本练习中 你将在内置的Crystal Report Designer中创建一个新的Crystal report 然后把这个报告绑定到Stock对象   详细步骤  · 右击网站名并且点击 Add New Item

  · 在 Add New Item 对话框中 选择 Crystal Report   · 在Name字段中 输入StockObjects rpt 然后点击Add   · 在 Crystal Reports Gallery 对话框中 点击OK   · 在 Standard Report Creation Wizard 对话框中 展开 Project Data 及子结点 NET Objects   · 将出现该工程中的一个类列表   · 展开Stock类来观察一个可选择的子结点   · 点击向右的箭头 以便把 Stock 类子结点移动到 Selected Tables 面板上   · 点击Next   · 展开Stock并且点击 >> 以便把所有的列移动到 Fields to Display 面板上   · 点击Next   · 选择Symbol并且点击向右的箭头来把它移动到 Group By 面板上   · 点击Finish   六 练习 :把你的水晶报表绑定到Crystal Report Viewer  说明 在这个练习中 你将把Stock对象报告绑定到Crystal Report Viewer 把报告的数据源设置为一个对象集合 并且用编程方式来填充一个对象集合   详细步骤   把报告绑定到Crystal Report Viewer   · 切换到默认的Code Behind类 Default aspx cs   · 在类签名之上 加入对命名空间System Collections的引用 using System Collections;  · 这个参考使你能够存取ArrayList类 而ArrayList实现了ICollection 这使得ArrayList成为用来构建一个为Crystal Reports所识别的对象集合的若干类的类型之一   · 添加一个新的类级别的ArrayList 命名为stockValues

   private ArrayList stockValues;

  · 为ReportDocument报告包装类添加一个新的类级别的声明 变量名为stockObjectsReport 并把它设置为private型

   private ReportDocument StockObjectsReport;

  · 在你在练习 创建的ConfigureCrystalReports()方法中 声明一个字符串变量 命名它为reportPath 并且把一个指向本地报告的运行时刻路径赋值给它 把本地报告文件的名字作为一个字符串参考传递给Server MapPath()方法 这样以来 把本地报告映射到运行时刻文件路径

   String reportPath = Server MapPath( StockObjects rpt );

  · 实例化ReportDocument类

   StockObjectsReport = new ReportDocument();

  · 在下一行中 调用ReportDocument实例的Load()方法 并且把reportPath字符串变量传递给它

   StockObjectsReport Load(reportPath);

  · 这个ReportDocument类是CrystalDecisions CrystalReports Engine命名空间的一个成员 你已经在 练习 : Web应用程序安装 中添加了对这个命名空间的声明(在C#中是使用 using ) 当你实例化ReportDocument并且加载一个报告时 你可以通过SDK来存取这个报告   · 然后 把这个报告的数据源设置为 stockValues ArrayList

   StockObjectsReport SetDataSource(stockValues);

  · 最后 把CrystalReportViewer的ReportSource属性绑定到ReportDocument实例

   crystalReportViewer ReportSource = stockObjectsReport;

  l 现在 这个Stock对象报告被绑定到Crystal Report Viewer并且页面显示正确的报告 然而 当前的报告被绑定到一个空数据源上 因此报告中没有要显示的信息 在下一步中 你将用样本数据以编程方式填充stockValues ArrayList    以编程方式填充一个对象集合    在这个任务中 你将把Session代码添加到ASPX code behind类 如果在session中没有值 将会生成默认值 如果session中有值 它们将被赋值到stockValues ArrayList中   · 在这个类中 添加一个新的public范围的不具有返回值的助理方法 命名为PopulateStockValuesArrayList()

   public void PopulateStockValuesArrayList()

  · 在PopulateStockValuesArrayList()方法中 在现有代码前 创建一个if/else条件块—它检查是否存在一个名为stockValues的Session对象

   if(Session[ stockValues ] == null)else

  · 在这个If块中 实例化一个新的ArrayList()

   stockValues = new ArrayList();

  · 然后 使用Stock类的重载构造器来创建和实例化Stock的三个实例

   Stock s = new Stock( AWRK );Stock s = new Stock( CTSO );Stock s = new Stock( LR );

  · 把这三个实例添加到stockValues

   stockValues Add(s ); stockValues Add(s ); stockValues Add(s );

  · 把更新的stockValues ArrayList添加到session中

   Session[ stockValues ]=stockValues;

  · 在Else块中 加入一行代码以便把session中的当前值赋给stockValues ArrayList

   stockValues = (ArrayList)Session[ stockValues ];

  · 最后 从ConfigureCrystalReports()方法中调用PopulateStockValuesArrayList()   · 这应该是ConfigureCrystalReports()方法中被执行代码的第一行

   PopulateStockValuesArrayList();

  · 从Build菜单下 点击Build Solution   · 如果你有任何构建错误现在就修改它们   · 从Debug菜单下 点击 Start Debugging   · 如果这是你启动调试器的第一次 那么将出现一个对话框告诉你必须修改nfig文件 点击OK按钮以启动调试功能   · Default aspx页面连同三个缺省值加载到你的浏览器中   · 关闭Internet Explorer窗口

   

  七 练习 :把数据动态地添加到股票报告上  说明 在上一个练习中 你用编程方式填充对象集合 在本练习中 你将学习如何动态地从你的网站把信息添加到你的数据源 该信息能够在你的报表中得到自动更新   详细步骤

   添加控件到Web表单   · 在Design视图中打开Default aspx文件   · 为了在Design视图中打开一个ASPX页面 首先打开文件 然后点击在该表单底部的Design按钮   · 点击CrystalReportViewer控件来选择它   · 按下左箭头键 以便出现闪烁的光标 并且按回车键从视图中往下移动四次   · 从工具箱中 把一个TextBox控件拖动到Web表单   · 从Property菜单下 把ID设置为symbol   · 把第二个TextBox控件拖动到Web表单 把这第二个TextBox放到第一个下面   · 从Property菜单下 把ID设置为price   · 把第三个TextBox控件拖动到Web表单 把这第三个TextBox控件放到第二个下面   · 从Property菜单下 把ID设置为volume   · 现在 你可以发现把文本添加在每一个文本框旁边极有助于标识哪个控件相应于哪个参数   · 然后 从工具箱中 把一个按钮控件拖动Web表单上 把该按钮放到这三个TextBox控件下   · 从Property菜单下 把该按钮的ID设置为addStockInformation   · 把该按钮的Text设置为 Add Stock Information   · 最后 双击 Add Stock Information 按钮   · 双击按钮控件将打开Code behind类并且自动生成一个addStockInformation_click()事件处理器    把信息添加到集合   · 在addStockInformation_click()事件处理器中 创建并且实例化一个新的Stock对象

   Stock temp = new Stock();

  · 在addStockInformation_click()方法中 创建一个try/catch块

   trycatch

  · 输入到一个Web表单中的信息属于String类型 因为Stock类中的两个字段都是numerical型 所以你需要编写代码来把Web表单中的String值转换为numerical值 try/catch语句有助于保护你的web应用程序免于崩溃—在类型转换出现错误匹配期间   · 在Try块中 把在Web表单中的symbol字段的值赋值到Stock对象的Symbol属性 temp Symbol = symbol Text;  · 在下一行中 把在Web表单中的price字段的值赋值到Stock对象的Price属性 注意 在赋值之前 要把Web表单中的这个值转化为一个Double

   temp Price = Convert ToDouble(price Text);

  · 然后 把在Web表单中的volume字段的值赋值到Stock对象的Volume属性 注意 在赋值之前 要把Web表单中的这个值转化为一个整数

   temp Volume = Convert ToInt (volume Text);

  · 在try/catch块的外面 把 Stock Object 添加到stockValues ArrayList

   stockValues Add(temp);

  · 更新当前存在于Session中的stockValues的值

   Session[ stockValues ] = stockValues;

  · 最后 调用ConfigureCrystalReports()方法 这将把报告重新绑定到这个更新过的stockValues—一个对象集合

   ConfigureCrystalReports();

  · 从Build菜单下 点击 Build Solution   · 如果你遇到任何构建错误 则现在就修改   · 从Debug菜单下 点击 Start Debugging   · 如果没有出现构建错误 Default aspx页面将使用三个缺省值加载到你的浏览器 为了添加其它值 适当地填充文本框并且点击 Add Stock Information 按钮 报告将会被动态地更新   · 当你运行你的网站时 报告将装载到你的浏览器窗口中—使用三个缺省值(你是在练习 中以编程方式添加的) 在报告上面共有三个TextBox控件和一个按钮控件 使用这些控件 你可以动态地更新你的一个对象集合 并且看到这一更新的结果会反映到你的报告中   · 关闭Internet Explorer窗口

   

  八 练习 :在报告中添加图表和摘要信息  说明 至此 你已经拥有一个全功能的网站 它将显示一个基于一个对象集合的水晶报表 该站点将显示以编程方式输入到一个对象集合中的信息 以及在运行时刻被动态地添加的信息   在这个练习中 你将添加两个图表 一个calculated字段和摘要信息   详细步骤   把一个图表添加到报告中   · 从solution explorer下 打开StockObjects rpt   · 从Crystal Reports菜单下 选择Insert 并且点击Chart   · 在 Chart Expert 对话框中 选择一个Pie图   · 选择Data选项卡   · 选择Stock Symbol并且点击最右方向箭头以把Stock Symbol字段移动到 On Change Of 字段   · 选择Stock Volume并且点击最右方向箭头以把Stock Volume字段移动到Show Value(s)字段   · 点击OK   · 创建一个新的 Report Header 节 并且把一个图表对象添加到这一节中   · 从Debug菜单下 点击 Start Debugging   · 如果不出现构建错误 那么Default aspx页面将加载到你的浏览器中   · 关闭Internet Explorer窗口    添加一个基于一个formula字段的图表 在这一节中 你将创建一个显示合计信息的图表 首先 你将创建一个公式以计算一个特定的持股值 然后创建一个饼图—它显示你的所有持股值的比例值   · 从Crystal Reports菜单下 选择Report 并且点击 Formula Workshop   · 在 Formula Workshop 对话框中 选择 Formula Fields   · 点击New按钮创建一个新公式   · 在 Formula Name 对话框中 输入值   · 点击 Use Editor   · 添加代码以把price字段值与volume字段值相乘

   Stock Volume*Stock Price

cha138/Article/program/net/201311/11331

相关参考

知识大全 VC# .Net中使用Crystal Report(一)

VC#.Net中使用CrystalReport(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 VC# .Net中使用Crystal Report(二)

VC#.Net中使用CrystalReport(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 用VS2005开发XAML程序

用VS2005开发XAML程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果我们使用Visua

知识大全 VS2005.NET进行三层结构应用程序的开发

VS2005.NET进行三层结构应用程序的开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一三层

知识大全 VS2005 系列控件演示之 表格

VS2005系列控件演示之表格  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 “不完美”的VS 2005 Team System

“不完美”的VS2005TeamSystem  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Vi

知识大全 VS.NET 2005 Beta 2初体验

关注:VS.NET2005Beta2初体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在经历

知识大全 VS2005数据存取层深入剖析基础篇

VS2005数据存取层深入剖析基础篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!摘要本文试图对V

知识大全 VS2005数据存取层深入剖析高级篇

VS2005数据存取层深入剖析高级篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一扩展表格适配器

知识大全 VS.NET 2005 Beta 2初体验

VS.NET2005Beta2初体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在经历了N次