教學課程:列印和設定列印選項

簡介

您可以在程式碼中設定列印選項及呼叫印表機,而非從 Crystal Reports 使用者介面進行。若要這麼做,必須使用 ReportDocument 物件模型的 PrintOptions 類別以及 PrintToPrinter() 方法。

如果 CrystalReportViewer 控制項工具列上的 [列印] 按鈕已能滿足您的列印需求,就不需要撰寫程式碼來設定額外的列印選項。

但在某些特殊情況下,利用撰寫程式碼的方式列印報表會更方便:

  • 列印的時間、地點及方式均能自行控制。若要這麼做,必須先停用 CrystalReportViewer 控制項工具列中的 [列印] 按鈕,改用程式碼來控制所有的列印工作。
  • 可以在不顯示報表的情況下,於幕後列印報表。所有 [列印] 設定都包含於 ReportDocument 模型之內,即使未利用 CrystalReportViewer 控制項顯示報表,此模型都能進行設定及產生執行個體。
  • Web 用戶端的所有列印工作都能集中在 Web 伺服器處理。使用 PrintToPrinter() 方法將列印工作傳送到連接 Web 伺服器的印表機,而非將列印工作傳送到連接 Web 用戶端的本機印表機。
    Note附註

    這項後端列印功能的適用範圍,並沒有 Crystal Reprots Server 或 BusinessObjects Enterprise 所提供的報表排程架構來得大。如需有關這些產品的詳細資訊,請參閱「升級選項」

此教學課程一開始,您必須先加入幾個清單控制項,以便在 Web 或 Windows Form 的 CrystalReportViewer 控制項之上設定列印選項。

接著,在程式碼後置類別中,建立 CURRENT_PRINTER 字串常數,並指派您想要使用的印表機路徑給它。

然後,每個清單控制項都必須繫結到一個列舉,列舉中含有紙張方向、紙張大小以及印表機雙面列印設定的列印選項。另一個額外的清單控制項,則顯示了目前在 CURRENT_PRINTER 常數中指定的印表機之自訂紙張來源設定。您要為自訂紙張來源控制項建立一個 Helper 方法,以便產生 PrinterSettings 的執行個體、將其指派給目前的印表機,然後傳回該印表機的紙張來源陣列。

接著再為 [列印報表] 按鈕建立一個按一下按鈕事件方法。在該事件方法中,每個列印選項屬性都會依據清單控制項中所做的選擇指派一個值。最後,這份報表會使用在 CURRENT_PRINTER 常數中所指定的印表機進行列印。

範例程式碼

本教學課程隨附 Visual Basic 和 C# 範例程式碼,以示範專案的完成版本。請遵循這個教學課程的指示以建立新的專案,或是開啟範例程式碼專案,從完成的版本開始進行。

範例程式碼是以資料夾的形式儲存,並以語言和專案類型來加以分類。下面列出每個範例程式碼版本的資料夾名稱:

  • C# 網站:CS_Web_RDObjMod_SetPrintOptions
  • C# Windows 專案:CS_Win_RDObjMod_SetPrintOptions
  • Visual Basic 網站:VB_Web_RDObjMod_SetPrintOptions
  • Visual Basic Windows 專案:VB_Win_RDObjMod_SetPrintOptions

若要找出包含這些範例的資料夾,請參閱「教學課程的範例程式碼目錄」

在本節中: