日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

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

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

在這里就不一步一步講了,模板的實(shí)現(xiàn)方式和xsd文件及mdb文件,請(qǐng)從《在水晶報(bào)表中實(shí)現(xiàn)任意選擇指定字段顯示》一文中下載
不過(guò)模板在這里做一下說(shuō)明,本文中的模板中的表頭部分,未使用參數(shù)字段,而是使用了公式字段。
如下圖所示



最終效果為


各控件都使用了默認(rèn)名稱,主要的事件為Click

CR2008自動(dòng)增加如下代碼
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????????????//保持字段名稱的數(shù)組?
?9????????????String[]?fldArr=new?string[6]?;
10????????????int?i?=?0;
11????????????int?j?=?0;
12?????????????
13????????????
14
15????????????//---------------------------------------------------------------------?
16????????????//獲取選取的字段并進(jìn)行處理?
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("請(qǐng)選擇要顯示的字段");
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?材料采購(gòu)明細(xì)"?;
46
47????????????OleDbDataAdapter?da1=new?OleDbDataAdapter(sql,cn);
48
49????????????DataSet?ds1=new?DataSet();
50????????????da1.Fill(ds1,?"材料采購(gòu)明細(xì)");
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?=?"{材料采購(gòu)明細(xì)."?+?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????????}


使用公式構(gòu)造表頭字段節(jié)約了不少代碼,呵呵。
當(dāng)然這只是個(gè)程序模型~~

-EOF-

轉(zhuǎn)載于:https://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。