voila mon programme:
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 if (MD.LFACTMODIF.Value= '0') and ( (FAPP.TypeP='BL')or(FAPP.TypeP='RF')or (FAPP.TypeP='CS') // sortie or (FAPP.TypeP='BR')or(FAPP.TypeP='RC') ) // entree then begin //PIECE MD.DFACT.DisableControls; MD.LFACTMODIF.Value:= '1'; MD.DFACT.First; while not MD.DFACT.Eof do begin MD.TART. if MD.TART.Locate('CODE_ART',VarArrayOf([MD.DFACTCODE_ART.Value]),[])then begin MD.TART.Edit; //MD.DFACT.Edit; if (FAPP.TypeP='BL')or(FAPP.TypeP='RF')or(FAPP.TypeP='CS') then begin //TP MD.TARTQTTEC.Value:=MD.TARTQTTEC.Value-MD.DFACTQTE.Value; end else begin if (FAPP.TypeP='BR') then begin if MD.TARTPMP.Value= 0 then MD.TARTPMP.Value:=MD.DFACTPRXAR.Value else MD.TARTPMP.Value:=((MD.TARTPMP.Value*MD.TARTQTTEC.Value)+ (MD.DFACTPRXAR.Value*MD.DFACTQTE.Value)) /(MD.TARTQTTEC.Value+MD.DFACTQTE.Value); MD.TARTPXACH.Value:=MD.DFACTPRXAR.Value; end; MD.TARTQTTEC.Value:=MD.TARTQTTEC.Value+MD.DFACTQTE.Value; := Q; end;//TP MD.TART .Post; end;//Locate MD.DFACT.Next; end;//While MD.DFACT.EnableControls; end;//PIECE
la question est la table MD.TART contient environ 100 000 enregistrements sachant que j'ai define index sur champ CODE_ART et moi utiliser le firebird le probleme est : mon programme est bloquer comment faire pour resoudre ce probleme?
Partager