爱飞 发表于 2015-1-16 22:41:37

ASP.NET网站制作之VS2005+Crystal Report开辟Web使用

在CSDN里搜索一下“初学”两字,竟有三百余篇帖子(也许更多)。有些帖子说,有了asp的基础,只要15天就能很熟悉了,我甚感自己的愚钝。更多帖子是向大家请教初学者适合看书。两个多月的时间(当然平常杂事比较多。web<P>  提纲</STRONG>本文实验将匡助你创立一个利用CrystalReport的Web使用程序―呈报中的数据来历于一个工具汇合,你将创立一个专门的类来保留股票市场数据。

  1、开辟方针

  停止本实验后,你将可以更好地:

  ・创立一个专门的类来保留股票市场值。

  ・实例化这个类。

  ・利用数据添补一个工具汇合。

  ・经由过程一个web表单静态地增加数据。

  ・利用CrystalReportDesigner纯熟地创立一个水晶报表。

  2、内容申明

  本实行将引诱你创立一个CrystalReportsweb使用程序―呈报中的数据来历于一个工具汇合。该使用程序是用CrystalReportsforVisualStudio2005Beta2举行开辟乐成。

  然后,你将创立一个专门的类来保留股票市场值,实例化该类并利用数据添补一个工具汇合,而且经由过程一个web表单进一步静态地增加数据。然后,你将创立一个水晶报表,经由过程利用CrystalReportDesigner控件―它毗连到工具汇合而且静态地天生一个图表和股票择要信息。

  3、实习一:Web使用程序安装

  申明在本实习中,你将创立一个新的网站,而且使用尺度设置来完成此实习。

  具体步骤

  1.在VisualStudio中创立一个新的ASP.NETWeb站点。

  ・双击桌面上的VisualStudio2005Beta2快速体例。

  ・点击“文件|新建|网站”。

  ・在“新建网站”对话中,点击“ASP.NET网站”。

  ・在“地位”列表中,选择“文件体系”。

  ・在“言语”列表中,选择“VisualC#”。

  ・在“地位”文本域中,承受默许的路径和称号。

  ・点击OK。

  2.增加CrystalReportViewer控件。

  ・从SolutionExplorer中,双击Default.aspx以翻开该web表单。

  ・点击在该表单底部的“计划”按钮来把Web表单改动到计划视图。

  ・从工具栏中,睁开CrystalReports结点而且定位到CrystalReportViewer控件。

  ・把CrystalReportViewer控件拖动到该Web表单。
 
  ・假如“SmartTask”面板上的“CrystalReportViewerTasks”被翻开,则按下Esc键封闭它。

  ・“SmartTask”面板是VisualStudio2005中的一个新特性―同意用较少的代码来创立工程。在这个选项卡中,你将利用一种编程体例,因而不用利用“SmartTask”面板。

  ・点击Properties选项卡而且选择CrystalReportViewer。

  ・从Properties窗口中,把ID属性设置为crystalReportViewer。

  ・从文件菜单下,点击SaveAll。

  3.增加编程情况。

  ・点击SolutionExplorer选项卡。

  ・在SolutionExplorer中,右击Default.aspx而且点击“ViewCode”。

  ・在类署名的下面,利用“using”语句到场对拆卸集定名空间的援用声明。

usingCrystalDecisions.CrystalReports.Engine;
usingCrystalDecisions.Shared;
  ・在这个类中,增加一个新的private型且无前往值的助理办法ConfigureCrystalReports()。

privatevoidConfigureCrystalReports()
{}
  ・ConfigureCrystalReports()是一个助理办法―它卖力在运转时候与呈报交互。它还卖力以编程体例与呈报举行交互。为了准确地设置CrystalReportViewer,必需从中Page_Init()挪用它。

  ・利用显现的得当语法增加Page_Init事务处置器。

privatevoidPage_Init(objectsender,EventArgse)
{}
  ・在VisualStudio2005的一个C#Web表单中,在code-behind类中的Page_Init事务处置器是被主动地依靠到Init事务的。这个事务处置器署名必需准确婚配以便举行挪用。

  ・最初,在Page_Init事务处置器中,到场对ConfigureCrystalReports()助理办法的挪用。

ConfigureCrystalReports();
  ・从文件菜单下,点击“SaveAll”。

  ・如今,你已筹办好创立你的定制股票市场信息类了。
<P>  4、实习2:创立一个定制的股票市场信息

  申明在本实习中,你要创立一个定制的类来保留股票市场信息。这个类将用于添补一个工具汇合。
具体步骤

  ・在SolutionExplorer中,右击粗体的网站名,然后点击“AddNewItem”。

  ・然后,呈现“AddNewItem”对话框。

  ・在VisualStudio“InstalledTemplates”域中,选择“Class”。

  ・在Name字段中,输出Stock,然后点击Add。

  ・在随后呈现的对话框中点击Yes。

  ・在VisualStudio2005中,一切的类必需被安排到一个AppCode文件夹下,假如要利用它们的话。当你点击Add按钮时,将呈现一个告诫对话框问你是不是想把你的类放到这个App_Code文件夹下。

  ・本文中的Stock类必需被设置为public类,以便利你创立呈报时存取它。请必定要确保你创立的类是public型。

publicclassStock
{
 publicStock()
 {}
}
  ・在这个类中,到场三个private字段。

privatestring_symbol;
privatedouble_price;
privateint_volume;
  ・然后,你将把三个public读/写属性到场以封装这三个private字段。

  ・创立一个新的属性,定名为Symbol。

publicstringSymbol
{
 get
 {
  return_symbol;
 }
 set
 {
  _symbol=value;
 }
}
  ・创立一个新的属性,定名为Price。

publicdoublePrice
{
 get
 {
  return_price;
 }
 set
 {
  _price=value;
 }
}
  ・创立一个新的属性,定名为Volume。

publicintVolume
{
 get
 {
  return_volume;
 }
 set
 {
  _volume=value;
 }
}
  ・最初,创立一个新的机关器,它利用三个public属性作为参数。

publicStock(Stringsymbol,intvolume,doubleprice)
{
 _symbol=symbol;
 _volume=volume;
 _price=price;
}
  ・从Build菜单下,点击“BuildWebsite”。

  ・假如你有任何构建毛病如今就修正它们。

  ・如今,你已筹办好从内置的CrystalReportDesigner中存取这个工具了。
<P>  5、实习3:创立一个水晶报表

  申明在本实习中,你将在内置的CrystalReportDesigner中创立一个新的Crystalreport,然后把这个呈报绑定到Stock工具。

  具体步骤

  ・右击网站名而且点击“AddNewItem”。

  ・在“AddNewItem”对话框中,选择“CrystalReport”。

  ・在Name字段中,输出StockObjects.rpt,然后点击Add。

  ・在“CrystalReportsGallery”对话框中,点击OK。

  ・在“StandardReportCreationWizard”对话框中,睁开“ProjectData”及子结点“.NETObjects”。

  ・将呈现该工程中的一个类列表。

  ・睁开Stock类来察看一个可选择的子结点。

  ・点击向右的箭头,以便把“Stock”类子结点挪动到“SelectedTables”面板上。

  ・点击Next。

  ・睁开Stock而且点击“>>”以便把一切的列挪动到“FieldstoDisplay”面板上。

  ・点击Next。

  ・选择Symbol而且点击向右的箭头来把它挪动到“GroupBy”面板上。

  ・点击Finish。

  6、实习4:把你的水晶报表绑定到CrystalReportViewer

  申明在这个实习中,你将把Stock工具呈报绑定到CrystalReportViewer,把呈报的数据源设置为一个工具汇合,而且用编程体例来添补一个工具汇合。

  具体步骤

  1.把呈报绑定到CrystalReportViewer。

  ・切换到默许的Code-Behind类,Default.aspx.cs。

  ・在类署名之上,到场对定名空间System.Collections的援用。

usingSystem.Collections;

  ・这个参考使你可以存取ArrayList类,而ArrayList完成了ICollection。这使得ArrayList成为用来构建一个为CrystalReports所辨认的工具汇合的多少类的范例之一。

  ・增加一个新的类级其余ArrayList,定名为stockValues。

privateArrayListstockValues;
  ・为ReportDocument呈报包装类增加一个新的类级其余声明,变量名为stockObjectsReport。并把它设置为private型。

privateReportDocumentStockObjectsReport;
  ・在你在实习1创立的ConfigureCrystalReports()办法中,声明一个字符串变量,定名它为reportPath,而且把一个指向当地呈报的运转时候路径赋值给它。把当地呈报文件的名字作为一个字符串参考传送给Server.MapPath()办法。如许以来,把当地呈报映照到运转时候文件路径。

StringreportPath=Server.MapPath("StockObjects.rpt");
  ・实例化ReportDocument类。

StockObjectsReport=newReportDocument();
  ・鄙人一行中,挪用ReportDocument实例的Load()办法,而且把reportPath字符串变量传送给它。

StockObjectsReport.Load(reportPath);
  ・这个ReportDocument类是CrystalDecisions.CrystalReports。Engine定名空间的一个成员。你已在“实习1:Web使用程序安装”中增加了对这个定名空间的声明(在C#中是利用“using”)。当你实例化ReportDocument而且加载一个呈报时,你能够经由过程SDK来存取这个呈报。

  ・然后,把这个呈报的数据源设置为“stockValuesArrayList”。

StockObjectsReport.SetDataSource(stockValues);
  ・最初,把CrystalReportViewer的ReportSource属性绑定到ReportDocument实例。

crystalReportViewer.ReportSource=stockObjectsReport;
  l.如今,这个Stock工具呈报被绑定到CrystalReportViewer而且页面显现准确的呈报;但是,以后的呈报被绑定到一个空数据源上,因而呈报中没有要显现的信息。鄙人一步中,你将用样本数据以编程体例添补stockValuesArrayList。

  2.以编程体例添补一个工具汇合。

  3.在这个义务中,你将把Session代码增加到ASPXcode-behind类。假如在session中没有值,将会天生默许值。假如session中有值,它们将被赋值到stockValuesArrayList中。

  ・在这个类中,增加一个新的public局限的不具有前往值的助理办法,定名为PopulateStockValuesArrayList()。

publicvoidPopulateStockValuesArrayList()
{}
  ・在PopulateStockValuesArrayList()办法中,在现有代码前,创立一个if/else前提块―它反省是不是存在一个名为stockValues的Session工具。

if(Session["stockValues"]==null)
{}
else
{}
  ・在这个If块中,实例化一个新的ArrayList()。

stockValues=newArrayList();
  ・然后,利用Stock类的重载机关器来创立和实例化Stock的三个实例。

Stocks1=newStock("AWRK",1200,28.47);
Stocks2=newStock("CTSO",800,128.69);
Stocks3=newStock("LTWR",1800,12.95);
  ・把这三个实例增加到stockValues。

stockValues.Add(s1);stockValues.Add(s2);stockValues.Add(s3);
  ・把更新的stockValuesArrayList增加到session中。

Session["stockValues"]=stockValues;
  ・在Else块中,到场一行代码以便把session中确当前值赋给stockValuesArrayList。

stockValues=(ArrayList)Session["stockValues"];
  ・最初,从ConfigureCrystalReports()办法中挪用PopulateStockValuesArrayList()。

  ・这应当是ConfigureCrystalReports()办法中被实行代码的第一行。

PopulateStockValuesArrayList();
  ・从Build菜单下,点击BuildSolution。

  ・假如你有任何构建毛病如今就修正它们。

  ・从Debug菜单下,点击“StartDebugging”。

  ・假如这是你启动调试器的第一次,那末将呈现一个对话框告知你必需修正Web.config文件。点击OK按钮以启动调试功效。

  ・Default.aspx页面连同三个缺省值加载到你的扫瞄器中。

  ・封闭InternetExplorer窗口。
<P>  7、实习5:把数据静态地增加到股票呈报上

  申明在上一个实习中,你用编程体例添补工具汇合。在本实习中,你将进修怎样静态地从你的网站把信息增加到你的数据源。该信息可以在你的报表中失掉主动更新。

  具体步骤

  1.增加控件到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设置为“AddStockInformation”。

  ・最初,双击“AddStockInformation”按钮。

  ・双击按钮控件将翻开Code-behind类而且主动天生一个addStockInformation_click()事务处置器。

  2.把信息增加到汇合。

  ・在addStockInformation_click()事务处置器中,创立而且实例化一个新的Stock工具。

Stocktemp=newStock();
  ・在addStockInformation_click()办法中,创立一个try/catch块。

try
{}
catch
{}
  ・输出到一个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.ToInt32(volume.Text);
  ・在try/catch块的表面,把“StockObject”增加到stockValuesArrayList。

stockValues.Add(temp);
  ・更新以后存在于Session中的stockValues的值。

Session["stockValues"]=stockValues;
  ・最初,挪用ConfigureCrystalReports()办法。这将把呈报从头绑定到这个更新过的stockValues―一个工具汇合。

ConfigureCrystalReports();
  ・从Build菜单下,点击“BuildSolution”。

  ・假如你碰到任何构建毛病,则如今就修正。

  ・从Debug菜单下,点击“StartDebugging”。

  ・假如没有呈现构建毛病,Default.aspx页面将利用三个缺省值加载到你的扫瞄器。为了增加别的值,得当地添补文本框而且点击“AddStockInformation”按钮。呈报将会主动态地更新。

  ・当你运转你的网站时,呈报将装载到你的扫瞄器窗口中―利用三个缺省值(你是在实习4中以编程体例增加的)。在呈报下面共有三个TextBox控件和一个按钮控件。利用这些控件,你能够静态地更新你的一个工具汇合,而且看到这一更新的了局会反应到你的呈报中。

  ・封闭InternetExplorer窗口。
<P>  8、实习6:在呈报中增加图表和择要信息

  申明至此,你已具有一个全功效的网站,它将显现一个基于一个工具汇合的水晶报表。该站点将显现以编程体例输出到一个工具汇合中的信息,和在运转时候主动态地增加的信息。

  在这个实习中,你将增加两个图表,一个calculated字段和择要信息。

  具体步骤

  1.把一个图表增加到呈报中。

  ・从solutionexplorer下,翻开StockObjects.rpt。

  ・从CrystalReports菜单下,选择Insert,而且点击Chart。

  ・在“ChartExpert”对话框中,选择一个Pie图。

  ・选择Data选项卡。

  ・选择Stock.Symbol而且点击最右偏向箭头以把Stock.Symbol字段挪动到“OnChangeOf”字段。

  ・选择Stock.Volume而且点击最右偏向箭头以把Stock.Volume字段挪动到ShowValue(s)字段。

  ・点击OK。

  ・创立一个新的“ReportHeader”节,而且把一个图表工具增加到这一节中。

  ・从Debug菜单下,点击“StartDebugging”。

  ・假如不呈现构建毛病,那末Default.aspx页面将加载到你的扫瞄器中。

  ・封闭InternetExplorer窗口。

  2.增加一个基于一个formula字段的图表。在这一节中,你将创立一个显现算计信息的图表。起首,你将创立一个公式以盘算一个特定的持股值,然后创立一个饼图―它显现你的一切持股值的比例值。

  ・从CrystalReports菜单下,选择Report,而且点击“FormulaWorkshop”。

  ・在“FormulaWorkshop”对话框中,选择“FormulaFields”。

  ・点击New按钮创立一个新公式。

  ・在“FormulaName”对话框中,输出值。

  ・点击“UseEditor”。

  ・增加代码以把price字段值与volume字段值相乘。

{Stock.Volume}*{Stock.Price}
  ・点击Save并封闭。

  ・从CrystalReports菜单下,选择Insert而且点击Chart。

  ・在“ChartExpert”对话框下,选择一个Pie图。

  ・点击Data选项卡。

  ・选择Stock.Symbol而且点击最右偏向箭头把Stock.Symbol字段挪动到“OnChangeOf”字段。

  ・选择Worth而且点击最右偏向箭头把Worth公式挪动到“ShowValue(s)”字段。

  ・点击Text选项卡。

  ・在Title中间,扫除“Auto-text”复选框。

  ・在Title字段中输出Worth/Symbol。

  ・点击OK。

  ・一个新的ReportHeader节被创立,而且有一个Chart工具被增加到这一节上。

  ・为了从头安排在一个水晶报表中的工具的地位,你能够用鼠标拖动之并把它们放在任何你想安排的地位。你可使用在表单底部的“MainReportPreview“按钮来显现你的呈报的一个预览。

  3.把Formula和Summary字段增加到你的呈报中。在这一节中,你增加一个formula字段到你的呈报,另有一个择要字段―它来盘算你的portfolio的总值。

  ・睁开FieldExplorer的“FormulaFields”结点。

  ・把worth公式拖动到你的呈报。把这个字段放到你的呈报的节中。

  ・假如“FieldExplorer”不成见,从View菜单下选择“DocumentOutline”。这个字段将显现每行的值。利用一个summary字段显现你的portfolio的总值。

  ・从“CrystalReports”菜单下,选择“Insert”,点击“Summary”。

  ・“InsertSummary”对话框呈现。

  ・从“ChoosetheFieldtoSummarize”字段下选择Worth公式。

  ・从“CalculatethisSummary”字段下选择“Sum”。

  ・从“SummaryLocation”字段下选择“GrandTotal”。

  ・点击OK。

  把一个择要字段增加到呈报中。

  ・从“Debug”菜单下,点击“StartDebugging”。

  ・假如没有呈现构建毛病,Default.aspx页面将加载到你的扫瞄器。

  ・封闭InternetExplorer窗口。

  4.增加一个后面已存在的呈报。在这一节中,你将让你的Web使用程序利用一个位于你的文件体系中的现有呈报。

  ・右击SolutionExplorer中的StockObjects.rpt。

  ・点击Delete。

  ・点击弹出的对话框中的OK。

  ・在SolutionExplorer中,右击加粗的网站名,然后点击“AddExistingItem”。

  ・在“AddExistingItem”对话框中,导航到“C:MicrosoftHands-On-LabHOL-ILL05SourceExcercises”,并选择StockObjects.rpt文件。

  ・点击Add。

  ・从Debug菜单下,点击“StartDebugging”。

  ・假如没有呈现构建毛病,那末Default.aspxpage将加载到你的扫瞄器中而且显现你的新呈报。

  ・封闭InternetExplorer窗口。我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)

兰色精灵 发表于 2015-1-19 21:17:11

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

小女巫 发表于 2015-1-25 11:24:06

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

只想知道 发表于 2015-2-2 21:55:26

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

愤怒的大鸟 发表于 2015-2-8 08:05:41

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

不帅 发表于 2015-2-25 01:55:34

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

因胸联盟 发表于 2015-3-7 15:42:35

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

小魔女 发表于 2015-3-15 09:01:35

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。

莫相离 发表于 2015-3-21 23:03:47

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
页: [1]
查看完整版本: ASP.NET网站制作之VS2005+Crystal Report开辟Web使用