La nueva apariencia de EasyReport

User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

Me parece perfecto lo de añadir el gris setup en el mismo dialogo .
He subido el código de inicial de tscript ...
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

mastintin wrote:Me parece perfecto lo de añadir el gris setup en el mismo dialogo .
He subido el código de inicial de tscript ...
Lo del Check Code (probado y funcionando)
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

No veo por qué no pinta correctamente los gets
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

cnavarro wrote:No veo por qué no pinta correctamente los gets
Yo estuve toda una tarde buscando soluciones , la conclusión a la que llegue es que si cambias de pestaña el ell folder cuando vuelves a el ya se pinta bien .
El problema radica en que creamos primero el folder y lo visualizamos ( al ser un ventana no modal ) y luego le colocamos los controles con lo que no se hace un repintado completo .
Esto no se soluciona con sysrefresh() pues no tenemos nada pendiente de pintar , ni con un refresh() ya que no tenemos nada nuevo que pintar .
Lo suyo es y solo con el folder activo ( los otros se repintan al selecionarlos ) , ocultarlo con un hide() mientras se crean los controles , así evitamos parpadeos y demás efectos raros y una vez tenemos pintados los contralos un show() para enseñal el folder completo -
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

Manuel
Efectivamente yo he probado con las posibles soluciones que indicas, ademas de :Default(), Refresh de los dialogos, del Folder, etc en el On Init de la ventana sin ningun resultado.
Pero en el dialogo de Report Setting aunque te cambies de pestaña, sigue pintandolo mal

-------------------- EDITADO ----------------------
En el Folder derecho, lo "solucione" cambiando el orden de las pestañas y funciona, sin embargo, en el izquierdo aunque ponga la OPTION 2, al ir a la primera sigue sin pintarlo correctamente

------------------ EDITADO ------------------------------
Las pruebas parecen indicarme que sólo ocurre con los gets, y que los demás controles se pintan correctamente (sigo con las pruebas)

----------------- EDITADO -------------------------------
Cambiando el FolderEx por Folder, funciona correctamente

----------------- EDITADO ---------------------------------------
Al hacer pruebas me he encontrado que los dialogos de otras pestañas se siguen viendo en el dialogo actual ( de fondo )

Por ejemplo:
Prueba a cambiar en la linea 2844 de EReport.Prg
oDlg := oER:oFldI:aDialogs[ nD ]
por

Code: Select all

oDlg := oClone( oER:oFldI:aDialogs[ nD ] )
 
------------------ EDITADO ---------------------------------------------------
Si en la clase TFolderEx cambio la linea 356 ( Version FWH 14.08 ) por

Code: Select all

      DEFINE DIALOG oDlg OF Self STYLE nOR( WS_CHILD , 0 ); //If( ! ::oWnd:IsKindOf( "TDIALOG"), WS_CLIPCHILDREN, 0 ) );
 
Los gets se muestran correctamente, aunque el combobox sigue sin aparecer

------------------ EDITADO ---------------------------------------------------
Pero en este caso, al cambiar de pestaña, el combo si aparece
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

Creo que hasta se corrigen los problemas con la clase Folderex , a pesar de quedar muy aparente , deberíamos volver a la clase Folder normal ademas de no dar problemas cosméticos nos proporciona mas compatibilidad con los que tengan versiones viejas de fwh
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

mastintin wrote:Creo que hasta se corrigen los problemas con la clase Folderex , a pesar de quedar muy aparente , deberíamos volver a la clase Folder normal ademas de no dar problemas cosméticos nos proporciona mas compatibilidad con los que tengan versiones viejas de fwh
Manuel, he creado una clase derivada de TFolderEx que "corrige", de momento, el problema (solo contiene el metodo New, y el FolderEx lo ponemos en un TPanel)
Si te parece, lo subo, lo pruebas y comentamos.
La compatibilidad con versiones anteriores no es problema
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

Cristobal he estado haciendo unas modificaciones en TErscrit , para arreglar algunas cosas que faltaban , pero me encuentro con este código y no se como se usan estos paramentos . ¿ Alguien puede darnos algo de luz ?

Code: Select all

 oScript:Run( "Script", ::oVRD )
 
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

Manuel, el código ASCII de los dos puntos ( : ) es el 58
No se si te servirá de algo
Aunque creo que lo preguntas es en relacion al contenido de la llamada al método, no?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

Eso fue un error del copia y pega ... :shock: :?
Yo me refería a que nuestro Metodo Run no tiene parámetros y el que usaba el Tscript de OZS parece que si en concreto
:oScript:Run( "Script", ::oVRD ) pasa un literal "Script" y el objeto EASYREPORT .
Seria bueno saber como se usaban esos parámetros para recreado en nuestra clase
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

mastintin wrote:Eso fue un error del copia y pega ... :shock: :?
Yo me refería a que nuestro Metodo Run no tiene parámetros y el que usaba el Tscript de OZS parece que si en concreto
:oScript:Run( "Script", ::oVRD ) pasa un literal "Script" y el objeto EASYREPORT .
Seria bueno saber como se usaban esos parámetros para recreado en nuestra clase
Ya me he dado cuenta después de contestarte :shock: :cry:
Lo mismo que tú es lo que he estado buscando en mi baul de los recuerdos
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

Me autorespondo ,indagando un poco por los ejemplos originales de easyreport se encuentra un archivo : ERStartScript1.prg ... esto me ilumino :D . El texto "script" es el nombre de la función a ejecutar , e ::ovrd es el parámetro a pasar ...
osea desde run se le pasa la función y los parámetros y esta ejecuta pudiendo así controlar la ejecución desde un archivo externo .
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

Muy bien Manuel, genial

------------------ EDITADO --------------------------
Por cierto, no veo donde se le indica el .prg (se supone que es externo, no?) que ha de ejecutar
He mirado los ficheros de definiciones y areas y no lo veo :D
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Post by cnavarro »

cnavarro wrote:
mastintin wrote:Creo que hasta se corrigen los problemas con la clase Folderex , a pesar de quedar muy aparente , deberíamos volver a la clase Folder normal ademas de no dar problemas cosméticos nos proporciona mas compatibilidad con los que tengan versiones viejas de fwh
Manuel, he creado una clase derivada de TFolderEx que "corrige", de momento, el problema (solo contiene el metodo New, y el FolderEx lo ponemos en un TPanel)
Si te parece, lo subo, lo pruebas y comentamos.
La compatibilidad con versiones anteriores no es problema
Manuel, lo he subido
Hay que incluir el nuevo fichero con la clase en el eReport.mak
No lo modifico en el repositorio porque no quiero modificar los paths que cada uno tenga definidos
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
mastintin
Posts: 1502
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Post by mastintin »

cnavarro wrote: Por cierto, no veo donde se le indica el .prg (se supone que es externo, no?) que ha de ejecutar
He mirado los ficheros de definiciones y areas y no lo veo :D

Code: Select all

CLASS ERStart
   DATA cRptFile, cMode, cPrinter, cScript, cRDD
 
la DATA cScript es el nombre del archivo a leer

Code: Select all

METHOD RunScript() CLASS ERStart
   LOCAL oScript := TErScript():New( MEMOREAD( ::cScript ) )   //leemos archivo 

   oScript:lPreProcess := .T.
   oScript:Compile()

   IF !EMPTY( oScript:cError )
      MsgStop( "Error in script:" + CRLF + CRLF + ALLTRIM( oScript:cError ), "Error" )
   ELSE
      oScript:Run( "Script", ::oVRD )
   ENDIF

RETURN .T.
 
Ahora lo del run ... no se realmente como funcionaba el original Tscript , me da que funcionaba por macrosustitución o algo similar ... nada que ver con el sistema que usamos , indagando un poco lo que mas se aproxima para poder realizar un código similar seria esto :

Code: Select all


  ::oHbr := hb_compileFromBuf( PRG, "harbour", "-n", "-w3", "-es2", "-q0" )
  HANDLE_HRB := hb_hrbload( ::oHbr )
  HANDLE_FUN := HB_HRBGETFUNSYM( HANDLE_HRB, cFunction )
  HANDLE_FUN:EVAL()
Todo este código está sacado de la lista de Harbour y esta poco documentado , ademas creo que con xHarbour no funciona ( no lo se a fecha de hoy )
El problema es que no veo como pasarle parámetros a la función ...
En el metodo run que tenemos ahora si podríamos pasarle parámetros sin problemas , tendríamos que desestimar la posibilidad de tener en el archivo externo varias funciones ( solo una función por archivo ) ...

Code: Select all

METHOD Run( p1,p2,p3,p4 ) CLASS TErScript
   local cResult, bOldError
   FReOpen_Stderr( "comp.log", "w" )
   ::compile()
   ::cError := MemoRead( "comp.log" )
   if ! Empty( ::oHrb )
      BEGIN SEQUENCE
      bOldError = ErrorBlock( { | o | DoBreak( o ) } )
      hb_HrbRun( ::oHrb,p1,p2p,p3,p4 )  // pasamos parametros al código 
      END SEQUENCE
      ErrorBlock( bOldError )
   endif

RETURN nil
 
Last edited by mastintin on Sun Sep 28, 2014 8:44 pm, edited 1 time in total.
Post Reply