blackpeony85 发表于 2017-6-23 11:35:06

Lenka.Guo 发表于 2017-6-22 16:30
图表控件使用视频:http://gcdn.gcpowertools.com.cn/forum.php?mod=viewthread&tid=24603&extra=page%3D1
...

已经详细看过相关资料,再弱弱的问一个问题,区域报表中的图表如何给Series绑定数据源中的字段。

Lenka.Guo 发表于 2017-6-23 14:47:38

图表报表,请先学习如何在设计器中设计图表报表,报表教程:http://www.gcpowertools.com.cn/docs/ActiveReports/AR9Guide/#!Documents/_346.htm

blackpeony85 发表于 2017-6-23 16:02:20

Lenka.Guo 发表于 2017-6-23 14:47
图表报表,请先学习如何在设计器中设计图表报表,报表教程:http://www.gcpowertools.com.cn/docs/ActiveRe ...

谢谢,我已经掌握方法了。

Lenka.Guo 发表于 2017-6-23 18:08:41

好的,谢谢反馈

blackpeony85 发表于 2017-6-26 11:09:34

Lenka.Guo 发表于 2017-6-23 18:08
好的,谢谢反馈

虽然方法掌握了,先把大量待绘制曲线的XY坐标点存储到DataTable中,然后在在报表中给chart中的Series绑定DataTable中的字段,可是绘制17万个点还是报内存溢出,请问这个问题没解决办法了吗?
      
                SectionReport1 srp = new SectionReport1();
                srp.Document.CacheToDisk = true;
                srp.Document.CacheToDiskLocation = "c:\\Temp";
                srp.chartControl1.DataSource = GetDataSource();
                this.viewer1.LoadDocument(srp);
private DataTable GetDataSource()
      {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("A1");
            dt.Columns.Add("B1");
            dt.Columns.Add("C1");
            dt.Columns.Add("T1");

            try
            {
                float flowPos = 500;
                float[] A1 = Commonfunc.GetdglChartSeriesArray(this.alyConf, this.dglData, (Byte)digital_ch_id.CONTACT_A1, 10, flowPos, true);
                flowPos -= 20;
                float[] B1 = Commonfunc.GetdglChartSeriesArray(this.alyConf, this.dglData, (Byte)digital_ch_id.CONTACT_B1, 10, flowPos, true);
                flowPos -= 20;
                float[] C1 = Commonfunc.GetdglChartSeriesArray(this.alyConf, this.dglData, (Byte)digital_ch_id.CONTACT_C1, 10, flowPos, true);
                flowPos = 200;
                double[] T1 = Commonfunc.GetaglChartSeriesArray(this.alyConf, this.algData[(Byte)analog_ch_id.SENSOR_1], (Byte)analog_ch_id.SENSOR_1, 12, flowPos);
                for (int i = 0; i < this.alyConf.samplecount; i++)
                {
                  dt.Rows.Add(((double)i / alyConf.samplerate * 1000).ToString("0.0"), A1, B1, C1, T1);
                }
            }
            catch(Exception ex)
            {}            
            return dt;

      }
最后在报表中曲线绑定DataTable:
                this.chartControl1.Series.ValueMemberX = "ID";
                this.chartControl1.Series.ValueMembersY = "A1";
                this.chartControl1.Series.ValueMembersY = "B1";
                this.chartControl1.Series.ValueMembersY = "C1";
                this.chartControl1.Series.ValueMembersY = "T1";
数据量小的时候,完美。数据量一大,还是内存溢出,崩溃。请问在ActiveReports中如何嵌入第三方控件,如何开发?

Lenka.Guo 发表于 2017-6-26 11:33:29

您好,
AR会在一小片空间内来绘制17万条数据,所以肯定会报内存溢出的问题,暂时不支持17万条数据的折线图绘制。
AR区域报表可以支持第三方控件,但必须在VS中实现,请参考博客:http://blog.gcpowertools.com.cn/post/ActiveReports-Controls.aspx

另外新问题开新帖
页: 1 [2]
查看完整版本: ActiveReports区域报表中插入chart,并非绑定绘制曲线的问题