Bonjour,
Je veux répéter par programmation une ligne de mon Etat n fois. Dans ce cas d'Etat
Je veux répéter Exonéré par exemple 3fois au niveau de l'affichage de l'Etat.
Si j'arrive je pourrai résoudre le gros lot du probléme.
Merci et bon dév
Bonjour,
Je veux répéter par programmation une ligne de mon Etat n fois. Dans ce cas d'Etat
Je veux répéter Exonéré par exemple 3fois au niveau de l'affichage de l'Etat.
Si j'arrive je pourrai résoudre le gros lot du probléme.
Merci et bon dév
Maintenant, la même question est posée par le concerné dans plusieurs forums
https://forum.pcsoft.fr/fr-FR/pcsoft...ation/read.awp
@Ndiaga Toure
En conséquence, je t'informe que j'ai la solution à ton problème. J'hésite à la poster ici ou forum pcsoft.
En tout cas, c'est dans le bloc "Lecture des données de l'état", que tu dois saisir un code qui fera un contrôle sur la quantité.
Voici la question initiale, cela évitera de refaire les même réponses
Et le reste de la discussion :Bonjour,
J'ai un Etat basé sur une requete.les champs affichées sont [Quantite, description, prix ]
-je doit répéter la même description et prix si la rubrique quantité est supérieur à 1
J'ai essayé ce code au niveau de l'ouverture de l'Etat mais ça affiche qu'une seule ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 nb est entier=Lib_quantité SI nb>1 ALORS POUR i=1 A nb lib_description="toto" FIN fin
Bonjour,
Il suffit de modifier ta requête en ajoutant une condition sur la quantité.
Ta requête doit ressembler à ça :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT PRODUIT.Decription, PRODUIT.Prix, LIGNECDE.Qte FROM PRODUIT, LIGNECDE WHERE PRODUIT.PK_PRODUIT=LIGNECDE.FK_PRODUIT
Il suffit de la modifier en
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT PRODUIT.Decription, PRODUIT.Prix, LIGNECDE.Qte FROM PRODUIT, LIGNECDE WHERE PRODUIT.PK_PRODUIT=LIGNECDE.FK_PRODUIT AND LIGNECDE.QTE>1Réponse :Merci de votre réponse.Mais ici l'idée ce n'est pas d'afficher seulement les quantité supérieur à 1 mais de splitter les quantités supérieur en 1. Autrement dit de répéter les lignes dont la quantité est supérieur à 1
Dans ce cas répéter le champ description et prix deux fois puisque la quantité est de 2.
Cordialement
Pour en arriver à la question posée sur ce forum.On va appeler la requête REQ_DétailFacture_Complet
Le tableau doit être rempli par programmation (Description/Données/Les données viennent...)
Initialisation de l'état :
Lecture des données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HExécuteRequête(REQ_DétailFacture_Complet) gsQtéAffichée est chaîne //Il faudra passer la colonne en texte, cela évite d'avoir un "zéro" gnItération est entier gnItération=1 //A adapter si l'on considère que la première ligne du produit est le récapitulatif ou pas HLitPremier(REQ_DétailFacture_Complet)
Avant impression de CORPS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 TANTQUE PAS HEnDehors(REQ_DétailFacture_Complet) SI gnItération=1 ALORS //C'est la première ligne on affiche la quantité gsQtéAffichée=REQ_DétailFacture_Complet.Qte SINON //On n'affiche pas la quantité gsQtéAffichée="" FIN RENVOYER Vrai FIN RENVOYER Faux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 LIB_Qté=gsQtéAffichée LIB_Produit=REQ_DétailFacture_Complet.NDX_NomProduit LIB_Prix=REQ_DétailFacture_Complet.Prix gnItération++ SI gnItération>REQ_DétailFacture_Complet.Qte ALORS HLitSuivant(REQ_DétailFacture_Complet) gnItération=1 FIN
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Bonjour,
Si, bien entendu. D'autant plus que j'ai appris énormément grâce ce forum, même avant d'être membre.
La question centrale posée par pacodiasse concerne la quantité, soit imprimer (dupliquer) autant de lignes que le nombre de quantités de la ligne source.
Pour faire bosser notre ami, je résume l'idée : à insérer dans le bloc "Lecture des données de l'état"
Dans le cas où la quantité est supérieure à 1, on boucle sur un nombre de quantité supplémentaire et on utilise la fonction iImprimeBloc()
Le code est fonctionnel, pour un tableau basé sur une table, ou basé sur une requête.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager