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

Post Reply
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post 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.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post 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.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post by carlos vargas »

Image
Image
Image
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post by carlos vargas »

Code: Select all | Expand

     :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)
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post by carlos vargas »

Code: Select all | Expand

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)
User avatar
Compuin
Posts: 1253
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada
Has thanked: 10 times
Been thanked: 3 times

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

Post by Compuin »

Super!!!
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post 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...
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Post Reply