Borderoul tine per factura ce mai are de completat si daca are articole de gestiune (camp gest, coloana si filtru), coada contabilizeaza in serie facturile bifate si incheie cu un rezumat, iar contul de furnizor/client se alege din planul de conturi. Cheia normalizata de articol, rezolvarea automata a partenerului si anularea in bloc intra tot aici. Pozitia in lista se pastreaza peste reaplicarea filtrului. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Aroafxp4z8bmM5oVECZRXY
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
* test_inkey_poll.prg
|
|
* Dovada fix INKEY(0,'H') -> INKEY(0.01,'H') in anaf_efactura.vc2::do_coada:
|
|
* 1) fara tasta apasata, INKEY(0.01,'H') revine imediat (nu asteapta nelimitat)
|
|
* 2) cu '{ESC}' in buffer, INKEY(0.01,'H') intoarce 27
|
|
*
|
|
* Rulare: vfp9.exe -A -T "D:\ROA\ROACONT\COMUN\utile\Teste\test_inkey_poll.prg"
|
|
* Iesire in D:\ROA\ROACONT\COMUN\utile\Teste\test_inkey_poll_log.txt
|
|
|
|
SET SAFETY OFF
|
|
SET TALK OFF
|
|
CLOSE DATABASES
|
|
|
|
PUBLIC gcUILog
|
|
gcUILog = "D:\ROA\ROACONT\COMUN\utile\Teste\test_inkey_poll_log.txt"
|
|
STRTOFILE("START " + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog)
|
|
|
|
ON ERROR DO PrErrLocal WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
|
ON SHUTDOWN QUIT
|
|
|
|
TRY
|
|
DO PrLogLocal WITH '=== INKEY(0.01,H) fara tasta - trebuie sa revina imediat ==='
|
|
CLEAR TYPEAHEAD
|
|
LOCAL lnStart, lnStop, lnDurata, lnI, lnCod
|
|
lnStart = SECONDS()
|
|
FOR lnI = 1 TO 10
|
|
lnCod = INKEY(0.01, 'H')
|
|
ENDFOR
|
|
lnStop = SECONDS()
|
|
lnDurata = lnStop - lnStart
|
|
DO PrLogLocal WITH ' 10 apeluri INKEY(0.01,H) fara tasta, durata=' + TRANSFORM(m.lnDurata) + ' sec, ultimul cod=' + TRANSFORM(m.lnCod)
|
|
DO PrLogLocal WITH ' ' + IIF(m.lnDurata < 1, 'OK - sub 1 sec, deci polling, nu asteptare nelimitata', 'FAIL - a durat prea mult')
|
|
|
|
DO PrLogLocal WITH '=== INKEY(0.01,H) cu {ESC} in buffer - trebuie sa intoarca 27 ==='
|
|
CLEAR TYPEAHEAD
|
|
KEYBOARD '{ESC}'
|
|
lnCod = INKEY(0.01, 'H')
|
|
DO PrLogLocal WITH ' cod obtinut=' + TRANSFORM(m.lnCod) + ' asteptat=27 ' + IIF(m.lnCod = 27, 'OK', 'FAIL')
|
|
|
|
DO PrLogLocal WITH '=== TERMINAT ==='
|
|
CATCH TO loEx
|
|
DO PrLogLocal WITH 'EXCEPTIE: ' + loEx.Message
|
|
ENDTRY
|
|
|
|
QUIT
|
|
|
|
PROCEDURE PrLogLocal
|
|
LPARAMETERS tcMesaj
|
|
STRTOFILE(m.tcMesaj + CHR(13) + CHR(10), gcUILog, 1)
|
|
ENDPROC
|
|
|
|
PROCEDURE PrErrLocal
|
|
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
|
DO PrLogLocal WITH 'EROARE ' + TRANSFORM(m.tnErr) + ': ' + m.tcMsg + ' in ' + m.tcProg + ' linia ' + TRANSFORM(m.tnLine)
|
|
ENDPROC
|