La nueva apariencia de EasyReport

Re: La nueva apariencia de EasyReport

Postby mastintin » Sat Sep 27, 2014 4:10 pm

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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sat Sep 27, 2014 6:20 pm

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)
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sat Sep 27, 2014 7:11 pm

No veo por qué no pinta correctamente los gets
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sat Sep 27, 2014 8:18 pm

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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sat Sep 27, 2014 8:23 pm

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  Expand view

oDlg := oClone( oER:oFldI:aDialogs[ nD ] )
 


------------------ EDITADO ---------------------------------------------------
Si en la clase TFolderEx cambio la linea 356 ( Version FWH 14.08 ) por

Code: Select all  Expand view

      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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sun Sep 28, 2014 2:22 pm

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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sun Sep 28, 2014 5:17 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sun Sep 28, 2014 5:58 pm

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  Expand view

 oScript:Run( "Script", ::oVRD )
 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sun Sep 28, 2014 6:33 pm

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?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sun Sep 28, 2014 6:42 pm

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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sun Sep 28, 2014 6:53 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sun Sep 28, 2014 6:57 pm

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
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sun Sep 28, 2014 7:26 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby cnavarro » Sun Sep 28, 2014 7:47 pm

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
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6548
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Sun Sep 28, 2014 8:41 pm

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  Expand view

CLASS ERStart
   DATA cRptFile, cMode, cPrinter, cScript, cRDD
 


la DATA cScript es el nombre del archivo a leer
Code: Select all  Expand view

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  Expand view


  ::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  Expand view

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.
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

PreviousNext

Return to EasyReport, EasyDialog y EasyPreview

Who is online

Users browsing this forum: No registered users and 0 guests