翻译|使用教程|编辑:凌霄汉|2022-03-29 11:07:12.993|阅读 111 次
概述:此次报表开发工具TeeChart Pro .NET使用教程将为大家带来如何使用ASP.NET 应用程序。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
接下来继续为大家介绍上一篇文章未讲完的部分,如何使用ASP.NET 应用程序。
在 WebForm 中使用 WebChart 的替代方法是将 TeeChart 用作标准 asp (aspx) 页面中的脚本化“不可见”控件。
TeeChart 可以通过内部 Chart 类在 ASP 中自由编写脚本,但要利用 TeeChart 事件,我们建议使用 TChart Windows 窗体组件或 WebChart 控件
假设使用 TChart,您需要采取的初始步骤来设置 TeeChart 项目是:
客户端浏览器页面 (SeriesTypes.aspx) 包含一个图像,其 IMG 链接是 aspx 服务器脚本 (ShowSeries.aspx)。客户端页面上的提交按钮使用参数化 serverChart 处理所需的变量调用服务器脚本。该按钮将变量作为参数的一部分发送,以设置客户端页面图表图像的 imageURL,因此返回基于处理参数的动态图表。
要使用 TeeChart 服务器端进行编码,请在脚本页面上添加 using 到 TeeChart:
using Steema.TeeChart;
然后为 TChart 声明一个变量,并在 Page_Load 事件开始时创建它
private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); /* ...add Series and data, etc ... */ }
图表检索的关键代码组件是:
客户端“获取”指令。 这可以通过提交按钮或其他方式(例如组合框)启动,并根据客户端参数从服务器“获取”图表。 图表请求可以作为“传统的 Get url 行发送,其中参数作为一个 URL 行传递,或者可以通过 ASP.NET 的“在页面之间传递服务器控制值”来完成。 调用服务器脚本的编码将在 WebForms Code behind 页面中进行。
private void sendInfo() { seriesType=DropDownList1.Items[DropDownList1.SelectedIndex].ToString(); viewType=CheckBox1.Checked.ToString(); Image1.ImageUrl="//"+webServer /*use webserver variable for server*/ +"/TeeChartForNET/ASPStream/ProcessChart.aspx?seriestype=" +seriesType+"&view="+viewType; }
服务器脚本从客户端接收 GET 请求并运行其 Page_Load 事件。 如果可以创建图表并且接收的参数可用于定义图表的填充方式。 然后将图表呈现为图像并作为流向客户端返回。
private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); tChart.AfterDraw += new Steema.TeeChart.TChart.PaintChartEventHandler(this.tChart_AfterDraw); /* ...add Series and data, etc ... */ //Process Get parameters received from client if (Request.QueryString["view"]=="False") tChart.Aspect.View3D=false; else tChart.Aspect.View3D=true; MemoryStream tempStream = new MemoryStream(); tChart.Export.Image.PNG.Save(tempStream); Response.ContentType="Image/PNG"; Response.OutputStream.Write(tempStream.ToArray(),0,(int)tempStream.Length); tempStream.Close(); }
通过在图表创建后添加事件,可以为自由脚本 TeeChart ASP 应用程序添加图表创建事件。
private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); tChart.AfterDraw += new Steema.TeeChart.TChart.PaintChartEventHandler(this.tChart_AfterDraw); /* ...add Series and data, etc ... */ MemoryStream tempStream = new MemoryStream(); tChart.Export.Image.PNG.Save(tempStream); Response.ContentType="Image/PNG"; Response.OutputStream.Write(tempStream.ToArray(),0,(int)tempStream.Length); tempStream.Close(); } private void tChart_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g) { string tmpStr="Copyright My Organisation "+DateTime.Now.ToString(); g.TextOut(g.Chart.Width-(int)g.TextWidth(tmpStr)-5,g.Chart.Height-(int)g.TextHeight("H")-3,tmpStr); }
AfterDraw 事件代码将在图表创建时执行,在这种情况下,当图表呈现为图像时,相关消息将包含在图表画布上。 如果您希望在客户端页面图表上使用基于用户鼠标点击的交互式事件,我们建议您在 WebForm 上使用 WebChart 组件。
通过安装程序安装 .NET 的默认 TeeChart 创建的文件夹和 IIS 虚拟文件夹足以访问 TeeChart 中包含的 ASP.NET 示例。 WebForm 应用程序假定在 IIS 中激活会话支持以移动临时图表信息。 可以在 Visual Studio.NET 中修改示例项目以使用“文件”作为临时存储图表的媒介。 在 Windows 2000 中运行良好的测试中。在 Windows 2003 中,默认安装的附加安全限制限制了使用默认“_chart_temp”文件夹的可能性(临时文件夹的名称和位置是可配置的)。 在 Win2003 服务器中,系统管理员必须修改安全权限,以允许相关 ASP.NET 应用程序将临时文件保存到磁盘。
WebChart 工具可用于从编辑器工具面板添加到 WebChart。 许多非 WebChart 特定的工具可以与 WebChart 一起使用,除了那些响应鼠标移动的工具(除了下面介绍的 WebChart 工具本身)。
该工具以最简单的形式激活数据点鼠标悬停标签,当鼠标经过一个点时显示。 热点工具也可用于 Winform 图表,但 WebChart 的操作性质不同,如此处所述。 WebChart Hotspot Tool 生成与每个数据点关联的地图区域。 可以从以下选项中选择地图操作:
使用 Style 属性定义标记样式。
Steema.TeeChart.Tools.SeriesHotspot hotspotTool = ((Steema.TeeChart.Tools.SeriesHotspot)WebChart1.Chart.Tools[0]);
使用 GetHTMLMap 事件设置从数据点调用的 URL。 URL 选项可以通过编辑器设置,但您必须对事件进行编码以设置正确的 URL。
//init code.... Steema.TeeChart.Tools.SeriesHotspot hotspotTool = ((Steema.TeeChart.Tools.SeriesHotspot)WebChart1.Chart.Tools[0]); hotspotTool.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspotTool_GetHTMLMap); //event code: private void hotspotTool_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e) { if (CheckBox1.Checked) //open new window? e.PointPolygon.Attributes="target='_blank'"; else e.PointPolygon.Attributes="target='_self'"; tab if (e.Series==WebChart1.Chart.Series[0]) e.PointPolygon.HREF="//" + TextBox1.Text; //set URL according to textbox text + TextBox1.Text; //set URL according to textbox text if (e.Series==WebChart1.Chart.Series[1]) e.PointPolygon.HREF="//" + TextBox2.Text; if (e.Series==WebChart1.Chart.Series[2]) e.PointPolygon.HREF="//" + TextBox3.Text; + TextBox3.Text; if (e.Series==WebChart1.Chart.Series[3]) e.PointPolygon.HREF="//" + TextBox4.Text; }
脚本选项可用于处理您可能希望通过 Javascript 添加到图表的任何自定义内容或增值。 选择脚本作为选项TeeChart时,请选中使用帮助程序脚本的选项,当前可用:'注释'。 您可以选择不使用 Helperscript 并定义您自己的输出。
protected void Page_Load(object sender, System.EventArgs e) { //initialization Chart ch1 = WebChart1.Chart; Steema.TeeChart.Themes.ColorPalettes.ApplyPalette(ch1, 9); Steema.TeeChart.Tools.SeriesHotspot hotspot1 = new Steema.TeeChart.Tools.SeriesHotspot(); ch1.Legend.Visible = false; ch1.Tools.Add(hotspot1); hotspot1.MapAction = Steema.TeeChart.Styles.MapAction.Script; hotspot1.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspot1_GetHTMLMap); //....etc... more init code } private void hotspot1_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e) { //This example calls a Bar Series but e.Series and e.PointPolygon.ValueIndex could be sent //as arguments for a drilldown query. //The prepared HelperScriptAnnotation text accepts your text as a variable for the Annotation //In the following case it calls an aspx script to generate and return a Chart as an image e.PointPolygon.Attributes=String.Format(Texts.HelperScriptAnnotation); //The annotation could, alternatively, present text in the mouseover hint, eg.: //e.PointPolygon.Attributes=String.Format(Steema.TeeChart.Texts.HelperScriptAnnotation,"hello world."); }
ScrollTool 将滚动条添加到 WebChart 的底部。 您可以设置图表的可见部分大小和起始位置。 图表也是可拖动的,尽管该功能可能被停用。 ScrollTool 可以与 Hotspot Tool 结合使用。
使用编辑器添加 ScrollTool 会自动将 Chart 设置为 2D 并移动下 Axis 以为滚动条留出空间。 滚动条在设计时不可见。
将 ViewSegmentSize 和 StartPosition 与 SegmentViewUnits 结合使用来设置可滚动大小。
Steema.TeeChart.Tools.ScrollTool scrollTool = ((Steema.TeeChart.Tools.ScrollTool)WebChart1.Chart.Tools[0]); scrollTool.StartPosition = 30; scrollTool.SegmentViewUnits = Steema.TeeChart.Tools.ScrollToolViewUnit.percent; scrollTool.ViewSegmentSize = 20;
ZoomTool 允许选择要处理的图表的子区域以进行缩放。 可以通过鼠标在图表区域上拖动来选择该区域,缩放坐标返回到服务器以创建一个缩放区域。 该区域可以通过在相反方向拖动来取消缩放。
要使用 ZoomTool,您应该将以下方法添加到您的页面代码中。
private void CheckZoom(WebChart wChart) { ArrayList zoomedState=(ArrayList)Session[wChart.ID+"Zoomed"]; zoomedState=((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState==null) Session.Remove(wChart.ID+"Zoomed"); else Session.Add(wChart.ID+"Zoomed",zoomedState); }
或 Page.Cache:
{ ArrayList zoomedState = (ArrayList)Page.Cache[wChart.ID + "Zoomed"]; zoomedState = ((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState == null) Page.Cache.Remove(wChart.ID + "Zoomed"); else Page.Cache.Add(wChart.ID + "Zoomed", zoomedState); }
将缩放或滚动工具添加到 WebChart 时,需要使用 Window.onload 事件来初始化工具的特征。 如果您需要根据自己的需要进一步使用 onload 事件,请在页面中添加一个名为 windowOnload 的新函数并将您的代码放在那里。
如果您想了解TeeChart for .NET正版价格,欢迎咨询
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn