Bonjour,
J'ai mon programme actuellement en test qui est assez lent sur mes sites distants.
J'ai trouvé l'interfaçe suspecte. Cela correspond à une zone répétée.
Celle-ci contient 7 lignes * X colonnes d'utilisateurs (X peut aller jusqu’à 10 utilisateurs).
Dans chaque cellules, j'ai :
- 1 libellé correspondant à une date
- 2 combos
- 4 champs de saisie contenant des heures
- 2 libellés que je me sers comme "cadre" pour afficher une couleur derrière ces éléments
Le problème se situe au niveau d'une procédure.
Celle-ci exécute dans une boucle de 1 à NbOccurence de la ZR, une requête SQL et met les données récupérées dans une case de ma zone répétée.
Ensuite, dans cette même boucle, j'ai une procédure MiseEnForme qui va mettre en forme toutes mes cases.
J'appel donc la requête + ma procédure de mise en forme un paquet de fois.
Le souci d'après l'analyseur de performances viendrait donc de ma procédure de mise en forme.
Celle-ci fait les choses suivantes :
- Rend actif tous mes éléments de saisies (grisé par défaut) : donc j'ai bien sûr 6 attributs dans la ZR juste pour grisé
- Selon ce que ma 1ère combo contient, j'attribue une couleur a mon libellé "cadre" et je rend visible/invisible ou grisé mes champs de saisie
- Exactement la même chose pour ma 2ème combo
- En fonction d'une valeur d'un attribut, je met une couleur de fond dans un champ forme
- En fonction d'une valeur d'un attribut, j'affiche (ou non) un icône
- Enfin, si la date de ma cellule est un jour férié, je met un libellé servant de "cadre" en couleur de fond rouge
Bref, tout ca pour chaque cellules de la ZR.
Au niveau du code de la procédure ca donne un truc de ce genre :
POUR i=1 A MaZR..Occurence PAS 1
|
| Requête SQL qui va chercher mes données pour une cellule
|
| Met les valeurs récupérées dans la celulle (Attribut de la ZR = valeur requête)
|
| Met en forme ma cellule : procédure MiseEnForme(i)
|
FIN
Comme ca, voyez-vous une possibilité d'amélioration ?
Si besoin, je peux expliquer un peu plus en détail certaines parties de ma question
Merci d'avance !
Partager