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 :

Génération de N étiquettes, quelle méthode ? [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut Génération de N étiquettes, quelle méthode ?
    Bonjour,

    dans une petite appli de génération d'étiquettes de colis, un utilisateur a la possibilité de sélectionner dans un tableau l'expédition pour laquelle il souhaite obtenir les étiquettes.

    Il double-clique sur la ligne désirée, le système propose le nombre N d'étiquettes normalement nécessaires (N = nombre de pièces livrées / nombre de pièce par colis) mais on peut forcer ce nombre si besoin.

    Je dois ensuite générer les N étiquettes, sachant que chaque étiquette ne sera pas un bête duplicata des N - 1 autres puisque sur chacune figurera un code barre identifiant le colis ( = le numéro de l'étiquette = N )

    Je ne sais pas du tout par où empoigner le truc :
    - est-ce que je fais un état paramétré, qui sera généré N fois successivement et imprimé en faisant en sorte que l'utilisateur n'ait à choisir l'imprimante qu'une seule fois
    - ou bien un seul état qui va générer les N étiquettes (une par page), mais alors du coup je ne peux pas baser mon état sur une requête, il devra être entièrement créé par programmation

    Qu'en pensez-vous ?

    Merci pour vos idées

    bvadam
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    est-ce que tu ne peux pas constituer un tableau intermédiaire dans lequel tu auras l'ensemble des données d'une étiquette sur une ligne ?

    Ensuite tu bases ton état sur ce tableau, chaque étiquette imprimant le contenu d'une ligne.

    Bon courage,

    Nicolas

  3. #3
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    si si, sans problème

    en fait je ne connais pas le mécanisme qui permet d'affecter une étiquette à une ligne de tableau

    via quelle instruction ou dans quel bloc traitement de l'état.

    est-ce qu'un exemple existe sur lequel je pourrais m'appuyer ?

    merci nicolas
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  4. #4
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Salut
    Je poursuit la logique de Nicolas

    Votre première table T1 contient les données "étiquettes" avec quantité

    Ajoutez une autre table T2 avec les même colonnes mais un code à la place de la quantité. Cette dernière est invisible.

    Lors du double clic sur T1 (associé à un bouton pour plus de simplicité, lequel bouton est accessible ou invisible selon ton choix)... Vous RAZez T2 et l'alimentez avec T1.Qté copie de la ligne en cours de T1 et en affectant les code.
    Une fois T2 remplie, déclenchez votre état basé sur le parcours de T2 avec une étiquette par ligne. vous deviez ainsi obtenir autant d'étiquette que de quantité avec un code associé à chaque étiquette !

    Pour la construction de l'état, il vous faudra créer un état basé sur le parcours d'un champ table... le parcours se fera tout seul, il vous restera à affecter vos colonnes à vos champs de l'état.
    NB : le code pourra alors être imprimé dans un champ code barre et être scanné par le destinataire.

  5. #5
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bonjour,

    en fait je ne veux pas forcément coder la qté, d'ailleurs la qté il s'en fout mon client. Ce qu'il veut c'est son OA codé, le numéro de colis codé, et un dernier code qui identifie le fournisseur (toujours le même donc).

    Pour en revenir à la méthode, je passe à mon état différents paramètres (dont le nombre) qui me permettraient éventuellement de générer à la volée (depuis le traitement Ouverture ? ou Lecture ?) les différentes données pour chaque étiquette (et les enregistrer aussi dans une table de ma bd, pour des raisons de conservation de traçabilité mais aussi au cas où je souhaite les réimprimer ou les annuler) mais comment dire entre chaque étiquette "change de page !"

    exemple :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Ouverture de ETAT_ETIQUETTE
     
    PROCEDURE ETAT_ETIQUETTE(numbl est une chaîne, ligne est un entier, nb est un entier)
     
    etkid est un entier
     
    // identification du fournisseur
    code_fournisseur est une chaîne = "FRN"	// sur 3 caractères
     
    // recherche des autres infos à faire figurer sur l'étiquette
    oa_client est une chaîne
    article_client est une chaîne
    HFiltre(bl,PK_bl,hValMin,hValMax,"bl_num = '" + numbl + "' ET bl_ligne = " + ligne)
    SI HLitPremier(bl) ALORS
    	oa_client = bl.bl_commande_client
    	article_client = bl.bl_article_client
    FIN
     
    POUR i = 1 _A_ nb
     
    	HRAZ(etk)
    	etk.etk_bl_num = numbl
    	etk.etk_bl_ligne = ligne
    	HAjoute(etk)
     
    	etkid = etk.etk_id
     
    	// affectations des rubriques
    	RUB_OA = oa_client
    	RUB_code_article = article_client
    	RUB_colis = code_fournisseur + Complète("",12 - Taille(etkid), "0") + etkid     // 3 alpha + 12 numériques
     
    	// changer de page
    	// ...
     
    FIN
    Mais quand j'exécute, j'ai le message "il n'y a pas de données à imprimer"

    Une idée ?

    Merci
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  6. #6
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    OK c'est tout bon, j'ai trouvé grâce à cette page : http://doc.pcsoft.fr/?1011034&name=e...ees_programmee
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Je suis d'avis que tu te compliques sérieusement la tâche en n'utilisant pas une table intermédiaire car tu fais en programmation ce que WinDev te propose de faire automatiquement. Développez 10 fois plus vite, c'est leur devise et c'est par ce biais qu'ils y arrivent

  8. #8
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    oui ça y' est j'ai pijé le truc, en fait on peut dire à un état de s'appuyer directement sur une table et, moyennant d'avoir bien rattaché les colonnes aux rubriques, tout se fait tout seul.

    bon j'imagine qu'il faut lancer l'état par un iImprimeEtat

    En fait moi je passe par une fenêtre intermédiaire (un viewer) de mon pdf, parce que je trouve que l'aperçu natif de l'état généré est pas bien chouette, trop de boutons dans tous les sens

    bref, comme je ne suis pas dans la même fenêtre, je peux pas créer cette table intermédiaire et m'appuyer dessus

    mais j'ai compris le système

    encore merci
    'Diviser chacune des difficultés en autant de parcelles qu’il se pourrait et qu’il serait requis pour les mieux résoudre', René Descartes

    => Maya GPAO

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/06/2005, 14h05
  2. [C#] Form : Quelles méthodes ? Close, Dispose, Show, Hide
    Par TheSeb dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/05/2005, 16h42
  3. [persistance]Quelle méthode utiliser ?
    Par le Daoud dans le forum Persistance des données
    Réponses: 9
    Dernier message: 15/11/2004, 09h29
  4. Réponses: 7
    Dernier message: 22/10/2004, 16h18
  5. code récurrent, quelle méthode utiliser ?
    Par khayyam90 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 10/10/2004, 15h03

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