PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → [WINDEV5.5B] Wdetats
[WINDEV5.5B] Wdetats
Débuté par JPP, 30 avr. 2003 17:47 - 7 réponses
Posté le 30 avril 2003 - 17:47
Lors de l'impression d'un etat facture, si l'état fait plus d'une page,
si on sort de l'aperçu sans imprimer le document à partir de la première
page, çà plante complètement le programme.
Qqun a déjà eu le phénomène ? Si oui, y a-t-il une solution ?
D'avance merci

jpp
jpp09077@netscape.net
Posté le 30 avril 2003 - 18:15
J'ai exactement le même problème, en plus on ne peut pas gérer le cas à lamain,
car il n'y a pas moyen de savoir que l'utilisateur a voulu quitter l'aperçu.
Si quelqu'un sait, j'ai un lcient pas content qui téléphone depuis deux jours.
Posté le 02 mai 2003 - 15:21
J'ai une solution pour toi :

Créer une procédure locale dans l'état :


Procédure VaDernierePage()
///////////////////////////////////////////////////////////
Xcol,Ycol sont des reels
cur est un entier long

MOUSEEVENTF_LEFTDOWN est un entier = 2
MOUSEEVENTF_LEFTUP est un entier = 4

Xcol = 121
Ycol = 42

// recuperation de la postion de depart de la souris
cur = CurseurPos(cpecran)
// positionnement du curseur sur l'entete de colonne 4
CurseurPos(cpecran,Xcol,Ycol)
// envoie du clic
AppelDLL32("user32", "mouse_event", MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
AppelDLL32("user32", "mouse_event", MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

// retour position souris
CurseurPos(cpecran,poidsfaible(cur),poidsfort(cur))

fintimersys(Timersys() )
/////////////////////////////////////////////////////////

______________________________________________________

Dans le Bloc bas de page de l'état, Après impression du BLOC_BAS, code à
rajouter :

Après impression BLOC_BAS
______________________________________________________

si inumpage()=1 alors
Timersys("VaDernierePage",20)
FIN



JPP <jpp09077@netscape.net> wrote:
>Lors de l'impression d'un etat facture, si l'état fait plus d'une page,

si on sort de l'aperçu sans imprimer le document à partir de la première


page, çà plante complètement le programme.
Qqun a déjà eu le phénomène ? Si oui, y a-t-il une solution ?
D'avance merci

jpp
jpp09077@netscape.net

Posté le 05 mai 2003 - 11:10
Une autre solution est d'intercepter l'appui sur la touche Echap, une des
solutions pour fermer l'aperçu, et defermer l'état dans ce cas

Voila le code
//Interception de la touche Echap
Procédure Echap()
VK_ESC est un entier
VK_CTRL est un entier
VK_ALT est un entier

vk_ESC=Appeldll32("user32","GetAsyncKeyState",27)
si vk_ESC=0 alors
renvoyer faux
sinon
renvoyer vrai
FIN

Code aprés lecture
si echap() alors
renvoyer annuler
FIN
Posté le 05 mai 2003 - 11:28
Merci à toi Christophe pour cette solution, c'est un peu de la bidouille,
mais ça marche, il reste à voir si le client sera content.
Encore merci
Posté le 28 juin 2020 - 09:52
Je sais, ça date !
Mais j'ai encore une grosse appli en WD55 et ce bug récurrent fait tache.
J'avais tout essayé, enfin presque...
et par hasard je tombe sur ce vieux post.
Christophe, où que tu soit, chapeau et merci.
Ca marche !
Si tu es toujours actif sur ce forum, j'aurais une petite question.
Membre enregistré
157 messages
Popularité : +0 (2 votes)
Posté le 29 juin 2020 - 19:06
Bonjour,

Bienvenu chez les (anciens) utilisateurs de windev 5.5.

J'ai peut-être une chance extraordinaire mais je ne vois pas où est le bug.

Vous voulez dire que qq soit un état de plus d'une page, si on sort par la touche esc ou bien en cliquant l'icône de sortie, le programme plante ?
Posté le 30 juin 2020 - 10:48
Bonjour,

Non, bien sûr, et heureusement.
Il s'agit d'états de type facture avec ruptures, bas de pages, et complément de corps.