using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Hinzufügen eines Barcodes in Crystal Reports mit C#
Jordi Bardia
3. April 2024
Teilen Sie:
Crystal Reports ist ein leistungsstarkes Berichterstellungstool, das Entwicklern ermöglicht, funktionsreiche Berichte für ihre Anwendungen zu erstellen. Wenn es darum geht, Barcodes in Crystal Reports mit C# einzubinden, fügt dies eine neue Dimension zur Datenrepräsentation hinzu, was die Verwaltung und Nachverfolgung von Informationen erleichtert. In diesem Artikel werden wir die Schritte zur Integration von Barcodes in Crystal Reports mit C# untersuchen.
Wie man einen Barcode in Crystal Reports mit C&num hinzufügt;
Installieren Sie die Barcode-Bibliothek.
Erzeugen Sie ein Barcode-Bild und speichern Sie es als Bild in einer Datenbanktabelle.
Entwerfen Sie das Layout für den Crystal-Bericht.
Stellen Sie eine Verbindung zur Datenbank her und wählen Sie die gewünschte Tabelle aus.
Ein Barcode-Bildfeld in das Crystal Report-Layout einfügen.
Erstellen und starten Sie das Projekt.
Wählen Sie eine Barcode-Bibliothek
Bevor Sie mit der Implementierung beginnen, sollten Sie unbedingt eine Barcode-Bibliothek auswählen, die Crystal Reports und C# unterstützt. Eine beliebte Wahl ist der IronBarcode für .NET.
Was ist IronBarcode
IronBarcode ist eine vielseitige .NET-Bibliothek, die die Erzeugung und das Lesen von Barcodes vereinfacht. Mit IronBarcode können Sie mühelos verschiedene Barcodes erstellen, darunter Code 128 und QR-Codes, indem Sie den zu codierenden Wert angeben. Es unterstützt auch Größenänderung und Anpassung. Auf der Leseseite kann IronBarcode Barcodedaten aus Bildern oder PDFs extrahieren und ist damit ideal für die Bestandsverwaltung und die Dokumentenverfolgung. Die benutzerfreundliche API gewährleistet eine schnelle Integration in Ihre Projekte, und die plattformübergreifende Unterstützung ermöglicht eine nahtlose Entwicklung über verschiedene .NET-Versionen hinweg. Egal, ob Sie ein erfahrener Entwickler oder ein Anfänger sind, IronBarcode ermöglicht es Ihnen, effizient mit Barcodes zu arbeiten.
Ein neues Projekt erstellen
Öffnen Sie Visual Studio, um eine ASP.NET Crystal Reports-Website zu erstellen. Ich verwende Visual Studio 2022. Sie können jede beliebige Version verwenden, aber stellen Sie sicher, dass Crystal Reports für Visual Studio für die jeweilige Version installiert ist.
![So fügen Sie einen Barcode in Crystal Reports mit C# hinzu: Abbildung 1 - Visual Studio öffnen. Erstellen Sie ein neues "ASP.NET Crystal Reports Web Site'-Projekt.
Wählen Sie Projektname, Standort und Zielrahmen. Klicken Sie auf die Schaltfläche Erstellen. Ein neues Projekt wird wie unten gezeigt erstellt.
Bevor wir beginnen, brauchen wir eine Datenbank. Legen wir eine neue Datenbank und eine Beispieltabelle an.
Erstellen Sie eine neue Datenbank
Mit dem folgenden Skript wird eine neue Datenbank erstellt.
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
Fügen wir Daten in diese Tabelle ein. Wir müssen einen Strichcode erstellen und ihn in der Produkttabelle speichern. Daher müssen wir Daten mit C# Code einfügen. Wir müssen die IronBarcode Library in unserem Projekt installieren, um ihre Funktionen zur Erstellung von Barcodes zu nutzen.
IronBarcode-Bibliothek installieren
Um die IronBarcode-Bibliothek über die NuGet-Paketmanager-Konsole zu installieren, folgen Sie diesen Schritten:
Öffnen Sie die NuGet-Paketmanager-Konsole. Sie finden sie unter Ansicht -> Andere Fenster -> Paketmanager-Konsole.
Verwenden Sie in der Paketmanager-Konsole den folgenden Befehl, um die IronBarcode-Bibliothek zu installieren:
Install-Package Barcode
Drücken Sie die Eingabetaste, um den Befehl auszuführen.
Alternativ können Sie die IronBarcode-Bibliothek auch über die Funktion NuGet-Pakete für die Lösung verwalten installieren:
Warten Sie, bis der NuGet Package Manager die IronBarcode-Bibliothek und ihre Abhängigkeiten heruntergeladen und installiert hat. Sobald die Installation abgeschlossen ist, wird in der Paketmanager-Konsole eine Bestätigungsmeldung angezeigt.
Jetzt ist die IronBarcode-Bibliothek in Ihrem Projekt installiert und Sie können ihre Funktionen zum Erzeugen und Lesen von Barcodes nutzen.
Erzeugen Sie Barcode-Bilder und speichern Sie sie in der Datenbank
Ich werde Barcode-Bilder generieren und sie mit ADO.NET in der Datenbank speichern. Der folgende Code zeigt ein Beispiel für die Erzeugung eines Barcodes in 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
Der obige Quellcode generiert einen Barcode, verbindet sich mit einer SQL Server-Datenbank, fügt Daten (einschließlich des Barcodes) in die Tabelle "Products" ein und schließt dann die Datenbankverbindung.
Code Erläuterung
1. Barcode-Erzeugung
var myBarcode = BarcodeWriter.CreateBarcode("77446252", BarcodeWriterEncoding.Code128);
Diese Zeile erstellt einen Barcode mit der BarcodeWriter-Klasse durch die CreateBarcode()-Methode. Der Barcode wird aus den binären Daten generiert, die durch den String "77446252" im Code 128 Kodierungsformat dargestellt werden. Die myBarcode Variable enthält nun den generierten Barcode.
Die Funktion AddBarcodeValueTextBelowBarcode() wird einen Textwert unterhalb des Barcodes hinzufügen.
ResizeTo(600, 300) wird die Höhe und Breite des Barcode-Bildes mit den angegebenen Abmessungen ändern.
Wir können die SaveAs()-Methode verwenden, um Barcode-Bilder im Dateisystem zu speichern.
Der folgende Strichcode wird aus dem obigen Code erzeugt.
2. Einrichtung der Datenbankverbindung
SqlConnection cn = new SqlConnection("Data Source=localhost\SQLEXPRESS;initial catalog=ProductDB ; User ID=sa;Password=123456;");
Hier wird eine Verbindung zu einer SQL Server-Datenbank hergestellt. Die Verbindungszeichenfolge gibt den Server (localhost\SQLEXPRESS), den Initialkatalog (Datenbankname: ProductDB) und die Authentifizierungsanmeldedaten (Benutzer-ID sa und Passwort 123456) an.
3. Erstellung von SQL-Befehlen
SqlCommand cmd = new SqlCommand($"INSERT INTO dbo.Products values (77446252, 'Pine Apple Small','100', '{myBarcode.BinaryStream}' )", cn);
Ein neues SqlCommand-Objekt wird erstellt. Dieser Befehl stellt eine SQL-Abfrage zum Einfügen von Daten in die Tabelle Produkte dar.
Die Abfrage fügt Werte in die Tabellenspalten ein: 77446252, 'Pine Apple Small', '100' und den binären Datenstrom des erzeugten Barcodes (myBarcode.BinaryStream).
4. Datenbank-Interaktion
cn.Open() : Die Verbindung zur Datenbank wird geöffnet.
cmd.ExecuteNonQuery(): Die SQL-Abfrage wird ausgeführt und die angegebenen Werte werden in die Produkttabelle eingefügt.
cn.Close(): Die Datenbankverbindung wird geschlossen, um Ressourcen freizugeben.
Gestalten Sie Ihren Crystal Reports Barcode-Generator
Entwerfen Sie nun das Berichtslayout, fügen Sie Datenbankverbindungen hinzu und ordnen Sie die erforderlichen Felder an. Wenn Sie neu in diesem Bereich sind, befolgen Sie die folgenden Schritte.
Öffnen Sie Feld Explorer => Datenbankfeld => Datenbankexperte.
Erweitern Erstellen Sie eine neue Verbindung => OLE DB(ADO) => Neue Verbindung erstellen
Wählen Sie Microsoft OLE DB-Datenquelle für SQL Server. Klicken Sie auf Weiter.
Geben Sie den Servernamen, die Anmeldeinformationen und den Datenbanknamen wie unten gezeigt an.
Klicken Sie auf die Schaltfläche Weiter, es erscheint ein neues Fenster, und klicken Sie dann auf Fertig stellen.
Wählen Sie die Tabelle aus, die Sie hinzufügen möchten. Wählen Sie in diesem Fall die Produkttabelle aus.
![So fügen Sie einen Barcode in Crystal Reports mit C# hinzu: Abbildung 10 - Tabelle hinzufügen: Wählen Sie die Products-Tabelle aus der ProductDB-Datenbank aus. Klicken Sie dann auf die OK-Schaltfläche.
Klicken Sie auf die Schaltfläche OK.
Wir haben eine Datenbankverbindung eingerichtet. Lassen Sie uns nun das Berichtslayout einrichten.
Jetzt habe ich ein Textfeld mit dem Text "Barcode in Crystal report C#" hinzugefügt. Fügen Sie ein Textfeld hinzu, ziehen Sie die Felder Produkt-ID, Produktname und Produktpreis sowie den Produkt-Strichcode aus der Datenbank und platzieren Sie sie in dem Feld, wie unten gezeigt.
![So fügen Sie einen Barcode in Crystal Reports mit C# hinzu: Abbildung 11 - Erstellen eines Crystal Reports in C#. Ziehen Sie die Felder Produkt-ID, Produktname, Produktpreis und Produkt-Barcode aus den Datenbankfeldern.
Siehe die Crystal Report-Vorschau in Crystal Report Viewer.
Erstellen und starten Sie das Projekt. Die Ausgabe ist wie folgt:
Ich habe das Beispieldatenpaket nicht heruntergeladen, um sicherzustellen, dass ich die richtige Datendatei hatte, und bin dann dazu übergegangen, einen Crystal Report in C# für eine umfassende Datenvisualisierung zu erstellen.
Auf diese Weise können wir Strichcodes in der Crystal Reports-Anwendung erstellen, ohne die Strichcode-Schriftart herunterladen zu müssen. Ebenso können wir auch einen QR-Code nach Ihren Wünschen hinzufügen.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass die Integration von Barcodes in Crystal Reports unter Verwendung von C# eine leistungsstarke Möglichkeit zur Verbesserung der Datendarstellung und -verwaltung darstellt. Die Wahl einer zuverlässigen Barcode-Bibliothek wie IronBarcode vereinfacht den Prozess und bietet Vielseitigkeit und Benutzerfreundlichkeit. IronBarcode mit seiner Unterstützung für verschiedene Barcodetypen, Größenänderungen und Anpassungsfunktionen erweist sich als wertvolle Hilfe bei der Erstellung und dem Lesen von Barcodes. Die hier angebotene Schritt-für-Schritt-Anleitung gewährleistet einen nahtlosen Implementierungsprozess, von der Auswahl der Bibliothek bis zur Gestaltung des Crystal Report-Layouts.
Darüber hinaus IronBarcode, zusätzliche Funktionalitäten und Unterstützung freischalten, um das Barcode-Integrationserlebnis weiter zu verbessern. Diese Flexibilität macht IronBarcode zu einer überzeugenden Wahl für Entwickler, unabhängig davon, ob sie an kleinen Projekten oder Unternehmensanwendungen arbeiten.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.