salut
dans ma base de donnes (firebird 2.5) j'ai les quatre tables suivantes :
voila le code de création des table:
voila l'interface de la fiche :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 CREATE TABLE ETUDIANTES ( N_INSCRIPTION INTEGER NOT NULL, NOM VARCHAR(20), PRENOM VARCHAR(20) CHARACTER SET NONE, /* Keys */ CONSTRAINT ETUDIANTES_INDEX01 PRIMARY KEY (N_INSCRIPTION) ); CREATE TABLE MODULES ( CODE_MODULE VARCHAR(20) NOT NULL, NOM_MODULE VARCHAR(20), /* Keys */ CONSTRAINT MODULES_INDEX01 PRIMARY KEY (CODE_MODULE) ); CREATE TABLE SEMESTRES ( CODE_SEMESTRE VARCHAR(2) NOT NULL, /* Keys */ CONSTRAINT SEMESTRES_INDEX01 PRIMARY KEY (CODE_SEMESTRE) ); CREATE TABLE RESULTATS ( N_INSCRIPTION INTEGER NOT NULL, CODE_MODULE VARCHAR(20) NOT NULL, CODE_SEMESTRE VARCHAR(2) NOT NULL, CONTROLE1 FLOAT, CONTROLE2 FLOAT, EXAMEN FLOAT, OBSRVATION VARCHAR(50), /* Keys */ CONSTRAINT RESULTATS_INDEX01 PRIMARY KEY (N_INSCRIPTION, CODE_MODULE, CODE_SEMESTRE), /* Foreign keys */ CONSTRAINT RESULTATS_FOREIGN_KEY01 FOREIGN KEY (N_INSCRIPTION) REFERENCES ETUDIANTES(N_INSCRIPTION) ON UPDATE CASCADE, CONSTRAINT RESULTATS_FOREIGN_KEY02 FOREIGN KEY (CODE_MODULE) REFERENCES MODULES(CODE_MODULE) ON UPDATE CASCADE, CONSTRAINT RESULTATS_FOREIGN_KEY03 FOREIGN KEY (CODE_SEMESTRE) REFERENCES SEMESTRES(CODE_SEMESTRE) ON UPDATE CASCADE );
j'ai utilise le composant DBAdvGrid pour afficher les résultat de requête SQL suivante (le code source du bouton OK):
-Je voulais saisie les notes (CONTROLE1,CONTROLE2,EXAMEN) a partir du DBAdvGrid1 (Utilisation du DBAdvGrid1 pour la saisie des données )
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
18
19
20
21
22 procedure TForm1.Button1Click(Sender: TObject); begin with FDQuery1 do begin Close; SQL.Clear; SQL.Add('select etud.*,res.CONTROLE1,res.CONTROLE2,res.EXAMEN,res.OBSRVATION '); SQL.Add(' from etudiantes etud'); SQL.Add(' left join resultats res'); SQL.Add(' ON etud.N_INSCRIPTION=res.N_INSCRIPTION'); SQL.Add(' AND res.CODE_MODULE=:CODE_MODULE'); SQL.Add(' AND res.CODE_SEMESTRE=:CODE_SEMESTRE'); SQL.Add(' order by etud.N_INSCRIPTION'); ParamByName('CODE_MODULE').value:=strtoint(ComboBox2.Text); ParamByName('CODE_SEMESTRE').value:=ComboBox1.Text; Open; end; TNumericField(FDQuery1.FieldByName('CONTROLE1')).DisplayFormat := '0#.00'; TNumericField(FDQuery1.FieldByName('CONTROLE2')).DisplayFormat := '0#.00'; TNumericField(FDQuery1.FieldByName('EXAMEN')).DisplayFormat := '0#.00'; end;
l'option: goEditing est défini sur true dans DBAdvGrid1.Options et DBAdvGrid1.PageMode = true
mon problème est dans DBAdvGrid:
-Lorsque je modifie dans les colonnes suivantes: (N_INSCRIPTION,NOM,PRENOM) la modification réussit (Je peux les modifier sans aucun problème)
-mais les colonnes (CONTROLE1,CONTROLE2,EXAMEN,OBSRVATION) ne son pas éditables (Quand j'appuie deux fois avec la souris par exemple sur la cellule du colonne CONTROLE1 Rien n'apparaît Je ne peux rien écrire).
pour quoi les trois premières colonnes son éditable mais les colonnes (CONTROLE1,CONTROLE2,EXAMEN,OBSRVATION) ne son pas éditables ?
Comment résoudre le problème de la saisie des Notes?
Merci pour votre aide
Partager