[WDxx] Création multiple de pleins de PDF

Le
free
Bonjour

J'ai un etat qui m'imprime une fiche ou un groupe de fiche (selon le filtre)
Je veut archiver sous forme PDF toutes mes fiches

Chaque fiche doit avoir son propre PDF

Pour générer ca, je n'ai pas de problème :

Pour chaque fiche
iapercu(ipdf, "XXX_"+numeriquechaine(mafiche.ID_MAFICHE)+".PDF")
iimprimeetat()

Par contre ce process est tres tres long (comparé au temps nécessaire pour
générer 1 seul PDF qui contiendrait toutes les fiches)
Peut on améliorer ce temps ? est il possible de changer de PDF depuis l'état
???

Autre problème:
Si on veut annuler l'opération, on a pas le temps.
La fenetre "impression en cours" qui contient le bouton "annuler" arrive
tres fugitivement et faut être tres précis pour cliquer au bon endroit
Existe t'il une solution ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
test
Le #22762901
Le 05/11/2010 17:58, free a écrit :
Bonjour

J'ai un etat qui m'imprime une fiche ou un groupe de fiche (selon le filtre)
Je veut archiver sous forme PDF toutes mes fiches

Chaque fiche doit avoir son propre PDF

Pour générer ca, je n'ai pas de problème :

Pour chaque fiche
iapercu(ipdf, "XXX_"+numeriquechaine(mafiche.ID_MAFICHE)+".PDF")
iimprimeetat(...)

Par contre ce process est tres tres long (comparé au temps nécessaire pour
générer 1 seul PDF qui contiendrait toutes les fiches)
Peut on améliorer ce temps ? est il possible de changer de PDF depuis l'état
???



peut être en passant directement par une imprimante PDF qui va gérer
elle même son spool ?


Autre problème:
Si on veut annuler l'opération, on a pas le temps.
La fenetre "impression en cours" qui contient le bouton "annuler" arrive
tres fugitivement et faut être tres précis pour cliquer au bon endroit
Existe t'il une solution ?



Dans la boucle d'impression mettre une boite de dialogue.


--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
patrice
Le #22764971
Le 05/11/2010 18:14, test a écrit :
Le 05/11/2010 17:58, free a écrit :
Par contre ce process est tres tres long (comparé au temps nécessaire
pour
générer 1 seul PDF qui contiendrait toutes les fiches)
Peut on améliorer ce temps ? est il possible de changer de PDF depuis
l'état
???



peut être en passant directement par une imprimante PDF qui va gérer
elle même son spool ?



Ce qui semble ralentir c'est les appels à chaque iimprimeetat

Autre problème:
Si on veut annuler l'opération, on a pas le temps.
La fenetre "impression en cours" qui contient le bouton "annuler" arrive
tres fugitivement et faut être tres précis pour cliquer au bon endroit
Existe t'il une solution ?



Dans la boucle d'impression mettre une boite de dialogue.




Tu pense à un truc du genre :
ouvrefille(fen_xxxx)
tantque pas fini
iimprimeetat(...)
fin
ferme(fen_xxx)
?
Le programme étant occupé à faire les iimprimeetat, j'ai du mal à voir
comment il va pouvoir traiter l'interface de la fenetre fille.
Tu as déjà essayé cette technique ?
Gilles
Le #22765111
patrice a couché sur son écran :
Le 05/11/2010 18:14, test a écrit :
Le 05/11/2010 17:58, free a écrit :
Par contre ce process est tres tres long (comparé au temps nécessaire
pour
générer 1 seul PDF qui contiendrait toutes les fiches)
Peut on améliorer ce temps ? est il possible de changer de PDF depuis
l'état
???



peut être en passant directement par une imprimante PDF qui va gérer
elle même son spool ?



Ce qui semble ralentir c'est les appels à chaque iimprimeetat

Autre problème:
Si on veut annuler l'opération, on a pas le temps.
La fenetre "impression en cours" qui contient le bouton "annuler" arrive
tres fugitivement et faut être tres précis pour cliquer au bon endroit
Existe t'il une solution ?



Dans la boucle d'impression mettre une boite de dialogue.




Tu pense à un truc du genre :
ouvrefille(fen_xxxx)
tantque pas fini
iimprimeetat(...)
fin
ferme(fen_xxx)
?
Le programme étant occupé à faire les iimprimeetat, j'ai du mal à voir
comment il va pouvoir traiter l'interface de la fenetre fille.
Tu as déjà essayé cette technique ?



Si ca monopolise le thread principal, lance donc l'impression dans un
thread secondaire, et tu fais dans la fenêtre fille un multitache et
une boucle tant que le thread de l'impression existe, et dès que le
thread est fini tu passe au suivant :

en gros tu ouvres ta fenêtre d'impression (tu peux même l'ouvrir en
soeur pour rendre le traitement parralèle)

tu fais une boucle pour la rechercher des éléments à imprimer
et dans cette boucle tu fais une boucle avec un test sur threadetat, et
s'il n'est plus actif, c'est que tu peux lancer l'impression suivante.
free
Le #22772761
"Gilles" news:4cd524f3$0$29629$

Si ca monopolise le thread principal, lance donc l'impression dans un
thread secondaire, et tu fais dans la fenêtre fille un multitache et une
boucle tant que le thread de l'impression existe, et dès que le thread est
fini tu passe au suivant :




Dans l'idée ca fonctionne, mais en pratique c'est guere mieux :
- l'impression de l'état, meme dans un threadsecondaire affiche à chaque
page "Impression en cours, patientez".
Cette affichage "pique" le focus à la fenêtre du thread principal qui à
lancer le thread et gere le bouton annuler.
Du coup, le temps de clicker sur cette fenetre pour l'activer, le thread lui
a déjà fait perdre le focus

Y a t'il une solution pour ne plus afficher la fenetre "impression en cours
" ???
Daniel
Le #22772891
Le 08/11/2010 14:44, free a écrit :
"Gilles" news:4cd524f3$0$29629$

Si ca monopolise le thread principal, lance donc l'impression dans un
thread secondaire, et tu fais dans la fenêtre fille un multitache et une
boucle tant que le thread de l'impression existe, et dès que le thread est
fini tu passe au suivant :




Dans l'idée ca fonctionne, mais en pratique c'est guere mieux :
- l'impression de l'état, meme dans un threadsecondaire affiche à chaque
page "Impression en cours, patientez".
Cette affichage "pique" le focus à la fenêtre du thread principal qui à
lancer le thread et gere le bouton annuler.
Du coup, le temps de clicker sur cette fenetre pour l'activer, le thread lui
a déjà fait perdre le focus

Y a t'il une solution pour ne plus afficher la fenetre "impression en cours
" ???





iFenêtreAbandon(faux)

--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
free
Le #22772981
"Daniel" news:4cd80565$0$21917$

iFenêtreAbandon(faux)




merci beaucoup, tout fonctionne maintenant
Publicité
Poster une réponse
Anonyme