Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WDxx] Création multiple de pleins de PDF

6 réponses
Avatar
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 ?

6 réponses

Avatar
test
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
;-)
Avatar
patrice
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 ?
Avatar
Gilles
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.
Avatar
free
"Gilles" wrote in message
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
" ???
Avatar
Daniel
Le 08/11/2010 14:44, free a écrit :
"Gilles" wrote in message
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
;-)
Avatar
free
"Daniel" wrote in message
news:4cd80565$0$21917$

iFenêtreAbandon(faux)




merci beaucoup, tout fonctionne maintenant