PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Tiroire caisse
Tiroire caisse
Started by Jean-Michel, Nov., 28 2017 11:38 AM - 18 replies
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on November, 28 2017 - 11:38 AM
Bonjour,
Il y a eu des écrits à ce sujet mais le problème revient alors qu'il avait été résolu.
Est ce la faute à W10 ? Je ne sais pas.

L'ouverture du tiroir-caisse imprime une bandelette de papier d'environ 1cm et ce, quelque soit l'imprimante.
J'ai une Xprinter POS 80 et une Epson TM82.
Comment l'éviter ?

Pour ceux qui voudront me dire : "il ne faut pas se casser la tête, c'est dans le paramétrage du driver"
Oui, dans le paramétrage, on décide d'ouvrir la caisse à chaque impression.
Dans beaucoup de cas, ce n'est pas ce qu'on veut.

Exemple :
Un client demande la facture : On l'édite SANS ouvrir le tiroir.
La facture revient avec l'argent, on n'édite rien mais on veut ouvrir le tiroir.

Dans le paramétrage des imprimantes, on choisit : "No Cash Drawer"
Le tiroir restera fermé à chaque impression.




Derrière un bouton, le code pour ouvrir le tiroir doit exister.
Ce ou ces codes, impriment une bandelette qui ne devrait pas !!

Les codes que j'ai trouvés sont ceux des constructeurs :
sSequenceEscape est une chaîne

sSequenceEscape = Caract(27)+Caract(112)+Caract(0)+Caract(25)+Caract(250)
//sSequenceEscape = Caract(27)+Caract(61)+Caract(1)+Caract(27)+"p022"+RC
//sSequenceEscape = Caract(27)+"p022"+RC

iConfigure("POS-80-Series")
iEscape(sSequenceEscape)
iFinImprime()


En espérant que quelqu'un ait résolu ce problème...................
J.Michel

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on November, 30 2017 - 4:04 AM
*

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Posted on December, 06 2017 - 9:23 PM
Bonjour,

Essayer juste ceci. Cela devrait fonctionner.

iImprime()
iFinImprime()
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 07 2017 - 11:05 AM
Bonjour Christophe,
Cela ne peut pas fonctionner au vu de mon ennoncé : "Dans le paramétrage des imprimantes, on choisit : "No Cash Drawer"
Le tiroir restera fermé à chaque impression." Et oui, je n'ai pas envi qu'il s'ouvre à chaque fois qu'on imprime.
Merci quand meme.
J.Michel

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
939 messages
Popularité : +66 (68 votes)
Posted on December, 07 2017 - 11:24 AM
bonjour Jean_Michel,

faites un test avec

Pour l'EPSON TM82
sSequenceEscape est une chaîne
sSequenceEscape = Caract(27)+Caract(112)+Caract(0)+Caract(25)+Caract(251)


Pour la XPrinter je ne sais pas trop, faite un test avec : ( ou avec la même séquence que la TM82 voir si cela modifie quelque chose )
sSequenceEscape est une chaîne
sSequenceEscape = Caract(27)+Caract(112)+Caract(0)+Caract(148)+Caract(49)


issu d'ici :
=> http://keyhut.com/popopen4.htm

en espérant que cela fonctionne
bon dèv
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 07 2017 - 3:26 PM
C'est génial Christophe de m'avoir trouvé les codes d'ouverture par fournisseur.
Je les concerve !! MERCI.

Que ce soit avec l'Epson ou avec la Xprinter, idem !!
Le tiroir s'ouvre bien mais j'ai cette bandelette de mer......
Je ne sais plus quoi faire !!




J.Michel

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
939 messages
Popularité : +66 (68 votes)
Posted on December, 08 2017 - 2:01 PM
re bonjour,

avec ce bout de code, est-ce que çà fonctionne sur l'EPSON ? ( je connais pas assez les XPrinter )

_id_police_control est un entier=33
iCréePolice(_id_police_control,1,iNormal,"control")
iImprime(iPolice(_id_police_control)+"A")
iFinImprime()
Registered member
43 messages
Popularité : +1 (1 vote)
Posted on December, 08 2017 - 4:22 PM
Bonjour,

Et avec ceci :

sEcrit(nPortImprimante,AnsiVersOem(Caract(27)+"p022"+RC))
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 09 2017 - 5:59 AM
Non Christophe, cela ne fonctionne pas.
Hubert, le port est usb, le "secrit" ne fonctionne pas.
Merci à vous.

La seule chose que j'ai trouvé, pour ceux qui auront le même probleme, c'est de le contourner comme suit :
Paramétrage des imprimantes :
No cash drawer
No cutting No feeding
Feed distance after print : 3mm (si posible zéro)




Donc, il faut gérer soi même après l'impression de la maquette, le cutting.

iRAZ()
iConfigure(gsImp_fact) // J'affecte mon imprimante
iNationImpression(gnBill_language) // J'initialise le language d'impression
iInitRequêteEtat(ETAT_Bill,num_bill,sup) // J'initialise ma requete
iImprimeEtat(ETAT_Bill,imp_type) // J'imprime mon état
Fin_papier(gsImp_fact) // Mon état s'imprime mais n'est pas coupé (no cutting). J'appelle le traitement qui s'en charge


Si je dois uniquement couper le papier sans ouvrir le tiroir, j'appelle cette procédure :
// Je reçois en paramètre l'imprimante concernée
iConfigure(gsimprimante)
DecoupeTicket est une chaîne = ESC+Caract(105)
iEscape(DecoupeTicket)
iFinImprime()


Si je dois ouvrir le tiroir caisse, j'appelle cette procédure
sSequenceEscape est une chaîne
SELON gsCode_ouverture_caisse // Suivant l'imprimante utilisée
CAS "1"
sSequenceEscape = Caract(27) + Caract(112) + Caract(0) + Caract(25) + Caract(250)
CAS "2"
sSequenceEscape = Caract(27)+"p022"
CAS "3"
sSequenceEscape = Caract(27)+Caract(112) +"0"+"50"+"0"
AUTRE CAS
RETOUR
FIN

iConfigure(gsImp_fact)
iEscape(sSequenceEscape)
iFinImprime()


Si quelqu'un a mieux, je suis preneur !

J.Michel,

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 11 2017 - 11:37 AM
Un programme en visual basic a été fait pour ouvrir le tiroir caisse.
Le meme code de chaque imprimante est envoyé aux différentes imprimantes.
Le tiroir s'ouvre et les imprimantes n'éditent aucun papier.
Cela prouve que les drivers ne sont pas responsables.

En Visual basic, ça fonctionne mais pas en Windev.
Une requeste a été envoyé à PCSoft.

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on December, 11 2017 - 6:28 PM
Coucou,

Passe par in pilotage de SendDataTools, c'est une misson que j'ai eu en consulting en septembre / octobre.

https://download.epson-biz.com/modules/pos/index.php…

Tu peut regarder dans la LST 110, y a une function que Marc à crée qui permet de lancer un exe sans avoir de fenetre noir qui apparait ^^

--
In üs we trust : Joyeux noël
Posted on December, 11 2017 - 11:57 PM
Hello,

Le 11/12/2017 à 10:37, Jean-Michel a écrit :
Un programme en visual basic a été fait pour ouvrir le tiroir caisse.
Le meme code de chaque imprimante est envoyé aux différentes imprimantes.
Le tiroir s'ouvre et les imprimantes n'éditent aucun papier.
Cela prouve que les drivers ne sont pas responsables.

Tu as le source de ce programme VB ? Il doit y avoir des indices dedans
avec un peu de chance.

++
😎
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 12 2017 - 2:03 AM
Charly bonjour et content de te lire.
1 probleme à ta solution ou je me trompe ? : Ce n'est que pour les epson !

J'ai besoin de ton aide car je ne vois pas du tout comment résoudre mon problème d'ouverture de tiroir avec cet outil !!

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 12 2017 - 5:31 AM
Charly,
Je reviens vers toi.
Dans la doc il dise :
senddat.exe <script> TMUSB

Mon script doit etre le code à envoyer :
Caract(27) + Caract(112) + Caract(0) + Caract(25) + Caract(250)



Fichier tiroir.txt

Mon Senddata :




Mon script et le prg senddat.exe sont tous les deux sous C:\

Comment lui dire quelle imprimante ?
L'imprimante que je veux flacher est sur USB001




???
Merci,

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on December, 12 2017 - 10:34 AM
Coucou,

senddat.exe USBPRN <tonscript>

--
In üs we trust - Joyeux noël
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 12 2017 - 11:54 AM
Charly,
Tu es le meilleur !!
ça marche !!

GENIAL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on December, 12 2017 - 12:04 PM
Coucou,

Joyeux noel mon pote, on ce capte a Pattaya tantôt ;)

--
In üs we trust - Joyeux noël
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 12 2017 - 12:21 PM
Petite correction :
senddat.exe <tonscript> USBPRN

Tu restes le meilleur quand même !

sSequenceEscape est une chaîne

SELON gsCode_ouverture_caisse
CAS "1"
sSequenceEscape = Caract(27) + Caract(112) + Caract(0) + Caract(25) + Caract(250)
AUTRE CAS
RETOUR
FIN
bLancé est un booléen
sProg_tiroir est une chaîne = fRepExe() + "\senddat.exe "
sParamètres est une chaîne = "tiroir.txt USBPRN"

// Lance l'application
bLancé = LanceAppli(sProg_tiroir + sParamètres, exeInactif, exeNonBloquant, fRepExe())

SI ErreurDétectée ALORS
Erreur()
FIN


Quand tu veux, elles t'attendent aussi...........LOL

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya
Registered member
834 messages
Popularité : +13 (13 votes)
Posted on December, 19 2017 - 8:58 AM
Charly,

Chez un seul de mes clients, le tiroir ne s'ouvre plus, alors qu'il a fonctionné une bonne semaine.
Un matin, plus rien.
J'ai vérifié les cables, ok.
Quand je mets l'ouverture automatique à chaque impression dans le driver, le tiroir s'ouvre.
Il n'y a que la commande qui n'ouvre plus le tiroir.
On voit bien la fenêtre DOS qui s'ouvre et se ferme très vite mais pas d'ouverture de tiroir.
J'ai essayé de taper la commande sous DOS directement, idem.

Aurais tu rencontré ce souci ?
Merci.

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev
http://www.cashpower.fr/

Bangkok / Pattaya