Arrays en FastReport (SOLUCIONADO)

Arrays en FastReport (SOLUCIONADO)

Postby Armando » Tue May 18, 2010 10:51 am

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
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport

Postby jrestojeda » Tue May 18, 2010 11:45 am

Hola Armando...

Code: Select all  Expand view  RUN

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
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Arrays en FastReport

Postby Armando » Tue May 18, 2010 4:41 pm

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
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport

Postby jrestojeda » Tue May 18, 2010 4:57 pm

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
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Arrays en FastReport

Postby Armando » Tue May 18, 2010 5:00 pm

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: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport

Postby Armando » Tue May 18, 2010 6:40 pm

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
User avatar
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport

Postby ermatica » Tue May 18, 2010 10:31 pm

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
ermatica
 
Posts: 44
Joined: Mon Nov 12, 2007 1:50 pm
Location: España

Re: Arrays en FastReport

Postby Armando » Tue May 18, 2010 11:26 pm

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
User avatar
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport

Postby ermatica » Wed May 19, 2010 8:21 am

Hola Armando,

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

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

Un saludo,
Ernesto.
ermatica
 
Posts: 44
Joined: Mon Nov 12, 2007 1:50 pm
Location: España

Re: Arrays en FastReport

Postby Armando » Wed May 19, 2010 1:37 pm

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: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport (SOLUCIONADO)

Postby Armando » Wed May 19, 2010 2:19 pm

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
User avatar
Armando
 
Posts: 3230
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Arrays en FastReport (SOLUCIONADO)

Postby Carlosrebu » Thu Sep 08, 2011 6:02 pm

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[i];
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
Carlosrebu
 
Posts: 1
Joined: Thu Sep 08, 2011 3:55 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 42 guests