关于水晶报表分析及制作
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;
}
}
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.“数据”,对应的字段 (关键)
3.“文本”。
可以在页脚的 字段 右键-“更改汇总操作” 用来汇总数据
OK!或许你会问。那图片之间的数据的操作时怎么弄的那。
我只能说。这就是工具。要是我们需要开发这样的工具当然要研究透彻。
至于像我这样的刚入学的新手,要先了解它怎么用。才能理解它是怎么制作的。哈哈。
用了一天时间。这就是个总结了