Erreur sur HExecuteRequeteSQL

Posté par Machou43 le 4/9/2006 9:03:29
Bonjour,

je suis en train de mettre en place une fenêtre avec de multi petits graphiques concernant la répartition des prévisions de facturation par conducteur de travaux ....

Je sais que le code n'est pas optimisé, je le ferais par la suite !!!

Je lance la procédure présentée ci aprés pour tous les secteurs de l'entreprise
1/ Appel "BOIS"
2/ Appel "ALU"
3/ Appel "PVC"
4/ Appel "Fermetures"
5/ Appel "Divers"

Pour le bois tout se passe bien, et lorsque j'arrive au lancement de l'ALU,Windev plante sur le HLITPREMIER en me disant que la requête est inconnue de l'annalyse !!!

Si quelqu'un pouvait m'aider...

Voici le code de ma procédure :

PROCEDURE Calcul_Graph(NomSecteur)
//** Déclaration des Variables **
SD_MaReqSQL est une Source de Données
Ch_CodeSQL est une chaîne
sNomGraphe est une chaîne
sMaPolice1 est une Police
Ent_NumSerie est un entier
//** Initialisation des Variables **
sNomGraphe = "MonGraphe"
//** Mise en place du code SQL **
SELON NomSecteur
CAS "BOIS" :
SELON OptSelectTypesMontant
//** Montant des prévisions sur les 6 mois du carnet de commande **
CAS 1 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(PREVISIONS.MontantBois) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, PREVISIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = PREVISIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING PREVISIONS.DatePrevision >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "PREVISIONS.DatePrevision < " + SelectDatePredefini.TxtDateFin
//** Montant des facturations à la date de début des prévisions du carnet de commande **
CAS 2 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(SITUATIONS.MontantBois) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, SITUATIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = SITUATIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING SITUATIONS.DateSituation >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "SITUATIONS.DateSituation < " + SelectDatePredefini.TxtDateFin
FIN
CAS "ALU" :
//** Montant des prévisions sur les 6 mois du carnet de commande **
CAS 1 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(PREVISIONS.MontantALU) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, PREVISIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = PREVISIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING PREVISIONS.DatePrevision >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "PREVISIONS.DatePrevision < " + SelectDatePredefini.TxtDateFin
//** Montant des facturations à la date de début des prévisions du carnet de commande **
CAS 2 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(SITUATIONS.MontantALU) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, SITUATIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = SITUATIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING SITUATIONS.DateSituation >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "SITUATIONS.DateSituation < " + SelectDatePredefini.TxtDateFin
CAS "PVC" :
//** Montant des prévisions sur les 6 mois du carnet de commande **
CAS 1 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(PREVISIONS.MontantPVC) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, PREVISIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = PREVISIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING PREVISIONS.DatePrevision >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "PREVISIONS.DatePrevision < " + SelectDatePredefini.TxtDateFin
//** Montant des facturations à la date de début des prévisions du carnet de commande **
CAS 2 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(SITUATIONS.MontantPVC) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, SITUATIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = SITUATIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING SITUATIONS.DateSituation >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "SITUATIONS.DateSituation < " + SelectDatePredefini.TxtDateFin
CAS "FERMETURES" :
//** Montant des prévisions sur les 6 mois du carnet de commande **
CAS 1 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(PREVISIONS.MontantFermetures) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, PREVISIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = PREVISIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING PREVISIONS.DatePrevision >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "PREVISIONS.DatePrevision < " + SelectDatePredefini.TxtDateFin
//** Montant des facturations à la date de début des prévisions du carnet de commande **
CAS 2 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(SITUATIONS.MontantFermetures) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, SITUATIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = SITUATIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING SITUATIONS.DateSituation >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "SITUATIONS.DateSituation < " + SelectDatePredefini.TxtDateFin
CAS "DIVERS" :
//** Montant des prévisions sur les 6 mois du carnet de commande **
CAS 1 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(PREVISIONS.MontantDivers) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, PREVISIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = PREVISIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING PREVISIONS.DatePrevision >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "PREVISIONS.DatePrevision < " + SelectDatePredefini.TxtDateFin
//** Montant des facturations à la date de début des prévisions du carnet de commande **
CAS 2 :
Ch_CodeSQL = "SELECT CTX.NomPrenomCtx AS NomPrenomCtx, SUM(SITUATIONS.MontantDivers) AS MontantTotal" + " "
Ch_CodeSQL += "FROM CHANTIER, SITUATIONS, CTX" + " "
Ch_CodeSQL += "WHERE CHANTIER.CodeChantier = SITUATIONS.CodeChantier AND CTX.CodeCtx = CHANTIER.CodeCtx" + " "
Ch_CodeSQL += "GROUP BY CTX.NomPrenomCtx" + " "
Ch_CodeSQL += "HAVING SITUATIONS.DateSituation >= " + SelectDatePredefini.TxtDateDebut + " AND "
Ch_CodeSQL += "SITUATIONS.DateSituation < " + SelectDatePredefini.TxtDateFin
FIN
//** Exécution de la requête SQL **
HExécuteRequêteSQL(SD_MaReqSQL,Ch_CodeSQL)
//** Création du graphique **
//** Défininition du type de graphe **
grCrée(sNomGraphe, grSecteur)
//** Destination du graphe **
SELON NomSecteur
CAS "BOIS" :
grDestinationChamp(sNomGraphe, ImgGraphBois)
CAS "ALU" :
grDestinationChamp(sNomGraphe, ImgGraphALU)
CAS "PVC" :
grDestinationChamp(sNomGraphe, ImgGraphPVC)
CAS "FERMETURES" :
grDestinationChamp(sNomGraphe, ImgGraphFermetures)
CAS "DIVERS" :
grDestinationChamp(sNomGraphe, ImgGraphDivers)
FIN
//** Police du titre du graphe **
sMaPolice1 = PoliceCrée("Arial", 12, iGras + iSouligné)
grPoliceTitre(sNomGraphe, sMaPolice1)
//** Autres textes **
sMaPolice2 est une Police
sMaPolice2 = PoliceCrée("Arial", 8, iNormal)
grPoliceTitreAxe(sNomGraphe, sMaPolice2)
grPoliceEtiquette(sNomGraphe, sMaPolice2)
grPoliceLégende(sNomGraphe, sMaPolice2)
//** Position de la légende **
grLégende(sNomGraphe,grADroite)
//** Affichage des pourcentages **
grLibellé(sNomGraphe, grAffichePourcentage, Vrai)
//** Affichage des bulles d'aide **
grBulle(sNomGraphe, grFormatBulleSecteur, "[%SERIE%]" + RC + "[%CATEGORIE%]" + RC + "[%VALEUR%]" + RC + "[%%%]")
//** Angle de départ de la première part
grSecteurAngleDépart(sNomGraphe, 0)
//** Indice de la part à excentrer **
grSecteurPartExcentrée(sNomGraphe, 3, 30)
//** Récupération des Données **
HLitPremier(SD_MaReqSQL,"NomPrenomCtx",hSansRafraîchir)
//** Initialisation du numéro de série **
Ent_NumSerie = 1
TANTQUE PAS HEnDehors(SD_MaReqSQL)
Trace(SD_MaReqSQL.NomPrenomCtx + TAB + SD_MaReqSQL.MontantTotal)
grAjouteDonnée(sNomGraphe,Ent_NumSerie,SD_MaReqSQL.MontantTotal)
//** Ctx Suivant **
HLitSuivant(SD_MaReqSQL,"NomPrenomCtx")
//** Incrémentation du Numéro de Série **
Ent_NumSerie++
FIN
// Dessin du graphe
grDessine(sNomGraphe)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=4538&post_id=18809