日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在水晶报表中实现任意选择指定字段显示-模板及C#升级版

發布時間:2025/7/14 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在水晶报表中实现任意选择指定字段显示-模板及C#升级版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前文《在水晶報表中實現任意選擇指定字段顯示》中有朋友留言說是有無C#版本,最近有時間,重寫了一下。
一是使用了VS2005 C#2.0 + Crystal Report 2008,另外就是把模板的實現方式也更改了一下。

在這里就不一步一步講了,模板的實現方式和xsd文件及mdb文件,請從《在水晶報表中實現任意選擇指定字段顯示》一文中下載
不過模板在這里做一下說明,本文中的模板中的表頭部分,未使用參數字段,而是使用了公式字段。
如下圖所示



最終效果為


各控件都使用了默認名稱,主要的事件為Click

CR2008自動增加如下代碼
1using?CrystalDecisions.Shared;
2using?CrystalDecisions.CrystalReports.Engine;
3using?CrystalDecisions.Windows.Forms;

Click事件代碼:

?1private?void?button1_Click(object?sender,?EventArgs?e)
?2????????{
?3
?4????????????
?5????????????String?cnstr?=?"";
?6????????????//保持字段的字符串?
?7????????????String?fldstr?=?"";
?8????????????//保持字段名稱的數組?
?9????????????String[]?fldArr=new?string[6]?;
10????????????int?i?=?0;
11????????????int?j?=?0;
12?????????????
13????????????
14
15????????????//---------------------------------------------------------------------?
16????????????//獲取選取的字段并進行處理?
17????????????if?(checkBox1.Checked?==?true)
18????????????????fldstr?=?fldstr?+?","?+?checkBox1.Text;
19????????????if?(checkBox2.Checked?==?true)
20????????????????fldstr?=?fldstr?+?","?+?checkBox2.Text;
21????????????if?(checkBox3.Checked?==?true)
22????????????????fldstr?=?fldstr?+?","?+?checkBox3.Text;
23????????????if?(checkBox4.Checked?==?true)
24????????????????fldstr?=?fldstr?+?","?+?checkBox4.Text;
25????????????if?(checkBox5.Checked?==?true)
26????????????????fldstr?=?fldstr?+?","?+?checkBox5.Text;
27????????????if?(checkBox6.Checked?==?true)
28????????????????fldstr?=?fldstr?+?","?+?checkBox6.Text;
29
30????????????if?(fldstr?==?"")?{
31????????????????MessageBox.Show("請選擇要顯示的字段");
32????????????????return;
33????????????}

34
35????????????if?(fldstr.Substring(0,?1)?==?",")?
36????????????????fldstr?=?fldstr.Substring(1,?fldstr.Length?-?1);
37
38????????????fldArr?=?fldstr.Split(new?Char[]?{','});
39
40?????????????cnstr=?"Provider=Microsoft.Jet.OLEDB.4.0;Data?Source="?+?Application.StartupPath?+?"\\BBT_Crystal.mdb"?;
41????????????OleDbConnection?cn=new?OleDbConnection(cnstr);
42????????????cn.Open();
43
44????????????string?sql="";
45????????????sql="?Select?"?+?fldstr?+?"?From?材料采購明細"?;
46
47????????????OleDbDataAdapter?da1=new?OleDbDataAdapter(sql,cn);
48
49????????????DataSet?ds1=new?DataSet();
50????????????da1.Fill(ds1,?"材料采購明細");
51?
52
53????????????CrystalReport1?crReportDocument=new?CrystalReport1();
54
55
56????????????for(i=0;i<fldArr.Length;i++)
57????????????{
58????????????
59???????????????//?將公式綁定到具體字段?
60????????????????crReportDocument.DataDefinition.FormulaFields["mf"?+?(i?+?1).ToString()].Text?=?"{材料采購明細."?+?fldArr[i]?+"}"?;
61????????????????crReportDocument.DataDefinition.FormulaFields["mt"?+?(i?+?1).ToString()].Text?=?"\""?+?fldArr[i]?+?"\"";
62????????????}

63
64????????????for?(j?=i+?1;?j?<=?6;?j++)
65????????????{
66????????????????crReportDocument.DataDefinition.FormulaFields["mt"?+?(j).ToString()].Text?=?"";
67????????????}

68
69????????????crReportDocument.SetDataSource(ds1);
70????????????crystalReportViewer1.ReportSource=crReportDocument;??????????
71
72????????}


使用公式構造表頭字段節約了不少代碼,呵呵。
當然這只是個程序模型~~

-EOF-

轉載于:https://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html

總結

以上是生活随笔為你收集整理的在水晶报表中实现任意选择指定字段显示-模板及C#升级版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。