Bonjour à tous.
Cet exemple propose la création d'un champ Auto Incrément à partir d'un champs Numérique (NUM_PRDK) de la table MAJPRDSTK.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TMDT.DataModuleCreate(Sender: TObject); begin MAJPRDSTK.Active:=True ; MAJPRDSTK.AddIndex('C','NUM_PRDK',[]) ; //ordre numérique MAJPRDSTK.AddIndex('L','LBL_PRDK',[]) ; //ordre alphabétique. end;-Insertion d'un nouvel enregistrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TFrmMAJPRDSTK.FormActivate(Sender: TObject); begin MDT.MAJPRDSTK.IndexName:='L' ; //d'origine, la table est indexée par ordre alphabétique. MDT.MAJPRDSTK.First ; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TMDT.MAJPRDSTKBeforeInsert(DataSet: TDataSet); begin if MAJPRDSTK.RecordCount>0 then MAJPRDSTK.IndexName:='C' ; //établissement momentané de l'ordre numérique, c'est aussi un MAJPRDSTK.Last; I:=MAJPRDSTK.FieldValues['NUM_PRDK']; //rafraîchissement pour les enregistrements de la table. end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TMDT.MAJPRDSTKAfterInsert(DataSet: TDataSet); begin if I=Null then I:=0; MAJPRDSTK.FieldValues['NUM_PRDK']:=I+1; end;merci à tous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TMDT.MAJPRDSTKAfterPost(DataSet: TDataSet); begin MAJPRDSTK.ApplyUpdates ; MAJPRDSTK.IndexName:='L' ; //restitution de l'ordre initial de la table. end;![]()
Partager