Hi Fabrice and Arie, Please have a look on the below code:
PROCEDURE Maj_prix_AFF(taAffDossier)
// | OPFR00214-Lot3 | 22/12/2009 | 1.4.0 | FDJ -Gestion des AFF - ajout des paliers...
nom_aff est une chaîne IndiceDepart est un entier indiceTBH est un entier prix_aff est un réel nb_ligne est un entier
Elt est un CElt dynamique eComp est un CEltComp dynamique key est une chaîne
IndiceDepart = 1 nb_ligne = TableauOccurrence(taAffDossier)
// Positionnement sur le bon module : // Tri du tableau selon le module (1ere colonne) TableauTrie(taAffDossier, ttCroissant, 1) IndiceDepart = TableauCherche(taAffDossier,tcLinéaire,1,pModule:ordre,IndiceDepart)
// DEBUF_FDJ //Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - Avant BOUCLE MAJ : "... //, "Module :" + pModule:ordre + " ; nb_ligne: " +nb_ligne+ " --- Utilisateur réseau "+RéseauUtilisateur())
SI IndiceDepart > 0 ALORS POUR i = IndiceDepart A nb_ligne
// DEBUF_FDJ //Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - BOUCLE : "... //, "Module :" + pModule:ordre + " ; moduleLigne : " +taAffDossier[i,1]+" --- Utilisateur réseau "+RéseauUtilisateur())
SI pModule:ordre = taAffDossier[i,1] ALORS indiceTBH = Val(taAffDossier[i,2]) prix_aff = Val(taAffDossier[i,5]) // FOR DEBUG //Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - BOUCLE MAJ : "... //, "Module :" + pModule:ordre + " ; Indice: " +i+ " ; nom_aff :" +taAffDossier[i,3]+ " ; Prix :" +taAffDossier[i,5] +" --- Utilisateur réseau "+RéseauUtilisateur())
// Mise à jour dans l'arbre du module s'il existe sinon dans le TBH // Si le module en cours est celui qui a déclenché le traitement de Calcul AFF, // il faut MAJ l'arbre sur lequel s'appuient les autres traitements. // Pour les autres modules on MAJ le TBH SI ArbModule <> Null ALORS key = TBH_DonnéesTechniques.ArbKey[indiceTBH] Elt = ArbModule:ItemGet(key) SI Elt..Classe = CEltComp ET Elt:Code [= C_CODE_AFF ALORS eComp = Elt eComp:prix = prix_aff FIN FIN
TBH_DonnéesTechniques.Prix_Comp[indiceTBH] = prix_aff
SINON // FOR DEBUG //Logger:Info(" Quiet - DEBUG: FenInt_DT_module.Procédure_maj_prix_AFF - SORTIE de BOUCLE : "... //, "Module :" + pModule:ordre + " ; moduleLigne : " +taAffDossier[i,1]+" --- Utilisateur réseau "+RéseauUtilisateur()) SORTIR FIN //IndicePrincipal++ FIN FIN
RENVOYER "OK" |