Page 1 of 1

Preview en Terminal Server no pinta bien

Posted: Fri Feb 07, 2020 9:16 pm
by Cgallegoa
Hola amigos.

Tengo una aplicación que corre perfectamente en cualquier computador, monousuario o en red, en cualquier versión de windows, en linux y en mac (con emulador), pero con Windows Server 2008 r2, aunque se ejecuta como un fino reloj, me da problemas con el preview.

Esta es una imagen correcta, en cualquier equipo, sistema operativo, red, etc :

Image


Esta es la imagen obtenida en cualquier equipo conectado a Windows Server 2008 r2, con fallas en el pintado de las líneas:

Image

Como podrán ver, en la segunda imagen se pierden una serie de líneas. Hemos hecho una gran cantidad de pruebas, con RPreview.prg, TMetafil.prg, etc., pero no le atinamos. Aunque no afecta el funcionamiento del programa, si hace pedazos la estética en los informes.

¿ Alguna sugerencia de cómo podemos arreglarlo ? ¿Qué podrá ser?

Gracias por su generosa ayuda

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 8:45 am
by MOISES
Instala en el servidor una impresora.

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 3:08 pm
by Cgallegoa
Moisés gracias por tu respuesta.

Hay impresoras instaladas en el servidor. El inconveniente se produce usando tanto impresoras del servidor como impresoras locales.

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 3:39 pm
by armando.lagunas
hola

Windows Server 2008 r2, :| ...

primero : configura los efectos visuales en opciones de rendimiento y ajustarlos para obtener la mejor apariencia
Segundo : configura el tema de Windows 7 en "Personalizar"
Tercero: si usas fuentes especiales instaladas en el servidor también o verifica que estén instaladas en el server.

Cuarto: ( opcional ), si entras con escritorio remoto en Opciones de Escritorio remoto, "Rendimiento" elige LAN (10 Mbps o superior )

tenia el mismo problema y con esos ajustes en el servidor, todo volvió a la normalidad

saludos

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 5:52 pm
by Cgallegoa
Armando, gracias por tu guía.

La seguí al pié de la letra :) , pero el inconveniente sigue igual :cry:

Esto fue lo que hice:

1.- Me conecté con escritorio remoto, con "rendimento" en LAN (10 Mbps o superior)
2.- Conectado al servidor, entré a "Equipo/Propiedades del Sistema/Cofiguración Avanzada del Sitema/Rendimiento" y lo puse en "Ajustar para obtener la mejor apariencia"
3.- Conectado al servidor personalicé el Tema: Seleccioné "Windows 7 - Tema de Aero" y le cambié el fondo, lo cual automáticamente cambia el Tema de Windows 7 a Personalizado
Respecto a fonts, no uso ninguno especial, sólo los convencionales de siempre. Sin embargo, recuerda que el problema es con las LINEAS.

¿ Qué más hará falta ? ¿ El problema será causado por Windows Server o FWH ?

El cliente ya está que me cuelga del sitio que más duele :?

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 7:43 pm
by armando.lagunas
mmm....

otra cosa que realizo es lo siguiente:

yo utilizo una impresora virtual PDF ( DoPDF v 7 ), que la instalo en todo computador en donde se utiliza el sistema, la utilizo siempre en el interior de la aplicación, esto es para evitar reconfiguraciones especiales en el sistema por cada modelo de impresora que tenga instalada el cliente.

doPDF la seteo a 600 dpi en la configuración de la impresora.

en cada preview tengo esta linea

Code: Select all

 SET 3DLOOK OFF
 PRINTER oPrn TO cPrintPDF PREVIEW
 
donde cPrintPDF es una variable publica en donde tengo el nombre de la impresora PDF que tengo definida en un archivo INI.

Code: Select all

** parte del archivo INI
...
...
Impresora PDF x Defecto=doPDF v7
...
...
 
espero que sirva

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 7:58 pm
by Cgallegoa
Armando gracias.

Voy a instalar DoPDF y te cuendo cómo me va.

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 8:26 pm
by Cgallegoa
Armando :cry:

- Instalé DoPDF v.10 en uno de los equipos que se conectan al sevidor, en donde estamos haciendo las pruebas

- Configuré a 600 dpi

. En el programa se asignó a DoPDF como la impresora predeterminada, e inclusive puse "SET 3DLOOK OFF" antes de PRINTER oPrn...., que no le encuentro sentido, pero es que yo soy muy obediente :D

Pero sigue sin previsualizar las líneas :(

Estando en el Preview tengo las opciones de enviar a impresora, a PDF, e inclusive hacer un "Print Screen" para pasar a Paint de Windows. En cualquier de los tres casos pone las líneas completas y perfectas. La falla es sólo en el PREVIEW de FWH.

Re: Preview en Terminal Server no pinta bien

Posted: Sat Feb 08, 2020 8:49 pm
by armando.lagunas
genera el pdf y lo provisualizas con el reader

lo hago asi:

Code: Select all


 QuitProgamLoad( "AcroRd32.EXE" )  // Verifica si esta abierto el Acrobat Reader Genera un GPF al estar abierto

 PRINTER oPrn TO cPrintPDF FILE ".\Temp\Cierre Proceso Productor.PDF"  PREVIEW

 IF EMPTY( oPrn:hDC )
     RETURN NIL
 ENDIF

....
....
 

Code: Select all

//----------------------------------------------------------------------

Function QuitProgamLoad( cProceso )
 LOCAL oBj, oServ, aProcess, objProcess

 TRY
    oBj := CreateObject( "wbemScripting.SwbemLocator" )
 CATCH
    Return nil
 END

 oServ     := oBj:ConnectServer()
 aProcess  := oServ:ExecQuery( "Select * from Win32_Process" )
     For Each objProcess in aProcess
         If UPPER(objProcess:Name) = UPPER(cProceso)
            objProcess:Terminate()
         ENDIF
     next

 Return nil

//----------------------------------------------------------------------
 

Re: Preview en Terminal Server no pinta bien

Posted: Sun Feb 09, 2020 7:24 am
by Antonio Linares
Carlos,

El preview de FWH crea ficheros metafile.

Si pudieses descargar algunos de los generados en WIndows Server y visualizarlos en el PC, podriamos saber si el problema viene del metafile
ó de la visualización del metafile.

Al imprimirlos, se imprimen bien ?

Re: Preview en Terminal Server no pinta bien

Posted: Sun Feb 09, 2020 9:45 am
by Cgallegoa
Antonio,

Sip, se imprimen perfecto.

En resumen, los metafiles se imprimen perfecto. Si estando en el Preview das un "Print screen" y copias la imagen en Paint o cualquier editor de imágenes, se imprimen perfecto. Si desde el Preview lo envías a una impresora o a PDF, imprime perfecto, uffff, :) , cualquier prueba, imprime perfecto. El problema definitivamente es al momento en que FWH hace el paint del metafile- Puede ser en el Method PainMeta de TPreview, o en la función PlayEnhMetafile de metafi32.c, pero hasta allá no llegan mis capacidades. :( , pero con tu guía estoy seguro que podré solucionarlo.

Image

Re: Preview en Terminal Server no pinta bien

Posted: Mon Feb 10, 2020 1:38 pm
by karinha
Intente asi con nLogPixely(), funciona perfecto en cualcue impresora o Windows.

O muestre como estais haciendo en tu preview.

Code: Select all


      //- Como Imprimir em Centimetros sem errar e em qualquer Impressora
      ResLinha  := oPrn:nLogPixely()/2.54
      ResColuna := oPrn:nLogPixelx()/2.54

         WHILE .NOT. EOF()

            SYSREFRESH()

            IF ( cAlias )->PRODUNOME = SPACE(30)

               SKIP

               LOOP

            ENDIF

            // LINHAS VERTICAIS E HORIZONTAIS DO PREVIEW

            // LIN VERTICAL DO LADO ESQUERDO DO QUADRO.
            oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna,               ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinEsq  += 0.292

            // LIN VERTICAL DO MEIO
            oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna,             ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinMeio += 0.292

            // LINHA VERTICAL DO LADO DIREITO DO QUADRO.
            oPrn:Say( nLinDir * ResLinha, nColDir * ResColuna,               ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinDir  += 0.292

            nColuna :=  1.90 // COLUNA DA QTDE.

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
               + STR( ( cAlias )->PRODUQTDE ), oFont,, CLR_BLACK,, PAD_CENTER )

            // LIN VERTICAL DO LADO ESQUERDO DO QUADRO.
            oPrn:Say( nLinEsq * ResLinha, nColEsq * ResColuna,               ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinEsq  += 0.292  // DIZIMA

            // LIN VERTICAL DO MEIO
            oPrn:Say( nLinMeio * ResLinha, nColMeio * ResColuna,             ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinMeio += 0.292

            // LIN VERTICAL DO LADO DIREITO DO QUADRO.
            oPrn:Say( nLinDir * ResLinha, nColDir * ResColuna,               ;
                + "|", oFont,, CLR_BLACK,, PAD_LEFT )

            nLinDir  += 0.292

            nColuna := 7.00 // COLUNA DO PRODUTO

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
               + ( cAlias )->PRODUNOME, oFont,, CLR_BLACK,, PAD_CENTER )

            nLinha  := nLinha += 0.20 // SEGUNDA LINHA EMBAIXO DO NOME
            nColuna := 1.60

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
                      REPLICATE( "_", 82 ), oFont,, CLR_BLACK,, PAD_LEFT )

            nLinha  := nLinha += 0.38  // PROXIMO PRODUTO


            // NOVA PAGINA AQUI // PREENCHEU O PREVIEW, PULA.
            IF nLinha >= 25.00

               nLinha   := 27.50
               nColuna  := 10.50

               ENDPAGE

               PAGE  // NOVA PAGINA, CONTINUACAO

               // LOGO
               nRow        :=   1.50  // Linha
               nCol        := 650.00  // Coluna do Logo.jpg

               @ nRow, nCol PRINT TO oPrn IMAGE "LOGO.JPG" SIZE 650, 650 LASTROW nRow


               // proxima pagina
               ++nPagina

               nLinha  := 1.00
               nColuna := 18.00

               //-> Pagina
               oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,             ;
                  OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ),  ;
                  oFont,, CLR_BLACK,, PAD_CENTER )

               cOrcamento  := [ORDEM DE ENTREGA]

               nLinha  := nLinha += 0.80
               nColuna :=  10.50

               oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,             ;
                  + cOrcamento, oFontSubl,, CLR_BLACK,, PAD_CENTER )

               nLinha  := nLinha += 0.80   // LINHA DA QTDE - OK
               nColuna :=  2.70

               oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,             ;
                  + OemToAnsi( "QTDE " ), oFont,, CLR_BLACK,, PAD_CENTER )

               nLinha  := nLinha -= 0.02
               nColuna :=  6.00

               oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,             ;
                  + "PRODUTOS ", oFont,, CLR_BLACK,, PAD_CENTER )

               // QTDE / PRODUTOS - AQUI
               nLinha  := nLinha += 0.20
               nColuna := 1.60

               oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,             ;
                  REPLICATE( "_", 83 ), oFont,, CLR_BLACK,, PAD_LEFT )

               nLinEsq  :=  6.41  // LINHA VERTICAL DA ESQUERDA DO QUADRO
               nColEsq  :=  1.50

               nLinMeio :=  6.41  //  74 LINHA VERTICAL DA ESQUERDA DO QUADRO
               nColMeio :=  3.30

               nLinDir  :=  6.41  // LINHA VERTICAL DA DIREITA DO QUADRO
               nColDir  := 19.01

               // GIRAR OS PRODUTOS DO NOVO PREVIEW: AQUI.
               nLinha   := nLinha += 0.50

            ENDIF

            SKIP

         ENDDO
 
Saludos.