PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → [WINDEV5.5B] Wdetats
[WINDEV5.5B] Wdetats
Started by JPP, Apr., 30 2003 5:47 PM - 7 replies
Posted on April, 30 2003 - 5:47 PM
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
Posted on April, 30 2003 - 6:15 PM
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.
Posted on May, 02 2003 - 3:21 PM
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

Posted on May, 05 2003 - 11:10 AM
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
Posted on May, 05 2003 - 11:28 AM
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
Posted on June, 28 2020 - 9:52 AM
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.
Registered member
157 messages
Popularité : +0 (2 votes)
Posted on June, 29 2020 - 7:06 PM
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 ?
Posted on June, 30 2020 - 10:48 AM
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.