使用 IRONBARCODE

如何使用C#在Crystal Reports中添加條碼

喬迪·巴迪亞
喬迪·巴迪亞
2024年4月3日
分享:

Crystal Reports 是一款功能強大的報告工具,允許開發者為其應用程式創建功能豐富的報告。 當在使用C#的Crystal Reports中包含條碼時,它為數據表示增加了一個新的維度,使管理和跟蹤信息更加容易。 在本文中,我們將探討使用 C# 將條碼整合到 Crystal Reports 的步驟。

如何使用 C# 在 Crystal Reports 中添加条码

  1. 安裝條碼庫。

  2. 生成條碼圖像並將其作為圖像儲存在資料庫表中。

  3. 設計 Crystal Report 的版面配置。

  4. 建立與資料庫的連線並選擇所需的表格。

  5. 在 Crystal Report 佈局中包含一個條碼圖像欄位。

  6. 建置並執行項目。

選擇條碼庫

在進行實作之前,選擇支援 Crystal Reports 和 C# 的條碼庫是至關重要的。 一個熱門選擇是 IronBarcode for .NET。

什麼是IronBarcode

IronBarcode 是一個多功能的 .NET 函式庫,簡化條碼生成讀取。 使用 IronBarcode,您可以輕鬆創建各種條碼,包括 Code 128 和 QR 碼,只需指定要編碼的值即可。 它還支援調整大小自訂樣式。 在讀取方面,IronBarcode 能夠從圖片或 PDF 中提取條碼數據,使其成為庫存管理和文件追蹤的理想工具。 其使用者友好的 API 確保了您能夠快速整合到您的專案中,跨平台支援則允許您在不同 .NET 版本中無縫開發。 無論您是經驗豐富的開發人員還是初學者,IronBarcode 都能讓您高效地處理條碼。

創建新專案

打開 Visual Studio 以建立 ASP.NET Crystal Reports 網站。我使用的是Visual Studio 2022。 您可以使用任何版本,但請確保安裝了該特定版本的 Visual Studio 的 Crystal Reports。

![如何在 Crystal Reports 中使用 C# 添加條碼:圖 1 - 打開 Visual Studio。 建立一個新的「ASP.NET Crystal Reports 網站」專案。

選擇專案名稱、位置和目標框架。 點擊「建立」按鈕。 將建立如下面所示的新專案。

如何在 Crystal Reports 中使用 C# 添加條碼:圖 2 - 將創建一個新的專案,預設的 CrystalReport1.rpt 頁面。

在開始之前,我們需要有一個資料庫。 讓我們建立一個新的資料庫和一個範例表。

創建新資料庫

以下腳本將創建一個新數據庫。

CREATE DATABASE ProductDB;
USE [ProductDB]
GO
/****** Object:  Table [dbo].[Products]    Script Date: 3/10/2024 2:57:18 PM**/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Products](
    [Product_ID] [int] NULL,
    [Product_Name] [varchar](100) NULL,
    [Product_Price] [decimal](18, 0) NULL,
    [Product_Barcode] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

讓我們將資料插入這個表中。 我們需要創建條碼並將其儲存在產品表中。 因此,我們需要使用C#代碼插入數據。 我們需要在專案中安裝IronBarcode函式庫以使用其功能來創建條碼。

安裝 IronBarcode 程式庫

要使用 NuGet 套件管理器控制台安裝 IronBarcode 庫,請按照以下步驟進行:

開啟 NuGet 套件管理控制台。 您可以透過前往 View -> Other Windows -> Package Manager Console 找到它。

![如何在 Crystal Reports 中使用 C# 添加條碼:圖 3 - 打開 NuGet 套件管理控制台。] 導航至檢視選單 - 其他視窗 - 套件管理器主控台](/static-assets/barcode/blog/barcode-in-crystal-report-csharp/barcode-in-crystal-report-csharp-3.webp)

在套件管理器控制台中,使用以下命令安裝 IronBarcode 函式庫:

Install-Package Barcode

按下 Enter 鍵以執行命令。

或者,您可以使用解決方案的 NuGet 套件管理員安裝 IronBarcode 庫:

如何在 Crystal Reports 中使用 C# 添加條碼:圖 4 - 通過在 NuGet 套件管理器的搜索欄中搜索「IronBarcode」,使用管理 NuGet 套件為方案安裝 IronBarcode,然後選擇專案並點擊安裝按鈕。

等待 NuGet 套件管理員下載並安裝 IronBarcode 函式庫及其相依性。 安裝完成後,您將在套件管理器控制台中看到確認消息。

現在,IronBarcode 程式庫已安裝在您的專案中,您可以開始使用其條碼生成和讀取功能。

生成條碼圖像並將其存儲在數據庫中

我將生成條碼圖像,並使用 ADO.NET 將其存儲在資料庫中。 以下程式碼將演示如何在 C# 中生成條碼的範例。

static void Main(string [] args)
 {
    var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);
    myBarcode.AddBarcodeValueTextBelowBarcode();
    myBarcode.ResizeTo(600, 300);
    SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;initial catalog=ProductDB ; User ID=sa;Password=123456;Integrated Security=SSPI;");
    SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products values (77446252, 'Pine Apple Small','100', '{myBarcode.BinaryStream}' )", cn);
     cn.Open();
     cmd.ExecuteNonQuery();
     cn.Close();
 }
static void Main(string [] args)
 {
    var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);
    myBarcode.AddBarcodeValueTextBelowBarcode();
    myBarcode.ResizeTo(600, 300);
    SqlConnection cn = new SqlConnection("Data Source=localhost\\SQLEXPRESS;initial catalog=ProductDB ; User ID=sa;Password=123456;Integrated Security=SSPI;");
    SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products values (77446252, 'Pine Apple Small','100', '{myBarcode.BinaryStream}' )", cn);
     cn.Open();
     cmd.ExecuteNonQuery();
     cn.Close();
 }
Shared Sub Main(ByVal args() As String)
	Dim myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128)
	myBarcode.AddBarcodeValueTextBelowBarcode()
	myBarcode.ResizeTo(600, 300)
	Dim cn As New SqlConnection("Data Source=localhost\SQLEXPRESS;initial catalog=ProductDB ; User ID=sa;Password=123456;Integrated Security=SSPI;")
	Dim cmd As New SqlCommand($"INSERT INTO dbo.Products values (77446252, 'Pine Apple Small','100', '{myBarcode.BinaryStream}' )", cn)
	 cn.Open()
	 cmd.ExecuteNonQuery()
	 cn.Close()
End Sub
$vbLabelText   $csharpLabel

上述源代碼生成了條形碼,連接到 SQL Server 資料庫,將資料(包括條形碼)插入到 Products 表中,然後關閉資料庫連接。

程式碼說明

1. 條碼生成

  1. var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);

    這行使用 BarcodeWriter 類別的 CreateBarcode() 方法創建條碼。 條碼從字串 "77446252" 所代表的二進位數據中使用 Code 128 編碼格式生成。myBarcode 變數現在保存生成的條碼。

  2. AddBarcodeValueTextBelowBarcode() 函數將在條碼下方添加文字值。

  3. ResizeTo(600, 300) 將會根據提供的尺寸更改條碼圖片的高度寬度

  4. 我們可以使用SaveAs()方法將條碼圖像保存在文件系統中。

    以下條碼將由上述程式碼生成。

    如何在 Crystal Reports 中使用 C# 添加條碼:圖 5 - 輸出:生成的條碼

2. 資料庫連線設定

  1. SqlConnection cn = new SqlConnection("Data Source=localhost\SQLEXPRESS;initial catalog=ProductDB ; User ID=sa;Password=123456;");

  2. 在此,建立與 SQL Server 資料庫的連接。 連接字串指定伺服器(localhost\SQLEXPRESS)、初始目錄(資料庫名稱:ProductDB)和身份驗證憑證(用戶 ID 為 sa,密碼為 123456)。

3. SQL 命令建立

  1. SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products values (77446252, 'Pine Apple Small','100', '{myBarcode.BinaryStream}' )", cn);

  2. 建立了一個新的SqlCommand物件。 此命令表示將資料插入到產品表的 SQL 查詢。

  3. 該查詢將值插入到表格列中:77446252、'Pine Apple Small'、'100' 和生成的條形碼的二進制流(myBarcode.BinaryStream)。

4. 資料庫互動

  1. cn.Open():資料庫的連接已打開。

  2. cmd.ExecuteNonQuery():執行 SQL 查詢,將指定的值插入到 Products 表中。

  3. cn.Close():資料庫連接被關閉以釋放資源。

設計您的 Crystal Reports 條碼生成器

現在,設計報告佈局,添加資料庫連接,並安排必要的欄位。 如果您是新手,請按照以下步驟操作。

  1. 開啟欄位瀏覽器 => 資料庫欄位 => 資料庫專家。

    如何在 Crystal Reports 中使用 C# 添加條碼:圖 6 - 將數據庫連接添加到報表佈局:打開欄位總覽器 - 資料庫欄位 - 資料庫專家。

  2. 展開 創建新連接 => OLE DB(ADO) => 建立新連接

    如何在 Crystal Reports 中使用 C# 添加條形碼:圖 7 - 展開創建新連接 - OLE DB(ADO) - 建立新連接。

  3. 選擇 Microsoft OLE DB 資料來源以供 SQL Server。 點擊下一步。

    如何在 Crystal Reports 中使用 C# 添加條碼:圖8 - 選擇 Microsoft OLE DB Data Source for SQL Server 並點擊 Next。

  4. 提供伺服器名稱、登入憑證和資料庫名稱,如下所示。

    ![如何在 Crystal Reports 中使用 C# 添加條碼:圖 9 - 指定 SQL Server 名稱、登入憑證和資料庫名稱。 然後點擊下一步 - 然後完成。

  5. 按下「下一步」按鈕,會出現一個新視窗,然後點擊「完成」。

  6. 選擇您要添加的表格。 在這種情況下,選擇產品表。

    ![如何在 Crystal Reports 中使用 C#: 圖 10 - 添加表格:從 ProductDB 數據庫中選擇 Products 表格。] 然後點擊確定按鈕。

  7. 點擊確定按鈕。

    我們已經建立了一個資料庫連線。 現在,讓我們設置報告佈局。

    現在,我已經添加了一個文字框,其文字為「Barcode in Crystal report C#」。 新增了文字方框、拖放產品編號、產品名稱和產品價格欄位,以及產品條碼,這些都來自於資料庫欄位,並將它們放置在方框內,如下所示。

    ![如何在 Crystal Reports 中使用 C# 添加條碼:圖 11 - 在 C# 中建立 Crystal Report。] 從資料庫欄位拖放產品 ID、產品名稱、產品價格、產品條碼欄位。

    在 Crystal Report Viewer 中查看 Crystal Report 預覽。

    如何使用 C# 在 Crystal Reports 中添加條碼:圖 12 - 檢查 Crystal 報告查看器中的 Crystal 報告預覽。

    建置並執行項目。 輸出為:

    如何在 Crystal Reports 中使用 C# 添加條碼:圖 13 - 輸出:包含條碼的 Crystal Report

    我還沒有下載範例數據集包,確保我擁有正確的數據文件,然後使用C#創建了一個Crystal Report,以便進行全面的數據可視化。

    這樣,我們可以在 Crystal Reports 應用程式中創建條碼,而無需下載條碼字型。 同樣地,我們也可以根據您的需求添加一個 QR Code。

結論

總之,使用 C# 將條碼集成到 Crystal Reports 是增強數據表示和管理的強大方式。 選擇一個可靠的條碼庫如IronBarcode簡化了流程,提供了多樣性和易用性。 IronBarcode 支援各種條碼類型、調整大小和自訂功能,證明在條碼生成和閱讀任務中是極有價值的資產。 這裡提供的逐步指南確保從選擇庫到設計 Crystal Report 版面的實施過程順利無礙。

此外,IronBarcode,解鎖額外的功能和支援,以進一步提升他們的條碼整合體驗。 這種靈活性使得IronBarcode成為開發人員的一個吸引人的選擇,無論他們正在從事小型專案還是企業級應用程式。

喬迪·巴迪亞
軟體工程師
Jordi 最擅長 Python、C# 和 C++,當他不在 Iron Software 發揮技能時,他會進行遊戲編程。他負責產品測試、產品開發和研究,為持續產品改進增添了巨大的價值。多樣化的經驗使他感到挑戰和投入,他說這是與 Iron Software 合作的最喜歡的方面之一。Jordi 在佛羅里達州邁阿密長大,並在佛羅里達大學學習計算機科學和統計學。
< 上一頁
如何在 VB .NET 中生成條碼
下一個 >
在 VB.NET 中創建條碼掃描器教學