Search  
Wednesday, May 23, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Visual FoxPro in general  Raspuns de la C...
 Raspuns de la Casa de Marcat
 
 9/11/2005 12:50:15 PM
User is offlineGhiorghiu Bogdan
928 posts
1st




Raspuns de la Casa de Marcat
 (Romania)

Am o Casa de Marcat OPTIMUS IC MG 1200.

Nu stiu cum pot verifica daca Bonul Fiscal a fost tiparit/incheiat cu succes (adica fiscalizat, s-a intamplat ca din program sa trimit bonul la casa de marcat, aceasta sa tipareasca o parte din el, apoi din diferite motive (necunoscute de mine)  se intrerupea transmisia sau cine stie ce se intampla si bonul era anulat, dar la mine figura FISCAL ca l-am trimis la casa de marcat)

Nu ma refer aici la ceea ce tine de BD ci ma modul de comunicare si de raspuns al casei de marcat.

Folosesc exact fisierul tangodrv existent intr-o arhiva pe forum:.

http://www.profox.ro/Forum/tabid/55/forumid/12/threadid/479/scope/posts/Default.aspx

Exista un fisier error acolo. E folosit?

Nu stiu cum se poate verifica daca casa a scos bonul fiscal sau nu la scos deloc.

Daca e pornita s-au nu.

Cum pot sa primesc o confirmare de la casa de marcat ca bon fiscal s-a tiparit cu succes?

Are cineva vreo aplicatie ce foloseste aceasta Casa de Marcat?

S-au recomandati-mi alta casa de marcat fiscala daca aceasta nu stie sa raspunda.

Ma intereseaza modul de lucru cu casa de marcat.

 


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/11/2005 4:49:32 PM
User is offlineanonymous
0 posts


Re: Raspuns de la Casa de Marcat
 (Romania)
Eu am folosit Optimus IC MG 1000 si pot sa-ti spun ca daca apare vre-o eroare atunci ea este scrisa in fisierul error.txt si bonul nu este tiparit. Deci poti sa verifici daca filetostr( 'error.txt') = '' atunci s-a tiparit cu succesc. Am patit si eu asa ceva adica sa tipareasca o parte din bon si sa se opreasca. Asta se intampla cand fisierlu data_in.txt nu este facut cu trebuie. Ce se poate intampla este ca total-ul sa nu corect. Am patit asta de cand am inceput lucrul cu zecimalele. Incearca sa te uiti mai atent la fisierul data_in.txt sa vezi daca este cum trebuie.
 9/12/2005 12:30:00 AM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Raspuns de la Casa de Marcat
 (N/A)
Si pe mine ma intereseaza treaba cu verificarea casei daca este pornita sau nu, pentru ca de obicei operatorii sunt cam neglijenti.
Poate stie cineva vreun fel de interogare.

Sub WIN XP nu imi vede casa de marcat. Stie cineva cum trebuie setat portul serial ?
 9/12/2005 1:17:05 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Cand sa fac acea verificare? (filetostr( 'error.txt') = '')

Poate fac verificarea inainte ca conul sa fie tiparit in totalitate.


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 1:20:05 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Ce trebuie sa trimit la casa de marcat pentru a spoate Raportul Z din aplicatie fara interventia operatorului? Acesta doar fiind atentionat ca se tipareste Raportul Z.

Utilizatori mai uita ca trebuie tiparit Raportul Z zilnic.


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 1:23:25 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Am 2 calculatoare in retea.

Unul din ele are instalata o Casa de Marcat Optimus IC MG 1200. Cum pot face ca si de la

al doilea PC sa pot tipari bonuri fiscale pe aceasta. Pentru e nu fi nevoit sa mai achizitionez inca una.

 


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 1:27:11 AM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Raspuns de la Casa de Marcat
 (N/A)
Salut

@ 15,45 SAY 'Asteapta BONUL la CASA de MARCAT'
Run /n2 TANGODRV.EXE
wait timeout 7 ('')

si acum faci interogarea.
La mine cam in 7 secunde termina de scos bonul, la tine poate fi diferit.Pune acolo cate secunde crezi ca ai nevoie si dupa aceea verifici error.txt
 9/12/2005 1:49:16 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Casa e folosita in Restaurant.

Pot fi bonuri cu un singur produs ce poare ar fi tiparite in 3 sec. dar si am bonuri ce au aproape 1m lungime (nu am cronometrat casa sa vad in cat timp ar scoate exact dar ar fi vreo 30)

As obliga operaturul la un bon mic sa astepte cam mult si in orele de varf daca m-ar prinde pe langa el cred ca mi-ar face LCD-ul guleras.

 


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 1:51:22 AM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Raspuns de la Casa de Marcat
 (N/A) Modified By LAU  on 9/12/2005 1:52:33 AM)
Am gasit cate ceva pe net pentru interogarea portului serial. (cred)

Private Sub Form_Load ()
' Buffer to hold input string
Dim Instring As String
' Use COM1.
MSComm1.CommPort = 1
' 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "9600,N,8,1"
' Tell the control to read entire buffer when Input
' is used.
MSComm1.InputLen = 0
' Open the port.
MSComm1.PortOpen = True
' Send the attention command to the modem.
MSComm1.Output = "ATV1Q0" & Chr$(13) ' Ensure that
' the modem responds with "OK".
' Wait for data to come back to the serial port.
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' Read the "OK" response data in the serial port.
' Close the serial port.
MSComm1.PortOpen = False
End Sub

-----------------------------------------------
PortOpen Property

MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True

---------------------------------------------
Output Property Example
The following example shows how to send every character the user types to the serial port:

Private Sub Form_KeyPress (KeyAscii As Integer)
Dim Buffer as Variant

' Set and open port
MSComm1.CommPort = 1
MSComm1.PortOpen = True

Buffer = Chr$(KeyAscii)
MSComm1.Output = Buffer
End Sub


Eu nu am putut sa le folosesc pentru ca nu le inteleg.
Poate reusesti tu si ne tii la curent si pe noi
 9/12/2005 1:52:09 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Exista vreo casa de marcat la care sa poti stii ca bonul e in curs de tiparite, bonul s-a tiparit cu succes, bonul a fost anulat, casa de marcat e oprita, casa de marcat e pregatita pentru a tipari un nou bon sau ceva de genul acesta?

Oare Optima sau Datecs stiu mai mult?


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 1:56:15 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Daca te intereseaza comunicarea cu portul serial mai gasesti ceva si aici:

http://www.profox.ro/Forum/tabid/55/forumid/7/threadid/155/scope/posts/Default.aspx


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 9:40:55 AM
User is offlineanonymous
0 posts


Re: Raspuns de la Casa de Marcat
 (Romania)
Mai da ce multe intrebari pui de-odata ca nu mai apuc sa raspund :). Deci pe rand: Nu poti scoate Z din comp pentru casa asta, nu poti vedea daca este pornita si poti sa verifici fisier-l error.txt doar cand este terminat bonul. Iar pentru apel nu trebuie sa folosesti wait window. Poti sa faci cu functiile api WaitForSingleObject si CreateProcess sa pornesti tangodrv si sa astepti pana termina. Nu stiu daca este postata o functie care ruleaza un exe si asteapta pana sa inchide dar ar trebui sa fie una la FAQ. Daca nu ai asa ceva pot sa-ti trimit eu.
 9/12/2005 4:14:23 PM
User is offlineAlex Dobrin
766 posts
www.algis.ro
1st






Re: Raspuns de la Casa de Marcat
 (N/A)
Ar fi intradevar interesanta o functie cu ajutorul careia sa vezi daca un executabil ruleaza sau nu. Daca ai asa ceva te rog posteaz-o aici si eu am s-o pun in F.A.Q.
Ai mai sugerat ca ar fi bine de pus in F.A.Q. si o solutie de referentiere a unei forme din alta forma. Am sa pun si asa ceva in cateva zile.

Alex Dobrin
Algis Info
 9/12/2005 5:09:02 PM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Iertati-ma ca am pus cam multe intrebari.

Exista vreo IMPRIMANTA FISCALA sau CASA DE MARCAT care sa aiba aceste facilitati de a verifica starea in care se afla.

Pana una alta asteptam acea functie.


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/12/2005 6:34:47 PM
User is offlineanonymous
0 posts


Re: Raspuns de la Casa de Marcat
 (Romania) Modified By anonymous  on 9/12/2005 6:37:15 PM)

Ok. uite functia:

 

FUNCTION DoAndWait( cExe)

DECLARE INTEGER CreateProcess IN kernel32.DLL ;
 INTEGER lpApplicationName, ;
 STRING lpCommandLine, ;
 INTEGER lpProcessAttributes, ;
 INTEGER lpThreadAttributes, ;
 INTEGER bInheritHandles, ;
 INTEGER dwCreationFlags, ;
 INTEGER lpEnvironment, ;
 INTEGER lpCurrentDirectory, ;
 STRING @lpStartupInfo, ;
 STRING @lpProcessInformation

DECLARE INTEGER WaitForSingleObject IN kernel32.DLL ;
 INTEGER hHandle, INTEGER dwMilliseconds

DECLARE INTEGER CloseHandle IN kernel32.DLL ;
 INTEGER hObject

#DEFINE NORMAL_PRIORITY_CLASS 32
#DEFINE IDLE_PRIORITY_CLASS 64
#DEFINE HIGH_PRIORITY_CLASS 128
#DEFINE REALTIME_PRIORITY_CLASS 1600

* Return code from WaitForSingleObject() if
* it timed out.
#DEFINE WAIT_TIMEOUT 0x00000102

* This controls how long, in milli secconds, WaitForSingleObject()
* waits before it times out. Change this to suit your preferences.
#DEFINE WAIT_INTERVAL 200

*DECLARE INTEGER GetLastError IN kernel32.DLL

* STARTUPINFO is 68 bytes, of which we need to
* initially populate the 'cb' or Count of Bytes member
* with the overall length of the structure.
* The remainder should be 0-filled
START = long2str(68) + REPLICATE(CHR(0), 64)

* PROCESS_INFORMATION structure is 4 longs,
* or 4*4 bytes = 16 bytes, which we'll fill with nulls.
process_info = REPLICATE(CHR(0), 16)

* EXE name must be null-terminated
cExe = cExe + CHR(0)

* Call CreateProcess, obtain a process handle. Treat the
* application to run as the 'command line' argument, accept
* all other defaults. Important to pass the start and
* process_info by reference.
RetCode = CreateProcess(0, cExe, 0, 0, 1, ;
 NORMAL_PRIORITY_CLASS, 0, 0, @START, @process_info)

* Unable to run, exit now.
IF RetCode = 0
 RETURN .F.
ENDIF

* Extract the process handle from the
* PROCESS_INFORMATION structure.
hProcess = str2long( SUBSTR( process_info, 1, 4))

DO WHILE .T.
 * Use timeout of TIMEOUT_INTERVAL msec so the display
 * will be updated. Otherwise, the VFP window never repaints until
 * the loop is exited.
 IF WaitForSingleObject( hProcess, WAIT_INTERVAL) != WAIT_TIMEOUT
  EXIT
 ELSE
  DOEVENTS
 ENDIF
ENDDO

* Close the process handle afterwards.
RetCode = CloseHandle( hProcess)

RETURN .T.
ENDFUNC

 

 9/12/2005 6:36:21 PM
User is offlineanonymous
0 posts


Re: Raspuns de la Casa de Marcat
 (Romania)
Cat despre functia cealalata, cea cu referinta spre o forma, daca nu o gasesti ti-o mai trimite o data.
 9/12/2005 9:06:22 PM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)

Este pe forum:

http://www.profox.ro/Forum/tabid/55/forumid/9/threadid/602/scope/posts/Default.aspx

:D


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 9/16/2005 12:22:33 AM
User is offlineEugen Gliga
1052 posts
1st




Re: Raspuns de la Casa de Marcat
 (Romania)
Eu cred ca problema este mult mai simpla. Daca casa de marcat nu e pornita sau daca eventual nu comunica cum trebuie sau daca bonul nu a fost tiparit , Tangodrv scrie un mesaj si codul erorii in  fisierul error destul de rapid. Totul este sa nu foloseti optiunea NOWAIT in comanda run, astfel incat dupa terminarea comenzii sa verifici ce este scris in fisierul de erori. Eu memorez intr-un fisier daca bonul a fost listat si in caz de eroare permit reluarea comenzii dupa remedierea erorii.
 12/12/2005 2:09:16 AM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Raspuns de la Casa de Marcat
 (N/A)
Am casa Optimus MG 1200

Printarea bonului cu WIN 98 merge dar cu XP-ul nu am reusit.

Ma poate ajuta cineva ?
 12/12/2005 3:55:04 PM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Raspuns de la Casa de Marcat
 (N/A)
Am rezolvat problema.
Solutia era la "Scoaterea la imprimanta pe un port serial" :)
  Visual FoxPro  Visual FoxPro in general  Raspuns de la C...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement