PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → Reports & Queries → Impression d'une sélection de factures
Impression d'une sélection de factures
Started by Calimero, May, 19 2023 1:13 AM - 4 replies
Registered member
84 messages
Posted on May, 19 2023 - 1:13 AM
Bonjour,

Je suis nouveau sur Windev et il faut bien dire que je patauge...beaucoup ;-)

Voilà mon souci.
J'ai une table commande et une table détails des commandes reliées par le n° de commande.

Dans une fenêtre, j'ai ainsi un champ table "commandes" et un champ tables "détails des commandes".

J'arrive à imprimer un bon de préparation ou un bon de commande ( Etat ) à partir d'une requête mais je voudrais pouvoir en imprimer plusieurs à la fois.

Exemple :

Je veux imprimer tous les bons de préparation pour l'équipe logistique pour la journée de demain en filtrant le statut des commandes "A expédier"
ou aussi des commandes urgentes ou de dernière minute à faire expédier le jour même par exemple, donc par sélection de lignes.

Pour l'instant, j'imprime 1 par 1 et c'est plutôt rébarbatif et une grosse perte de temps.

Je suppose qu'il faut lire le champ "commandes" et choisir de repérer les lignes sélectionnées pour imprimer les bons de préparation correspondants mais après des heures de tentatives, je n'y arrive pas. Au mieux, ça m'imprime toujours un seul état " bon de préparation".

A votre bon coeur messieurs dames pour me donner la solution

( Je suis sur Windev 25 )
Message modified, May, 19 2023 - 1:14 AM
Registered member
2 messages
Posted on June, 06 2023 - 8:08 AM
Hello, Identifiez les critères de sélection : Déterminez les critères spécifiques pour filtrer les commandes que vous souhaitez imprimer, tels que le statut de la commande, l'équipe logistique, l'urgence, etc.

Construisez une requête : Utilisez un langage de requête (par exemple, SQL) pour récupérer les commandes correspondant à vos critères de sélection. Cette requête peut être basée sur les champs de votre table "commandes".

Itérez sur les résultats de la requête : Parcourez les résultats de la requête pour chaque commande correspondante.

Imprimez les bons de préparation : Pour chaque commande, générez et imprimez le bon de préparation correspondant. Vous pouvez utiliser une fonction ou une bibliothèque appropriée pour générer les états (bons de préparation).

Répétez le processus pour toutes les commandes sélectionnées : Continuez à itérer sur les résultats de la requête jusqu'à ce que toutes les commandes correspondantes aient été traitées et que les bons de préparation aient été imprimés.
Registered member
84 messages
Posted on June, 21 2023 - 1:28 AM
Bonjour Morgane,

Je n'avais pas vu votre message. Le problème est que même en notant que je suis le sujet, je ne reçois pas de notifications. Bizarre.
Vu que je n'avais pas eu de réponse, j'ai pris plusieurs parties de tutos que j'ai trouvé sur internet, j'ai mélangé le tout et j'ai enfin réussi.

Mais merci pour la réponse.:merci:
Registered member
1 message
Posted on September, 08 2023 - 6:45 AM
Sélection des Lignes : Dans votre champ table "commandes", assurez-vous que les lignes peuvent être sélectionnées (multisélection). Boucle de Lecture : Lisez les lignes sélectionnées dans le champ table. Impression : Pour chaque ligne sélectionnée, utilisez la commande d'impression en passant les informations nécessaires à votre état (probablement le numéro de commande). https://www.telltims.net
Registered member
3 messages
Posted on October, 30 2024 - 6:20 AM
Pour imprimer plusieurs bons de préparation d’un coup dans Windev, vous pouvez utiliser les lignes sélectionnées dans votre champ table "commandes" pour générer les états correspondants, puis les imprimer en une seule fois. Voici comment vous pourriez structurer cette logique :

Sélectionner les lignes souhaitées : Assurez-vous que votre champ table "commandes" permet la sélection multiple. Vous pouvez paramétrer cette option dans les propriétés du champ table.

Parcourir les lignes sélectionnées : Utilisez une boucle pour parcourir chaque ligne sélectionnée. Cela vous permettra de générer un état pour chaque commande sélectionnée.

Générer et imprimer les états en série : Utilisez une fonction qui va ajouter chaque état de "bon de préparation" dans une file d’attente d’impression, puis imprimez-les en une seule fois. https://www-choiceadvantage.com

Voici un exemple de code pour vous guider :

windev
// Récupérer les lignes sélectionnées dans le champ table "commandes"
POUR TOUTE LIGNE Sélectionnée DE Table_Commandes
// Récupérer le n° de commande pour cette ligne
nCommande est un entier = Table_Commandes.N°Commande

// Créer l’état du bon de préparation pour la commande en cours
si iImprimeEtat("ETAT_BonPreparation", nCommande) ALORS
// Ajouter l’état dans la file d’attente d’impression
iAjouteEtat("ETAT_BonPreparation")
FIN
FIN

// Imprimer tous les états en attente
iLanceImpression()
Explications des étapes :
Boucle de sélection multiple : La boucle POUR TOUTE LIGNE Sélectionnée DE Table_Commandes permet de récupérer chaque ligne sélectionnée de votre table "commandes".

Création de l’état pour chaque commande : La fonction iImprimeEtat génère l’état "bon de préparation" pour chaque commande sélectionnée, en passant en paramètre le numéro de commande.

Ajout des états à imprimer en une fois : iAjouteEtat empile chaque état dans une file d’attente d’impression. Cette fonction évite d'imprimer un état un par un.

Lancement de l’impression : Enfin, iLanceImpression envoie tous les états empilés en une fois à l'imprimante, économisant ainsi du temps.

Autres astuces
Vous pouvez adapter ce code pour filtrer les commandes selon des critères spécifiques (par exemple "à expédier", "urgent") en ajoutant des conditions dans la boucle.