DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Code-Barres
  • Propriétés spécifiques à la description des variables de type CodeBarres
  • Correspondance entre la propriété Contenu et la propriété TypeContenu
  • Fonctions utilisant des variables de type CodeBarres
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Le type CodeBarres permet de manipuler les informations contenues dans un code-barres. Les caractéristiques de ce code-barres peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Les utilisations du type codeBarres sont les suivantes :
  • WINDEV Le type CodeBarres est utilisé principalement :
    • pour générer des codes-barres dans les fenêtres et dans les états.
    • pour décoder les codes-barres de type QR Code (présents dans une image).
    • pour imprimer des codes-barres (fonction iImprimeCodeBarre).
  • WEBDEV - Code Serveur Le type CodeBarres est utilisé principalement :
    • pour générer des codes-barres dans les pages.
    • pour générer des codes-barres dans les états.
    • pour imprimer des codes-barres (fonction iImprimeCodeBarre).
  • Android Le type CodeBarres est utilisé principalement :
    • pour décoder les codes-barres lus par la caméra de l'appareil.
    • pour générer des codes-barres dans les fenêtres.
  • iPhone/iPadWidget IOSMac Catalyst Le type CodeBarres est utilisé principalement :
    • pour générer des codes-barres de type QR Code dans les fenêtres.
    • pour décoder les codes-barres lus par la caméra de l'appareil.
    • pour décoder les codes-barres de type QR Code présents dans une image.
    • pour imprimer des codes-barres (fonction iImprimeCodeBarre).
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
Android
// Décodage d'un code-barres QR Code
cb est un CodeBarres
cb = CBCapture()
SI ErreurDétectée = Faux _ET_ cb.TypeContenu = cbTypeEmail ALORS
    	Info("Adresse email : " + cb.ValeurBrute)
FIN
MonQRCode est un CodeBarres
MonQRCode.TypeContenu = cbTypeTexte
MonQRCode.TypeCodeBarres = CB_QRCODE
MonQRCode.Contenu = "http://www.pcsoft.fr"
 
// Affectation à un champ Code-barres
CBA_ChampCB = MonQRCode
// Génération d'un QRCode avec une image
// ------------- Code d'initialisation du code-barres ou de l'état
QRCodeAvecImage est un CodeBarres
// Image à mettre au centre du code-barres
ImageCentreQRCode est une Image
ImageCentreQRCode = IMG_DRAPEAU
// Type du code-barres
QRCodeAvecImage.TypeCodeBarres = CB_QRCODE
QRCodeAvecImage.TypeContenu = cbTypeTexte
// Image au centre
QRCodeAvecImage.Image = ImageCentreQRCode
// Niveau de correction d'erreur élevé pour compenser l'image au centre
QRCodeAvecImage.CorrectionErreur = qrcodeNiveauH
QRCodeAvecImage.ProportionImage = 3
// Pour une proportion d'image de 3%, une correction de niveau L (qrcodeNiveauL) serait insuffisante
// pour avoir un code-barres lisible
 
// Valeur (initiale)
QRCodeAvecImage.Contenu = "https://www.pcsoft.fr"
// Dans un état, la valeur peut-être ré-affectée :
//- par une liaison fichier sur le champ
//- dans le code avant impression
//- dans le code de lecture des données de l'état
// ou bien n'importe où après
 
// Affectation à un champ Code-barres
CBA_Facture = QRCodeAvecImage
 
// ------------- Code avant impression
CBA_Facture.Valeur = "QR Code avec un drapeau au centre !"
Remarques

Propriétés spécifiques à la description des variables de type CodeBarres

Les propriétés suivantes peuvent être utilisées pour manipuler un code-barres :
Nom de la propriétéType manipuléEffet
ContenuTout typeValeur du code-barres.
  • Pour les codes-barres de type QR Code, le type de cette valeur dépend de la propriété TypeContenu.
    Consultez la note ci-dessous pour connaître la correspondance entre le type de contenu et le type de la valeur.
  • Pour les codes-barres autres que QR Code, lors de la lecture d'un code-barres, cette propriété est toujours de type "Chaîne de caractères" et sa valeur est identique à celle de la propriété ValeurBrute.
CorrectionErreurConstante de type EntierNiveau de correction de l'erreur : permet de définir le seuil de lecture d'un code-barres endommagé.
Cette propriété est disponible uniquement pour :
  • les codes-barres de type QR Code.
  • les codes-barres de type PDF-417.
  • les codes-barres de type Aztec.
Les constantes disponibles pour les QR Code sont :
  • qrcodeNiveauH : environ 30% des mots encodés peuvent être restaurés.
  • qrcodeNiveauL : environ 7% des mots encodés peuvent être restaurés.
  • qrcodeNiveauM : environ 15% des mots encodés peuvent être restaurés.
  • qrcodeNiveauQ : environ 25% des mots encodés peuvent être restaurés.
Le niveau de correction choisi entraîne :
  • le changement de la taille du code-barres.
  • la modification du nombre maximum de caractères possibles dans le code-barres.
Plus le niveau de correction est élevé, plus le dessin du code-barres aura une taille importante et moins il sera possible de dessiner des données. Par contre, plus le niveau de correction sera élevé, plus le code-barres sera lisible si le support est endommagé.
Conseils :
  • Si le code-barres contient une URL, le niveau L est suffisant.
  • Si un logo est inséré dans le code-barres, il vaut mieux passer à un niveau supérieur (M ou Q).
  • Si le code-barres est destiné à l'impression d'étiquettes pour un entrepôt, il faut utiliser le niveau H.
Pour les codes-barres de type PDF-417, le niveau de correction de l'erreur correspond à un entier compris entre 0 et 8.
Pour les codes-barres de type Aztec, le niveau de correction correspond à un entier compris entre 5 et 95, représentant le pourcentage de correction d'erreur. La valeur par défaut est 33. Si la valeur donnée est
  • inférieure à 5, la valeur retenue sera 5,
  • supérieure à 95, la valeur retenue sera 95,
  • négative, la valeur retenue sera 33 (valeur par défaut).
Android Cette propriété n'est pas disponible.
ImageImage ajoutée au centre du code-barres (uniquement pour les codes-barres de type QR Code). Cette image peut correspondre à :
  • une variable de type Image,
  • une chaîne de caractères contenant le chemin du fichier image à utiliser,
  • une rubrique de type mémo image, ...
Android Cette propriété n'est pas disponible.
OptionsConstante ou combinaison de constantes de type entierCaractéristiques du code-barres. Ces caractéristiques sont utilisées notamment lors de l'impression d'un code-barres avec la fonction iImprimeCodeBarre. Les constantes pouvant être utilisées sont les suivantes :
  • CB_Bas : Code-barres positionné en bas du rectangle destination.
  • CB_CaractèreControle : Code-barres contenant des caractères de contrôle (valable uniquement pour les codes-barres de type CB_CODE128, CB_DATAMATRIX, CB_EAN128, CB_GS1_128 et CB_PDF417). Par défaut, les caractères de contrôle sont encadrés par les caractères "<" et ">". Pour ne pas interpréter ces caractères comme caractères de contrôle, il suffit de doubler le premier "<" :
    • "<C40>" = caractère de contrôle
    • "<<AB>" = chaîne <AB> à encoder dans le code-barres.
Pour plus de détails sur les caractères acceptés, consultez Les différents types de codes-barres.
  • CB_CaractèreVérification : Code-barres contenant des caractères de vérification (valable uniquement pour les codes-barres de type CB_CODE128, CB_DATAMATRIX, CB_EAN128, CB_GS1_128 et CB_PDF417).
    Si cette option est sélectionnée, les constantes CB_CaractèreControle et CB_JeuxCaractères sont automatiquement prises en compte.
  • CB_CentreH : Centrage horizontal du code-barres dans le rectangle destination.
  • CB_CentreV : Centrage vertical du code-barres dans le rectangle destination.
  • CB_Droite : Code-barres aligné à droite dans le rectangle destination.
  • CB_Etendu : Code-barres étendu (valable uniquement pour les codes-barres de type CB_CODE39 et CB_CODE93).
  • CB_FormateTexte : Formate le texte affiché pour les codes-barres de type EAN 128 : des parenthèses sont ajoutées autour des AIs dans le texte imprimé.
  • CB_Gauche : Code-barres aligné à gauche dans le rectangle destination.
  • CB_Haut : Code-barres positionné en haut du rectangle destination.
  • CB_IgnoreFormatage : Ignore les parenthèses d'un code 128, EAN-128 ou GS1-128 (valable uniquement pour les codes-barres de type CB_CODE128, CB_EAN128 et CB_GS1_128).
    Les parenthèses sont utilisées pour rendre le code-barres plus lisible par un humain, mais ne sont pas dessinées dans le code.
  • CB_JeuxCaractères : Code-barres utilisant un ou plusieurs jeux de caractères utilisés pour la compression du code-barres. Ce jeu de caractères doit être défini dans la valeur du code-barres.
    Pour plus de détails sur les jeux de caractères, consultez Les différents types de codes-barres.
  • CB_NonProportionnel : Ajuste le code-barres à la taille du rectangle destination.
  • CB_SansTexte : N'affiche pas le texte sous le code-barres (valable uniquement pour les codes-barres de type CB_UPCA, CB_UPCB, CB_EAN13 et CB_EAN8).
  • CB_Texte : Affiche le texte sous le code-barres.
    Le texte est normalisé pour les codes-barres de type CB_UPCA, CB_UPCE, CB_EAN13 et CB_EAN8.
    Pour les autres types de codes-barres, le texte peut dépasser du cadre d'affichage du code-barres.
  • CB_TexteCentre : Centre le texte sous le code-barres (valable uniquement pour les codes-barres de type CB_CODE128, CB_CODE93, CB_CODE11, CB_EAN128, CB_CODE39, CB_INTER2OF5, CB_CODABAR, CB_MSI).
  • CB_TexteDroite : Aligne à droite le texte sous le code-barres (valable uniquement pour les codes-barres de type CB_CODE128, CB_CODE93, CB_CODE11, CB_EAN128, CB_CODE39, CB_INTER2OF5, CB_CODABAR, CB_MSI).
  • CB_TexteGauche : Aligne à gauche le texte sous le code-barres (valable uniquement pour les codes-barres de type CB_CODE128, CB_CODE93, CB_CODE11, CB_EAN128, CB_CODE39, CB_INTER2OF5, CB_CODABAR, CB_MSI).
  • CB_Vérification : Code-barres avec caractères de vérification (valable uniquement pour les codes-barres de type CB_CODE39, CB_CODE93, CB_INTER2OF5 et CB_CODABAR).
  • CB_Vertical : Imprime le code-barres verticalement.
  • CB_90 : Imprime le code-barres verticalement.
  • CB_180 : Imprime le code-barres en faisant une rotation à 180 degrés.
  • CB_270 : Imprime le code-barres en faisant une rotation à 270 degrés.
ProportionImageRéelPourcentage de la surface du code-barres occupée par l'image ajoutée au centre du code-barres (uniquement pour les codes-barres de type QR Code pour lesquels la propriété Image est spécifiée). Cette valeur ne doit pas dépasser la moitié de la surface réservée pour la correction d'erreur.
Valeur de la propriété CorrectionErreurValeur maximale de la propriété ProportionImage
qrcodeNiveauH5
qrcodeNiveauL1
qrcodeNiveauM3
qrcodeNiveauQ 5

Android Cette propriété n'est pas disponible.
TypeCodeBarresConstante de type EntierType de code-barres :
  • CB_AZTEC : Code-barres de type AZTEC.
  • CB_MAXICODE : Code-barres de type MaxiCode.
    Android Non disponible.
  • CB_QRCODE : Code-barres de type QR Code. Cette constante est utilisée par défaut lors de la création d'une variable de type CodeBarres.
  • CB_UPCA : Code-barres de type UPC-A.
  • CB_UPCE : Code-barres de type UPC-E.
  • CB_EAN8 : Code-barres de type EAN8.
  • CB_EAN13 : Code-barres de type EAN13.
  • CB_CODE39 : Code-barres de type Code39.
  • CB_CODE93 : Code-barres de type Code93.
  • CB_CODE128 : Code-barres de type Code128.
  • CB_GS1_128 : Code-barres de type GS1-128 (nouveau nom du code-barres EAN128).
  • CB_INTER2OF5 : Code-barres de type Interleaved 2 of 5.
  • Android CB_INCONNU : Code-barres décodé par la fonction CBCapture avec un type non reconnu.
    Remarque : Cette constante est disponible en lecture uniquement.
  • CB_DATAMATRIX : Code-barres de type DATAMATRIX.
    iPhone/iPadWidget IOSMac Catalyst Ce type de code-barres n'est pas disponible.
  • CB_PDF417 : Code-barres de type PDF417.
  • CB_CODABAR : Code-barres de type Codabar.
  • CB_CODE11 : Code-barres de type Code11.
    Android Ce type de code-barres n'est pas disponible.
  • CB_EAN128 : Code-barres de type EAN128.
    Android Ce type de code-barres n'est pas disponible.
  • CB_MSI : Code-barres de type MSI.
    Android Ce type de code-barres n'est pas disponible.
Ces types sont également disponibles pour les impressions réalisées à l'aide de la fonction iImprimeCodeBarre.
TypeContenuConstante de type EntierNature des données stockées dans le code-barres :
  • cbTypeTexte (valeur par défaut lors de la création de la variable) : Texte brut
  • cbTypeTéléphone : Numéro de téléphone
  • cbTypeSMS : Numéro de SMS
  • cbTypeEmail : Adresse email
  • cbTypeContact : Description d'un contact
  • cbTypePosition : Position géographique
  • cbTypeURL : URL (signet). Pour insérer une adresse http dans le code-barres, utilisez le type cbTypeTexte.
    Cette constante est conservée par compatibilité et doit être utilisée dans des cas très spécifiques.
  • cbTypeMarket : Lien vers une application sur Google Play (pour une application Android uniquement)
  • cbTypeWiFi : Paramètres de connexion à un réseau Wi-Fi (pour une application Android uniquement)
Remarque : Ces natures de données sont disponibles pour les codes-barres 2D (par exemple QR Code, Aztec, datamatrix, PDF417, ...). Pour les codes-barres autres que les codes-barres 2D, la nature des données est toujours de type texte.
ValeurBruteChaîne de caractères UnicodeValeur brute du code-barres.
Pour les codes-barres autres que ceux de type QR Code, la valeur de cette propriété est identique à celle de la propriété Contenu.
Cette propriété est disponible en lecture seulement.
Android Cette propriété en lecture seule contient la valeur du code-barres telle qu'elle a été lue par la fonction CBCapture indépendamment de la nature des données stockées dans le code-barres.
Par exemple, cette propriété correspond à "mailto:adresse@mail.com" si un QR Code contenant une adresse email est décodé.

Correspondance entre la propriété Contenu et la propriété TypeContenu

Type de contenuType de la valeur (Propriété Contenu)Remarque
cbTypeTexteChaîne de caractèresExemple : "WinDev c'est bien !"
cbTypeTéléphoneChaîne de caractèresExemple : "0612345678"
cbTypeSMSChaîne de caractères
En lecture : Les membres de la structure SMS (SMS.Message et SMS.Numéro) seront automatiquement renseignés avec les valeurs lues dans le code-barres. le contenu correspondra à une chaîne de la forme : <Numéro> + RC + <Message>
En génération : S'ils existent, les membres de la structure SMS (SMS.Message et SMS.Numéro) seront automatiquement pris en compte. Il est également possible d'utiliser une chaîne de caractères de la forme : <Numéro> + RC + <Message>
Exemple : "0612345678<RC>Texte à envoyer"
cbTypeURLChaîne de caractères
Correspond à un signet. Le contenu sera encodé sous la forme "urlto::URL". Par exemple : "urlto::http://www.pcsoft.fr". Certains décodeurs ne supportent pas ce type de contenu.
Pour spécifier une adresse http, utilisez le type de contenu cbTypeTexte.
Remarque : Cette constante est conservée par compatibilité et doit être utilisée dans des cas très spécifiques.
Exemple : "http://www.google.fr"
cbTypeMarketChaîne de caractèresExemple : "market://search?q=pname:com.societe.application"
cbTypeWiFiChaîne de caractèresChaîne de caractères de la forme :
<SSID> + TAB + <Protocole de sécurité>+ TAB + <Clé>
Exemple : "MonRéseau<TAB>WPA<TAB>mdp"
cbTypeEmailChaîne de caractèresExemple : "nom@mail.com"
cbTypeContactVide.
En lecture : Les membres de la structure mContact seront automatiquement renseignés avec les valeurs lues dans le code-barres.
En génération : Les membres de la structure mContact seront automatiquement utilisés pour générer le code-barres.
cbTypePositionVariable de type géoPosition.
En lecture : Les propriétés Latitude et Longitude de la variable seront automatiquement renseignées avec les valeurs lues dans le code-barres.
En génération : Les propriétés Latitude et Longitude de la variable seront automatiquement utilisées pour générer le code-barres.

Fonctions utilisant des variables de type CodeBarres

CBCaptureDécode les informations stockées dans un code-barres en utilisant la caméra de l'appareil (Android, iPhone, iPad).
CBDécodeDécode les informations stockées dans un code-barres de type QR Code.
iImprimeCodeBarreImprime un code-barres (à l'intérieur d'un rectangle).
Remarque : Pour réinitialiser le contenu d'une variable de type CodeBarres, il est possible d'utiliser la fonction VariableRAZ.
Liste des exemples associés :
Android Inventaire Android (WINDEV Mobile) : Android Inventaire
[ + ] Cette application permet de réaliser les inventaires et d'enregistrer les résultats dans une base de données.
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 17/04/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale