DSI WDF
Inscrit: 13/02/2006 16:52
Post(s): 266
|
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)
Contribution le : 04/09/2006 09:03
|