Impression etat ???
Anonyme
Bonjour,

J'ai un gros souci avec les états.
J'ai une fenêtre fille mdi dans laquelle se trouve un bouton pour lancer une impression.
Jusque la tout est ok.
La fenêtre fonctionne, le bouton et l'aperçu avant impression aussi.

Seulement voilà et c'est là que j'ai besoin de vos lumières. Dans ma fenêtre, j'ai besoin d'exécuter du code dans son traitement de perte de focus.
Et patatra, l'aperçu avant impression est vierge et j'ai plantage du soft.

Bon, je me dis c'est mon code dans perte de focus qui ne va pas. Je l'enlève pour voir. Tout fonctionne. Je le remets, plus rien ne va.
Alors, je me dis comme ça, qu'à cela ne tienne. quand je clique sur bpimpr je positionne un booléen qui m'interdit de passer dans le code de la perte de focus.
He bien, ça ne fonctionne pas.
Pour que cela fonctionne il suffit que j'ajoute info("blabla") à la fin du traitement de perte de focus.

Traitement perte de focus qui ne marche pas :
si pas flag alors
//j'appelle ma procédure
fin

Traitement perte de focus qui marche :
si pas flag alors
//j'appelle ma procédure
sinon
info("blabla")
fin

Pourriez-vous m'aider svp ?
merci
Josi

Contribution le : 08/09/2004 19:00
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Stagiaire WDF
Inscrit:
09/09/2004 07:32
Post(s): 5
N'y a-t-il vraiment personne qui puisse m'aider ?

Josi

Contribution le : 09/09/2004 08:57
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Stagiaire WDF
Inscrit:
02/08/2004 18:07
De Champs sur Marne / Strasbourg
Post(s): 14
Bonjour,
je ne connais pas la cause de ton problème, et je n'ai pas d'explication (niveau trop faible).

Je me demande si avant la création de la fenêtre de ton impression (au fait c une fenêtre de quelle type?) si tu ne devrais pas voir si un changement d'état de ta fenêtre en "HorsEcran" peu résondre ton problème????

Je me demande aussi si ton flag est déclaré en global ou en local (test en global). Oui je ne connais pas comment windev traite ses acquisitions (si la perte de focus traité avant l'affectation des variables, etc ...).

Bon, j'espère que mes interogations "bébêtes" te serviront.


Salut

Contribution le : 09/09/2004 11:26
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Quel estl'intérêt ou la contrainte que vous avez pour être amené à mettre du code dans 'Perte de focus' ?

Contribution le : 09/09/2004 12:31
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Stagiaire WDF
Inscrit:
09/09/2004 07:32
Post(s): 5
Tout d'abord, merci de vos réponses.
Mon application fonctionne en réseau. Les fichiers sont partagés entre plusieurs utilisateurs. Cela signifie donc que les données pouvant évoluer alors qu'une fenêtre table est affichée. Il faut donc que la fenêtre en question soit rafraichie régulièrement. D'autre part, il s'agit d'une appli MDI donc plusieurs fenêtres peuvent être affichées en même temps. Mon raisonnement est donc le suivant : lorsqu'une fenêtre perd le focus, j'arrête son rafraichissement. Dès qu'elle reprend , je la rafraichis et relance le rafraichissement automatique.
Voila pourquoi, j'ai besoin de mettre du code dans la perte de focus de la fenêtre.
Je dis "j'ai besoin" mais peut-être avez-vous une autre solution ?

En fait, après d'autres essais, le phénomène est lié également au mode d'ouverture de la fenêtre.
Type de fenêtre : fille MDI
Mode d'ouverture : ouvrefille ou mdiouvre
Résultat : plantage

Mode d'ouverture : ouvre
résultat : OK

Seulement, je veux une ouverture non modale et une fenêtre qui reste dans la fenêtre mère.

Si vous avez des idées de contournement de ce problème, je prend tout de suite.

encore merci,
Josi

Contribution le : 09/09/2004 12:59
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Tenter plutôt de modifier le code qui gère le rafraîchissement en testant si l'état de la fenêtre, ainsi le timer sera désactivé automatiquement lorsque la fenêtre perdra son focus et se réactivera lorsqu'elle reprendra le focus

Si vous utilisez des procédures locales pour gérer le rafraîchissement il vous suffit de modifier la procédure en conséquence.

Si vous utilisez les classes WinDev pour gérer le rafraîchissement cela différent:

Il vous faut créer une classe qui hérite de la classe de Base celle de Windsurf, puis de ré-écrire la procédure en question :

Exemple de code existant à l?ouverture de vos fenêtres table
gclTable est un objet CWDTable

Utiliser la technique des procédures virtuelles : voir ceci

Conception : Créer une nouvelle Classe
cMaClasse est une classe
GLOBALE
	Un objet CWDTable
PRIVE
	msFenetreNom est une chaîne
FIN

Maintenant créer la procédure suivante qui va remplacer celle de la classe CWDTable
N?oubliez pas de modifier la propriété de la procédure en Virtuelle via le bouton droit sur le nom de la procédure dans le Kouglof de WinDev.
PROCEDURE VIRTUELLE Raffraichir()

Créer aussi la méthode du Constructeur
PROCEDURE Constructeur(sFenetreNom= FenEnExécution(), sNomTable="Table",sCleParcours="")
:msFenetreNom = sFenetreNom
Constructeur CWDTable(sNomTable,sCleParcours)

Recopier le code qui existe dans la procédure CWDTable:Rafraichir(), puis modifier la afin qu?elle réagisse si la condition suivante est vrai.
Rajouter ceci au début de la procédure
SI :msFenetreNom <> FenEnExecution() Alors RETOUR

Cela aura pour effet de n?exécuter le code de rafraîchissement que si la fenêtre en cours à le focus.

Mise en place de votre Classe :
Remplacer :
gclTable est un objet CWDTable par :
gclTable est un objet cMaClasse

Voilà le comportement de la classe va conserver son fonctionnement et bénéficiera des évolutions que PC Soft apportera à ces classes de base à l?exception de la procédure CWDTable :Rafraichir() car celle-ci est exécutée à partir de votre classe.

Ainsi vous n'aurez plus besoin de saisir de code dans la prise et perte de focus de la fenêtre.

Tout ceci est saisie à la volée et peut comporter quelques erreurs.
Voilà en espérant vous avoir apporter la solution.

Contribution le : 09/09/2004 15:16
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Impression etat ???
Stagiaire WDF
Inscrit:
09/09/2004 07:32
Post(s): 5
Merci, merci et encore merci.
Je viens d'essayer.

j'ai juste modifié la ligne à ajouter dans Rafraichir :

SI :msFenetreNom <> FenEnCours() Alors RETOUR
au lieu de
SI :msFenetreNom <> FenEnExecution() Alors RETOUR

Encore merci et chapeau pour votre site et votre connaissance de l'agl.

Josi

Contribution le : 09/09/2004 15:57
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2