Page 1 of 1

ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 6:19 pm
by carlos vargas
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.

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 9:20 pm
by carlos vargas
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.

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 9:21 pm
by carlos vargas
Image
Image
Image

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 9:22 pm
by carlos vargas
Code: Select all  Expand view
     :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*/
 

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 9:23 pm
by carlos vargas
Code: Select all  Expand view
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
 

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Thu Mar 03, 2022 10:31 pm
by Compuin
Super!!!

Re: ayuda con fastreport y page con texto de tamaño variable

PostPosted: Fri Mar 04, 2022 4:02 am
by carlos vargas
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...