浅谈ASP.NET报表控件 (转)

项目中有报表图形化的需求, 于是开始在网上找第三方chart控件。因时间紧迫,大至确定了几个候选:一、Office带的OWC控件;二、ComponentOne;三、Web Chart。本文将讲解ASP.NET报表控件。

  OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口。

  接着找到了ComponentOne的Web chart做出的各种效果图,效果极佳。我一下子被迷住了,决定就是它,于是马不停蹄的下了最新版100多M的安装文件,又花一上午找了个可以用的注册码,再找了篇教程,OK万事俱备,兴匆匆的开始写代码。需求不复杂,在一个页面上画出多条折线图即可,根据以往经验,这种大型商业共享软件在官方站点上看两个Example顶多一小时绝对能搞定的。但结果让我非常的恼火,官方的Example简单的它偏不提供,弄些什么AJAX的,一大堆实现辅助效果的代码,你要找的核心的那三四行打死也找不到,好像就怕你一下子把它的Example看明白了。历来讨厌这种软件。于是卸载、删除......等全部弄完,一天过去了。

  还好,后来找到了Web Chart。代码超简洁,效果也还不错,写些简单的ASP.NET报表控件示例供大家参考:

  ASP.NET报表控件一、折线图

折线图

  1.//引用命名空间

  2.using WebChart;

  3.

  4.//定义一个颜色数组,供循环时为不同的记录填充不同的颜色

  5.private string[] myColor = new string[]

  6.{

  7.    "Tomato",//西红柿

  8.    "Black",

  9.    "Gold",

  10.    "Blue",

  11.    "Green",

  12.    "Orange",

  13.    "Pink",//粉红

  14.    "Violet",//紫罗兰

  15.    "Orchid",//淡紫色

  16.    "Lime",//亮绿

  17.    "Tan",//茶色

  18.    "Red",

  19.    "Navy"//橘红

  20.};

  21.

  22.//用静态方式示例了画出一条两个点的最简单折线.www.qichepeijian.com.实际项目据此做循环而以.

  23.private void doIt()

  24.{

  25.    //创建折线对象

  26.    LineChart myChart = new LineChart();

  27.    //为折线填充颜色

  28.    myChart.Line.Color = Color.FromName(myColor[0]);

  29.    myChart.Fill.Color = Color.FromName(myColor[0]);

  30.    myChart.LineMarker = new DiamondLineMarker(8, Color.FromName(myColor[0]), Color.FromName(myColor[0]));

  31.    //图例说明

  32.    myChart.Legend = "折线一";

  33.    //添加第一个点,参数一为x座标上的名称,参数二为y座标上的值

  34.    myChart.Data.Add(new ChartPoint("一", float.Parse("100")));

  35.    //添加第二个点

  36.    myChart.Data.Add(new ChartPoint("二", float.Parse("200")));

  37.    //chart为控件ID

  38.    this.chart.Charts.Add(myChart);

  39.    this.chart.RedrawChart();

  40.}

  ASP.NET报表控件二、柱状图

柱状图

  41.//颜色数组

  42.private string[] myColor = new string[]

  43.{

  44.    "Fuchsia",

  45.    "Black",

  46.    "Gold",

  47.    "Blue",

  48.    "HotPink",

  49.    "Orange",

  50.    "Peru",

  51.    "DodgerBlue",

  52.    "Lime",

  53.    "Tan",

  54.    "Red",

  55.    "GreenYellow",

  56.    "DarkGreen",

  57.    "DimGray",

  58.    "Orchid"

  59.};

  60.

  61.//调用该方法生成柱状图

  62.private void bindchart()

  63.{

  64.    //获取一个DataTable,具体函数略...

  65.    DataTable dt = this.getdt();

  66.    if (dt != null)

  67.    {

  68.        if (dt.Rows.Count > 0)

  69.        {

  70.            //遍历DataTable为每条记录生成一个柱状

  71.            for (int i = 0; i < dt.Rows.Count; i++)

  72.            {

  73.                //创建对象

  74.                ColumnChart mychart = new ColumnChart();

  75.                //设置柱子宽度

  76.                mychart.MaxColumnWidth = 48;

  77.                //颜色

  78.                mychart.Fill.Color = Color.FromName(this.myColor[i]);

  79.                //在柱子上显示数量

  80.                mychart.DataLabels.Visible = true;

  81.                //数量的字体

  82.                mychart.DataLabels.Font = new Font("Verdana", 14);

  83.                //添加

  84.                mychart.Data.Add(new ChartPoint("", float.Parse(dt.Rows[i]["num"].ToString())));

  85.                //备注

  86.                mychart.Legend = dt.Rows[i]["name"].ToString();

  87.                this.chart.Charts.Add(mychart);

  88.            }

  89.            //辅助设置

  90.            //背景色

  91.            chart.Background.Color = Color.FromArgb(165, 0, 16);

  92.            chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

  93.            chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

  94.            //内部线条

  95.            chart.Border.Color = Color.FromArgb(200, 200, 200);

  96.            //边框样式

  97.            chart.BorderStyle. = BorderStyle.None;

  98.            //y最大值

  99.            double max = double.Parse(dt.Compute("MAX(num)","").ToString());

  100.            //递增值

  101.            int intv = 2;

  102.

  103.            //数量小于16的情况

  104.            if (max < 16)

  105.            {

  106.                max = 16;

  107.            }

  108.            //大于16的情况

  109.            else

  110.            {

  111.                intintv = int.Parse(Math.Ceiling(max/8).ToString());

  112.                max += intv;

  113.            }

  114.

  115.            //设置Y轴终点值

  116.            chart.YCustomEnd = int.Parse(max.ToString());

  117.            //y递增值

  118.            chart.YValuesInterval = intv;

  119.

  120.            //生成

  121.            this.chart.RedrawChart();

  122.        }

  123.    }

  124.}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-672414/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-672414/

【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值