Page 1 of 2

Los campos no se muestran correctamente

PostPosted: Tue Aug 19, 2014 3:13 pm
by Antonio Linares
Si situamos un texto en el reporte y revisamos sus propiedades, al pulsar en el segundo bitmap que aparece arriba en la caja de diálogo, aparece una caja de diálogo desde la que podemos insertar un campo de una base de datos.

Al pulsar ahi, nos aparecen las bases de datos disponibles y sus campos, y el contenido de los campos está erróneo.

A ver si damos con el problema.

Puede que esté relacionado con el fichero INI, el cual he comprobado que de no existir, ER no lo genera automaticamente de forma satisfactoria. Esto es algo que reportaré en otro post para solucionarlo, y me da que pueda estar relacionado con este error que comento.

Re: Los campos no se muestran correctamente

PostPosted: Tue Aug 19, 2014 7:14 pm
by lucasdebeltran
Hola Antonio,

Los campos de la DBF o bien el campo en ADO se definen mejor desde la aplicación del cliente:


EASYREPORT oVRD NAME ".\REPORT\FACTURA.VRD" ;
PREVIEW lPreview PRINTDIALOG .T. OF oWndMain

IF oVRD:lDialogCancel = .T.
dbSelectArea( nOldArea )
RETURN( .F. )
ENDIF





PRINTAREA 1 OF oVRD ;
ITEMIDS { 500,501 ,;
401,402,403,404 ,;
102,103,104,105,106 ,;
201,202,203 } ;
ITEMVALUES { NIL,NIL ,;
EMPRESAS->NOMBRE2, EMPRESAS->DIRECCION, EMPRESAS->POBLACION , "NIF / CIF: " + EMPRESAS->NIF ,;

END EASYREPORT oVRD


Es decir, en ITEMVALUES se puede especificar el campo de la DBF, una variable, etc.

Re: Los campos no se muestran correctamente

PostPosted: Wed Aug 20, 2014 2:00 pm
by mastintin
Relacionado con este mismo tema si creas un nuevo reporte e insertas un texto y le das al primer botón también casca pues no encuentra las dbf General y User .
Tendría que tener un directorio donde guardar estas dos dbf y si no las encuentra en el crearlas . Las dbf están en examples pero en vez llamarse User.dbf a secas se llama Easyreport user.dbf y lo mismo General.dbf .

Re: Los campos no se muestran correctamente

PostPosted: Wed Aug 20, 2014 2:32 pm
by mastintin
Antonio Linares wrote:Si situamos un texto en el reporte y revisamos sus propiedades, al pulsar en el segundo bitmap que aparece arriba en la caja de diálogo, aparece una caja de diálogo desde la que podemos insertar un campo de una base de datos.

Al pulsar ahi, nos aparecen las bases de datos disponibles y sus campos, y el contenido de los campos está erróneo.


un primer problema :

Code: Select all  Expand view


FUNCTION OpenDatabases()

   ....

     IF FILE( cDbase ) = .T.
       
         IF Upper(cFileExt( cDBase )) = "DBF"   // Faltaba poner Upper
              DBUSEAREA( .T.,, cDbase, "DBTEMP", .T. )
            DBGOTOP()
            FOR x := 1 to DBTEMP->(FCOUNT())

....

 

Re: Los campos no se muestran correctamente

PostPosted: Wed Aug 20, 2014 3:21 pm
by Antonio Linares
Manuel,

Totalmente de acuerdo :-)

Re: Los campos no se muestran correctamente

PostPosted: Wed Aug 20, 2014 7:51 pm
by mastintin
Codigo para la creación de las dos dbfs en directorio Datas sin no existen ya .

Code: Select all  Expand view


function Main()

  .....
  cDateFormat := LOWER(ALLTRIM( GetPvProfString( "General", "DateFormat", "", cGeneralIni )))

   SET DATE FORMAT IIF( EMPTY( cDateFormat ), "dd.mm.yyyy", cDateFormat )

    CreateDatas()  // creación de las dbf con las datas

   //Open Undo database
   OpenUndo()

 .....


FUNCTION CreateDatas()
   LOCAL cPath := GetCurDir()+"\Datas\"

 LOCAL aGeneral := {;
                    { "
NAME"      , "C",    60,    0 },;
                    { "
EXPRESSION", "C",   200,    0 },;
                    { "
INFO"      , "C",   200,    0 } }


 LOCAL aUser := {;
                 { "
NAME"      , "C",   100,    0 },;
                 { "
EXPRESSION", "C",   200,    0 },;
                 { "
INFO"      , "C",   200,    0 } }

  IF ! lIsDir( cPath )
     lMkDir( cPath )
  ENDIF
  IF !File( cPath+"
General.dbf"  )
     DBCreate(cPath+"
General.dbf",aGeneral )
  endif
  IF  !File( cPath+"
User.dbf"  )
     DBCreate(cPath+ "
User.dbf",aUser )
  ENDIF

RETURN nil


FUNCTION GetDBField( oGet, lInsert )
   LOCAL cPath := GetCurDir()+"
\Datas\"    // añadido
   LOCAL oDlg, oLbx1, oLbx2, i, cDbase, cField, oBtn, aTemp, cGeneral, cUser
   LOCAL nShowExpr  := VAL( GetPvProfString( "
General", "Expressions", "0", cDefIni ) )
   LOCAL nShowDBase := VAL( GetPvProfString( "
General", "EditDatabases", "1", cDefIni ) )
   LOCAL cGenExpr   := ALLTRIM( cPath + GetPvProfString( "
General", "GeneralExpressions", "", cDefIni ) )  // cambiado CDefaultPath por Cpath
   LOCAL cUserExpr  := ALLTRIM( cPath + GetPvProfString( "
General", "UserExpressions", "", cDefIni ) )      // cambiado CDefaultPath por Cpath  
.....

Re: Los campos no se muestran correctamente

PostPosted: Wed Aug 20, 2014 8:35 pm
by Antonio Linares
Manuel,

Ya te he dado acceso como administrador al repositorio, si eres tan amable sube directamente los cambios allí, gracias :-)

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 6:11 am
by mastintin
Antonio Linares wrote:Manuel,

Ya te he dado acceso como administrador al repositorio, si eres tan amable sube directamente los cambios allí, gracias :-)


Subidos . :)

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 6:58 am
by Franklin Demont
mastintin wrote:
Antonio Linares wrote:Si situamos un texto en el reporte y revisamos sus propiedades, al pulsar en el segundo bitmap que aparece arriba en la caja de diálogo, aparece una caja de diálogo desde la que podemos insertar un campo de una base de datos.

Al pulsar ahi, nos aparecen las bases de datos disponibles y sus campos, y el contenido de los campos está erróneo.


un primer problema :

Code: Select all  Expand view


FUNCTION OpenDatabases()

   ....

     IF FILE( cDbase ) = .T.
       
         IF Upper(cFileExt( cDBase )) = "DBF"   // Faltaba poner Upper
              DBUSEAREA( .T.,, cDbase, "DBTEMP", .T. )
            DBGOTOP()
            FOR x := 1 to DBTEMP->(FCOUNT())

....

 


Also :
Code: Select all  Expand view

   FOR i := 1 TO 12

      ....

      IF FILE( VRD_LF2SF( cDBName ) )
         ...
         AADD( ::aDBType      , UPPER(cFileExt( cDatabase ) ) )
         //AADD( ::aDBType      , cFileExt( cDatabase ) )
         ....
      ENDIF

   NEXT


 


Frank

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 12:36 pm
by Antonio Linares
Frank,

Could you please check if your changes are already in the ER repository ?

Manuel (mastintin) has pushed several changes and I had no time yet to review them, so please check if your changes are still needed, thanks

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 1:23 pm
by Franklin Demont
Antonio Linares wrote:Frank,

Could you please check if your changes are already in the ER repository ?

Manuel (mastintin) has pushed several changes and I had no time yet to review them, so please check if your changes are still needed, thanks


No , it isn't. Without this change the program fail's code as ::aDBType[ nAlias ] = "DBF"

I have also problems with prhst.h

When this file is called from cfunc.c , last line (1079) must be : #endif //_PRSHT_H_

When called as (building with ereport.mak) :
b:\bcc582\bin\brc32.exe -r -Ib:\bcc582\include ereport.rc
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.

Error prsht.h 1079 1: '#endif' before '#if'

Changing this line in /* #endif //_PRSHT_H_ */ solves the problem.

Frank

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 1:28 pm
by Antonio Linares
Frank,

In which PRG should I make the change ? thanks

Regarding the prsht.h problem, this is the right fix:

viewtopic.php?p=147360#p147360

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 1:42 pm
by Franklin Demont
Antonio Linares wrote:Frank,

In which PRG should I make the change ? thanks

Regarding the prsht.h problem, this is the right fix:

viewtopic.php?p=147360#p147360


METHOD OpenDatabases() CLASS VRD

prsht.h solved as described.

Frank

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 1:57 pm
by Antonio Linares
ok, in vrd.prg

which source line number please ? :-)

Re: Los campos no se muestran correctamente

PostPosted: Thu Aug 21, 2014 2:09 pm
by Franklin Demont
Antonio Linares wrote:ok, in vrd.prg

which source line number please ? :-)



+/- 2700 , i added mine own defines

Frank