水晶報表十二式 推拉式

2021-08-27 02:09:40 字數 2839 閱讀 1419

水晶報表在應用時分兩種方法,分別是拉模式(

pull

)、推模式(

push

)。拉模式:在水晶報表生成時的資料來源是從水晶報表檔案中的

sql語句從資料庫中提取的,在程式設計時不用重寫

sql語句,但要加上登入資訊(具體方法,後面介紹)。

推模式:在水晶報表生成時的資料來源,是用程式設計時重寫水晶報表中

sql語句而生成的

dataset

對像。也就是說,推模式是用

dataset

組裝水晶報表。

水晶報表元件介紹。

水晶報表在

vs2005

中有兩種元件,在

web專案是分別是

crystalreportsource

,crystalreportviewer

。在form

專案裡是分別是

crystalreport

,crystalreportviewer

。crystalreportsource

,crystalreport

是水晶報表的資料提供者;

crystalreportviewer

是水晶報表的瀏覽器。另外還要介紹一下水的報表的檔案是以

rpt為副檔名的檔案,該檔案可以用

vs2005

、vs2008

生成。下面分別介紹具體操作方法:

第一種----

拉模式(

pull

):在拉模式中如要在水晶報表中的

sql語句加上條件引數時要用

方式給出。例:

「select t1, t2, t3 from t wheret1=''''」 parm

就是引數名

以下例子中所用到的水晶報表檔案中使用的

sql語句是

「select t1, t2, t3 from t wheret1=''''」 parm

就是引數名。

【web

方式下】

using crystaldecisions.shared;

using crystaldecisions.crystalreports.engine;

//////

功能:拉模式提取水晶報表

///個人主頁:

//////

///protected void button_pull_click(object sender, eventargs e) 【

form

方式下】//在

form

方式下**同

web方式,用

crystalreport

控制項換掉了

crystalreportsource

;用crystalreportviewer

換掉了crystalreportviewer

;這兩個控制項都可以在工具箱裡找到。同時在程式設計時去掉

databind()

方法。private void form1_load(objectsender, eventargs e)

第二種------

推模式(

push

):在推模式中程式設計組裝的

dataset

裡的sql

語句中的字段要與水晶報表裡的

sql語句字段一致。簡單的說,推模式中的水晶報表是個模板,把在設計器裡報表的格式設好後,再組裝

dataset

就可以生成報表了。

【web

方式下】

using crystaldecisions.shared;

using crystaldecisions.crystalreports.engine;

using system.data.sqlclient;

protected void button_push_click(objectsender, eventargs e)

中的引數可以不用賦值,即使賦了值也不起作用。

"parm"].currentvalues.addvalue("1234567");

crystalreportsource1.reportdocument.parameterfields["title"].currentvalues.addvalue("

這時推模式的報表樣例!

");crystalreportsource1.databind();

crystalreportviewer1.reportsource = crystalreportsource1;

crystalreportviewer1.databind();}

【form

方式下】

private void form1_load(object sender, eventargs e)

中的引數可以不用賦值,即使賦了值也不起作用。

"parm"].currentvalues.addvalue("1234567");

crystalreport1.parameterfields["title"].currentvalues.addvalue("

這時推模式的報表樣例!

");crystalreportviewer1.reportsource = crystalreport1;}

下面我說一下

push

的優勢。

1:可以公用系統資料庫連線,減少資料庫連線損耗

2:可自由組合多資料來源(如多資料庫等),這一點

pull

模式也可以實現,但是不如這個方便

3:靈活多變

。靈活多變的說法,是因為由於我們是把資料獲取後,再

push

給水晶報表的,那麼在這個中間,就有很多資料再加工的可能性。

水晶報表內功心法 推拉之間

水晶報表動態表擴充套件 之 任意無關聯表,任意列,任意資料來源 水晶報表動態表擴充套件 之 任意sql及任意有關聯表,任意列 及其他 好了,總結一下 1 cs模式或小型系統,建議用pull模式,大型bs系統,建議用push模式。但這不是絕對的,可以根據實際情況混用。如果是大資料量的清單類的報表,建議...

水晶報表內功心法 推拉之間

水晶報表程式控制上有兩種模式,也就是傳說中的pull模式和push模式。口語化點就是拉模式和推模式。把這個放在最開始講,是因為模式的選擇,會影響到後續的開發。特別是看到一些使用者,把兩種模式的 裡捏在乙個過程裡,出了錯誤,都不知道怎麼去除錯。本文將講解兩種模式的基本原理,區別,以及各自的優缺點,還有...

水晶報表內功心法 推拉之間

索引 水晶報表內功心法 序言 水晶報表動態表擴充套件 之 任意無關聯表,任意列,任意資料來源 水晶報表動態表擴充套件 之 任意sql及任意有關聯表,任意列 及其他 好了,總結一下 1 cs模式或小型系統,建議用pull模式,大型bs系統,建議用push模式。但這不是絕對的,可以根據實際情況混用。如果...