FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ayuda con fastreport y page con texto de tamaño variable
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 06:19 PM

Hola, estoy solicitando ayuda para la creacion de un reporte en fastreport, el caso es que deseo hacer lo siguiente:
en una hoja, imprimo los datos de un cliente, en una segunda hoja una tabla la cual esta conteniada en un array de logitud fija por lo cual nunca pasa mas alla de esa hoja que lo contiene, y ahora el problema, en una tercer hoja deseo poner un texto con longitud variable (en este caso es un texto "contrato" el cual leo de un archivo txt a una variable, ahi reemplaso cierto valores), ese texto lo pongo en un campo pero al visualizar esa tercer hoja (que deberian ser cuatro para poder contener todo) aun cuando el texto sobrepasa esa hoja, el texto lo recorta.

no se si me he dado a entender, el caso es que deseo que el texto de esa tercer hoja pase a una carta hoja cuando sea necesario.

agradesco cualquier ayuda.

gracias.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 09:20 PM

Para que quede para referencias futuras...

resuelto, aunque con maña, como los detail band son los unicos que son capaces de crar tantas paginas como sea necesario....
tome el texto, lo separe en párrafos con la funcion hb_atokens obtengo un arreglo unidimensional, luego lo paso a un arrego de dos dimensiones, luego en fastreport
defino un dataset con el dichoso arreglo, y listo. se define ciertas propiedades en el campo que muestra el elemento tan alto como sea necesario.

tantas paginas como sea necesario.

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 09:21 PM


Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 09:22 PM
Code (fw): Select all Collapse
      :SetUserDataSet( "TBL_CONT",;         /*alias*/
            "CONTENIDO",;                  /*fields*/
            { || nRow := 1            },;  /*bGoTop*/
            { || nRow := nRow+1       },;  /*bSkipPlus*/
            { || nRow := nRow-1       },;  /*bSkipMinus*/
            { || nRow > Len( aTmp )   },;  /*bEof*/
            { || aTmp[ nRow, 1 ]      } )  /*bGet*/
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 09:23 PM
Code (fw): Select all Collapse
FUNCTION LeerContrato()
   LOCAL cTexto := ""
   LOCAL aParrafos, aRet
   LOCAL cFileName := "CONTRATO.TXT", cFileCont := ""

   /*Leer archivo de contrato*/
   IF !File( cFileName )
      MsgInfo( "Archivo de contrato no existe!", "Alerta" )
      RETURN { { "N/D" } }
   ELSE
      cFileCont := MemoRead( cFileName )
   ENDIF

   /*EJEMPLO DE reemplaza valores*/
   aCambios  := { "<<DEUDOR>>"        => RTrim( cClieNom ), ;
                  "<<CEDULA>>"        => Transform( RTrim( cClieCed ), "@R 999-999999-9999A" ), ;
                  "<<CIUDAD>>"        => "MANAGUA", ;
                  "<<DOMICILIO>>"     => RTrim( cDirDomicilio ), ;
                  "<<ESTADOCIVIL>>"   => IIf( cClieEC == "C","Casado", "Soltero"), ;
                  "<<MONTO_PRE>>"     => Money2FR( hPres[ "MONTO_TOT" ] ), ;
                  "<<MONTO_PRE_TXT>>" => NtoL( hPres[ "MONTO_TOT" ] ), ;
                  "<<CUOTAS_TXT>>"    => NtoL( hPres[ "CUOTAS" ], NIL, "" ), ;
                  "<<MONTO_CUO>>"     => Money2FR( hPres[ "MONTO_CUO" ] ), ;
                  "<<MONTO_CUO_TXT>>" => NtoL( hPres[ "MONTO_CUO" ] ), ;
                  "<<FECHA_INI>>"     => Date2LStr( hPres[ "FECHA_INI" ] ), ;
                  "<<FECHA_FIN>>"     => Date2LStr( hPres[ "FECHA_FIN" ] )  }

   cFileCont := hb_StrReplace( cFileCont, aCambios )

   /*si el archivo de contrato tiene contenido*/
   IF Len(cFileCont)> 0
      aRet := {}
      /*lee los parrafos y los pasa a un arreglo*/
      aParrafos := hb_aTokens( cFileCont, hb_EOL() )
      /*pasa el arreglo de parrafos a un arreglo de dos dimensiones*/
      FOR x := 1 TO Len( aParrafos )
         AAdd( aRet, { aParrafos[ x ] } )
      NEXT
   ENDIF

   cFileCont := NIL
   aParrafos := NIL

RETURN aRet
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Thu Mar 03, 2022 10:31 PM

Super!!!

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: ayuda con fastreport y page con texto de tamaño variable
Posted: Fri Mar 04, 2022 04:02 AM
ejemplo de una parrafo...
fastreport, reconoce algunos tag basicos de html, como <b></b> para bold.


<b>SEGUNDA: (DESEMBOLSO): El ACREEDOR</b> desembolsa la cantidad de <b><<MONTO_PRE>> (<<MONTO_PRE_TXT>>)</b>, a favor de <b>EL DEUDOR</b>, momento en el cual recibirá los siguientes documentos: una copia del contrato debidamente firmada...
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion