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

Composants VCL Delphi Discussion :

Gestion d'un tiroir caisse


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut Gestion d'un tiroir caisse

    Bonjour à tous.

    J'espère être sur le bon forum.

    J'utilise un imprimante EPSON TM-T88IV connectée à un port USB.

    L'impression des tickets de caisse se passe parfaitement. A la fin du ticket, le tiroir caisse s'ouvre. De ce côté tout va bien.

    Lorsque je veux SEULEMENT OUVRIR le tiroir caisse, je n'ai trouvé comme solution que le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    begin
       with Printer do
        begin
          BeginDoc;
          EndDoc;
        end;   
    end;
    Le tiroir s'ouvre bien, mais l'imprimante sort un centimétre de papier blanc qu'elle coupe aussitôt.

    D'autre part, lorsque je sorts un récapitulatif de caisse, le tiroir s'ouvre AUSSI alors que je n'ai rien demandé. (Normal : c'est mis dans les options de l'imprimante, mais peut-on les changer par programme ?)

    Y a-t-il une solution pour éviter le bout de papier ? A l'extrème le deuxième souis est moins important.

    L'un des honorables membres a-t-il déjà eu ce cas ?

    Merci d'avance
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  2. #2
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 604
    Points
    604
    Par défaut
    normalement tu doit avoir la commande pour ouvrir le tiroir caisse
    regarde la documentation de ton imprimante de plus prés

    bonne chance

  3. #3
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Envoyé par ISSAM :
    regarde la documentation de ton imprimante de plus prés
    Et bien non, j'ai beau lire la doc en francais, en anglais ou en allemand , il n'y a rien.

    Sous DOS, j'utilisais une série de codesEsc du style Chr(27)+'@'+chr(12)+......(je n'ai pas la séquence complète sous la main) : je l'ai essayé mais cela ne fonctionne pas avec un port USB (avec un port COM d'ailleurs non plus : j'ai un soucis avec une autre imprimante non USB)

    A moins (ce qui est très possible) que je ne sache pas comment faire passer ces séquences ecape par un orde CANVAS
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Citation Envoyé par JP.NUAGE Voir le message
    A moins (ce qui est très possible) que je ne sache pas comment faire passer ces séquences ecape par un orde CANVAS
    Tu peux essayer de passer par l'API ExtEscape ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    result:=ExtEscape(printer.Handle,PASSTHROUGH ....
    mais j'imagine que c'est comme ça que tu avais procédé?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Envoyé par Eric BOISVERT :
    mais j'imagine que c'est comme ça que tu avais procédé?
    Alors là PAS DU TOUT. Même pire : à ma grande honte je ne vois pas ce que fait ce que tu me proposes et ce qui m'embête le plus, ce sont les ... sur lequels je ne sais vraiment pas quoi mettre, ni a quoi correspond PASSTHROUGH.

    Bon, je vais chercher ce soir !
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    mon sdk dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int ExtEscape(
     
        HDC hdc,	// handle to device context 
        int nEscape,	// escape function 
        int cbInput,	// number of bytes in input structure 
        LPCSTR lpszInData,	// pointer to input structure 
        int cbOutput,	// number of bytes in output structure 
        LPSTR lpszOutData 	// pointer to output structure 
       );
    F1 sur Escape (et non ExtEscape) me donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PASSTHROUGH	Allows the application to send data directly to a printer.
    et dans windows.pas j'ai ceci comme définition...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function ExtEscape(DC: HDC; p2, p3: Integer;
      const p4: LPCSTR; p5: Integer; p6: LPSTR): Integer; stdcall;
    donc ça devrait donner quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    const
      //style Chr(27)+'@'+chr(12)+.....
      codesEsc=chr(27)+'@'+chr(12);
     
    //Exemple de call
    result:=ExtEscape(printer.handle,PASSTHROUGH,length(codesEsc ),codesEsc,0,nil)
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  7. #7
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    A Eric BoisVert

    Désolé, mais comme je travaille en CLX, je n'ai pas WINDOWS.pas et je ne peux pas trouver ExtEscape. J'ai essayé ce que tu m'as envoyé, mais j'ai un message disant que ExtEscape est inconnu.
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    si ça peut aider, voici comment ExtEscape est définie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    const
      PASSTHROUGH = 19;
     
    //ExtEscape
    Function ExtEscape(DC: HDC; p2, p3: Integer;
                         const p4: LPCSTR; p5: Integer;
                         p6: LPSTR): Integer; stdcall External 'gdi32.dll';
    cela sous entend que tu roule sur windows...

    si tu travail en CLX... (désolé, je connais pas )
    j'imagine que tu ne peux pas faire appèle à gdi32.dll?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  9. #9
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Envoyé par Eric BoisVert
    j'imagine que tu ne peux pas faire appèle à gdi32.dll?
    Si heureusement, sinon Adieux Firebird et donc plus d'appli (mais cela tu ne pouvais pas le deviner et ce n'était écrit sur mon avatar)

    Je vais essayé ce que tu m'as envoyé.

    De toute façon merci pour le temps que tu me consacres
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  10. #10
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    C'est déjà un bon début : l'imprimante n'aance plus quand je lance la commande ExtEscape. Je teste le tiroir demain. Pour l'instant je mets cette discussion en attente.
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

Discussions similaires

  1. Tiroir caisse
    Par geoge dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/09/2008, 07h24
  2. Ouvrir un tiroir-caisse
    Par cheveche dans le forum VBA Access
    Réponses: 0
    Dernier message: 01/03/2008, 07h14
  3. Ouvrir le tiroir caisse
    Par 2nis dans le forum Access
    Réponses: 5
    Dernier message: 24/08/2007, 09h57
  4. Quel langage pour une gestion des stocks-client-caisse ?
    Par plex dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 07/04/2007, 18h56
  5. ouverture d'un tiroir-caisse
    Par 2nis dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/06/2006, 17h48

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