Page 2 of 4

PostPosted: Wed Oct 29, 2008 11:46 am
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 los casos anteriores, los datos no serán disponibles en la ventana de vista previa.

Cualquier ayuda

Recuerdos

PostPosted: Thu Oct 30, 2008 7:44 am
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  Expand view
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 algunos caracteres 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

PostPosted: Thu Oct 30, 2008 9:54 am
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  Expand view
   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

PostPosted: Thu Oct 30, 2008 7:15 pm
by ralph
Anser:


Code: Select all  Expand view
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

PostPosted: Fri Oct 31, 2008 12:29 pm
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

PostPosted: Tue Nov 04, 2008 12:08 pm
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

PostPosted: Tue Nov 04, 2008 3:26 pm
by sysctrl2
Hi Anser,

puedes subir los archivos, a rapidshare.com

para que todos puedas probarla,

saludos y gracias...

PostPosted: Tue Nov 04, 2008 7:04 pm
by ralph
Enviamela a: rdelcastillo@consorcioinformatico.com

incluire los cambios que has hecho y lo pondre para uso publico.

Saludos

Ralph

PostPosted: Wed Nov 05, 2008 6:40 am
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 los cambios. Buscar mi nombre en el de la PRG para encontrar fácilmente los cambios que he hecho.

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

Recuerdos

Anser

PostPosted: Wed Nov 05, 2008 3:19 pm
by sysctrl2
Thans Anser,

PostPosted: Wed Nov 05, 2008 9:43 pm
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 los cambios 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 los cambios. Buscar mi nombre en el de la PRG para encontrar fácilmente los cambios que he hecho.

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

Recuerdos

Anser

PostPosted: Thu Nov 06, 2008 4:37 am
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

PostPosted: Thu Nov 06, 2008 5:52 am
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

PostPosted: Thu Nov 06, 2008 11:35 am
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

PostPosted: Thu Nov 06, 2008 12:07 pm
by anserkk
Adolfo,

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

Gracias y Saludos

Anser