salut,
Comment afficher le nom de la leçon et la note Parce qu'il affiche toujours le premier note pour tous les élèves dans le FASTٌReport
BaseDonee.rar
salut,
Comment afficher le nom de la leçon et la note Parce qu'il affiche toujours le premier note pour tous les élèves dans le FASTٌReport
BaseDonee.rar
Bonjour,
comment répondre à une demande pareille ? Non là c'est poussé le bouchon trop loin, même le titre est incompréhensible dans ce forum, c'est carrément demander de corriger tout le programme (dont on ne sait quelle version de Delphi et genre VCL ou FMX) tout ça pour un état !
En général, un problème d'état est un problème de données et donc de requête
Bonjour SergioMaster,
Ce n'est pas la même question Je pose cette fois question sur FASTREPORT
ce que je veux, c'est comment imprimer chaque note et le nom de leçon pour chaque élève
Je travaille avec Delphi 10.3 et FireBird 3
Excusez-moi si je ne peux pas choisir le bon forum.
J'essaye cette requête mais cela n'a pas fonctionné
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT note FROM LECON L JOIN ETUDLECON EL join ETUDIANT E ON E.id = EL.ID and L.LECONID=EL.LECONID
c'est clairement plus un problème SQL, donc FireBird/SQL ou plus simplement Langage SQL car il n'y a rien de spécifique ni Firebird ni DelphiExcusez-moi si je ne peux pas choisir le bon forum.
C'est bien ce que je certifiai, en général un problème d'état trouve sa source dans les données fournies, ce qu'une bonne analyse de l'état aurait souligné au demeurant, mais peut-être que l'analyse des sorties est devenu un chose considérée comme obsolète !
C'est normal que la requête n'ai pas fonctionné, vos jointures sont mal faites.
Chaque jointure doit avoir sa propre clause de plus celles-ci doivent être hiérarchisées.
Vous voulez les notes d'un élève
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT E.NOM,L.NOMLECON FROM ETUDIANT E JOIN ETUDLECON EL ON E.ID=EL.ID JOIN LECON L JOIN L.LECONID=EL.LECONID
Les élèves pour une leçon
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT E.NOM,L.NOMLECON FROM LECON L JOIN ETUDLECON EL ON EL.ID=L.LECONID JOIN ETUDIANT E JOIN EL.ID=EL.ID
Mais aussi
qui aura l'avantage de couvrir les deux besoins pour peu d'utiliser une clause ORDER et une spécificité de Firedac : les macros pour pouvoir changer au besoin
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT E.NOM,L.NOMLECON FROM ETUDLECON EL JOIN LECON L ON EL.ID=L.LECONID JOIN ETUDIANT E JOIN EL.ID=EL.ID
Pour donner une touche Delphi
Utilisation,
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT E.NOM,L.NOMLECON FROM ETUDLECON EL JOIN LECON L ON EL.ID=L.LECONID JOIN ETUDIANT E JOIN EL.ID=EL.ID &ClauseOrder
Maintenant, vous auriez pu également chosir la voie des états maitre-détail (il y a plusieurs exemples dans le répertoire démos de FastReport, pour peu que vous compiliez le projet pour y accéder facilement)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 With AFDQuery do begin Close; SQL.Clear; SQL.Add('SELECT E.NOM,L.NOMLECON FROM ETUDLECON EL'); SQL.Add('JOIN LECON L ON EL.ID=L.LECONID'); SQL.Add('JOIN ETUDIANT E JOIN EL.ID=EL.ID') SQL.Add('&ClauseOrder'); // Au choix MacroByName('ClauseOrder').asRaw := 'ORDER BY EL.ID,EL.LECONID'; // ordre par id, idlecon MacroByName('ClauseOrder').asRaw := 'ORDER BY EL.LECONID,EL.ID'; // ordre par Lecon, id MacroByName('ClauseOrder').asRaw := 'ORDER BY E.NOM,EL.LECONID'; // ordre par nom, id.lecon //etc.. Open; end;
P.S. Je ne vois pas d'où vient NOTE donc, je vais omettre
Bonjour SergioMaster et merci pour votre aide
J'ai ajouté la requête au FastReport mais les champs n'apparaissaient pas pour que je puisse l'ajouter au MasterData
J'ai joint le projet
BaseDonee.rar
Partager