Code d'ouverture de mon état :
1 2 3 4 5
| PROCEDURE rptFacturePrev(poFacture est un cFacture dynamique)
nLigne est un entier = 1
<code qui initialise les données d'entête> |
Je prends un objet "facture" en paramètre qui contient des objets "ligne de facture".
J'initialise ma variable de parcours.
Code de lecture des données de l'état :
RENVOYER PAS (nLigne > Dimension(poFacture:tLigne))
Exécuté à chaque itération du bloc corps, il doit renvoyer faux quand il n'y plus de données à écrire dans le bloc corps. Vrai s'il y a des données.
Enfin sur le code du bloc corps "Avant impression du bloc corps"
1 2 3 4 5 6 7 8
| txtLigneDesignation = poFacture:tLigne[nLigne]:sDesignation
txtLigneQuantite = poFacture:tLigne[nLigne]:mQuantite
txtLignePrixUnitaire = poFacture:tLigne[nLigne]:mPrixUnitaire
txtLigneTauxTVA = poFacture:tLigne[nLigne]:oTva:mTaux
txtLigneUnite = poFacture:tLigne[nLigne]:sUnite
txtLigneMontantHT = poFacture:tLigne[nLigne]:MontantHT()
nLigne++ |
Affectation des valeurs de la ligne en cours et passage à la ligne suivante.
Dans ce cas j'ai programmé la lecture à partie d'un objet mais vous pourriez faire pareil avec des la lecture de fichier hyperfile (hlitpremier, hendehours, hlitsuivant) ou des fichiers textes. Les possibilités sont nombreuses.
Partager