Le tiroir, je connais pour en avoir bavé.
Deux cas :
1) Ton tiroir est directement connecté à l'Unité centrale, via un adaptateur pour lui fournir le courant d'ouverture
2) Ton tiroir est connecté derrière une imprmante ticket de caisse (COM ou USB)
Dans le premier cas, j'ai trouvé une solution simple, mais qui fait appel à un Shell. Voilà le code (Ajoute ShellApi et Windows à tes uses)
1 2 3 4 5 6 7 8
| xPort := '/C echo 111 >' + xTiroir
+':';
ShellExecute(0,
'open',
PChar(GetEnvironmentVariable('ComSpec')),
PChar(xPort),
'c:\bin',
SW_MINIMIZE); |
xTiroir est le nom du port (COM1, COM2...). Je pense qu'il y a une solution purement Delphi, mais je n'ai pas eu le temps de pofiner !
Dans le deuxième cas, tu dois d'abord traiter la connection de l'imprimante, puis, pour ouvrir le tiroir, tu lances un ordre du type
1 2 3
| xLigne := #27+'@'+#27+'p'+#0+#16+#32+#27+'@';
Ticket := TFRM_TicketCaisse.Create(Self);
Ticket.EcrireLigne1(xLigne,xPort); |
Ici xPort est le port de connection de l'imprimante
EcrireLigne est le code qui permet d'écrire une ligne sur le ticket de caisse
Si ton imprimante est sur un port USB, il y a dans les propriétés de l'imprimante une option CashDrawer qui permet d'ouvrir le tiroir à la fin du ticket
Remarque : il y a un troisième cas : un afficheur vient se coller entre l'Unité centrale et l'imprimante. Change xLigne
xLigne := #27+'p'+#0+#16+#32+#17+#27+'='+#2;
A+
Partager