ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Comment montrer la selection d'imprimante et obtenir l'information sur la selection   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

Comment montrer la selection d'imprimante et obtenir l'information sur la selection
# 0000000797
ajouté le 22/05/2011 21:33:31 et modifié le 10/12/2011
consulté 10592 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0


Télécharger le ZIP (4.66 Ko)
Description

Voici une classe qui montre la sélection d'imprimante et obtient toute l'information
sur le choix de l'utilisateur, incluant le nombre de copies etc...

J'ai écrit cette classe pour de besoins. La plupart des autres méthodes avaient tous
leurs limites.

GETPRINTER()
retourne seulement l'imprimante choisie, mais ne permet pas de changer le
nombre de copies ou l'orientation etc...

Le code suivant ne retourne pas le nom de l'imprimante

objPrnDlg= CreateObject( "MSComDlg.CommonDialog.1")

Meme problème avec ceci

sys(1500,'_mfi_sysprint','_mfile')

La classe proposée aussi corrige le fait qu'il y une limite de 32 caractères sur
le nom de l'imprimante, la limite est maintenant 254 caractères. Non seulement elle retourne le nom correct de l'imprimante, mais retourne les valeures suivantes:

  1. Nombre de copies.
  2. Orientation
  3. Selection de pages à imprimer.
  4. Duplex (recto, verso)
  5. Dimension du papier.
  6. Page de début.
  7. Page de fin.
  8. Le nom de la forme à utiliser (Lettre, lettre format légal, enveloppe etc.)

A vous de découvrir les propriétés que vous avez besoin.

P.S. Les methodes sont vides!



Code source :
set classlib to pdialog additive
o=createobject("pdialog.pdialog")
o.showprinter()
?o.printername
?o.defaultsource
?o.nFrom
?o.nTo
?o.duplex
?o.formname
?o.orientation
?o.papercopies
?o.printquality
?o.yresolution
?o.paperscale
?o.bitsperpixel


Commentaires
le 22/05/2011, Jean-Marc TESTUD a écrit :
Bonsoir Mike,

Je viens de lire rapidement ta contribution. Demain, je téléchargerai la piece jointe au bureau mais si j'ai bien compris ce n'est que dans le sens recuperation. Est ce que cela marche dans le sens forcer une imprimante par defaut avec des valeurs pour chacune des propriétés avant d'envoyer un etat ?

A+

le 22/05/2011, Mike Gagnon a écrit :
Non, pas nécessairement, les changements à l'imprimante ne sont pas permanent. Donc il faut récupérer les valeurs et modifier (hacker - je connais pas le terme français) le rapport, pour y introduire les nouvelles valeurs récupérées.
Et une fois que tu connais le nom de l'imprimante tu peut faire:
SET PRINTER TO NAME (o.printername)

le 20/07/2011, vh a écrit :
Bonsoir Mike,
Merci pour cette contribution très utile, surtout sous Windows 7 (sys (1037) n'affiche plus le nom de l'imprimante).
Il me semble que le nombre de copies est mal stocké. A corriger ?
Bonne soirée

le 27/07/2011, Mike Gagnon a écrit :
Vh
C'est corrigé, re-télécharge.

le 02/11/2011, luckyagi a écrit :
Pouvez-vous me donner la méthode qui permet de savoir quel bac est sélectionné ?
Merci.

le 02/11/2011, Mike Gagnon a écrit :
Le methode 4.
le 02/11/2011, luckyagi a écrit :
o.bin alors ?
le 11/12/2011, Mike Gagnon a écrit :
Non

?o.defaultsource


Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3