TdosPrn con Preview e impresoras laser

User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Hola Ralph,

En cuanto a la vista preliminar no aparece, he encontrado los siguientes cosas.

a) Si tengo que especificar oPrn: cDevice: = "D: \ prueba.txt" y la palabra TxtPreview (oPrn: cDevice ", Anser Test", lModal,, cPort, oPrn, WndMain (),, oPrn: lModoGraf)

Luego recibirá Prueba.txt creado en la ruta de acceso especificada, pero con 0 bytes. Al mismo tiempo otro archivo con el número al azar y sin extensión de archivo que se crearán en la ruta de la aplicación (Por ej. 25161828) y este archivo contiene el informe en formato txt (I abierto el archivo con notepad.exe)

b) Si no se especifica oPrn: cDevice: = "D: \ prueba.txt" y la palabra TxtPreview (oPrn: cDevice ", Anser Test", lModal,, cPort, oPrn, WndMain (),, oPrn: lModoGraf)

A continuación, un archivo con el nombre de números aleatorios (Por ejemplo, 25161828) se crearán en la ruta de la aplicación, pero con 0 bytes. En este caso no se crea en absoluto.

C) Si tengo que especificar oPrn: cDevice: = "LPT1" y la palabra TxtPreview (oPrn: cDevice ", Anser Test", lModal,, cPort, oPrn, WndMain (),, oPrn: lModoGraf)

A continuación, un archivo con el nombre de números aleatorios (Por ejemplo, 25161828) se crearán en la ruta de la aplicación, pero con los datos del informe en el mismo.

Si no he definido oPrn: cFile entonces cuando yo salga de la ventana de vista previa, el archivo aleatorio recibirá automáticamente eliminado.


En todos _ anteriores, los datos no serán disponibles en la ventana de vista previa.

Cualquier ayuda

Recuerdos
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph,

He encontrado que el problema es con el METHOD BuildDbfTmp () en TXTVIEW.PRG

oFile = TTxtFile():New( ::cTxtFile ) // Causa del problema

Code: Select all

METHOD BuildDbfTmp() CLASS TTxtPreview

   local oFile, nPag, cTxt, lFim, oDlg
   local cLine, nStart, nEnd, cAlias

   SysRefresh()

   cAlias  := cGetNewAlias( "TXTP" )

   ::cDbfTmp := Upper( cTmpName( ::cDir ) )
   ::cMemTmp := StrTran( ::cDbfTmp, ".DBF", cMemoExt() )

   if File( ::cDbfTmp )
      FErase( ::cDbfTmp )
   endif

   DbCreate( ::cDbfTmp, { { "PAGINA", "N",  5, 00 },;
                          { "TEXT",   "M", 10, 00 } } )

   USE ( ::cDbfTmp ) EXCLUSIVE ALIAS &( cAlias ) NEW

  // Hasta aquí está bien, los datos del informe en formato de texto está 
  // disponible ahora con pocos KB de tamaño. 

   oFile = TTxtFile():New( ::cTxtFile )

 // Pero después de este comando en el Informe convertido en archivo 
 // de datos de 0 bytes y la DBF con Temperary campo Memo no tendrá 
 // ningún registro que es la verdadera causa del problema con la vista 
 // previa.

   if ! oFile:Open( 0 )
      MsgInfo( "El Archivo " + ::cTxtFile + ", no puede ser abierto." )
      return nil
   endif

   DEFINE DIALOG oDlg TITLE "Generando Previsualizacion..."  ;
          FROM  230, 217 TO 360, 575 PIXEL

   @ 10, 08  TO 40, 172 OF oDlg PIXEL

   @ 1.4, 2  ICON NAME "PRINT" OF oDlg

   @ 25, 55  SAY "Generando Previsualizacion..."  PIXEL OF oDlg SIZE 80, 12  CENTER

   @ 47, 60 BUTTON "Espere..."  SIZE 60, 12 PIXEL  OF oDlg  ACTION .t.

   ACTIVATE DIALOG oDlg CENTER NOWAIT

   CursorWait()
   SysRefresh()

   nPag= 0
   cTxt= ""
   lFim= .F.

   DO WHILE .T.

      cLine = oFile:cLine // Ralph,  Aquí me cLine vacías


      if ::lModoGraf
         // eliminamos _ de control de la impresora
         cLine = strtran(cLine, ::cNegOn , "")
         cLine = strtran(cLine, ::cNegOff, "")
         cLine = strtran(cLine, ::c10cpi , "")
         cLine = strtran(cLine, ::c12cpi , "")
         cLine = strtran(cLine, ::cWidOn , "")
         cLine = strtran(cLine, ::cWidOff, "")
      endif
      cTxt += cLine + Space(1) + CRLF

      oFile:Skip(1)

      //--- si encuentra salto de pagina
      IF ::cFormFeed $ cLine .or. oFile:lEof()

         nPag ++                          // incrementa Pagina

         append blank                     // adiciona reg
         replace PAGINA with nPag         // grava os dados
         replace TEXT   with cTxt

         cTxt = ""

      ENDIF

      IF oFile:lEof
         lFim = .t.
         EXIT
      ENDIF

   ENDDO

   oFile:Close()

   SELECT ( cAlias )
   DATABASE ::oDbf
   ::oDbf:bEoF = nil
   ::oDbf:bBoF = nil
   ::oDbf:GoTop()

   CursorArrow()
   oDlg:End()

return Nil
No puedo entender por qué esto está sucediendo. Alguna idea de por qué es así?. ¿Está usted usando un TTextFile.Prg diferentes? Estoy utilizando FWH 8.08

El nombre del archivo del informe es obtener datos generados automáticamente (un número aleatorio y un punto al final. Parece 567432). No sé si el nombre del archivo está creando el problema con TTextFile.Prg

Anser
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph

Solucionado problema de la vista previa.

El problema es en el método PrintSetup () CLASE TDosPrn

He tenido que añadir ". \" Con el nombre de archivo temporal

Code: Select all

   if ::lPreview
       ::cPort   := cOutPort
       ::cDevice :=".\"+ Upper( cTempFile() )  //  Upper( cTempFile() )
    else
       ::cPort   := StrTran( cOutPort, ":", "" )
       ::cDevice := trim(::cPort)
    endif
Ahora tengo que resolver los siguientes problemas

a) Mapa LPT1 usando el comando net use lpt1: \\PcName\PrintShareName de la propia clase (Si no figura en el mapa)

b) Dar a la disposición del usuario para guardar el informe como archivo de texto para referencia futura

c) Dar a la disposición del usuario para guardar el informe como Excel, Word

Recuerdos

Anser
User avatar
ralph
Posts: 63
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Post by ralph »

Anser:

Code: Select all

a) Mapa LPT1 usando el comando net use lpt1: \\PcName\PrintShareName de la propia clase (Si no figura en el mapa) 
Has probado lo siguiente?
oPrn:cPort := "\\PcName\PrintShareName"

Yo lo hago asi y no necesito mapear LPT1

Saludos

Ralph
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph,

Tengo algunas impresoras matriciales, de inyección de tinta y las impresoras láser en mi red.

Las impresoras de matriz de puntos que muestra el valor de puerto \\PcName\PrnShareName está trabajando bien con tu clase, pero algunas de las impresoras de matriz de puntos se muestran como puerto LPT1 y tengo problema en la impresión de estas impresoras, si no he asignado LPT1.

Sé que no es su clase de problema.

No sé por qué es así. Algunas impresoras de matriz de puntos del puerto se muestra como \\PcName\PrnShareName y algunas de las impresora matriz de puntos que figura como puertos LPT1

Estoy sorprendido con esto. No sabe dónde proceder ahora.

Recuerdos

Anser
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph,

Me modificado la clase TDosPrn y TxtPreview

Modificaciones realizadas

1) Tuve problemas con algunas impresoras de red (matriz de puntos), que devolverá el puerto como LPT1. En este caso, la aplicación intentará copiar el archivo en LPT1 local que, a su vez, no la impresión si su PC es el puerto LPT no figura en el mapa.

Este problema está solucionado y ahora el usuario no tiene que molestar LPT1 si se asigna o no. En cualquier caso, se imprimirá.

2) Si el usuario selecciona una impresora de matriz DOT entonces la impresión se realiza en modo texto automáticamente. Si el usuario selecciona Impresora de tinta o la impresora láser a continuación, la impresión se realiza en modo gráfico automáticamente.

3) Desde la ventana Vista previa de impresión, si el usuario haga clic en el botón Imprimir, el usuario de configuración de pantalla no se visualiza segunda vez, en lugar de imprimir que se realiza en el marco de la configuraciones de usuario especificada por el usuario inicialmente.

Con estas modificaciones ahora no tengo ningún problema en una red con diferentes tipos de impresoras (matriz de puntos, InkJet / Láser)
Impresoras locales y las impresoras de red en diferentes sistemas operativos Windows.

Si usted necesita la versión modificada que puede enviar a usted,

Su clase se convirtió en muy útil para mí.

Realmente gracias por la clase.

Gracias y Saludos

Anser
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Hi Anser,

puedes subir los archivos, a rapidshare.com

para que todos puedas probarla,

saludos y gracias...
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
ralph
Posts: 63
Joined: Fri Nov 18, 2005 11:15 pm
Location: Lima - PERU

Post by ralph »

Enviamela a: rdelcastillo@consorcioinformatico.com

incluire _ que has hecho y lo pondre para uso publico.

Saludos

Ralph
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph y Cesar Cortes Cruz,

Enlace de descarga
http://rapidshare.com/files/160790032/A ... n.zip.html

Por favor, consulte el archivo readme.txt incluido en el archivo zip

He comentado mi nombre en cada lugar donde he hecho _. Buscar mi nombre en el de la PRG para encontrar fácilmente _ que he hecho.

Raplh he enviar un correo a la dirección de correo electrónico que usted ID

Recuerdos

Anser
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Thans Anser,
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
lubin
Posts: 404
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

Uppsss Anserkk

No he podido descargar el archivo , lanza un error de limite de descargas


De todos modos importante aporte por lo leido, seguro Ralphs nos da un buen link con _ incorporados muy pronto

Gracias a amboss

Lubin

anserkk wrote:Estimado Ralph y Cesar Cortes Cruz,

Enlace de descarga
http://rapidshare.com/files/160790032/A ... n.zip.html

Por favor, consulte el archivo readme.txt incluido en el archivo zip

He comentado mi nombre en cada lugar donde he hecho _. Buscar mi nombre en el de la PRG para encontrar fácilmente _ que he hecho.

Raplh he enviar un correo a la dirección de correo electrónico que usted ID

Recuerdos

Anser
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Lubin,

Creo que rapidshare tiene algunas restricciones en la descarga de la forma que yo haya creado el enlace de descarga. Yo no uso una cuenta de coleccionista.

Si usted puede proporcionar su dirección de correo electrónico de identificación (Email id) , voy a enviar usted.

Recuerdos

Anser
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Ralph,

Tenemos que resolver otro problema.

Supongamos que el usuario seleccione una red de la impresora de matriz de puntos que está apagado o fuera de línea en el momento en cuestiones usuario el comando de impresión.

Recuerde DOSPRINT.BAT se copia el archivo de texto a \ \ PcName \ PrintShareName

En la actualidad, la clase no será capaz de advertir al usuario de que la impresora está fuera de línea.

Estoy tratando de una solución a este problema, pero hasta ahora no he encontrado ninguna solución satisfactoria a este problema. He pedido el apoyo para identificar a una impresora sin conexión / estado en línea sobre el foro Inglés y español foro.

Recuerdos

Anser
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Post by Adolfo »

Anser...

Puedes enviarmelo, yo lo levanto en mi server para tener la descarga disponible para todos.

A mi mail corporativo ( informatica at radiata dot cl )

Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Adolfo,

Tengo enviar el e-mail a su dirección de e-mail ID

Gracias y Saludos

Anser
Post Reply