Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Comment imprimer des codes-barres dans Crystal Reports avec VB.NET

L'ajout de codes-barres aux Crystal Reports peut améliorer vos processus métier, les rendant plus rapides et plus précis, du suivi des stocks à la génération de rapports détaillés. Si vous avez déjà essayé d'utiliser des codes-barres basés sur des polices dans VB.NET, vous savez à quel point cela peut être compliqué avec les formules complexes, les formats limités et les problèmes d'imprimante qui peuvent le rendre frustrant.

Heureusement, les SDK générateurs de codes-barres modernes, tels que IronBarcode, rendent la création et l'impression de codes-barres simples. Dans ce guide, nous vous expliquerons tout : la configuration de IronBarcode dans Visual Studio, la génération de codes-barres, et leur affichage directement dans vos Crystal Reports. À la fin, vous serez capable de produire des codes-barres professionnels et fiables avec un minimum de tracas.

Quels sont les méthodes pour imprimer des codes-barres dans Crystal Reports ?

Il existe deux approches principales pour ajouter des codes-barres à Crystal Reports : les méthodes basées sur la police et les solutions SDK.

Les méthodes basées sur la police nécessitent l'installation de polices de codes-barres spéciales (polices True Type) dans votre dossier de polices et l'utilisation de formules ou d'une bibliothèque de fonctions utilisateur (UFL) pour encoder les données. Bien que cette approche fonctionne, elle implique souvent des formules de codage complexes, une prise en charge limitée des formats de codes-barres (tels que Code 39 ou data matrix), et des problèmes potentiels de rendu de polices sur différents imprimantes et systèmes, comme discuté dans la documentation de Microsoft sur le rendu des polices.

Les solutions basées sur SDK offrent une alternative plus robuste. Ces bibliothèques génèrent des images de codes-barres par programmation, offrant une meilleure fiabilité, une prise en charge étendue des formats et une mise en place plus facile. IronBarcode exemplifies this modern approach, allowing developers to générer des codes-barres sous forme d'images qui s'intègrent parfaitement dans Crystal Reports via des champs de base de données standard ou des objets DataTable. Cette méthode assure un rendu cohérent sur toutes les plateformes et élimine les problèmes de dépendance aux polices lors de l'impression d'un code-barres dans un Crystal Report à l'aide de VB.NET.

Comment configurer IronBarcode pour VB.NET ?

La configuration de IronBarcode dans votre projet VB.NET nécessite une configuration minimale. Tout d'abord, installez la bibliothèque via le gestionnaire de packages NuGet en exécutant :

Install-Package BarCode

Alternativement, utilisez l'interface utilisateur du gestionnaire de packages dans Visual Studio pour rechercher et installer "IronBarcode". Une fois installé, importez l'espace de noms dans votre code VB.NET :

Imports IronBarCode
Imports IronBarCode
VB .NET

Assurez-vous que votre projet cible .NET Framework 4.0 ou supérieur, ou toute version de .NET Core/.NET 5+. IronBarcode fonctionne avec toutes les versions de Crystal Reports qui prennent en charge les champs d’image, ce qui le rend largement compatible avec les projets existants. Pour des instructions de configuration détaillées, consultez la documentation IronBarcode.

Téléchargez IronBarcode dès aujourd'hui pour commencer à créer des codes-barres professionnels dans vos Crystal Reports.

Comment générer des codes-barres et les stocker dans une base de données ?

Créer des codes-barres avec IronBarcode et les stocker pour Crystal Reports implique de générer l'image du code-barres et de la sauvegarder dans votre base de données à l'aide d'une nouvelle OleDbConnection ou SqlConnection. Voici un exemple complet :

Option 1 : Utiliser une base de données

Imports IronBarCode
Imports System.Data.SqlClient
Module BarcodeGenerator
    Sub CreateAndStoreBarcode()
        ' Generate a Code128 barcode
        Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345", BarcodeWriterEncoding.Code128)
        ' Add readable text below the barcode
        myBarcode.AddBarcodeValueTextBelowBarcode()
        ' Resize to appropriate dimensions and adjust font size
        myBarcode.ResizeTo(400, 150)
        ' Connect to your database (example uses connection string)
        Using connection As New SqlConnection("YourConnectionString")
            ' SQL command to post barcode data
            Dim cmd As New SqlCommand("INSERT INTO Products (ProductCode, BarcodeImage) VALUES (@Code, @Image)", connection)
            ' Add parameters
            cmd.Parameters.AddWithValue("@Code", "CUSTOMER-12345")
            cmd.Parameters.AddWithValue("@Image", myBarcode.BinaryStream)
            ' Execute the command
            connection.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Sub
End Module
Imports IronBarCode
Imports System.Data.SqlClient
Module BarcodeGenerator
    Sub CreateAndStoreBarcode()
        ' Generate a Code128 barcode
        Dim myBarcode = BarcodeWriter.CreateBarcode("PROD-12345", BarcodeWriterEncoding.Code128)
        ' Add readable text below the barcode
        myBarcode.AddBarcodeValueTextBelowBarcode()
        ' Resize to appropriate dimensions and adjust font size
        myBarcode.ResizeTo(400, 150)
        ' Connect to your database (example uses connection string)
        Using connection As New SqlConnection("YourConnectionString")
            ' SQL command to post barcode data
            Dim cmd As New SqlCommand("INSERT INTO Products (ProductCode, BarcodeImage) VALUES (@Code, @Image)", connection)
            ' Add parameters
            cmd.Parameters.AddWithValue("@Code", "CUSTOMER-12345")
            cmd.Parameters.AddWithValue("@Image", myBarcode.BinaryStream)
            ' Execute the command
            connection.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Sub
End Module
VB .NET

Connectez-vous à votre base de données en créant une nouvelle connexion à l'aide de SqlConnection (ou de new OleDbConnection) et publiez vos données de code-barres.

Option 2 : Utiliser un DataTable

Imports IronBarCode
Imports System.Data
Function CreateBarcodeDataTable() As DataTable
    Dim dt As New DataTable()
    dt.Columns.Add("ProductCode", GetType(String))
    dt.Columns.Add("Barcode", GetType(Byte()))
    ' Add table row for each product
    Dim row As DataRow = dt.NewRow()
    row("ProductCode") = "PROD-12345"
    ' Create barcode on-the-fly and convert to binary
    Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
    barcode.AddBarcodeValueTextBelowBarcode()
    barcode.ResizeTo(400, 150)
    row("Barcode") = barcode.BinaryStream
    dt.Rows.Add(row)
    Return dt
End Function
Imports IronBarCode
Imports System.Data
Function CreateBarcodeDataTable() As DataTable
    Dim dt As New DataTable()
    dt.Columns.Add("ProductCode", GetType(String))
    dt.Columns.Add("Barcode", GetType(Byte()))
    ' Add table row for each product
    Dim row As DataRow = dt.NewRow()
    row("ProductCode") = "PROD-12345"
    ' Create barcode on-the-fly and convert to binary
    Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
    barcode.AddBarcodeValueTextBelowBarcode()
    barcode.ResizeTo(400, 150)
    row("Barcode") = barcode.BinaryStream
    dt.Rows.Add(row)
    Return dt
End Function
VB .NET

Ce code génère un code-barres Code 128 avec la valeur "PROD-12345". La méthode AddBarcodeValueTextBelowBarcode() ajoute un texte lisible par l'homme sous le code-barres. La méthode ResizeTo() ajuste les dimensions pour s'adapter à la mise en page de votre rapport. Pour plus de formats de codes-barres, explorez les types de codes-barres pris en charge.

Comment afficher les codes-barres dans Crystal Reports ?

Une fois que les codes-barres sont stockés dans votre base de données, les afficher dans Crystal Reports suit les procédures standard de champ d'image :

  1. Ouvrez Crystal Reports et créez un nouveau rapport ou ouvrez un rapport existant
  2. Dans l'Explorateur de champs, faites un clic droit sur "Champs de base de données" et sélectionnez "Expert de la base de données"

Comment imprimer des codes-barres dans Crystal Reports avec VB.NET : Figure 1 - fenêtre Expert base de données

  1. Connectez-vous à votre base de données et sélectionnez la table contenant les images de codes-barres
  2. Faites glisser le champ d'image de code-barres sur la surface de conception de votre rapport
  3. Redimensionnez et placez le champ selon le besoin

Le concepteur de votre rapport devrait ressembler à ceci :

Comment imprimer des codes-barres dans Crystal Reports avec VB.NET : Figure 2 - mise en page du concepteur de rapport

Pour la génération dynamique de codes-barres lors du bon déroulement du rapport, modifiez votre DataTable ou votre requête de base de données pour générer des codes-barres à la volée :

Function GetReportData() As DataTable
    Dim dt As New DataTable()
    dt.Columns.Add("ProductCode", GetType(String))
    dt.Columns.Add("Barcode", GetType(Byte()))
    ' Add table row
    Dim row As DataRow = dt.NewRow()
    row("ProductCode") = "CUSTOMER-12345"
    ' Create barcode on-the-fly and convert to binary
    Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
    row("Barcode") = barcode.BinaryStream
    dt.Rows.Add(row)
    Return dt
End Function
Function GetReportData() As DataTable
    Dim dt As New DataTable()
    dt.Columns.Add("ProductCode", GetType(String))
    dt.Columns.Add("Barcode", GetType(Byte()))
    ' Add table row
    Dim row As DataRow = dt.NewRow()
    row("ProductCode") = "CUSTOMER-12345"
    ' Create barcode on-the-fly and convert to binary
    Dim barcode = BarcodeWriter.CreateBarcode("CUSTOMER-12345", BarcodeWriterEncoding.Code128)
    row("Barcode") = barcode.BinaryStream
    dt.Rows.Add(row)
    Return dt
End Function
VB .NET

Cette approche génère dynamiquement des codes-barres lors du chargement du rapport, éliminant la nécessité de pré-stocker des images dans la base de données. Vous pouvez également convertir des rapports en PDF grâce aux fonctionnalités d'exportation Crystal Reports. Pour plus d'informations sur les sources de données Crystal Reports, consultez la documentation SAP sur Crystal Reports.

Sortie

Votre Crystal Report devrait afficher le code-barres avec du texte lisible et une taille de police appropriée. Ajustez la police, la taille du champ ou les marges selon le besoin pour les scanner, imprimantes ou étiquettes. Le code-barres peut désormais être inclus dans des formulaires PDF, des modèles imprimés ou des gabarits directement depuis votre programme/projet VB.

Comment imprimer des codes-barres dans Crystal Reports avec VB.NET : Figure 3 - Affichage des codes-barres générés avec Crystal Reports Viewer

Quels sont les problèmes courants et solutions?

Divers problèmes peuvent survenir lors de la mise en oeuvre de codes-barres dans Crystal Reports avec VB.NET :

  • Codes-barres flous : Améliorez la résolution avec myBarcode.ResizeTo() avec des dimensions plus grandes.
  • Problèmes de numérisation : Assurez suffisamment d'espace blanc autour des codes-barres ou incluez des marqueurs d'astérisque pour Code 39.
  • Problèmes de connexion à la base de données : Vérifiez vos nouveaux paramètres OleDbConnection ou new OleDbDataAdapter. Assurez un lien adéquat au jeu de données.
  • Problèmes de type de données : Utilisez toujours des champs image ou varbinary(max) pour stocker les données binaires du code-barres.
  • Codes-barres non affichés : Vérifiez que le visualiseur Crystal Reports dispose des autorisations appropriées pour accéder à la base de données, DataTable ou aux ressources de fichiers.
  • Problèmes système : Assurez-vous que toutes les DLL nécessaires sont installées et que votre projet référence la bonne DLL IronBarcode.
  • Problèmes de polices ou d'imprimantes : Assurez-vous que les polices True Type sont installées dans le dossier des polices et configurées pour vos imprimantes.

Pour une assistance supplémentaire en matière de dépannage, visitez le guide de dépannage IronBarcode.

Conclusion

La mise en oeuvre de codes-barres dans Crystal Reports à l'aide de VB.NET et IronBarcode offre une solution fiable et simple pour améliorer les rapports. Cette approche basée sur SDK élimine les dépendances de polices tout en offrant de nombreuses options de personnalisation. Que vous utilisiez une base de données ou un DataTable, vous pouvez mettre en oeuvre des codes-barres professionnels, y compris les data matrix, Code 39, et d'autres formats dans votre application Crystal Reports.

Commencez à mettre en oeuvre des codes-barres dans votre projet aujourd'hui en téléchargeant la version d'essai gratuite de IronBarcode pour explorer toutes ses capacités pour imprimer des codes-barres dans Crystal Reports à l'aide de VB.NET.

Questions Fréquemment Posées

Quels sont les avantages de l'utilisation de IronBarcode dans Crystal Reports avec VB.NET ?

Utiliser IronBarcode dans Crystal Reports avec VB.NET vous permet d'intégrer des codes-barres de manière transparente, améliorant les processus métier pour des tâches telles que le suivi des stocks et la génération de rapports détaillés. Cela simplifie la génération de codes-barres par rapport aux solutions basées sur les polices.

Comment IronBarcode améliore-t-il la génération de codes-barres dans Crystal Reports ?

IronBarcode améliore la génération de codes-barres en offrant un SDK simple qui élimine le besoin de formules complexes et réduit les problèmes liés aux formats limités et à la compatibilité des imprimantes dans Crystal Reports.

IronBarcode peut-il gérer différents formats de codes-barres dans Crystal Reports ?

Oui, IronBarcode prend en charge une large gamme de formats de codes-barres, ce qui le rend polyvalent pour diverses applications au sein de Crystal Reports, garantissant compatibilité et fiabilité.

Est-il difficile d'intégrer IronBarcode dans un projet VB.NET ?

Non, l'intégration de IronBarcode dans un projet VB.NET est conçue pour être conviviale avec une documentation claire et un support, rendant le processus fluide et efficace.

Pourquoi devrais-je choisir IronBarcode plutôt que des solutions de codes-barres basées sur les polices ?

IronBarcode offre une solution plus robuste et flexible que les codes-barres basés sur les polices, évitant des formules complexes et des problèmes d'imprimante, tout en offrant un support de format étendu et une fiabilité.

IronBarcode prend-il en charge l'impression de codes-barres directement depuis Crystal Reports ?

Oui, IronBarcode permet l'impression directe de codes-barres depuis Crystal Reports, garantissant une sortie de haute qualité et réduisant la complexité souvent associée à d'autres méthodes.

Quels sont les problèmes courants avec les codes-barres basés sur les polices en VB.NET ?

Les codes-barres basés sur les polices impliquent souvent des formules complexes, des options de format limitées et des problèmes de compatibilité des imprimantes, qu'IronBarcode aide à surmonter grâce à son SDK complet.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite