本帖最后由 blackpeony85 于 2017-6-20 14:38 编辑
用VS2013做Winforms开发,在工程中添加了一个ActiveReports10 Section Report(code-based)报表
并且在报表页面中插入了一个chart,因为绘制图表的数据是程序中计算出的一组值,所以chart控件中的曲线坐标不是从数据库中读取。
自己写了代码,给chart控件的Series绑定坐标值
srp.chartControl1.Series[0].Points.AddRange(GetDglCharSeriesPoint(float[] aglData, float flowPos));
void GrapeCity.ActiveReports.Chart.DataPoint GetDglCharSeriesPoint(float[] aglData, float flowPos)
{
GrapeCity.ActiveReports.Chart.DataPoint[] ps = new GrapeCity.ActiveReports.Chart.DataPoint[samplecount];
for(int i = 0; i <samplecount;i++ )
{
ps = new GrapeCity.ActiveReports.Chart.DataPoint(((double)i / samplerate * 1000).ToString("0.0"), new GrapeCity.ActiveReports.Chart.DoubleArray((aglData + flowPos).ToString()), false);
}
return ps;
}
这样的话就可以在chart中绘制出自己想要的曲线。并且这种方法可以成功实现。因为数据量较大,绘制曲线速度特别慢,并且是不是报错一个错误:
为了防止图片不显示,错误明细:
System.OutOfMemoryException: 引发类型为“System.OutOfMemoryException”的异常。
在 System.Attribute.InternalGetCustomAttributes(PropertyInfo element, Type type, Boolean inherit)
在 System.Attribute.GetCustomAttributes(MemberInfo element, Type type, Boolean inherit)
在 System.Attribute.GetCustomAttribute(MemberInfo element, Type attributeType, Boolean inherit)
在 GrapeCity.ActiveReports.Chart.Item.ToXml(String nodeName, GraphXmlSerializationContext context)
在 GrapeCity.ActiveReports.Chart.DataPoint.ToXml(String nodeName, GraphXmlSerializationContext context)
在 GrapeCity.ActiveReports.Chart.Item.#VDC(String nodeName, GraphXmlSerializationContext context)
在 #CDC.#KU.ToXml(Object obj, String nodeName, GraphXmlSerializationContext context)
在 #CDC.#KU.ToXml(Object obj, String nodeName, GraphXmlSerializationContext context)
在 GrapeCity.ActiveReports.Chart.Item.ToXml(String nodeName, GraphXmlSerializationContext context)
在 GrapeCity.ActiveReports.Chart.Item.#VDC(String nodeName, GraphXmlSerializationContext context)
在 #CDC.#KU.ToXml(Object obj, String nodeName, GraphXmlSerializationContext context)
在 #CDC.#KU.ToXml(Object obj, String nodeName, GraphXmlSerializationContext context)
在 GrapeCity.ActiveReports.Chart.Exchange.Persistence.ToXml(SharpGraph sharpChartControl, XmlElement rootElement, Boolean includeData)
在 GrapeCity.ActiveReports.Chart.SharpGraph.QuickSave(BinaryWriter binWriter)
在 GrapeCity.ActiveReports.SectionReportModel.ChartControl.QuickSave(BinaryWriter binWriter)
在 GrapeCity.ActiveReports.SectionReportModel.ARControl.#MYA(BinaryWriter binWriter)
在 GrapeCity.ActiveReports.SectionReportModel.Section.#jBb(Stream stream)
在 GrapeCity.ActiveReports.SectionReportModel.Section.#gBb()
在 #sxA.#mqb.#LDb()
在 #sxA.#mqb.#SDb(Section section, Int32 insPos)
在 #sxA.#vqb.#vEb()
在 #sxA.#vqb.#bZA(Page newPage, Single left, Single top, Single right, Single bottom, UInt32 flags, UInt32& status)
在 GrapeCity.ActiveReports.SectionReport.#4yb()
在 GrapeCity.ActiveReports.SectionReport.Run(Boolean syncDocument)
在 GrapeCity.ActiveReports.SectionReport.Run()
在 GrapeCity.ActiveReports.Viewer.Win.Rpx.RpxReport.LoadDocument(SectionDocument document)
在 GrapeCity.ActiveReports.Viewer.Win.Rdf.RdfDocumentReportBase.<>c__DisplayClass11.#7yz()
在 GrapeCity.ActiveReports.Viewer.Win.AsyncLoader.<>c__DisplayClass7.#cAz(Object param0, DoWorkEventArgs param1)
在 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
在 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
不知道这种非绑定的方式绘制曲线是否正确,速度是否还能提高,异常错误什么原因?
|