|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Remplir un tableau par programmation dans un état |
Débuté par Adri1b, 02 fév. 2015 18:32 - 6 réponses |
| |
| | | |
|
| |
Membre enregistré 182 messages |
|
Posté le 02 février 2015 - 18:32 |
Bonsoir, Sur un état, j'aimerais définir par programmation le contenu de mes rubriques. J'ai donc mis en place cette requête dans la partie "Avant impression de CORPS" :
qContracts est une Source de Données SI PAS HExécuteRequêteSQL(qContracts, hRequêteDéfaut, "SELECT Contracts.Ct_Start, Contracts.Ct_End, Sites.Site_ID, Sites.Site_Name, Services.Service_ID, Services.Service_Name, Contracts.Tutor FROM Contracts LEFT JOIN Sites ON Contracts.Site_ID = Sites.Site_ID LEFT JOIN Services ON Contracts.Service_ID = Services.Service_ID WHERE Contracts.Member_ID = " + sMember_ID + " ORDER BY Contracts.Ct_Start ASC") ALORS Erreur(HErreurInfo()) SINON HLitPremier(qContracts)
TANTQUE PAS HEnDehors()
RUBRIQUE1 = qContracts.Ct_Start RUBRIQUE2 = qContracts.Ct_End RUBRIQUE3 = qContracts.Site_Name RUBRIQUE4 = qContracts.Service_Name RUBRIQUE5 = qContracts.Tutor
HLitSuivant() FIN FIN
HLibèreRequête(qContracts) La requête fonctionne bien, mais mon tableau qui devrait comporter deux lignes n'en comporte qu'une seule, le dernier résultat de la requête en l'occurrence -_-. Quelqu'un peut-il me donner l'astuce ou la méthode s'il vous plaît ? J'ai beau cherché, je ne trouve pas -_-. Merci par avance . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 182 messages |
|
Posté le 03 février 2015 - 00:35 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 847 messages |
|
Posté le 03 février 2015 - 12:34 |
Bonjour, Afin que état s'imprime corerectement, vous devez :
Code de l'état : Ouverture de l'état :
qContracts est une Source de Données
SI PAS HExécuteRequêteSQL(qContracts, hRequêteDéfaut, "SELECT Contracts.Ct_Start, Contracts.Ct_End, Sites.Site_ID, Sites.Site_Name, Services.Service_ID, Services.Service_Name, Contracts.Tutor FROM Contracts LEFT JOIN Sites ON Contracts.Site_ID = Sites.Site_ID LEFT JOIN Services ON Contracts.Service_ID = Services.Service_ID WHERE Contracts.Member_ID = " + sMember_ID + " ORDER BY Contracts.Ct_Start ASC") ALORS Erreur(HErreurInfo()) SINON HLitPremier(qContracts) FIN
Code de l'état : Lecture des données de l'état
TANTQUE PAS HEnDehors() RENVOYER Vrai FIN HLibèreRequête(qContracts) RENVOYER Faux
Code du bloc : Avant impression
RUBRIQUE1 = qContracts.Ct_Start RUBRIQUE2 = qContracts.Ct_End RUBRIQUE3 = qContracts.Site_Name RUBRIQUE4 = qContracts.Service_Name RUBRIQUE5 = qContracts.Tutor
HLitSuivant()
En espérant vous avoir aidé. J.Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 26 messages |
|
Posté le 10 novembre 2017 - 15:49 |
Bonjour à tous,
je galère a remplir un tableau par programmation.... et je suis tombé sur ce post...
malgré les solutions proposées, je n'y arrive toujours pas ...
lors du HLitSuivant() dans la partie avant impression du corps, il lit bien l'enregistrement suivant va directement au test hendehors() dans la partie apres impression
j'ai essayé de mettre une boucle dans avant impression mais comme tout le monde ca n'imprime qu'une ligne avec le dernier enregistrement...
je suis perduMessage modifié, 10 novembre 2017 - 15:49 |
| |
| |
| | | |
|
| | |
| |
Posté le 04 avril 2018 - 23:38 |
J'ai eu ce même problème. Pour le résoudre, il faut accéder à la "Description de l'état" (accès par clic droit), et s'assurer que "<Pas de source de données>" n'est pas sélectionné (sinon cela ne marchera pas). Dans mon cas, les données à imprimer viennent de "la programmation".
Cela devrait marcher pour vous, je l'espère. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 6 messages |
|
Posté le 26 décembre 2024 - 11:19 |
bonjour j'ai un probleme pour remplir le corps de mon etat. j'ai essayé votre methode mais y'a des problemes au niveau du source de données car moi j'utlise des données mysql distant dans un serveur local. si vous avez un solution je suis preneur |
| |
| |
| | | |
|
| | |
| |
Posté le 15 janvier 2025 - 14:13 |
Adri1b a écrit :
Bonsoir, Sur un état, j'aimerais définir par programmation le contenu de mes rubriques. J'ai donc mis en place cette requête dans la partie "Avant impression de CORPS" : qContracts est une Source dede Données SI PAS HExécuteRequêteSQL(qContracts, hRequêteDéfaut, "SELECT Contracts.Ct_Start, Contracts.Ct_End, Sites.Site_ID, Sites.Site_Name, Services.Service_ID, Services.Service_Name, Contracts.Tutor FROM Contracts LEFT JOIN Sites ON Contracts.Site_ID = Sites.Site_ID LEFT JOIN Services ON Contracts.Service_ID = Services.Service_ID WHERE Contracts.Member_ID = " + sMember_ID + " ORDER BY Contracts.Ct_Start ASC") ALORS Erreur(HErreurInfo()) SINON HLitPremier(qContracts)
TANTQUE PAS HEnDehors()
RUBRIQUE1 = qContracts.Ct_Start RUBRIQUE2 = qContracts.Ct_End RUBRIQUE3 = qContracts.Site_Name RUBRIQUE4 = qContracts.Service_Name RUBRIQUE5 = qContracts.Tutor
HLitSuivant() FIN FIN
HLibèreRequête(qContracts) La requête fonctionne bien, mais mon tableau qui devrait comporter deux lignes n'en comporte qu'une seule, le dernier résultat de la requête en l'occurrence -_-. Quelqu'un peut-il me donner l'astuce ou la méthode s'il vous plaît ? J'ai beau cherché, je ne trouve pas -_-. Merci par avance .
Pour tous ceux qui ont du mal à faire ceci, je me suis tapé la tête dessus bien longtemps et je vous recommande chaleureusement les blocs d'itération.
Créez des blocs d'itération pour vos cellules, vos colonnes, vos sections, etc. Voici par exemple ci-dessous un code que j'ai utilisé dans la section "Lecture des données" de mon état, regardez surtout la logique de parcours et l'utilisation des fonctions iImprimeBloc() et iTerminePage():
TANTQUE PAS HEnDehors() SI code_agence <> REQ_DEMANDES_VALIDE.dcc_code_agence ALORS Montant_total_data = montant_total_agence Nb_chq_10_data = tabChqTotalAgence[1] Nb_chq_20_data = tabChqTotalAgence[2] Nb_chq_50_data = tabChqTotalAgence[3] iImprimeBloc(DONNEES)
montant_total_agence = 0 tabChqTotalAgence = [0,0,0] iTerminePage()
iImprimeBloc(DEBUT_DOCUMENT) iImprimeBloc(HAUT_DE_PAGE)
TEXTE16 = TabAssoBureaux[REQ_DEMANDES_VALIDE.dcc_code_agence] TEXTE17 = REQ_DEMANDES_VALIDE.dcc_code_agence iImprimeBloc(AGENCE) iImprimeBloc(LIBELLES) FIN TabChqARendre est un tableau d'entiers = Calcul_cheques_pour_demande() chq10 est un entier = TabChqARendre[1] chq20 est un entier = TabChqARendre[2] chq50 est un entier = TabChqARendre[3]
tabChqTotalAgence[1] += chq10 tabChqTotalAgence[2] += chq20 tabChqTotalAgence[3] += chq50 tabTotalCheques[1] += chq10 tabTotalCheques[2] += chq20 tabTotalCheques[3] += chq50 montant_total_agence += REQ_DEMANDES_VALIDE.dcc_montant montant_total_cheques += chq10+chq20+chq50 ID_data = REQ_DEMANDES_VALIDE.dcc_id_demande Code_agence_data = REQ_DEMANDES_VALIDE.dcc_code_agence Montant_data = REQ_DEMANDES_VALIDE.dcc_montant Numcli_data = REQ_DEMANDES_VALIDE.dcc_no_cli Numcli_sn_data = REQ_DEMANDES_VALIDE.dcc_no_cli_sn Nom_cli_data = REQ_DEMANDES_VALIDE.cli_nom dix_data = chq10 vingt_data = chq20 cinquante_data = chq50 code_agence = REQ_DEMANDES_VALIDE.dcc_code_agence HLitSuivant() RENVOYER Vrai FIN |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|