• 关于水晶报表分析及制作


    关于水晶报表分析及制作

    1. 水晶报表的 推、拉模式 推拉结合才能解决问题

    2. 水晶报表的基本操作和数据连接

    string reportPath = Server.MapPath("StockObjects.rpt");

    stockObjectsReport = new ReportDocument();

    stockObjectsReport.Load(reportPath);

    stockObjectsReport.SetDataSource(stockValues);

    crystalReportViewer.ReportSource = stockObjectsReport;

    3. 水晶报表的数据的 接口的 详细分析

    private ArrayList stockValues;//操作具体的 LIST 实现 (数据封存在SESSION)

    private ReportDocument stockObjectsReport;

    首先在报表的字段资源管理器中写出对应的

    公式字段:写出对应的公式

    {Stock.Volume}*{Stock.Price}

    运行总计字段:

    其数据报表的接口被微软封装 。我们要根据图像的右键-“数据专家”来

    判断 图表 的

    1.“类型”,图片图像

    2.“数据”,对应的字段

    3.“文本”。

    可以在页脚的 字段 右键-“更改汇总操作” 用来汇总数据

    找了半年。原来它用的是 OBJectCollection 用的 。CD(类关系图)(以一个数据BEAN类作为数据封装的数据结构)的文件 。和XSD类似的 数据框架图文件 作为数据源

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public class Stock
    {
        private string _symbol;
        private double _price;
        private int _volume;

        public Stock()
        {

        }

        public string Symbol
        {
            get
            {
                return _symbol;
            }
            set
            {
                _symbol = value;
            }
        }
        public double Price
        {
            get
            {
                return _price;
            }
            set
            {
                _price = value;
            }
        }
        public int Volume
        {
            get
            {
                return _volume;
            }
            set
            {
                _volume = value;
            }
        }
        public Stock(String symbol, int volume, double price)
        {
            _symbol = symbol;
            _volume = volume;
            _price = price;
        }

    }

    1

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;
    using System.Collections;

    public partial class _Default : System.Web.UI.Page
    {
        private ArrayList stockValues;
        private ReportDocument stockObjectsReport;

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        private void ConfigureCrystalReports()
        {
            PopulateStockValuesArrayList();

            string reportPath = Server.MapPath("StockObjects.rpt");

            stockObjectsReport = new ReportDocument();
            stockObjectsReport.Load(reportPath);
            stockObjectsReport.SetDataSource(stockValues);
            crystalReportViewer.ReportSource = stockObjectsReport;
        }

        private void Page_Init(Object sender, EventArgs e)
        {
            ConfigureCrystalReports();
        }

        public void PopulateStockValuesArrayList()
        {
            if (Session["stockValues"] == null)
            {
                stockValues = new ArrayList();
                Stock s1 = new Stock("AWRK", 1200, 28.47);
                Stock s2 = new Stock("CTSO", 800, 128.69);
                Stock s3 = new Stock("LTWR", 1800, 12.95);
                stockValues.Add(s1);
                stockValues.Add(s2);
                stockValues.Add(s3);
                Session["stockValues"] = stockValues;
            }
            else
            {
                stockValues = (ArrayList)Session["stockValues"];
            }
        }
        protected void addStockInformation_Click(object sender, EventArgs e)
        {
            Stock temp = new Stock();
            try
            {
                temp.Symbol = symbol.Text;
                temp.Price = Convert.ToDouble(price.Text);
                temp.Volume = Convert.ToInt32(volume.Text);
            }
            catch
            {
            }
            stockValues.Add(temp);
            Session["stockValues"] = stockValues;
            ConfigureCrystalReports();
        }
    }

    用 一个CS 类 做为数据BEAN 。然后制作一个 CD(类关系)文件,用来描述一种以这个类作为 模型 的数据结构 。

    然后建立一个水晶报表 RPT。 水晶报表的数据源 连接文件就是这个CD文件。固定数据源格式。

    最初的数据源的数据 是我们写在这个 Default。aspx.cs中。 然后在页面中我们 得到页面的 我们输入的数据 。

    这些数据作为AarryList 数据BINGding 给 crystalreport (水晶报表)。

    水晶报表的设计分为三步

    1.水晶报表 数据源配置 及 绑定(上面已经说了)

    2.水晶报表格式 及字段的设置 拖拉即可完成

    3.所需的 一个“ 图表” 的数据设置

    图表数据的设置:

    其数据报表的接口被微软封装 。我们要根据图像的右键-“数据专家”来

    判断 图表 的

    1.“类型”,图片图像

    2.“数据”,对应的字段 (关键)

    2

    3.“文本”。

    可以在页脚的 字段 右键-“更改汇总操作” 用来汇总数据

    OK!或许你会问。那图片之间的数据的操作时怎么弄的那。

    我只能说。这就是工具。要是我们需要开发这样的工具当然要研究透彻。

    至于像我这样的刚入学的新手,要先了解它怎么用。才能理解它是怎么制作的。哈哈。

    用了一天时间。这就是个总结了

  • 相关阅读:
    uniapp 小程序分享功能
    uniapp 输入有值后按钮变色
    css 跑马灯
    uniapp 复选框问题
    【Python】where cut query melt函数用法
    【Python】Pivot_table透视表用法及CategoricalDtype自定义排序
    【Python】Merge函数的用法
    【Python】extract及contains方法(正则提取筛选数据)
    Promise
    CSS垂直居中的方法
  • 原文地址:https://www.cnblogs.com/mahaisong/p/1977973.html
Copyright © 2020-2023  润新知