PROCEDURE proAfficheTotal(pNiveau est un entier, sMemoCpte est une chaîne )
sSql est une chaîne
Rs est une Source de Données
sSql = "SELECT SUM( Montant) AS MNT FROM Ecriture WHERE Compte Like '" + sMemoCpte[[ A pNiveau ]] + "%'"
HExécuteRequêteSQL( Rs, hRequêteDéfaut, sSql )
TableAjouteLigne( Table1, sMemoCpte[[ A pNiveau ]], Rs.Mnt)
sSql est une chaine
RsEcr est une source de donnees
sMemoCpte est une chaine
sSql =
[
SELECT Compte, Montant
FROM
Ecriture
]
//Penser a ajouter une clause WHERE pour limiter par
//exemple sur une période voulue
SI PAS HExécuteRequêteSQL( RsEcr, hRequêteDéfaut, sSql ) ALORS
Erreur(HErreurInfo())
RETOUR
FIN
POUR TOUS RsEcr sur "Compte"
SI sMemoCpte = "" ALORS sMemoCpte = RsEcr.Compte
//Totalisation sur compte numéro a 1 chiffre
SI sMemoCpte[[ A 1 ]] <> RsEcr.Compte[[ A 1 ]] ALORS
proAfficheTotal (3 , sMemoCpte )
proAfficheTotal ( 2, sMemoCpte )
proAfficheTotal( 1, sMemoCpte )
FIN
//Totalisation sur compte numéro a 2 chiffre
SI sMemoCpte[[ A 2 ]] <> RsEcr.Compte[[ A 2 ]] ALORS
proAfficheTotal( 3, sMemoCpte )
proAfficheTotal( 2, sMemoCpte )
sMemoCpte = RsEcr.Compte
FIN
//Totalisation sur compte numéro a 3 chiffres
SI sMemoCpte[[ A 3 ]] <> RsEcr.Compte[[ A 3 ]] ALORS
proAfficheTotal( 3, sMemoCpte )
sMemoCpte = RsEcr.Compte
FIN
TableAjouteLigne( Table1, RsEcr.Compte, RsEcr.Montant)
FenRepeint(frmTest)
FIN
proAfficheTotal( 3, sMemoCpte )
proAfficheTotal( 2, sMemoCpte )
proAfficheTotal( 1, sMemoCpte )
Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=20&topic_id=6287&post_id=24962