Problème parcours requête
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=
Code:
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 |
puis j'ai implémenté ça: pour affecter à lignebudgétaire
(c'est temporaire l'utilisateur ne le verrait pas)
Code:
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) |
l'astuce ici serait d'affecter les valeurs temporaires sur le tableau et après de faire:
Code:
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; |
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.
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