Page 12 of 16

Re: La nueva apariencia de EasyReport

PostPosted: Wed Oct 08, 2014 10:13 am
by mastintin
Cuando carga el programa , ningún control tiene foco , una vez selecionado uno , ya queda con foco .
No va ninguna de los dos .

aWnd[ nArea ]:bLClicked = {|nRow,nCol,nFlags| DeactivateItem(), ;
StartSelection( nRow, nCol, aWnd[ nArea ] ), ;
nAktArea := aWnd[ nArea ]:nArea,;
DeactivateItem(), ;
aWnd[ nArea ]:SetFocus() }

aWnd[ nArea ]:bLClicked = {|nRow,nCol,nFlags| DeactivateItem(), ;
StartSelection( nRow, nCol, aWnd[ nArea ] ), ;
nAktArea := aWnd[ nArea ]:nArea,;
DeactivateItem(), ;
::oMainWnd:SetFocus()}


---------------------------edito -----------------------------

aun mas :

aWnd[ nArea ]:bLClicked = {|nRow,nCol,nFlags| aWnd[ nArea ]:SetFocus() }

oItem:bGotFocus := {|| MSGinfo( i ) }

con este codigo si seleciono el item ( salta el msginfo ) , luego click en el area no pasa nada ( porque el item ya tiene el foco ) , cambio de area y vuelvo haciendo click en el area ,salta msginfo ( coge el foco el item ) ....

Re: La nueva apariencia de EasyReport

PostPosted: Wed Oct 08, 2014 7:57 pm
by Antonio Linares
Y si deshabilitas los controles y asi no cogen foco...

Re: La nueva apariencia de EasyReport

PostPosted: Wed Oct 08, 2014 9:03 pm
by mastintin
Antonio Linares wrote:Y si deshabilitas los controles y asi no cogen foco...

He implementado la solución que propones y vale . :D
Crea un pequeño parpadeo en el say que indica el control activo dentro del folder del inspector , pues parece que el ítem coge el foco por un instante y luego lo pierde al deshabilitarlo .

Re: La nueva apariencia de EasyReport

PostPosted: Thu Oct 09, 2014 8:17 am
by mastintin
Cristobal , en la function ElementActions , oItem:bLClicked nunca se ejecuta porque el elemento esta en lDrag:= .t. Debemos tenerlo en cuenta y no sé si quitar ese código .
Por otro lado la asignación de todos estos codeblock ¿ no sería mas correcta hacerla en ShowItem que aquí ? .
Espero tu opinión.

Re: La nueva apariencia de EasyReport

PostPosted: Thu Oct 09, 2014 4:26 pm
by cnavarro
Manuel, yo casi había conseguido solucionar el bug de otra manera, pero ya te digo que "casi"
Estoy investigando por qué en la versión original no pasaba esto y aquí si
En cuanto a lo que me comentas, ahora después miraré lo que comentas y te digo algo

Re: La nueva apariencia de EasyReport

PostPosted: Thu Oct 09, 2014 4:54 pm
by mastintin
cnavarro wrote:Estoy investigando por qué en la versión original no pasaba esto y aquí si

He instalado el ereport original para comprobar ,he usado el instalador que esta en el repositorio y si que pasa lo mismo ...

Re: La nueva apariencia de EasyReport

PostPosted: Thu Oct 09, 2014 5:16 pm
by cnavarro
Yo he instalado una version que venia con FW

Re: La nueva apariencia de EasyReport

PostPosted: Fri Oct 10, 2014 7:41 am
by mastintin
cnavarro wrote:Yo he instalado una version que venia con FW

Respecto a esta instalación....
Como para mi es un incordio el tema de la versión demo y los segundos de espera , he realizado un pequeño programa que genera y registra la clave para que quede como versión completa.
todo el mundo puede hacerlo ya que contamos con el código . pero ¿ Facilitamos el programa y su código para el que lo necesite ? , no se como estará este tema a nivel licencias y esas cosas que yo no entiendo demasiado ... ¿ que hacemos ? .

Re: La nueva apariencia de EasyReport

PostPosted: Fri Oct 10, 2014 9:48 am
by cnavarro
mastintin wrote:
cnavarro wrote:Yo he instalado una version que venia con FW

Respecto a esta instalación....
Como para mi es un incordio el tema de la versión demo y los segundos de espera , he realizado un pequeño programa que genera y registra la clave para que quede como versión completa.
todo el mundo puede hacerlo ya que contamos con el código . pero ¿ Facilitamos el programa y su código para el que lo necesite ? , no se como estará este tema a nivel licencias y esas cosas que yo no entiendo demasiado ... ¿ que hacemos ? .


Buena pregunta

Re: La nueva apariencia de EasyReport

PostPosted: Fri Oct 10, 2014 4:54 pm
by lucasdebeltran
Hola,

No creo que haya ningún problema porque Timm entrego todo el código y desde su web incluso remite a estos foros.

Re: La nueva apariencia de EasyReport

PostPosted: Fri Oct 10, 2014 5:28 pm
by cnavarro
Yo entiendo lo mismo que expone Lucas
No deberia haber ningun problema

Re: La nueva apariencia de EasyReport

PostPosted: Fri Oct 10, 2014 7:36 pm
by mastintin
Yo creo lo mismo , esperemos la opinión de Antonio y si es conforme , subo el código.

Re: La nueva apariencia de EasyReport

PostPosted: Sat Oct 11, 2014 9:29 am
by mastintin
Lo he pensado y dado que el código es publico , si lo que hago es subir el código aquí para cada cual lo compile , lo único que hacemos es facultar la recopilación del código necesario ,así que aquí teneos el código ... lo copiáis lo metéis en un archivo ( yo lo he llamado ercode.prg ) , colocáis el archivo en simples de fwh y lo compiláis con vuestro bat favorito . Si alguno usa xharbour tendrá que cambiar hb_curdrive() por curdrive() .
Code: Select all  Expand view

#include "FiveWin.ch"

function Main()

   local cGeneralIni:= "c:\vrd.ini" +space(20)
   local oDlg, oBtn,oGet
 
   DEFINE DIALOG oDlg TiTle "Registrar EReport"

   @ 2,  2 GET oget VAR cGeneralIni ACTION SetinGet( oGet )

   @ 3,  4 BUTTON oBtn PROMPT "Registrar" ACTION Registrar( alltrim( cGeneralIni ) )

   @ 3, 15 BUTTON "Salir" ACTION oDlg:End() CANCEL

   ACTIVATE DIALOG oDlg CENTERED
     
return  nil

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

Function Registrar( cGeneralIni )
local cSerial, cRegist, lOk
local cDrive := hb_CurDrive( cGeneralIni )+":\"


 cSerial := alltrim(str(GetSerialHD( cDrive ) ))
 cRegist := GetRegistKey( cSerial )
 lok := CheckRegist( cSerial, cRegist, cGeneralIni )

if lok
   msginfo("
registro realizado")
else
   msginfo("
registro no realizado")
endif

Return nil

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

Function SetinGet( oget )
local cfile:= cGetFile( oget:cText )
  if !empty(cFile)
     oget:cText(cFile)
  endif

Return nil

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

FUNCTION GetSerialHD( cDrive )

   LOCAL cLabel      := Space(32)
   LOCAL cFileSystem := Space(32)
   LOCAL nSerial     := 0
   LOCAL nMaxComp    := 0
   LOCAL nFlags      := 0

   DEFAULT cDrive := "
C:\"

   GetVolInfo( cDrive, @cLabel, Len( cLabel ), @nSerial, @nMaxComp, @nFlags, ;
               @cFileSystem, Len( cFileSystem ) )

RETURN nSerial

DLL32 Function GetVolInfo( sDrive          AS STRING, ;
                           sVolName        AS STRING, ;
                           lVolSize        AS LONG  , ;
                           @lVolSerial     AS PTR   , ;
                           @lMaxCompLength AS PTR   , ;
                           @lFileSystFlags AS PTR   , ;
                           @sFileSystName  AS STRING, ;
                           lFileSystSize   AS LONG ) ;
               AS LONG PASCAL ;
               FROM "
GetVolumeInformationA" ;
               LIB  "
kernel32.dll"
               

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

FUNCTION CheckRegist( cSerial, cRegist, cGeneralIni )

   LOCAL lOK := .F.
   
   if !file( cGeneralIni )
       msginfo("
archivo ini no encontrado")
       return .f.
   endif

   IF ALLTRIM( cRegist ) == GetRegistKey( cSerial )
      WritePProString( "
General", "RegistKey", ALLTRIM( cRegist ) , cGeneralIni )
      lOK := .T.
   ENDIF

RETURN ( lOK )


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

FUNCTION GetRegistKey( cSerial )

   LOCAL cReg := ALLTRIM( STR( INT( ( VAL( ALLTRIM( cSerial ) ) * 167 ) * 4.12344 ), 30 ) )

   cReg := SUBSTR( cReg + ALLTRIM( STR( 47348147489715610655, 30 ) ), 1, 12 )

   cReg := CHR( VAL( SUBSTR( cReg, 8, 1 ) ) + 74 ) + ;
           CHR( VAL( SUBSTR( cReg, 4, 1 ) ) + 68 ) + ;
           CHR( VAL( SUBSTR( cReg, 2, 1 ) ) + 70 ) + ;
           CHR( VAL( SUBSTR( cReg, 6, 1 ) ) + 66 ) + ;
           SUBSTR( cReg, 5 )

RETURN ( cReg )      



Re: La nueva apariencia de EasyReport

PostPosted: Sat Oct 11, 2014 9:34 am
by cnavarro
Un trabajo magnifico Manuel

Re: La nueva apariencia de EasyReport

PostPosted: Sat Oct 11, 2014 12:54 pm
by cnavarro
mastintin wrote:
cnavarro wrote:Estoy investigando por qué en la versión original no pasaba esto y aquí si

He instalado el ereport original para comprobar ,he usado el instalador que esta en el repositorio y si que pasa lo mismo ...


Ahora, con la clave introducida he comprobado que marcas un item, te vas a otra area, vuelves y el item sigue marcada (igual que en esta version)