IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Hauteur étiquettes sur imprimante Brother QL-5xx


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut Hauteur étiquettes sur imprimante Brother QL-5xx
    Bonjour,

    hier j'ai été chez un client pour installer un de mes logiciels.

    Ce client possède une Brother QL-5xxx ( je ne me souviens plus du type exact, mis j'ai une QL-570 au bureau et le problème est le même)

    Un de mes états liste le contenu de certains articles sous forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    10     Pièces trucs
    14     Cartes 
    22     Bidules 
    etc.
    Selon les articles, le contenu peut avoir 2 lignes ou 20 lignes.

    L'imprimante à étiquette utilise du papier continu, le soucis est que je n'arrive pas a avoir une longueur variable sur l'étiquette, c'est soit elle est trop longue , soit trop courte et le contenu est tronqué.

    J'ai essayé de mettre du code ( dans Etats et Requêtes) pour modifier dynamiquement la hauteur , mais soit je ne trouve pas la bonne formulation, soit je suis à côté de la plaque ....

    Avez-vous une piste ? je sèche et ... je suppose que je vais avoir un téléphone du client assez vite

    Excellente journée


    Olivier

  2. #2
    Membre habitué Avatar de Christophe.LOGEL
    Homme Profil pro
    Expert WinDev / WebDev
    Inscrit en
    Mars 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Expert WinDev / WebDev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 121
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    J'ai aussi une étiqueteuse similaire, j'avais fait un état en portrait de la largeur de l'étiquette (mettre un champ texte auto-extensible dans le corps) mais il fallait l'imprimer en paysage pour que ca fonctionne ...

    A+
    Christophe LOGEL
    www.sigmasys.fr

  3. #3
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Je crains qu'il ne soit complexe de traiter des impressions au dimension variable en passant par le driver d'imprimante classique de Windows. Généralement, les périphériques de type POS propose aussi un driver de type ESC/POS, si c'est bien le cas pour ce modèle d'imprimante, je pense qu'il serait préférable d'utiliser cette norme.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  4. #4
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Bonjour,

    merci pour vos réponses , mais dans mon cas, il est presque impératif que les utilisateurs puissent modifier leurs états.

    Certains utilisent une sortie imprimante classique, d'autres des étiqueteuses type Brother ...

    je désire donc tant que se peut rester sous des états classiques, quitte à s'emm.... heu ... à devoir configurer l'état sous Etat et requetes.

    Depuis ce matin , j'ai réussi à prendre la main sur la hauteur du papier , avec un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iParamètre(iHauteurPapier,nHauteur)
    au niveau du code "PROCEDURE ETAT_etiquette()", dans Etats et Requêtes, j'arrive donc a avoir une hauteur de nHauteur pour l'état.

    Mais ... il y a un mais ... si je mets ce code ailleurs que dans la procédure d'ouverture , il n'est pas pris en compte, et dans l'ouverture je n'ai pas encore accès aux valeurs des rubriques de ma requête.

    Il faut attendre la procédure "Lecture des données de ETAT_Etiquette()" pour accéder au texte contenu dans la rubrique de hauteur variable ...

    Donc en partie résolu , mais pas tout a fait.

    Olivier

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Si lors de l'ouverture tu arrives à gérer la hauteur, c'est déjà ça.

    Il te reste dans ce cas à parcourir les données avant le lancement de l'état pour connaitre par anticipation le nombre de ligne et passer un paramètre à l'état indiquant le nombre de ligne. Par contre il faut espérer que dans le code d'ouverture, tu puisses connaitre la hauteur de la section détail de ton état.

    Il faut aussi que tu n'imprimes qu'une étiquette à la fois, sinon tu ne pourras pas changer la hauteur en cours !!
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  6. #6
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    L'impression sous Windev ... pfffffffffffff .....

    par dépit je suis en train de tester l'impression en WL ... j'ai l'impression d'être en FPDF en php ... en moins bien ...



    Pas trop de soucis pour les iImprime() .. iPosX() etc..

    Mon code de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    iCréePolice(1, 12, iGras + iSouligne, "Arial")
    iCréePolice(2, 12,iNormal, "Arial")
     
    iConfigure("Brother QL-570",false)
     
    nH est un entier
    nH = ChaîneOccurrence(stexte,RC) // nombre de retour chariots dans la liste.
     
    nH = (nH * 50) + 200 // calcul de la hauteur du papier 
     
    iParamètre(iLargeurPapier, 620) // 620 = taille standard des l'étiquette
    iParamètre(iHauteurPapier,nH) 
     
     
    iAperçu(i100)
     
    iImprime(iPolice(1)+sTitre)	
    iPosY(iPosY() + 2) 
    iposX(2) 
    iImprime(iPolice(2)+stexte)	
    iFinImprime()
    ... donc jusqu'ici le test est OK, par contre si j'essaie de mettre un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ntest est un entier
    ntest = iHauteurZone(sTexte, 620)
    juste histoire de calculer la taille que prendra mon texte ( les textes sur plusieurs lignes sans retour chariot posent un petit soucis ), l'impression part directement sur l'imprimante sans passer par l'aperçu avant impression ....

    une idée, j'ai bientôt fini le rouleau d'étiquettes de l'imprimante


    merci pour votre aide

    Olivier

  7. #7
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Bonjour,

    toujours à mes étiquettes ...je suis en train de changer mon fusil d'épaule et j'essaie d'imprimer en WL.

    Dans l'ensemble c'est assez simple, je me suis basé sur l'exemple unitaire fourni avec WD et j'ai testé le fait de mettre le code d'impression dans du code compilé à la volée pour permettre les modifications sans devoir recompiler l’exécutable

    Il y a juste un truc qui blesse ... et c'est toujours le même : définir la hauteur du papier

    J'essaie vainement 'utiliser la fonction iHauteurZone sans succès.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    iAperçu(SELECT-1)
    iCréePolice(1, 12, iGras + iItalique, "Arial")
    iCréePolice(2, 12,iNormal, "Arial")
    Trace("1  avant iParametre -- " + iParamètre(iHauteurPapier))
     
    iParamètre(iHauteurPapier,2500 ) 
     
    Trace("2 -- apres iParametre  " + iParamètre(iHauteurPapier))
    iParamètre(iHauteurPapier,600) 
     
    Trace("3  -- premier changement de hauteur ==> OK  " + iParamètre(iHauteurPapier))
     
    // Récupère la hauteur de la colonne
    rDHauteur est un réel = iHauteurZone(stexte, 620)
    Trace("Calcul h auteur de la zone " + rDHauteur) 
     
     
    iParamètre(iHauteurPapier,PartieEntière(rDHauteur)*10)  
    Trace("4 - dimensionne iParametre à  " + PartieEntière(rDHauteur)*10 ) 
     
    Trace("5  --  apres 2eme changement toujours à  " + iParamètre(iHauteurPapier))
    iImprimeZone(stexte, 0, 0, rDHauteur, 620,iHaut + iGauche)
     
    iFinImprime()

    Le résultat de la trace sera :

    1 avant iParametre -- 898
    2 -- apres iParametre ==> OK 2500
    3 -- premier changement de hauteur ==> OK 600
    Calcul h auteur de la zone 48.26
    4 - dimensionne iParametre à 480
    5 -- apres 2eme changement toujours à 600



    Donc le dimensionnement au point 4 ne change plus rien ... au point 5 c'est toujours la hauteur fixée au point 3 qui prime


    Une idée , je suis le seul dans cette galère ?

    "L'impression en WL, grillez vos rouleau d'imprimante 10 X plus vite !"

    Bonne journée


    Olivier

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/05/2014, 15h44
  2. Réponses: 6
    Dernier message: 17/05/2006, 21h02
  3. Impression direct sur imprimante via delphi
    Par wattman dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2006, 12h35
  4. bouton imprimer sur imprimante precise!
    Par NoobX dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2005, 11h59
  5. [CR][ASP.NET] Impression sur imprimante partagée
    Par Frusciante8 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/01/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo