IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

[A-03] Imprimer aperçu état depuis formulaire


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 40
    Points
    40
    Par défaut [A-03] Imprimer aperçu état depuis formulaire
    Salut le forum

    Je développe actuellement une appli sous access 2003 qui se veut sans menus ni boutons en dehors de ceux des formulaires...
    Pour la consultation, j'ai un bouton sur mon formulaire qui ouvre l'état en mode aperçu ainsi qu'un petit formulaire "toolbox" avec 3 boutons : export pdf, impression et fermeture de l'état

    Voici le code type du bouton du form de consultation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub ouvriretat_click()
    docmd.openreport "rpt_rapport"
    docmd.openform "frm_toolbox"
    La dedans je passe un argument (openargs) avec le nom du rapport...

    Dans le form de la toolbox, j'ai une simple commande du genre

    Mon problème est que ça ne marche pas à tous les coups, et parfois en cliquant sur le bouton impression il imprime... la toolbox !

    Ce que je cherche à savoir, c'est comment donner le focus à l'état entre le clic sur le bouton et le lancement de l'impression.

    visiblement, pas d'arguments pour la méthode printout, pas de setfocus possible pour les états... après moult recherches, je n'ai rien trouvé. il doit bien y avoir une ruse...comment puis-je faire ?

    Merci pour votre aide et à +

    ibill

  2. #2
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Points : 73
    Points
    73
    Par défaut
    Moi aussi j'imprime mon état à partir d'un formulaire et voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     DoCmd.OpenReport "État_DétailFacture", acViewPreview
                DoCmd.PrintOut acPages, , , , 1
                Report_État_DétailFacture.Étiquette158.Caption = ""
                DoCmd.Close acReport, "État_DétailFacture"
    La trosième ligne avec le caption, c'est parce qu'il y a certaine condition à sovoir si C,est un original (imprimé une suele fois) ou avec des duplicata et à savoir si c'est une facture(+) ou un crédit (-)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 40
    Points
    40
    Par défaut
    Merci
    Mais ça ne solutionne pas tout... dans mon cas, l'état est ouvert en preview avant le formulaire "toolbox" qui comporte le bouton impression, ce afin de permettre de visualiser l'état et de décider ensuite s'il faut l'imprimer (avec le bouton de la toolbox, qui remplace en fait le "fermer" dans la barre des menus qui apparait quand on est en mode aperçu). du coup le PrintOut agit sur l'objet qui a le focus.Parfois le formulaire, parfois l'état...

    J'aurai bien une solution moyennement élégante en réutilisant ton code, c'est de fermer l'état qui est en preview, puis de le réouvrir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Docmd.close acReport,État_DétailFacture",acSaveNo
     DoCmd.OpenReport "État_DétailFacture", acViewPreview
                DoCmd.PrintOut acPages, , , , 1
                Report_État_DétailFacture.Étiquette158.Caption = ""
    ''et j'enleverai cette dernière ligne pour pouvoir fermer par la toolbox            
    'DoCmd.Close acReport, "État_DétailFacture"
    Et encore que c'est galère car je perd mes "openArgs" et mes clauses Where à l'ouverture...

    en fait il faudrait voir si il n'y a pas une commande de menu, mais il y a toujours ce problème de focus...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 40
    Points
    40
    Par défaut ^UP^ et en attendant,solution provisoire
    Salut...

    Vu que je n'arrive toujours pas à faire une procédure légère, j'ai du ruser avec l'artillerie lourde, à coup de variables publiques et d'openargs...

    Quand j'ouvre mon état en mode preview (et ma toolbox qui permet d'imprimer, de PDFer ou de fermer l'état, je garde dans une variable la clause WHERE (le filtre pour ouvrir l'état).
    Quand je choisi de mettre en PDF, l'état est réouvert en acViewNormal, avec switch vers l'imprimante "ADOBE PDF", et surtout avec ma clause WHERE pour le filtre , le nom de l'état étant récupéré dans l'argument d'ouverture de la Toolbox. Je passe aussi, toujours par une variable publique, la chaîne servant à renommer le PDF crée...

    C'est tordu, c'est lourd, mais ça marche...

    mais si quelqu'un a quelquechose de plus simple (et plus rapide :/ ) je reste preneur !

    Donc pas de tag résolu pour le moment...

    Merci pour vos réponses précédentes et j'espère à venir

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/03/2018, 19h10
  2. [AC-2010] Ouverture d'état depuis formulaire et table vérouillée
    Par Tevsox dans le forum IHM
    Réponses: 9
    Dernier message: 02/08/2012, 14h38
  3. [AC-2007] [+ C++] Imprimer un état depuis un soft MFC
    Par Thauglor dans le forum Access
    Réponses: 5
    Dernier message: 15/09/2011, 15h04
  4. Réponses: 2
    Dernier message: 19/06/2007, 12h05
  5. Imprimer un état depuis un formulaire
    Par Alex063 dans le forum Access
    Réponses: 21
    Dernier message: 03/02/2006, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo