顯示水晶報表的公用類

2021-09-05 14:51:40 字數 1400 閱讀 6581

在應用程式中,通常我們都需要顯示報表。在.net中,我們大多數情況使用了水晶報表,如果我們不是直接將報表傳送到印表機列印,那麼就需要將報表顯示出來,這種情況下需要使用報表檢視器(crystalreportviewer)。

crystalreportviewer作為乙個控制項,它需要乙個承載它的窗體或頁面,我們這裡只討論窗體(winform)的情況。大多數情況下,我們顯示報表的介面都是相同的,因此,我們一般會做乙個窗體類,來顯示我們不同的報表。在有的實現中,我們是在這個窗體類中例項化我們所需要的報表物件的,當我們每次要顯示不同的報表時,都需要去維護這個報表顯示窗體類,這樣會給我們帶來許多不便。更有甚者,把一些報表的邏輯也寫到了這個窗體類中,這樣嚴重違反了類的單一職責原則,並且使我們的報表與報表顯示之前有很強的依賴性。

為了遵循類的單一職責原則,破除它們之前的相互依賴性,在下面我將提供乙個實現水晶報表顯示的範例,這個範例的靈感**於 messagebox類,只提供了幾個靜態公共方法用於顯示報表:

using system;

using system.drawing;

using system.collections;

using system.componentmodel;

using system.windows.forms;

using crystaldecisions.crystalreports.engine;

using chiefvalueaccounting.util;

namespace chiefvalueaccounting.win.print

private static void initializecomponent()

///

/// 顯示水晶報表,要求呼叫方設定好報表物件的所有屬性。

///

/// 強型別的報表物件

public static void showreport(crystaldecisions.crystalreports.engine.reportclass reportclass, system.windows.forms.iwin32window owner)

catch(exception ex)

}///

/// 顯示水晶報表,要求呼叫方設定好報表物件的所有屬性。

///

/// 水晶報表文件物件

public static void showreport(crystaldecisions.crystalreports.engine.reportdocument reportdocument, system.windows.forms.iwin32window owner)

catch(exception ex)

}///

/// 顯示水晶報表。

///

/// 報表名稱

/// 報表資料來源

水晶報表 建立報表

水晶報表是乙個優秀的報表開發工具,本人在開發通用管理系統的時候,所有報表都使用水晶報表,其簡單 易用和強大的功能令筆者倍加喜愛,現將水晶報表使用手記呈現給大家。一 在使用自帶的水晶報表時,請註冊,否則只能使用30次 二 使用crystalreportviewer進行預覽 crystalreportv...

水晶報表 子報表

經過了一段時間對水晶報表的操作,我對其稍稍了解了一點點。這兩天,一直在為資料量太大而煩惱,我有六張表,其中一張關聯剩餘的五張表。想要顯示資料,結果,顯示不出來,即使我已經在鏈結裡面設定了左外連線。我知道這個是按照笛卡爾積相乘,所以資料會成倍的增加。所以,即使我改用直接連線資料庫的方式也行不通。就是p...

水晶報表匯出

private void page load object sender,system.eventargs e region web form designer generated code override protected void oninit eventargs e required me...