在乙個多層結構中,水晶報表的使用往往比較繁瑣:
1、在專案中新增資料集,形成xsd檔案
2、利用xsd檔案,在水晶報表環境中生成報表
3、回到.net,新增rpt檔案
這樣做的壞處除了繁瑣,就是在ui層直接要訪問資料庫,將使得層次結構晚節難保。其實利用水晶報表的推模式,將很靈活的實現報表。思路是:事先建立報表的架子,執行時為報表指定資料。具體實現:
1、在水晶報表環境中,建立新資料鏈結,怎麼方便怎麼來,建議用oledb,快。
2、然後建立報表
3、回到.net環境中,新增rpt檔案。
4、執行時為某個事件(往往是查詢事件)編寫處理函式,建立rpt類的例項,並設定其資料來源為查詢結果的資料集。將該例項賦給報表控制項。
5、重新繫結即可。
6、注意:似乎水晶報表控制項沒有viewstate,postback後很難保持狀態,必須在page_load中判斷postback狀態,進行資料賦值操作。
水晶報表 推模式
問題由來 公司換新系統,過渡期要和老系統共存,原報表使用odbc資料來源,因只有一台伺服器,所有新系統報表不能再使用odbc資料來源了,兩個系統的報表不能使用同一伺服器odbc資料來源 解決方案 方案一,修改新系統水晶報表的資料來源,改為oledb方式。方案二,修改水晶報表資料來源為推模式,在程式中...
水晶報表的PUSH模式
水晶報表一般分為pull模式以及push模式。pull模式是指使用控制項連線資料,push模式是指使用 的方式。由於進行編碼練習,所以也就沒有進行pull的嘗試。以下是乙個最簡單的水晶報表的push模式。1.rpt 報表模版 2.資料表結構 3.form樣式 控制項型別 crystalreportv...
水晶報表公式組合,推試顯示報表
舉例 現在有3張表 student表 course表 class 表 學號 姓名 班級id id 學號 所修課程 班級id 名稱 001 peter jd001 1 001 英語 jd001 文科班 002 sam jd001 2 001 語文 jd002 理科班 003 tony jd001 3 ...