Bonjour,
J'ai un soucis depuis ce matin que je tente de résoudre.
J'ai deux tables:lignebudgétaires et bondecomande relié par 0,1------->0,1 via le numérobondecomande
Le bondecomande possède les champs:
QuantitéCommandéeInitiale
QuantitéDepotée
QuantitéApelée
La ligne budgétaire possède les champs:
CoutDemandedachat
CoutQtéAppelée
CoutQtéDépotée
prixUnitaire
le but est de: pour chaque enregistrement correspondant via le numérobondecomande on doit avoir :
CoutDemandedachat=QuantitéCommandéeInitiale *prixUnitaire
CoutQtéAppelée=QuantitéApelée*prixUnitaire
CoutQtéDépotée=CoutQtéDépotée*prixUnitaire
Sans tarder, j'ai d'abord pensé à une requête SQL qui le ferait directement,mais j'ai pas pu.C'est ainsi que j'ai fait cette requête:
REQ_CalculCoût=
puis j'ai implémenté ça: pour affecter à lignebudgétaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT BondeComande.NuméroBondeComande AS NuméroBondeComande, SUM(BondeComande.QuantitéCommandéeInitiale) AS CoutAchat, SUM(BondeComande.QuantitéDepotée) AS coutdépot, SUM(BondeComande.QuantitéApelée) AS coutappl FROM LigneBudgétaire, BondeComande WHERE BondeComande.NuméroBondeComande=LigneBudgétaire.NuméroBondeComande GROUP BY BondeComande.NuméroBondeComande
(c'est temporaire l'utilisateur ne le verrait pas)
l'astuce ici serait d'affecter les valeurs temporaires sur le tableau et après de faire:
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 SI HExécuteRequête(REQ_CalculCoût,hRequêteDéfaut)=Faux ALORS Erreur("Echec requête"+RC+HErreurInfo()) RETOUR FIN HLitPremier(REQ_CalculCoût) TANTQUE PAS HEnDehors() // Traitement sur l'enregistrement de la requête POUR TOUT LigneBudgétaire SI REQ_CalculCoût.NuméroBondeComande=TABLE_LigneBudgétaire.COL_NuméroBondeComande ALORS TABLE_LigneBudgétaire.COL_CoutDemandedachat=REQ_CalculCoût.CoutAchat TABLE_LigneBudgétaire.COL_CoutQtéAppelée=REQ_CalculCoût.coutappl TABLE_LigneBudgétaire.COL_CoutQtéDépotée=REQ_CalculCoût.coutdépot FIN FIN HLitSuivant(REQ_CalculCoût) FIN HAnnuleDéclaration(REQ_CalculCoût)
Ainsi j'obetiendrais les valeurs recherchées.Mais Quand je test ma page avec l'avant dernier code, il ne me fait les affectations que pour le premier enregistrement,ignorant ainsi les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 table_lignebudgétaire.col_CoutDemandedachat=table_lignebudgétaire.col_CoutDemandedachat*table_lignebudgétaire.col_PrixUnitaire; table_lignebudgétaire.col_CoutQtéAppelée=table_lignebudgétaire.col_CoutQtéAppelée*table_lignebudgétaire.col_PrixUnitaire; table_lignebudgétaire.col_CoutQtéDépotée=table_lignebudgétaire.col_CoutQtéDépotée;
Je réfléchis depuis ce matin sur ce problème et toujour pareil.
Si quelqu'un a une piste je l'accepte volontier.
Paul Nero
Partager