FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Pocket PC PROBLEMA IMPRESI脫N
Posts: 12
Joined: Tue Feb 28, 2006 09:41 AM
PROBLEMA IMPRESI脫N
Posted: Thu Jun 08, 2006 01:16 PM

Hola,
estoy realizando una aplicaci贸n en la que tengo que imprimir v铆a bluetooth (cuento con una HP Ipaq con Windows movile 5.0 y una impresora con un adaptador bluetooth), la forma de imprimir es igual que la que aparece en el ejemplo bluetooth.prg.

Mi aplicaci贸n cuenta con un bot贸n imprimir que llama a la siguiente funci贸n:

FUNCTION WIMPALB()

Local cTexto:=""
Local cCabeza:=""
Local nTotal:=0
Local hOut

USE (cRutaFic+"\PARAPK") NEW
GO TOP
cPuerto:="COM"+str(PARAPK->PSALIDA,1)+":"
CLOSE PARAPK

//EL PUERTO ES EL COM8:
hOut := CreateFile( rtrim(cPuerto),;
GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )

DO WHILE hOut < 0 .AND. nVeces <= 30
hOut := CreateFile( rtrim(cPuerto),; // Cambiamos el n拢mero dependiendo del puerto de la pocket
GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL )
nVeces++
ENDDO

IF hOut < 0
MsgInfo(OemToAnsi("Ha sido imposible abrir el puerto para imprimir, por favor comprueba que est activado el bluetooth ") + ;
OemToAnsi("y que en par metros est n configurados los puertos de salida y entrada"),;
OemToAnsi("ATENCI脿N"))
ELSE

  cCabeza:= cTabu + substr(rtrim(PARA-&gt;NOMC) + " - " + rtrim(PARA-&gt;CIF),1,nCaracter) + chr(10) + chr(13) 
  GHC-&gt;(DBGOTOP())
  GHC-&gt;(DBSEEK(GCV-&gt;NUM))
  DO WHILE GHC-&gt;NALC=GCV-&gt;NUM .AND. .NOT. GHC-&gt;(EOF())                                                                   
    cTexto:=cTexto +  SPACE(2) + transform(GHC-&gt;UNID,"@EZ 9,999.9") + " " + substr(GHC-&gt;TEXTO,1,20) + " " + transform(GHC-&gt;PREC,"@EZ 9,999.999") + ;
    " " + transform(GHC-&gt;DTO,"@EZ 999") + " " + transform(GHC-&gt;TOTAL,"@EZ 999,999.999") + chr(10) + chr(13) 
    GHC-&gt;(DBSKIP(1))
  ENDDO

  SendText( hOut, cCabeza )

  SendText( hOut, cTexto )

   MsgInfo("ENVIADO A IMPRIMIR",OemToAnsi("ATENCI脿N"))

   CloseHandle( hOut )

ENDIF
RETURN NIL

STATIC FUNCTION SendText( hOut, cText )
local n

for n = 1 to Len( cText )
WriteByte( hOut, Asc( SubStr( cText, n, 1 ) ) )
next

RETURN NIL


El problema que tengo es que a pesar de que me abre bien el puerto (siempre me devuelve hOut > -1), hay veces en las que me imprime y otras veces no (enviando a imprimir siempre los mismos datos).

Es decir yo puedo pulsar una o dos veces el bot贸n de imprimir y no imprimirme y pulsarlo una tercera vez e imprimir entonces, y a veces funciona bien a la primera.

Sobre todo me pasa cuando apago la pocket y la vuelvo a encender entonces la primera vez que mando imprimir no me suele funcionar, sin embargo a la segunda o tercera vez que lo intento si que funciona.

驴 Se les ocurre a que puede ser debido o como puedo solucionarlo ?

Muchas gracias

Continue the discussion