SwitchView -> Print -> SwitchView - InfoPath Dev
in

InfoPath Dev

SwitchView -> Print -> SwitchView

Last post 03-30-2007 07:43 AM by Rokp. 8 replies.
Page 1 of 1 (9 items)
Sort Posts: Previous Next
  • 03-26-2007 08:44 AM

    • Rokp
    • Top 500 Contributor
      Male
    • Joined on 03-06-2006
    • France
    • Posts 36

    SwitchView -> Print -> SwitchView

    Bonjour,

    Je tente d'ajouter un code JScript à un bouton, permettant d'imprimer une autre vue et de revenir à la vue initiale :

    var NomVue;
    NomVue = XDocument.View.Name;

    XDocument.View.SwitchView("Facture");
    XDocument.PrintOut();
    XDocument.View.SwitchView(NomVue);


    Mais IP me gratifie d'une erreur :
    InfoPath ne peut pas exécuter d'appels de modèle objet lié à la vue. La vue n'est pas prête.

    Apparemment, il ne veut pas exécuter 2 SwitchView de suite.
    Comment faire alors ?
    InfoPath 2003 SP2
  • 03-26-2007 03:17 PM In reply to

    Re: SwitchView -> Print -> SwitchView

    Salut,

    As-ce que je vois tu utilise printout.
    Je sais pas si c'est applicable à ton scénario, mais pourquoi ne pas simplement en mode design, définir dans les propriétés (de ta vue) la vue à imprimer?

    Sinon va falloir jouer avec OnSwitchView ou OnContextChange pour changer de vue car comme tu l'as dit la vue ne peut être changer qu'une fois par événement.

    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 03-27-2007 06:20 AM In reply to

    • Rokp
    • Top 500 Contributor
      Male
    • Joined on 03-06-2006
    • France
    • Posts 36

    Re: SwitchView -> Print -> SwitchView

    Eh Eh, mais j'ai un très gros formulaire moi. A la limite du gérable en fait.

    Bon j'ai plusieurs vues :
    Accueil
    Formulaire ceci
    Formulaire cela
    Formulaire machin
    Formulaire bidule
    Devis
    Devis (Imprimable)
    Facture chose
    Facture chose (Imprimable)
    Facture truc
    Facture truc (Imprimable)


    En gros-gros (en fait, il y a 21 vues).
    A gauche de chaque feuille, j'ai une barre de bouton pointants vers les feuille concernées.
    Or, pour chaque feuille que je veux imprimer, j'ai 2 versions.
    Une pour l'utilisateur avec les boutons et certains contrôles modifiables et une autre bien cadrée pour l'impression.

    C'est déjà lourd mais le client à changé ses méthode de règlement m'obligeant à avoir 2x plus de factures.

    Donc je vais créer une vue permettant d'ajouter toutes les infos utiles et des boutons pour commander l'impression des vues comme les factures, devis...

    La solution la plus fastoche est d'ajouter UN bouton (non imprimé) 'Retour' à la vue imprimable.


    Question : Y a-t-il une commande de type OnPrintView ?
    :E
    InfoPath 2003 SP2
  • 03-27-2007 02:56 PM In reply to

    Re: SwitchView -> Print -> SwitchView

    Non. Mais comme je te le disais tu peux-être faire quelquechose avec oncontextChange.

    Si tu essayais de définir une var globale et que après avoir imprimé tu passes ce paramètre à 1 et que dans le oncontextChange tu change sur ton autre vue?

    En Jscript:

    ...
    var NomVue;
    NomVue = XDocument.View.Name;

    XDocument.View.SwitchView("Facture");
    XDocument.PrintOut();
    facture=1;
    ....

    var facture;
    function XDocument::OnContextChange(eventObj)
    {
    if( facture=1)
    {
    XDocument.View.SwitchView("NomVue");
    facture=0;
    }
    }

    Si le OnContextChange ne se déclenche pas il faut que tu redéfinisse un champs de ton formulaire. N'importe lequel mais par la même valeur et aprés avoir défini facture à 1.
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 03-29-2007 07:33 AM In reply to

    • Rokp
    • Top 500 Contributor
      Male
    • Joined on 03-06-2006
    • France
    • Posts 36

    Re: SwitchView -> Print -> SwitchView

    Bon j'ai réfléchi à mon problème.

    Je trouve plus judicieux d'avoir des boutons pour basculer sur les vues imprimables directement puis, libre à chaque utilisateur d'imprimer avec l'imprimante de son choix, le nombre voulu...
    Juste avant de basculer j'enregistre dans une variable le nom de la vue "d'origine".

    Ensuite, sur chaque vues imprimable, je place un bouton RETOUR qui me renvoie vers la vue d'origine.

    Merci toutefois pour l'astuce, ça me servira peut-être plus tard.
    A++
    InfoPath 2003 SP2
  • 03-29-2007 07:35 AM In reply to

    Re: SwitchView -> Print -> SwitchView

    Au faite ca prend combien de temps pour l'ouvrir ton form? 21 vues ca fait pas mal...
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 03-30-2007 02:56 AM In reply to

    • Rokp
    • Top 500 Contributor
      Male
    • Joined on 03-06-2006
    • France
    • Posts 36

    Re: SwitchView -> Print -> SwitchView

    2-3 secondes. Mais je reprend tous mes calculs pour que ce soit plus rapide.
    En fait, ce n'est pas l'ouverture qui est longue mais c'est lorsqu'on a un tableau extensible avec 200 lignes (et plein de contrôles par lignes...).
    InfoPath 2003 SP2
  • 03-30-2007 04:56 AM In reply to

    Re: SwitchView -> Print -> SwitchView

    Je sais pas si tzu l'as déjà lu mais ca si tu le fait ca va vraiment plus vite...

    http://www.infopathdev.com/howto/tutorials/default.aspx?i=b9d84cdcf4b2438b8477a43ecc8ae5ff
    Infopath 2007, Langage: C#2.0 (Modèle Objet 2003)
    merci de lire ceci
  • 03-30-2007 07:43 AM In reply to

    • Rokp
    • Top 500 Contributor
      Male
    • Joined on 03-06-2006
    • France
    • Posts 36

    Re: SwitchView -> Print -> SwitchView

    C'est pas vraiment mon cas.
    J'ai un tableau maitre/détail :
    Maitre, ~3 champs visibles
    Détail, ~20 champs visibles

    Et en plus, il y d'autres champs qui n'apparaissent pas et qui servent pour certains calculs, ce genre de chose.
    C'est surtout ça qui plombe tout.
    Quand tu passe d'une vue à l'autre et qu'il y a 200 lignes, alors ça galère.
    Mais j'ai déjà simplifié dans une nouvelle version.

    De plus, les formulaires avec 200 lignes c'est pas très courant.
    InfoPath 2003 SP2
Page 1 of 1 (9 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.