WDForge - Forum

Le forum des développeurs professionnels WinDev ®

service Windev pour imprimer directement un Etat

Discussion sur WinDev®

Message non lupar taghzirt » Lun 16 Jan 2017 17:47

SVP je crée un service Windev pour imprimer directement un Etat basé sur une requête, le problème est que la requête s’exécute bien mais sans aucune impression. Aidez moi. Merci infiniment.
Je signale qu en mode Déboguer le service fonctionne correctement.
taghzirt
Stagiaire WDF
 
Messages: 3
Enregistré le: Lun 16 Jan 2017 17:41

Message non lupar R&B » Mar 17 Jan 2017 11:08

Bonjour

Un service est une application qui tourne sur une machine sans IHM.
Une impression est une tâche d'IHM qui délivre un document sur une imprimante.

Qu'un service réalise des impression n'est pas impossible mais fonctionnellement, qui va aller récupérer les documents ? Et qui peut agir s'il y a un problème dans la création de l'impression (erreur de connexion au périphérique, ...) ?

Je vous invite à créer une configuration de votre projet de service qui le compile en mode application.
Dans cette configuration, prévoyez une fenêtre qui permet de réaliser chaque tâche exécutée par le service.
il vous sera alors possible de tester le comportement du service et de le debugguer en pas à pas
Ce n'est qu'une fois que votre impression en mode IHM fonctionnera que celle du service pourra fonctionner, il suffira alors de produire l'exécutable selon cette configuration.
R&B
Administrateur WDForge
 
Messages: 31
Enregistré le: Jeu 5 Mar 2015 23:21

Message non lupar taghzirt » Mer 18 Jan 2017 00:42

R&B a écrit:Bonjour

Un service est une application qui tourne sur une machine sans IHM.
Une impression est une tâche d'IHM qui délivre un document sur une imprimante.

Qu'un service réalise des impression n'est pas impossible mais fonctionnellement, qui va aller récupérer les documents ? Et qui peut agir s'il y a un problème dans la création de l'impression (erreur de connexion au périphérique, ...) ?

Je vous invite à créer une configuration de votre projet de service qui le compile en mode application.
Dans cette configuration, prévoyez une fenêtre qui permet de réaliser chaque tâche exécutée par le service.
il vous sera alors possible de tester le comportement du service et de le debugguer en pas à pas
Ce n'est qu'une fois que votre impression en mode IHM fonctionnera que celle du service pourra fonctionner, il suffira alors de produire l'exécutable selon cette configuration.


Bonjour R&B et merci pour votre intervention.
Comme j'ai signalé dans le premier post, le service tourne bien en mode debuggue, de même en tant qu' application, mais lorsque je créé l’exécutable rien ne se passe.
taghzirt
Stagiaire WDF
 
Messages: 3
Enregistré le: Lun 16 Jan 2017 17:41

Message non lupar R&B » Jeu 19 Jan 2017 08:30

Bonjour,

Veillez à bien déclarer/installer votre service. Pour vos tests, ajoutez lui la création d'un fichier texte horodaté à chaque exécution de la boucle par exemple. Si aucun fichier n'est créé, le service est inactif et le problème est ailleurs.

Je vous invite à bien évaluer les valeurs de retour de TOUTES les fonctions de votre service et d'envoyer les erreur dans un journal d'erreur (texte ou celui de windows) afin de détecter les erreurs.

Je vous invite enfin à rediriger aussi les erreurs d'exceptions vers un fichier texte et à analyser ce dernier. cf Gestion des erreurs de programmation et Mécanisme des exceptions générales.

Faites nous passer une copie du code en question (balise "code" dans les option de mise en page de votre message).

Ensuite il est nécessaire de compiler avec une version officielle de l'AGL pour que vos exécutables se comportent normalement.
R&B
Administrateur WDForge
 
Messages: 31
Enregistré le: Jeu 5 Mar 2015 23:21

Message non lupar taghzirt » Jeu 19 Jan 2017 18:42

Merci encore une fois R&B.
Voici l'unique procédure du service exécutée dans le bloc (appelé en boucle):
Code: Tout sélectionner
PROCEDURE pG_imprime()
HExécuteRequête(REQ_MImprime)
SI HLitPremier(REQ_MImprime) ALORS
TANTQUE HTrouve(REQ_MImprime)
iInitRequêteEtat(ETAT_ticketM,REQ_MImprime.IDcommandes)
iAperçu(iImprimante)
iFenêtreAbandon(Faux)
iImprimeEtat(ETAT_ticketM)         
SI HLitRecherchePremier(commandes,IDcommandes,REQ_MImprime.IDcommandes) ALORS
commandes.imprime=0
HModifie(commandes)
FIN
HLitSuivant(REQ_MImprime)
FIN         
FIN

d'ailleurs le code imprime correctement dans un fichier pdf avec la fonction iDestination (...).
taghzirt
Stagiaire WDF
 
Messages: 3
Enregistré le: Lun 16 Jan 2017 17:41

Message non lupar R&B » Ven 20 Jan 2017 18:42

Bonjour

Il faut supprimer le iApercu et iFenêtreAbandon qui n'ont rien a faire dans un service vu qu'il n'y a personne pour fermer l'aperçu.
Cela provoque une attente d'une action utilisateur qui n'arrivera jamais....
R&B
Administrateur WDForge
 
Messages: 31
Enregistré le: Jeu 5 Mar 2015 23:21


Retourner vers WinDev

cron