Bonjour,
j'ai un problème qui me dérange bcp :
j'ai ces tables:
Le but est de calculer et mettre à jour la valeur de l'objet QTE_RESTEE, j'ai essayé avec ce code mais toujours je trouve des failles:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 create table LIVRAISON ( CODE_LIVRAISON integer not null, NUM_COMMANDE integer not null, DATE_LIVRAISON DATE ) create table LIV_ART ( CODE_LIVRAISON integer not null, REFERENCE integer not null, QUANTITE_LIVREE NUMBER, QTE_RESTEE NUMBER )
au niveau du champ quantité livrée avec le déclencheur key_next_item:
Ci joint une capture de la forme pour comprendre mon problème.
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
50
51
52
53
54
55 declare n number; qtr number; up number; begin select SUM(t.quantite_livree) into n from livraison l, liv_art t where l.num_commande = :livraison.num_commande and t.reference = :liv_art.reference and l.code_livraison = t.code_livraison; select min(t.qte_restee) into qtr from livraison l, liv_art t where l.num_commande = :livraison.num_commande and t.reference = :liv_art.reference and l.code_livraison = t.code_livraison; if n is not null then up := get_item_property('liv_ART.QUANTITE_livree',DATABASE_VALUE); if :liv_art.quantite_livree > up then if (qtr - (:liv_art.quantite_livree - up)) < 0 then messagebox(' Vous avez dépasser la quantité commandée '); raise form_trigger_failure; else :QRL := qtr - (:liv_art.quantite_livree - up); next_record; end if; else :QRL := (up - :liv_ART.QUANTITE_LIVREE) + QTR; next_record; if :liv_art.quantite_livree > qtr then messagebox(' La quantité livrée dépasse la quantité restante !!!! '); raise form_trigger_failure; else :QRL := qtr - (:liv_art.quantite_livree) ; next_record; end if; end if; else :QRL := :liv_art.QTECOMM - :liv_art.quantite_livree ; next_record; end if; end if; end;
http://www.developpez.net/forums/att...1&d=1308757761
Merci pour vos propositions.
Partager