水晶报表CrystalReports很强大也很简单!
生活随笔
收集整理的這篇文章主要介紹了
水晶报表CrystalReports很强大也很简单!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
水晶報表很強大啊!
去年就搞過,但是由于當時知道的東西太少,對于數據綁定的機制理解的太淺,最后也沒弄出個所以然。最近看到別人做的成果之后才堅定這個信念,CrystalReports可以實現很復雜的報表!煤礦行業的報表很復雜不是嗎,用CrystalReports來解決吧!這里練習了一下CrystalReports的使用。
看看煤礦儲量管理的一張報表,啊,真的很復雜啊!
圖1
仔細分析,其中有一部分(紅色框表示)是可以作為一張子表顯示的。模擬這個子表,首先定義一個類Res,很簡單,就幾個屬性字段。
View Code 1 namespace 水晶報表練習2 {
3 class Res
4 {
5 double x;
6
7 public double X
8 {
9 get { return x; }
10 set { x = value; }
11 }
12 double y;
13
14 public double Y
15 {
16 get { return y; }
17 set { y = value; }
18 }
19 double x1;
20
21 public double X1
22 {
23 get { return x1; }
24 set { x1 = value; }
25 }
26 double y1;
27
28 public double Y1
29 {
30 get { return y1; }
31 set { y1 = value; }
32 }
33 double x2;
34
35 public double X2
36 {
37 get { return x2; }
38 set { x2 = value; }
39 }
40 double y2;
41
42 public double Y2
43 {
44 get { return y2; }
45 set { y2 = value; }
46 }
47 }
From窗體From的代碼如下:
View Code 1 using System;2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Collections;
10 using CrystalDecisions.CrystalReports.Engine;
11
12 namespace 水晶報表練習
13 {
14 public partial class Form1 : Form
15 {
16 public Form1()
17 {
18 InitializeComponent();
19 }
20 private ArrayList stockValues;
21 private ReportDocument stockObjectsReport;
22 private void Form1_Load(object sender, EventArgs e)
23 {
24 stockValues=new ArrayList();
25 //string reportPath =Application.StartupPath+"\\CrystalReport1.rpt";
26 //string reportPath = @"..\..\CrystalReport2.rpt";
27
28 stockObjectsReport = new ReportDocument();
29 // stockObjectsReport.Load(reportPath);
30
31 for (int i = 1; i < 5; i++)
32 {
33 Res m_Res = new Res();
34 m_Res.X = 100*i;
35 m_Res.Y = 2;
36 m_Res.X1 = 10;
37 m_Res.X2 = 12;
38 m_Res.Y1 = 4;
39 m_Res.Y = 5;
40 stockValues.Add(m_Res);
41 }
42
43 //stockObjectsReport.SetDataSource(stockValues);
44 string reportPath2 = @"..\..\CrystalReport3.rpt";
45
46 ReportDocument subReport = new ReportDocument();
47 stockObjectsReport.Load(reportPath2);
48 subReport=stockObjectsReport.OpenSubreport("CrystalReport2.rpt");
49 subReport.SetDataSource(stockValues);
50 crystalReportViewer1.ReportSource = stockObjectsReport;
51 }
52 }
53 }
水晶報表設計器中首先要設置紙張,接下來主要就是繪制線形成表格。下面打開字段資源管理器,選擇數據庫專家,將自己新建的Res的.Net對象添加到選定表。
在子表設計器中通過組專家設置組字段。這里數據的顯示主要依靠組和字段,結果見下圖4。在主表中右鍵單擊選擇插入子表,我這里選擇子表數據從已有的建立,當然也可以建立新的啦!
圖2
圖3
圖4
最后是模擬結果:
總結
以上是生活随笔為你收集整理的水晶报表CrystalReports很强大也很简单!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdfs的学习和高可用部署
- 下一篇: 钓鱼网站新花招 福彩赌球成噱头