PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Problème de récupération des données d'une requête dans un tableau  WD20
Problème de récupération des données d'une requête dans un tableau WD20
Iniciado por MANSOUR FOURATI, 30,nov. 2019 15:35 - 7 respuestas
Miembro registrado
5 mensajes
Publicado el 30,noviembre 2019 - 15:35
Bonjour,
J'ai crée une requête qui fait un calcul des sommes des ventes et règlements des clients. voir ci dessous
SELECT codclt,nomclt,SUM(la_somme_tot_ttc) AS totvente,SUM(la_somme_reg) AS totreg

FROM
(

SELECT
clients.COD_CLT AS codclt,
clients.NOM_CLT AS nomclt,
SUM(blclient.TOT_TTC) AS la_somme_tot_ttc,
'0' AS la_somme_reg
FROM
(blclient JOIN clients ON blclient.COD_CLT=clients.COD_CLT)

WHERE
blclient.COD_FAC='0'
GROUP BY
clients.COD_CLT,
clients.NOM_CLT

UNION ALL
SELECT
clients.COD_CLT AS codclt,
clients.NOM_CLT AS nomclt,
SUM(facture.TOT_TTC) AS la_somme_tot_ttc,
'0' AS la_somme_reg

FROM
(facture JOIN clients ON facture.COD_CLT=clients.COD_CLT)


GROUP BY
clients.COD_CLT,
clients.NOM_CLT

UNION ALL
SELECT
clients.COD_CLT AS codclt,
clients.NOM_CLT AS nomclt,
'0' AS la_somme_tot_ttc,
SUM(reglementclt.mont_reg) AS la_somme_reg

FROM
(reglementclt JOIN clients ON reglementclt.COD_CLT=clients.COD_CLT)

GROUP BY
clients.COD_CLT,
clients.NOM_CLT
) t1
GROUP BY codclt,nomclt
.

En testant cette requête ou en essayant de faire un état , elle fonctionne très bien, mais quand je veux insérer les résultat dans un tableau, un message d'erreur s'affiche: "impossible d' initialiser la requête en question, Mot inattendu.
vous trouvez ci dessous le code qui fait initialisation du tableau.
SI PAS HExécuteRequêteSQL(REQ_suivieglobalclients,connexion_bd,hRequêteSansCorrection) ALORS
Info(ErreurInfo())

SINON
HLitPremier(REQ_suivieglobalclients)
TANTQUE HEnDehors(REQ_suivieglobalclients)=Faux
TableauAjouteLigne(TABLE_letrrage,REQ_suivieglobalclients.codclt,REQ_suivieglobalclients.nomclt,REQ_suivieglobalclients.totvente,REQ_suivieglobalclients.totreg,0)
HLitSuivant(REQ_suivieglobalclients)
FIN
FIN

Est ce que quelqu'un peut m'aider ?
Merci
Publicado el 01,diciembre 2019 - 14:46
Bonjour,
TABLE_Letrrage est-il une table ou un tableau ?
Miembro registrado
5 mensajes
Publicado el 01,diciembre 2019 - 22:11
Bonsoir Abdelmajid
Évidement c'est un tableau
Miembro registrado
352 mensajes
Publicado el 02,diciembre 2019 - 17:19
MANSOUR FOURATI a écrit :
Bonsoir Abdelmajid
Évidement c'est un tableau


Ce serait plutôt une table, il ne faut pas confondre table et tableau :
- table est un champ
- tableau est un terme en programmation (tableau d'entiers, tableau de chaines, ...)

La question à se poser est comment remplissez vous le champ table TABLE_letrrage? par programmation ou par binding?
Miembro registrado
5 mensajes
Publicado el 03,diciembre 2019 - 08:12
Bonjour,dans la solution, j'ai essayé de remplir mon Champ tableau par programmation
SI PAS HExécuteRequêteSQL(REQ_suivieglobalclients,connexion_bd,hRequêteSansCorrection) ALORS
Info(ErreurInfo())

SINON
HLitPremier(REQ_suivieglobalclients)
TANTQUE HEnDehors(REQ_suivieglobalclients)=Faux
TableauAjouteLigne(TABLE_letrrage,REQ_suivieglobalclients.codclt,REQ_suivieglobalclients.nomclt,REQ_suivieglobalclients.totvente,REQ_suivieglobalclients.totreg,0)
HLitSuivant(REQ_suivieglobalclients)
FIN
FIN

Notez bien que le tableau "table_lettrage" est un champs dans une fenêtre et non pas un fichier.
Miembro registrado
352 mensajes
Publicado el 03,diciembre 2019 - 09:02
Bonjour, vous ne m'avez pas répondu
Miembro registrado
352 mensajes
Publicado el 03,diciembre 2019 - 09:16
Remplacez dans votre code
TableauAjouteLigne(TABLE_letrrage
par
TableAjouteLigne(TABLE_letrrage
Miembro registrado
5 mensajes
Publicado el 03,diciembre 2019 - 10:18
Je pense que le problème est dans l'initialisation de la requête. A l'execution, Le programme donne l'erreur suivant : impossible d' initialiser la requête en question, Mot inattendu.