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 :

Choix des bacs pour imprimante [WD22]


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 11
    Points : 17
    Points
    17
    Par défaut Choix des bacs pour imprimante
    Salut !

    Je dois gérer les bacs d'une imprimante afin d'imprimer 2 états. L'un doit s'imprimer via un bac, et l'autre doit s'imprimer via l'autre bac.
    Je dois aussi vérifier la taille des feuilles du bac afin d'imprimer avec le bon format.

    J'ai fais ce code, la gestion de bac ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    // -------------------------------------------- IMPRIMANTE -------------------------------------------- //
     
     
     
    A4 est une chaîne
     
    A5 est une chaîne
     
    A4 = iFormatPapier_A4
     
    A5 = iFormatPapier_A5
     
     
     
    iParamètre(iAlimentationPapier, iAlimentationPapier_Haut) //Configures le bac qui intéresse
     
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur.
     
    SI iParamètre(iFormatPapier) = A4 ALORS
     
           //iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A4)
     
    SINON SI iParamètre(iFormatPapier) = A5 ALORS
     
           //iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A5)
     
    SINON
     
           Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")
     
    FIN
     
     
     
    iParamètre(iAlimentationPapier, iAlimentationPapier_Milieu) //Configures le bac qui intéresse
     
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur. Imprime le nombre de page cohérent à la précédente saisie
     
    SI iParamètre(iFormatPapier) = A4 ALORS
     
           //iImprimeEtat(ETAT_Table_Patient_circulation,iParamètre(iNbCopie, SAI_CopieFicheCirculation), iFormatPapier_A4)
     
    SINON SI iParamètre(iFormatPapier) = A5 ALORS
     
           //iImprimeEtat(ETAT_Table_Patient_circulation,iParamètre(iNbCopie, SAI_CopieFicheCirculation), iFormatPapier_A5)
     
    SINON
     
           Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")
     
    FIN

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Regarde cette discussion : ici

    Pour ton code, plutôt que de faire des SI SINON en cascade, SELON est ton ami...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 11
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Regarde cette discussion : ici

    Pour ton code, plutôt que de faire des SI SINON en cascade, SELON est ton ami...

    Merci de ta réponse. J'ai donc bien enlever les SI SINON. Cependant l'url sur lequel tu me renvoie ne répond que partiellement à mon problème.
    Dans le code ci-dessous, j'ai tenté d'imprimer sur la bac MILIEU (qui contient des feuilles A3). Un message d'erreur aurait donc dû s'afficher cependant la feuille s'est imprimé en A4 sans m'envoyer d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
    // -------------------------------------------- IMPRIMANTE -------------------------------------------- //
     
     
     
    A4 est une chaîne
     
    A5 est une chaîne
     
    A4 = iFormatPapier_A4
     
    A5 = iFormatPapier_A3
     
     
     
    iConfigureEtat(ETAT_Table_Patient)
     
    iParamètre(iAlimentationPapier, iAlimentationPapier_Haut)  //Configures le bac qui intéresse (feuille A4)
     
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur.
     
    SELON iParamètre(iFormatPapier)
     
          CAS A4 : iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A4)
     
           CAS A5 : iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A5)
     
           AUTRE CAS : Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")            
     
    FIN
     
     
     
     
     
    iParamètre(iAlimentationPapier, iAlimentationPapier_Milieu) //Configures le bac qui intéresse (feuille A5)
     
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur. Imprime le nombre de page cohérent à la précédente saisie
     
    SELON iParamètre(iFormatPapier)
     
           CAS A4 : iImprimeEtat(ETAT_Table_Patient_circulation,iParamètre(iNbCopie, SAI_CopieFicheCirculation), iFormatPapier_A4)
     
           CAS A5 : iImprimeEtat(ETAT_Table_Patient_circulation,iParamètre(iNbCopie, SAI_CopieFicheCirculation), iFormatPapier_A5)
     
           AUTRE CAS : Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")        
     
    FIN

    Je penses donc que ma gestion de la taille des feuilles n'est pas fonctionnel et/ou le choix des bacs

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je ne me rappelle plus trop (genre j'ai fait ça il y a plus de 15 ans) mais il me semble qu'il y a une astuce qui est liée au nom des bacs réels qui sont affichés par le pilote. Pas ceux génériques proposés par Windev.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 372
    Points : 627
    Points
    627
    Billets dans le blog
    1
    Par défaut
    Regarde cet exemple
    https://depot.pcsoft.fr/resource.awp...ons-imprimante
    Ça gère aussi les bacs , on ne sait jamais
    Attention il n'est pas précisé en quel version cela à été fait.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 11
    Points : 17
    Points
    17
    Par défaut
    J’ai récupérer ce code afin d’avoir le numéro des ports :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    kAPINumBac  est un tableau de 64 entiers
     
    kAPINomBac  est un tableau de 64 chaînes ASCIIZ sur 24
     
    kNomImpr       est une chaîne
     
    kNomPort        est une chaîne
     
    L    est un entier
     
     
     
    kNomImpr = iInfoImprimante(Vrai, iNomImprimante)
     
    kNomPort = iInfoImprimante(Faux,iNomPort)
     
     
     
    API("WINSPOOL.DRV","DeviceCapabilitiesA",&kNomImpr,&kNomPort,6,&kAPINumBac,0)
     
    API("WINSPOOL.DRV","DeviceCapabilitiesA",&kNomImpr,&kNomPort,12,&kAPINomBac,0)
     
     
     
    POUR L = 1 A 64
     
           SI kAPINumBac[L] = 0 ALORS SORTIR
     
           Trace(SansEspace(kAPINomBac[L]),kAPINumBac[L])
     
    FIN

    Et j’obtiens :



    Auto 16842759

    Magasin 1 16974082

    Magasin 2 17105156

    Magasin 3 163144

    J’ai donc adapter le code suite au résultat mais rien ne change, j’ai mal fais un truc ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    // -------------------------------------------- IMPRIMANTE -------------------------------------------- //
     
    A4 est une chaîne
     
    A5 est une chaîne
     
    A4 = iFormatPapier_A4
     
    A5 = iFormatPapier_A3
     
    iParamètre(iAlimentationPapier = 263144)  //Configures le bac qui intéresse
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur.
     
    SELON iParamètre(iFormatPapier)
     
           CAS A4 : iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A4)
     
           CAS A5 : iImprimeEtat(ETAT_Table_Patient, iFormatPapier_A5)
     
           AUTRE CAS : Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")            
     
    FIN
     
     
     
     
     
    iParamètre(iAlimentationPapier = 263144) //Configures le bac qui intéresse
     
     
     
    // Vérifie le format du papier, si c'est ni A4 ou A5 alors message d'erreur. Imprime le nombre de page cohérent à la précédente saisie
     
    SELON iParamètre(iFormatPapier)
     
           CAS A4 : iImprimeEtat(ETAT_Table_Patient_circulation,iParamètre(iNbCopie, SAI_CopieFicheCirculation), iFormatPapier_A4)
     
           AUTRE CAS : Info("Impossible d'imprimer, le format ne respecte pas les normes de l'imprimante (A4 ou A5)")        
     
    FIN

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 52
    Points : 105
    Points
    105
    Par défaut
    Bonjour,
    Il y a aussi cette page (Imprimante Logique) mais c'est pas tout récent (2003) :
    https://forum.pcsoft.fr/es-ES/pcsoft...s-387/read.awp
    Au cas où !
    Cdlt

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    J'ai une question multiple : ce dév, c'est pour tester le fonctionnement des bacs pour le fun ? Pour un dév en local ? Pour déployer chez des clients ?

    Je pense que le souci vient (au moins partiellement) de la configuration du pilote et/ou de l'imprimante. Si tu envoie du A5 à l'imprimante et qu'elle le sort sur un autre papier, c'est qu'elle n'interdit pas cette possibilité.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 11
    Points : 17
    Points
    17
    Par défaut
    Résolu

    Afin de choisir le bon bac, j'ai mis avant mon impression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    iParamètre(iAlimentationPapier, iAlimentationPapier_Cassette)
    pour le choix de bac d'impression manuel.

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

Discussions similaires

  1. Choix des matrices pour un terrain en 2D ?
    Par Pablodetaix dans le forum OpenGL
    Réponses: 2
    Dernier message: 27/10/2009, 16h41
  2. [Projet BI] Choix des outils pour un projet BI
    Par Medmidou dans le forum Approche théorique du décisionnel
    Réponses: 2
    Dernier message: 07/04/2009, 19h06
  3. Choix du bac d'imprimante
    Par iclic dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 18/02/2008, 12h19
  4. Choix des champs pour une importation XLS
    Par menguygw dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/06/2007, 13h09
  5. Mysql : choix des types pour les champs entre :
    Par Thierry8 dans le forum Administration
    Réponses: 3
    Dernier message: 14/06/2006, 08h22

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