Arrays en FastReport (SOLUCIONADO)

Post Reply
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Arrays en FastReport (SOLUCIONADO)

Post by Armando »

Amigos:

Alguien que me ayude a entender cómo ligar el siguiente array a FastReport, tanto para
diseñar el reporte como para la impresión ?

aRegs[nRegs,nCols]

Saludos
Last edited by Armando on Wed May 19, 2010 2:18 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Arrays en FastReport

Post by jrestojeda »

Hola Armando...

Code: Select all

oFr:SetUserDataSet( "aMiArray","COLUMNA1;COLUMNA2;COLUMNA3;COLUMNA4",;
                     {||np := 1}, ;                   //--> bGoTop
                     {||np := np + 1}, ;              //--> bSkipPlus
                     {||np := np - 1}, ;              //--> bSkipMinus
                     {||np > Len(aMiArray)}, ;        //--> bCheckEOF
                     {|aField|nCol := IIF( aField == "COLUMNA1"   , 1,;
                                      IIF( aField == "COLUMNA2"   , 2,;
                                      IIF( aField == "COLUMNA3"   , 3,;
                                      IIF( aField == "COLUMNA4"   , 4, )))), aMiArray[np, nCol] } )
Espero te sirva...
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport

Post by Armando »

Esteban:

Gracias por tu apoyo pero fijate que no doy pie con bola :oops:
mira tengo un array de la siguiente forma:

aRegs[nReg,nCol]

Imaginemos que tiene 5 registros (nReg = 5) y que cada registro
tiene 4 campos (nCols = 4), cómo debería definir el código para
pasarlo a FastReport y abrir el diseñador que me permita usar el
array para formar el reporte ??

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Arrays en FastReport

Post by jrestojeda »

Armando...
Es así como te lo escribí.
En lo que escribí anteriormente lo que para tí es: "aRegs" para mí es: "aMiArray"
Prueba y dime que resulta.
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport

Post by Armando »

Esteban:

Tienes razón, ya lo logré, es muy sencillo !.

Saludos y muchas gracias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport

Post by Armando »

Esteban:

He logrado incluir el ARRAY en FastReport y he usado sus elementos para
constuir el reporte, mejor dicho la etiqueta, son etiquetas !.

Perooo, no logro que me imprima más de una, lo que necesito es que me
imprima una etiqueta por cada elemento (nRegs) del array.

aRegs[nRegs,nCols]

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
ermatica
Posts: 44
Joined: Mon Nov 12, 2007 1:50 pm
Location: España

Re: Arrays en FastReport

Post by ermatica »

Hola Armando,

En las bandas (Master,Detail, etc.) hay una propiedad: "RowCount" donde puedes ponerle en número que equivale a las veces que quieres visualizar/imprimir dicha la banda, en tu caso la longitud del array. Es decir no asocias la banda a un origen de datos recordset ó DBF.

No se si te puede servir...

Un saludo
Ernesto
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport

Post by Armando »

Ernesto:

Gracias por tu respuesta.

Mira, tengo entendido que en el caso de una DBF o RecordSet la banda se imprime tantas
veces como registros haya en el DBF o RecordSet.

Tambien tengo entendido que en el caso de los Array sucede lo mismo, me parece que no
puedo utilizar el RowCount porque en cada impresión la longitud del Array puede variar, mejor
dicho varía, deduzco que algo me hace falta definir en el formato pero no doy con qué :oops:

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
ermatica
Posts: 44
Joined: Mon Nov 12, 2007 1:50 pm
Location: España

Re: Arrays en FastReport

Post by ermatica »

Hola Armando,

Si la longitud del array varía, puedes ponerlo asi:

nLenArray:=len(aArray)
oFr:SetProperty("MasterData1", "RowCount",nLenArray)

Un saludo,
Ernesto.
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport

Post by Armando »

Ernesto:

Fijate que sí pero no :D

Con tu solución se imprime el primer elemento del array pero tantas veces
como longitud tenga el array.

Deduzco que algo me falta en el diseño, pero no se qué :oops:

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Arrays en FastReport (SOLUCIONADO)

Post by Armando »

Amigos:

Muchas por sus respuestas y sugerencias, este problema ha quedado solucionado.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Carlosrebu
Posts: 1
Joined: Thu Sep 08, 2011 3:55 pm

Re: Arrays en FastReport (SOLUCIONADO)

Post by Carlosrebu »

Alguien sabe de esto necesito hacer una matriz para almacenar un total.
Usamos el "TStringList" de clase como una matriz para el almacenamiento de sumas ". Vamos a almacenar datos numéricos
valores como cadenas. Al mismo tiempo, la primera línea en la lista corresponde al valor de la
primer grupo, etc La variable de valor entero (que vamos a aumentar después de imprimir el siguiente
grupo) se utiliza para calcular el número del grupo.
Por lo tanto, nuestro script se verá como sigue:

esto es lo que estoy haciendo:


procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
if then
Lista.Add(FloatToStr(SUM(<masterQuery."SALDO">,MasterData1)));
Inc(i);

{ if (Copy(<masterQuery."SALDO">, 1, 1) < '10') and (Copy(<masterQuery."SALDO">, 1, 1) > '10')and (chk_pendientes.Checked) then
begin
MasterData1.Visible := True;
GroupFooter1.visible := True;
end
else
begin
MasterData1.Visible := False;
GroupFooter1.visible := False;
end; }
end;


procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);
begin
if Engine.FinalPass then
Memo27.Text := 'Sum: ' + List;
end;

procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
Lista := TStringList.Create;
end;

procedure frxReport1OnStopReport(Sender: TfrxComponent);
begin
Lista.Free;
end;


solo quiero que cuando la suma del saldo sea <> 0 muestre en la banda lo distinto de cero
Post Reply