OVH Cloud OVH Cloud

[WD7.5 706h] Code d'initialisation de fenetre

6 réponses
Avatar
J-M des Grottes
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide

--
Remove (nospam) from my Email.
Dr J-M des Grottes - HIS-Etterbeek-Ixelles - Nephrology - Belgium

6 réponses

Avatar
farplus
Bonjour,

J-M des Grottes a formulé la demande :
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes situés
dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une procédure).
Le problème est situé entre les deux ! Cela met plus de 15 secondes entre la
fin des déclaration globales et le démarrage effectif de la lecture du code
de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans le
traitement de déclalation global de la fenêtre. Cela traîne toujours au même
endroit: au moment d'entamer le traitement d'initialisation alors que dans ce
cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...



bien vu !

Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une requête
ou un fichier HF), une 10 aine de champs de saisie et 5 à 6 interrupteur?
Alors ? Trop de champs, de combo ? Autre problème ?



manifestement c'est les combos.

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers qui
est lente ....)



pas contradictoire, tes combos provoquent la lecture des fichiers.

Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide



Le déroulement des opérations étant le suivant:
déclaration globales
codes d'initialisation des champs
affichage
code initialisation fenêtre
la solution passe par:
Isoler le problème, en inhibant à tour de rôle tes combos pour voir
laquelle ou lesquelles ralentit(ssent) ton affichage, puis deplace les
codes d'initialisation des combos dans le code d'initialisation des
fenêtres. Si les combos n'ont pas de code d'initialisation (car
automatique) tu peux tricher de la sorte:
dans les globales définit un booleen xx à vrai
dans le code d'initialisation des combos mets
si xx alors
filtre_qui_réduit_fortement_la plage_de_lecture
sinon
enlève_filtre
fin
dans le code d'initialisation de la fenêtre tu mets
xxúux
executetraitement(combo,ini)

ainsi donc le traitement normal d'initialisation des combos s'éxécutera
après affichage.

A+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
aprosper_fr
Le problème est certainement situé lors de l'initialisation des
combos.
Essaye temporairement de supprimer le chargement de tes combos et tu
verras si ça va plus vite.

Si c'est le cas, il faut que tu optimises les requêtes de chargement.
Une première solution est de ne pas lier le champ combo à une table
mais d'alimenter toi-même le combo en fin d'initialisation de ta
fenêtre.

Tu place alors une procédure qui va effectuer les lectures et
remplissage en optimisant les accès.

Vérifie aussi que ton champ combo correspond bien à une zone index de
la table concernée.

Je doute que les champs de saisie et les interrupteurs soient
responsables des maivaises performances, à moins que leur propre
traitement d'initialisation
contiennent là aussi des accès HF mal optimisés.

Tu peux alors aussi tester en mettant en remarque les parties
concernées à tour de rôle.

Bon courage, Alain
J-M des Grottes <jmdg(nospam)@easynet.be> wrote in message news:...
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide


Avatar
eandrieux
Bonjour,

Effectivement, il y a de grandes chances que cela provienne des Combos...

Pour palier ce problème, il est possible de les alimenter par programmation
via un "Thread". Il suffit alors de faire une procédure remplissant des
combos et de la lancer par un ThreadExecute lors de la déclaration globale.
Le traitement s'exécute donc en parallèle de l'initialisation de 'autres'
champs et de la fenêtre...

Cordialement

--
Etienne Andrieux
-----------------------------------------
pour me répondre directement :
http://cerbermail.com/?bbYkJoQBQT



"J-M des Grottes" <jmdg(nospam)@easynet.be> a écrit dans le message de news:

Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide

--
Remove (nospam) from my Email.
Dr J-M des Grottes - HIS-Etterbeek-Ixelles - Nephrology - Belgium



Avatar
michel.chanu
J-M des Grottes <jmdg(nospam)@easynet.be> wrote in message news:...
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide




Bonjour!

Il est fort probable que ce soit une initialisation de champs qui te
prenne du temps, comme une requête un peu complexe dans une table par
exemple. L'initialisation des champs ce faisant au moment de
l'initialisation de la fenêtre (avant ou après... je ne sais plus...)
la fenêtre met forcément du temps à apparaître dans ce cas.

J'ai eu ce problème sur une fenêtre qui affiche 8 tables différentes
synchronisées, comme les tables sont soit filtrées ou utilisent des
requêtes paramètrées, si je ne saute pas ces requêtes à l'ouverture de
la fenêtre (contrôlé par la propriété 'ouverture'), celle ci met un
temps insuportable à s'afficher.

Pour sauter ces requêtes je met simplement dans le code
d'initialisation des champs concernés:
Si ouverture alors retour
ensuite je déclenche les initialisation des tables que quand
l'utilisateur demande son affichage (en passant par un champ onglet
pour ma part). De cette manière l'affichage est parfaitement
acceptable.

Ci celà peut aider...
BON DEV!
Avatar
J-M des Grottes
Michel CHANU vient de nous annoncer :
J-M des Grottes <jmdg(nospam)@easynet.be> wrote in message
news:...
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide




Bonjour!

Il est fort probable que ce soit une initialisation de champs qui te
prenne du temps, comme une requête un peu complexe dans une table par
exemple. L'initialisation des champs ce faisant au moment de
l'initialisation de la fenêtre (avant ou après... je ne sais plus...)
la fenêtre met forcément du temps à apparaître dans ce cas.

J'ai eu ce problème sur une fenêtre qui affiche 8 tables différentes
synchronisées, comme les tables sont soit filtrées ou utilisent des
requêtes paramètrées, si je ne saute pas ces requêtes à l'ouverture de
la fenêtre (contrôlé par la propriété 'ouverture'), celle ci met un
temps insuportable à s'afficher.

Pour sauter ces requêtes je met simplement dans le code
d'initialisation des champs concernés:
Si ouverture alors retour
ensuite je déclenche les initialisation des tables que quand
l'utilisateur demande son affichage (en passant par un champ onglet
pour ma part). De cette manière l'affichage est parfaitement
acceptable.

Ci celà peut aider...
BON DEV!



Merci les gars.

Je vais bosser sur ce problème et je vous tiens au courant.

A+

--
Remove (nospam) from my Email.
Dr J-M des Grottes - HIS-Etterbeek-Ixelles - Nephrology - Belgium
Avatar
J-M des Grottes
Michel CHANU a couché sur son écran :
J-M des Grottes <jmdg(nospam)@easynet.be> wrote in message
news:...
Bonsoir,

J'ai développé une "grosse" application qui tourne bien même en HF :')

Le seul "hic" est lié à une fenêtre qui prend un temps fou à s'ouvrir.

Les codes de Déclaration globale se font très rapidemement, les codes
situés dans le traitement d'initialisation aussi (cela consiste en un
hlitrecherchepremier puis un fichierversécran ..sous forme d'une
procédure). Le problème est situé entre les deux ! Cela met plus de 15
secondes entre la fin des déclaration globales et le démarrage effectif
de la lecture du code de mon traitement d'initialisation. :-@
J'ai même poussé le vice à mettre tout mon code d'initialisation dans
le traitement de déclalation global de la fenêtre. Cela traîne toujours
au même endroit: au moment d'entamer le traitement d'initialisation
alors que dans ce cas là il n'y a plus de code ! :'(

J'en déduit que le logiciel perd du temps lors de l'initialisation des
champs...Il est vrai qu'il y a 5 à 6 combo (chacunes remplies par une
requête ou un fichier HF), une 10 aine de champs de saisie et 5 à 6
interrupteur? Alors ? Trop de champs, de combo ? Autre problème ?

Cela est étonnant alors qu'habituellement c'est la lecture des fichiers
qui est lente ....)
Par ailleurs j'ai beaucoups d'autres fenêtres qui s'affiche très vite.

Avez-vous déjà connu ce problème ?

Merci pour votre aide




Bonjour!

Il est fort probable que ce soit une initialisation de champs qui te
prenne du temps, comme une requête un peu complexe dans une table par
exemple. L'initialisation des champs ce faisant au moment de
l'initialisation de la fenêtre (avant ou après... je ne sais plus...)
la fenêtre met forcément du temps à apparaître dans ce cas.

J'ai eu ce problème sur une fenêtre qui affiche 8 tables différentes
synchronisées, comme les tables sont soit filtrées ou utilisent des
requêtes paramètrées, si je ne saute pas ces requêtes à l'ouverture de
la fenêtre (contrôlé par la propriété 'ouverture'), celle ci met un
temps insuportable à s'afficher.

Pour sauter ces requêtes je met simplement dans le code
d'initialisation des champs concernés:
Si ouverture alors retour
ensuite je déclenche les initialisation des tables que quand
l'utilisateur demande son affichage (en passant par un champ onglet
pour ma part). De cette manière l'affichage est parfaitement
acceptable.

Ci celà peut aider...
BON DEV!



Super, j'ai modifié le remplissage de mes combo en leurs assignant des
chaines contenant les éléments séparés par des RC. Le tout est lancé au
démarrage de l'application. Ma fenêtre s'ouvre directement....

Merci à tous

--
Remove (nospam) from my Email.
Dr J-M des Grottes - HIS-Etterbeek-Ixelles - Nephrology - Belgium