|
Aide sur notre procedure d'affichage |
|
Anonyme
|
Bonsoir
Nous sommes un groupe d'enseignants au primaire qui developpent une application de gestion des examens. On a créé un procedure pour afficher le nombre de garçons et filles par etablissement ayant réussi à l'essai d'examen scolaire. Cette procedure actuellement ne lit pas tous les candidats admis avant d'afficher le résultat.C'est seulement quand on lit le dernier etablissement qu'on obtient un compte correct. ça fait 4 jours et nuits on travaille la dessus. On sollicite votre aide pour déceler ce qui n'est pas correct. Merci de nous aider voici la procédure ----------------------------------------------------------- PROCEDURE Dotreatement(Etabmeno,Nbfilles est un entier,Nbgarcons est un entier,pannee,stotal est un entier) petab est une chaîne=Etabmeno padmis est une chaîne="A" pmale est une chaîne="M" pfemale est une chaîne="F" sLigne est une chaîne sSeparateur est une chaîne = TAB Nbfilles =0 Nbgarcons =0 stotal =0
etabSql est une chaîne Rsetab est une Source de Données etabSql = "SELECT Etablissement AS Etablissement, Neleve AS Neleve, Noessaidept As Noessaidept, Anneescolaire AS Anneescolaire, Sexe AS Sexe, Admis AS Admis"+ " FROM EssaiDepartementalentreesixieme " + " WHERE Anneescolaire = '" + pannee + "' AND Etablissement ='"+petab+ "' AND Admis='"+padmis+ "' "
//HExécuteRequête(Reqdepesadetab, hRequêteDéfaut, pannee, Etabmeno) SI PAS HExécuteRequêteSQL(Rsetab,hRequêteDéfaut,etabSql) ALORS Erreur(HErreurInfo()) RENVOYER Faux FIN
HLitPremier(Rsetab) TANTQUE PAS HEnDehors() //Ici On affiche les admis par sexe d'un etablissement SI Rsetab.sexe="M" ALORS Nbgarcons+=1 FIN SI Rsetab.sexe="F" ALORS Nbfilles+=1 FIN HLitSuivant(Rsetab) Garcons=Nbgarcons Filles=Nbfilles stotal=Filles+Garcons Total=stotal FIN Info("Etablissement:",Etabmeno,"Filles4:",Filles,"Garcons4:",Garcons,"Total4:",stotal)
sLigne=Etabmeno+sSeparateur +Filles +sSeparateur +Garcons+sSeparateur +Total TableAjoute(tblreusetab,sLigne) // TableAjoute(tblreusetab,"") -----------------------------------------------------------
Contribution le : 25/09/2005 23:29
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, Citation : afficher le nombre de garçons et filles par etablissement ayant réussi à l'essai d'examen scolaire Rien que cette phrase indique qu'il vous faut créer une requête avec regroupement sur l'établissement puisque vous désirez avoir les nombres réussis par établissement. de plus vous cherchez deux résultats différents un compteur pour les garcons et un pour les filles. Je vous conseille donc de créer 2 requêtes Création de la requête pour compter le nombre de garçons qui ont été admis par établissement. Ce résultat contient une valeur a Zéro pour le nombre de fille, celui ci sera calculer via une seconde requête.
etabSql est une chaîne
Rs1 est une Source de Données
Rs2 est une source de données
etabSql = "SELECT DISTINCT Etablissement AS Etablissement, "...
+ "Count(<Identifiant unique du fichier EssaiDepartementalentreesixieme>) AS NbGarcon, "...
+ "'0' AS NbFille "...
+ "FROM EssaiDepartementalentreesixieme "...
+ "WHERE Anneescolaire = '" + pannee + "' "...
+ "AND Etablissement ='"+petab+ "' "...
+ "AND Admis='"+padmis+ "' "...
+ "AND Sexe = "M"
//Exécution de la requête
SI PAS HExécuteRequêteSQL(Rs1,hRequêteDéfaut,etabSql) ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN
Création de la requête pour compter le nombre de filles qui ont été admis par établissement.
etabSql = "SELECT DISTINCT Etablissement AS Etablissement, "...
+ "Count(<Identifiant unique du fichier EssaiDepartementalentreesixieme>) AS NbFille "...
+ "FROM EssaiDepartementalentreesixieme "...
+ "WHERE Anneescolaire = '" + pannee + "' "...
+ "AND Etablissement ='"+petab+ "' "...
+ "AND Admis='"+padmis+ "' "...
+ "AND Sexe = "F"
SI PAS HExécuteRequêteSQL(Rs2,hRequêteDéfaut,etabSql) ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN
Maintenant on créer une fusion entre les 2 sources de données
POUR Tous Rs2
SI HLitRecherche(Rs1,"Etablissement",Rs2.Etablissement) Alors
Rs1.NbFille++
HModifie(Rs1)
SINON
Rs1.Etablissement = Rs2.Etablissement
Rs1.NbGarcon = 0
Rs1.NbFille = 1
HAjoute(Rs1)
FIN
On peut remplir la table
POUR TOUS Rs1
TableAjoute(tblreusetab,Rs1.Etablissement + TAB...
+ Rs1.NbGarcon + TAB...
+ Rs1.NbFille)
FIN
Tout ceci est saisie est la volée, n'a pas été testée et peut comporter des erreurs.
Contribution le : 26/09/2005 10:50
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Anonyme
|
Bonjour Cette procedure etait appelée derriére une requete qui prenait comme parametre l'année ou la session .Car on dispose d'une table pour les etablissements participants à l'essai chaque année. ecoleSql est une chaîne Rsecole est une Source de Données
ecoleSql = "SELECT DISTINCT Etablissement AS Etablissement,Anneescolaire as Anneescolaire "
+ "FROM EssaidepEtablissement"... + "WHERE Anneescolaire = '" + pannee + "' "
//Exécution de la requête SI PAS HExécuteRequêteSQ(Rsecole ,hRequêteDéfaut,ecoleSql ) ALORS Erreur(HErreurInfo()) RENVOYER Faux FIN
HLitPremier(Rsecole) Tantque pas endehors() dotreatment(Etablissement, pannee, Filles, garcons,total) Hlitsuivant(Rsecole) Fin Notre question est de savoir si cette meme approche peut etre utilisée pour obtenir l'etablissement d'abord et le passer comme parametre pour faire le compte par genre
Merci
Contribution le : 26/09/2005 14:28
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour,
Je ne vois personnellement l'interêt d'attaquer 2 tables différentes puisques toutes les informations névessaires se trouvent dans la table - EssaiDepartementalentreesixieme
Créer une nouvelle procédure qui contient le code que je vous ai fourni et verifier sont résultat.
De plus dans votre traitement il faut remplacer: dotreatment(Etablissement, pannee, Filles, garcons,total) par dotreatment(RsEcole.Etablissement, pannee, Filles, garcons,total)
Contribution le : 26/09/2005 17:35
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Anonyme
|
En regardant les deux requetes fournies, on Etablissement=Petab comme parametre et ce qui veut dire il faudrait creer un champ pour saisir l'annee et l'etablissement. Or nous voulons afficher les resultats par etablissement ....On peut ajouter une clause Group by
et se debarrasser du parametre Etablissement=petab.
Visuellement on s'attend à un resultat qui se presentera sous cette forme:
Etablissement Filles Garcons total ------------------------------------- Etab1 6 5 11 ------------------------------------- Etab2 3 2 5 ------------------------------------ Etabn 4 3 7 -------------------------------------
Merci
Contribution le : 26/09/2005 18:05
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Anonyme
|
Salut Nous avons essaye le code mais ca ne marche, le resultat retourne est toujours nul Merci
Contribution le : 27/09/2005 01:50
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
requete Sql tel que testé via une base de teste pour récupérer le nombre de garcons admi pour un departement et une année
SELECT EssaiDepartementalentreesixieme.Etablissement, Count(EssaiDepartementalentreesixieme.Id) AS NbGarcon, "0" AS NbFille
FROM EssaiDepartementalentreesixieme
WHERE (((EssaiDepartementalentreesixieme.Sexe)="F") AND ((EssaiDepartementalentreesixieme.Anneescolaire)="2005") AND ((EssaiDepartementalentreesixieme.Admis)="1"))
GROUP BY EssaiDepartementalentreesixieme.Etablissement;
Les valeurs sont ici en dur pour test mais normallement seule l'année est à passer en paramètre.
Contribution le : 27/09/2005 09:40
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Anonyme
|
Salut Nous sollicitons votre aide pour resoudre ce probleme. on a beau essayer mais jusqu'a present rien n'arrive.
Contribution le : 28/09/2005 18:35
|
|
|
Re: Aide sur notre procedure d'affichage |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Vous pouvez me contacter en privé drcharly@wdforge.org
Contribution le : 29/09/2005 00:19
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|