1.物件的操作
開始之前
先說一下,操作物件,是依靠reportdocument,
基礎**如下:
c# code
reportdocument myreport關於水晶報表裡的物件,我們直觀的來看一下。=new
reportdocument();
string
reportpath ="
crystalreport1.rpt");
myreport.load(reportpath);
//pull或push方式的資料處理
//...
crystalreportviewer1.reportsource
=myreport;
//然後,才是下文中的**
在模板空白處點郵件,選「插入」,滑鼠放到「特殊字段」上,不要點,會出現如下選單。
上面這些,都是報表物件或說是報表部件。恩,這些我們都可以進行控制。
操作的基本語法是:
c# code
myreport.reportdefinition.reportobjects[物件序號].方法或屬性;//或物件序號在 .net的水晶報表版本裡很難直觀的看出來,一般他是按加入報表的順序來排的myreport.reportdefinition.reportobjects[物件名稱].方法或屬性;
這個很難去記住。有時候為了一些需要,在遍歷的時候會用的到。
一般我們會用
名稱。在物件上點右鍵,設定物件格式,
在出來的介面上就可以看到物件的名稱
reportobjects就是我們前面所指的報表物件集合,單一物件就是乙個reportobject
對於reportobject來說,通用的屬性有這樣一些
一般我們可以控制物件的位置,通過控制左上角的座標,也就是top和left屬性。
這裡說一下水晶報表的座標系和計量單位。
水晶報表的座標系,以每個節的左上角為原點,往下往右兩個方向遞增延展。
計量單位是緹,與厘公尺的換算關係是:1厘公尺=567緹
所以在後面的**中,你會看到我有這樣的寫法: 567*n 其實也就是n厘公尺。
另外還有
objectformat下面的屬性,可以控制物件的隱藏與顯示,這個很實用吧,呵呵。
如抑制顯示可以這樣操作:
c# code
myreport.reportdefinition.reportobjects(reportobject是個通用物件,而其實際上又是乙個具體的物件。他有各自的特殊屬性。"text4
").objectformat.enablesuppress
=true
;
以文字框為例,他就會多出一些特性,比如text屬性,這樣我們可以修改到文字框的內容。
具體操作如下:
c# code
//另外說一下,前面沒提到的更改乙個文字框的內容
textobject x;x =
(textobject)myreport.reportdefinition.reportobjects[
"text4"];
x.text ="
我們的世界";
資料字段,也可以這樣操作。
c# code
//每個物件都有各自不同的屬性,至於具體有多少物件,你可以按一下f2,調整欄位的位置
fieldobject fo;
fo =
(fieldobject)myreport.reportdefinition.reportobjects[
"name1"];
fo.height
=567*3
;fo.width
=567*4
;fo.left
=567*1
;
在crystaldecisions.crystalreports.engine這個命名空間下,以
object結尾的,基本都是。
2:子報表裡物件的操作
子報表裡的物件操作跟主報表是一樣的,主要是要先找到這個子報表物件。
下面這個方法是不對的
c# code
subreportobject subobj;這個只會定義子報表在主報表內的特性,不能設定到子報表內的部件subobj
=(subreportobject)myreport.reportdefinition.reportobjects[
"subreport1"];
要這樣c# code
myreport.subreports[子報表序號].reportdefinition.reportobjects["xx注意這個名稱不是我們在子報表上點右鍵看到的名稱,而是我們在設計子報表時指定的子報表名稱"];//序號從0開始計數,單純子報表的乙個序號//或
myreport.subreports[子報表名稱].reportdefinition.reportobjects["xx
"];
c# code
textobject subtext;3:引數的基本操作subtext
=(textobject)myreport.subreports[
"xyz
"].reportdefinition.reportobjects[
"text3"];
subtext.text ="
我是子報表裡的內容哦";
引數是程式與報表互動的乙個重要媒介,本節只做乙個基礎說明,後續的章節中會進一步介紹。
新建乙個引數p1
拖到模板上,會自動顯示為 ?pa1
**中傳遞引數給報表的**為:
setparametervalue 後面的幾個引數依次為:引數名稱,引數值,子報表名稱(如果是子報表引數的話)。
c# code
myreport.setparametervalue(在子報表中建立乙個新的引數spa1,注意xyz是子報表名稱"pa1",
"我是乙個引數");
c# code
myreport.setparametervalue(當然,引數也可以傳遞給crystalreportviewer,這裡就不展開說了,用到的時候再說。"spa1",
"我是乙個引數",
"xyz");
單純從這個**上來看,textbox和引數似乎可以等價
但是textbox一般只能用於顯示乙個字串,但是引數則可以參與公式,過濾資料,控制物件的一些特性等等,用途更廣泛一些。
好了,就到這裡。這個基本上沒有什麼需要特別注意的。
阿泰,水晶報表 pull模式樣板
在前一篇中,講解了pull和push模式的區別。本節中主要是從無到有地講解一下如何使用pull模式來做乙個報表。因本文主要針對初學者,所以每個步驟都抓了圖。以 web應用為例 首先,新建乙個asp.net crystalreports站點 稍等一會後會出來乙個預設的水晶報表嚮導 確定後,選擇 建立新...
水晶報表內功心法 信手拈來,掌控物件
月初一如既往地忙碌,竟然一點時間也沒抽出來。週末也是一如既往地加班了,好在事情進展地還算順利,終於有時間寫這一篇。本來的計畫是 掌控於股掌之間 中傳引數 傳公式 操作水晶報表裡的所有物件 考慮到公式的重要性,會單獨寫一篇,於是本篇的內容就是引數與物件的控制 而引數的部分,在本篇也是基本操作,後續的高...
水晶報表內功心法 信手拈來,掌控物件
月初一如既往地忙碌,竟然一點時間也沒抽出來。週末也是一如既往地加班了,好在事情進展地還算順利,終於有時間寫這一篇。本來的計畫是 掌控於股掌之間 中傳引數 傳公式 操作水晶報表裡的所有物件 考慮到公式的重要性,會單獨寫一篇,於是本篇的內容就是引數與物件的控制 而引數的部分,在本篇也是基本操作,後續的高...