IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

utiliser des enregistrements comme entête de colonne


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut utiliser des enregistrements comme entête de colonne
    Bonsoir chers tous
    Je suis sur un projet de gestion d'école.
    je saisie les élèves dans la fichier "élèves",je saisie les trimestres dans le fichier "trimestre",les matières dans le fichier "matière, les classes dans le fichier "classe" et les notes dans le fichier "note".
    j'ai une fenêtre de saisie des moyennes "FEN_moyenne" qui contient une COMBO_trimestre, une COMBO_classe et une TABLE_moyenne.
    Ce que je souhaiterait est que:
    -Quand je sélectionne une classe, que tous les élèves de cette classe apparaissent dans la TABLE_moyenne et que les matières de cette classe deviennes les titre des colonnes afin que les moyennes y soient saisies. En claire, une colonne pour chaque matière enregistrée.
    Pour éclaircir mes d'explications je j'ajoute des images.
    Merci d'avance. Nom : saisie moyenne.JPG
Affichages : 623
Taille : 40,1 KoNom : analyse.JPG
Affichages : 631
Taille : 51,0 Ko

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    Bonjour

    https://doc.pcsoft.fr/fr-FR/?1000029001

    Exemples didactiques (WINDEV) : WD TableauCroiséDynamique

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,
    Un TCD ne fera pas l'affaire ici, car les 3 colonnes de gauche sont fixes.
    Je pense plutôt qu'il faut mettre dans le tableau une colonne "matière" cachée, et la cloner autant de fois qu'il y a de matière à afficher.
    La fonction ChampClone() est faite pour ça.
    Il faut donc une première requête qui va récupérer la liste des matière pour construire la table, puis une deuxième requête qui va renvoyer les valeurs à afficher.
    Les indirections permettent d'accéder aux colonnes dynamiques.

    Tatayo.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    @tatayo

    Ne ne vois pas pourquoi un TCD ne ferait pas l'affaire.
    En regardant l'exemple de la doc (et du projet exemple), on est pas loin (voir PJ).

    Tu as raison sur le fond, mais n'oublie pas que ARNAUD ZIRIPE débute, donc donc les clonages de champs et les indirections...
    C'est pour cela que je l'ai orienté vers la doc. Comme tout le monde il doit maîtriser les concepts de base.


    Nom : tcd.png
Affichages : 545
Taille : 46,0 Ko

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    J'ai pas encore eu la chance d'utiliser un TDC dans mes travaux.
    Dans ce cas précis pouvez vous me dire comment m'y prendre pour le faire?
    pour être précis dans mon explication, je souhaiterais pouvoir saisir les moyennes dans le tableau comme si j'avais affaire à un tableau excel.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Moi j'utiliserais les indirections et la propriété "..titre" dans une boucle.

    après tu peux créer le nombre maximales de colonnes en mettant leur état sur non visible

    suivant le nombre de matières tu rends les colonnes visibles avec "..visible" = vrai

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    @ARNAUD ZIRIPE
    Les moyennes sont calculées depuis les notes non ? pourquoi faire une saisie ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    On suppose que le nombre de matières est de 4. Variable c"est plus compliqué.

    tu crée une table temporaire de structure Matricule,Matièrex * 4. x représente l'id de ta matière

    sur un bouton "alimenter" tu parcours ta table des notes et tu rempli la table temporaire liée au champ table.
    Pour les moyennes tu utiliser l'indirection {"temp.moyenne"+ idMatière} = moyennecalculée
    tableaffiche et c'est bon

    tu peux aussi procéder ligne par ligne avec tableajoutéligne

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Bonsoir chers tous
    Mon problème ici est que le nombre de matières varie en fonction des classes

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    tu dois créer les colonnes de ton champ table avec champclone()

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Bonsoir chers tous
    J'ai essayé le TCD mais j"ai rencontré d'énormes difficultés. J'ai donc décidé de saisir les notes des matières via une fenêtre de façon standard.
    mon souci maintenant est comment calculer la moyenne de tous les élèves par programmation. Depuis je galère
    je joins une image pour illustrer mes propos.
    Merci de m'aider.
    Nom : CODE.JPG
Affichages : 492
Taille : 140,7 Ko

  12. #12
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    A ma connaissance, le TCD permet d'afficher des résultats (des cumuls par exemple) et donc, il n'est pas adapté pour de la saisie. Normal que tu aies eu des problèmes avec le TCD.

    Pour afficher des moyennes... comment dire. La manière naturelle, ce n'est pas de passer d'une table vers une autre, c'est de lire le fichier de données, et d'afficher les données à partir du fichier.

    Pour tout ton projet, tu aurais intérêt à apprendre les bases de SQL.
    Ici tu peux construire une requete :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select e.nom, e.prenom , avg ( note) )
    from eleve e, notes n 
    where n.IDTtrimestre = ***
    and e.IDClassee = *** 
    and n.IDeleve = e.IDeleve
    Puis tu utilises la fonction ConstruitTableFichier() ... et c'est fini.

    Pour tout ce qui est outil de gestion (administration d'une école, comptabilité etc etc), SQL est très adapté.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Bonjour et merci en core pour votre aide.
    J'ai construis la requête REQ_resultat1
    Nom : REQ_resultat.JPG
Affichages : 455
Taille : 15,6 Ko
    Mais dans la fenêtre des erreurs de compilation il maffiche:Nom : Capture2.JPG
Affichages : 452
Taille : 11,1 Ko.
    J'ai jamais utilisé la fonction ConstruitTableFichier()
    Dois-je la placer dans un clic sur BTN_? et comment dois-je composer le code?
    Merci de m'aider.

  14. #14
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Dans mon exemple , j'ai mis *** à la place du n° de classe , et à la place du n° de trimestre. Il faut adapter. Je ne connais pas exactement la syntaxe, je crois que c'est {Param1} et {Param2} à la place de ***.

    Regarde l'aide sur les requetes paramétrées. Tu trouveras des informations sur le passage de paramètre, et sur la façon de lancer les requêtes dans ton application. Regarde aussi les fonctions hExecuteRequeteSQL() par exemple.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Bonsoir chers tous
    j'ai éssayé d'adapter le code sql qui a donné ceci:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Notes.IDélève,AVG (Note)
    FROM Notes,élève,Trimestre,Classee
    WHERE Trimestre.IDTrimestre= {Param1}
    AND Classee.IDClassee={Param2}
    GROUP BY IDélève

    J'ai aussi placé dans le BTN_Afficher ce autre code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HExécuteRequêteSQL(REQ_essai2)
    // Affiche le contenu d'une requête dans un champ Table mémoire
    SI HExécuteRequête(REQ_essai2) = Vrai ALORS
    	ConstruitTableFichier(TABLE_resultat, ...
    	REQ_essai2, taRemplirTable)
    TABLE_resultat..Visible=Vrai	
    FIN
    Nom : 3.JPG
Affichages : 464
Taille : 47,7 Ko

    ça marche mais pas comme je l'aurais souhaité.
    Au lieu de mafficher les moyennes trimestre des élèves de la classe sélectionnée, il m'affiche la moyenne Générale.
    En effet, je voudrais qu'en sélectionnant un trimestre et une classe et en cliquant sur le bouton afficher, que les moyennes du trimestre sélectionne des élèves de cette classe s'affiche dans la TABLE_resultat avec les colonnes: IDélève,Nom,Prénom et moyenne.
    Merci de m'aider.
    Images attachées Images attachées  

Discussions similaires

  1. Meilleure utilisation des tableaux comme hashtable?
    Par Eric80 dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2009, 16h03
  2. Utilisation des popups comme marqueurs
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 38
    Dernier message: 22/06/2009, 22h06
  3. utiliser des touches comme déclencheur d'animation
    Par claque dans le forum Powerpoint
    Réponses: 1
    Dernier message: 30/05/2008, 11h39
  4. Utiliser des classes, comme en php ?
    Par Titi41 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/05/2008, 17h20
  5. Réponses: 2
    Dernier message: 16/11/2007, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo