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

WinDev Discussion :

Etat - désactiver la fenêtre d'état d'impression [WD19]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut Etat - désactiver la fenêtre d'état d'impression
    Bonjour,

    Avant de vous ennuyer, j'ai longuement parcouru aide en ligne et ce forum - fort précieux par ailleurs.

    Je précise : je ne rencontre pas de bugs, ni de difficultés. J'arrive, in fine, au résultat escompté.
    Je souhaite améliorer l'expérience utilisateur - dont je suis.

    Contexte :

    Mon application doit créer une flopée de fichier PDF, lesquels ont un contenu différent (sinon ce ne serait pas amusant) et lesquels possèdent en conséquence un nom différent.
    Ces fichiers PDF sont basés sur un état alimenté par une requête.

    Pour que vous visualisiez le cas de figure : un société facture tous les mois des abonnements.
    Tous les mois cette société envoie une partie des factures par e-mail, et une partie par la poste.
    J'ai donc créé un état comprenant tous les courriers postaux que je balance sur l'imprimante.
    Et, sur base de ce même état, je crée autant de fichier PDf que de destinataires de courrier électronique.
    Exemple :
    J'ai 258 clients
    54 clients acceptent de recevoir la facture par email
    204 veulent recevoir la facture par courrier postal.
    Je procède en deux étapes :
    1/ je balance, après tri de la requête, les 204 états courrier postal sur l'imprimante ; (en somme, un fichier PDF de 204 pages)
    2/ je crée les 54 factures restantes en autant de fichier PDF qui seront annexés aux e-mails.

    Je précise que je ne rencontre aucune difficulté pour créer les PDF individualisés et pour les enregistrer, chacun, sous un nom différent.
    Tout cela ronronne.

    Par contre, l'expérience utilisateur est catastrophique : pour chaque fichier PDF créé j'ai une fenêtre d'impression qui est affichée, et surtout, l'utilisateur ne sait pas où il en est dans le processus de création des fichiers PDF.
    Pénible quand on a plusieurs dizaines, voire plusieurs centaines de fichiers créés.

    Je souhaiterais donc pouvoir prendre la main sur cette succession de fenêtres et pouvoir afficher un message (ou une barre de progression) du type : "fichier x sur y créé"

    Est-ce moi qui ne domine pas suffisamment les fonctionnalités, ou est-ce une impossibilité propre à l'EDI ?

    Si cette fonctionnalité n'est pas initialement disponible, l'un d'entre vous a-t-il déjà rencontré cette contrainte et trouvé une alternative ?

    D'avance merci.

    PJ : je ne joins pas de code, car mon code fonctionne et la question est générique.
    A toutes fins utiles : j'utilise iDestination et iImprimeEtat dans une boucle TANTQUE Htrouve
    C'est iImprimeEtat qui génère les fenêtres d'état d'impression ("impression page 1 de 1")

    J'espère avoir été suffisamment clair...

  2. #2
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Bonjour

    L'idée, si j'ai bien compris est de proposer une génération discrète des PDF avec une jauge de parcours.
    Je vous enjoins à :
    - modifier les descriptions de vos états de manière à ne pas avoir d'information affichée lors du parcours de leurs sources : description de l'état > IHM > "Comportement si la source de données et vide" et "Message d'attente lors de la sélection et du tri des enregistrements"
    - la génération de vos état en PDF à nécessité une redirection de la sortie de l'impression via iDestination. L'affichage du résultat peut être désactivé en utilisant iAperçu(Faux). C'est drôle que la syntaxe fonctionne alors que la documentation ne la mentionne plus.
    - Pour la jauge je vous invite à utiliser soit une champ soit une fenêtre soeur dédiée avec un message. Affectez la borne maximum de la jauge au champ jauge et ensuite incrémentez directement la valeur du champ à chaque occurrence de progression. Protégez votre traitement avec un sablier() et voila.

    Cela devrait vous dépanner.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    Merci de vous être penché sur mon problème.

    Malheureusement cela ne fonctionne pas (ou peut-être que je place mal le iAperçu(Faux) )

    Voici le code, à toutes fins utiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    HLitRecherchePremier(Copaire, IDTypeEnvoi, nParamTypeEnvoi)
    // Parcours des enregistrements
    TANTQUE HTrouve()
        nParamIdCopaire=Copaire.IDCopaire
        //on lance l'impression sur base des sélections opérées par les requêtes
        HExécuteRequête(REQ_Appels,hRequêteDéfaut,nParamTypeEnvoi,nParamIdCopaire)
        NomFichier est une chaîne = ComplèteRep(sRépertoire) + Copaire.Nom + "_3T2015.PDF"
        iDestination(iPDFGénérique, NomFichier)
        iImprimeEtat(ETAT_Test)
     
        HLitSuivant(Copaire, IDTypeEnvoi)
    FIN
    Vous verrez que j'utilise iDestination et iImprimeEtat.

    Toujours est-il que si je place une iAperçu(faux) cela a pour conséquence d'imprimer via l'imprimante par défaut du PC, et de plus, pour chaque page imprimée j'ai toujours cette fenêtre furtive qui apparaît (impression page 1 en cours) pour chaque état créé.

  4. #4
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Il semble que la bonne syntaxe soit un simple iApercu() sans parametre si j'en suis l'éditeur de code qui permet la sélection du paramêtre "aucun"
    Ensuite je vous invite à découvrire la fonction au niveau des remarques qui indique :
    La fonction iAperçu doit être la première fonction d'impression appelée. Elle doit donc figurer avant les fonctions iImprime, iCréePolice, etc. Mais la fonction iAperçu doit être appelée après les fonctions iConfigure ou iParamètre.

    Remarque : La fonction iDestination doit être appelée avant l'exécution d'un état (avec iImprimeEtat) pour choisir la destination de l'exécution de l'état.
    En outre, je ne comprends la votre lancement de requête avant l'état quand ce dernier peut l'intégrer (Etat sur requête) et qu'elle peut être paramétrée via InitRequeteEtat() mais ce n'est pas le sujet.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    Toutes les commandes iAperçu sont relatives à la gestion de la fenêtre d'aperçu avant impression.
    Or, ce n'est pas cette fenêtre qui me gêne : en utilisant iDestination et iImprimeEtat, je passe outre l'aperçu avant impression.

    La fenêtre gênante est la fenêtre qui est lancée lors de l'impression, que cette impression soit lancée depuis l'aperçu avant impression ou lancée complètement par programmation.
    Cette fenêtre gênante est la fenêtre modale qui permet notamment d'annuler l'impression lancée. Cette fenêtre apparaît dès que Windev imprime, quelle que soit l'origine de l'impression (aperçu avant impression ou programmation)

    En utilisant iAperçu() cela ouvre la fenêtre d'aperçu avant impression avec tous les paramètres par défaut.
    En utilisant iAperçu(faux) cela envoi l'impression directement sur l'imprimante par défaut.
    Bref, je n'ai pas besoin et ne rencontre pas de problème avec iAperçu.

    (Concernant ma requête, elle est placée à cet endroit du code car elle me sert pour d'autres traitements. Ce choix n'est peut-être pas le plus vertueux. Mais ce n'est pas non plus l'objet de mon post.)

    Merci quand même de tenter de résoudre ce problème. (qui relève plus de l'inconfort, reconnaissons le)

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Ce ne serait pas tout simplement la fonction suivante qu'il vous faudrait :

    iFenêtreAbandon(Faux)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut Mille mercis
    C'est exactement ça que je souhaitais. Un tout grand merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2014, 17h22
  2. Réponses: 0
    Dernier message: 28/06/2014, 22h27
  3. Réponses: 2
    Dernier message: 23/03/2006, 11h53
  4. Problème d'état d'impression
    Par ingelman dans le forum WinDev
    Réponses: 4
    Dernier message: 16/01/2006, 14h05
  5. problème état formulaire impression de données
    Par jordinette dans le forum IHM
    Réponses: 2
    Dernier message: 23/11/2005, 14h33

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