FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Arrays en FastReport (SOLUCIONADO)
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Arrays en FastReport (SOLUCIONADO)
Posted: 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

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
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Arrays en FastReport
Posted: Tue May 18, 2010 11:45 AM
Hola Armando...

Code (fw): Select all Collapse
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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport
Posted: Tue May 18, 2010 04: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
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Arrays en FastReport
Posted: Tue May 18, 2010 04: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport
Posted: Tue May 18, 2010 05: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport
Posted: Tue May 18, 2010 06: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
Posts: 44
Joined: Mon Nov 12, 2007 01:50 PM
Re: Arrays en FastReport
Posted: 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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport
Posted: 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
Posts: 44
Joined: Mon Nov 12, 2007 01:50 PM
Re: Arrays en FastReport
Posted: Wed May 19, 2010 08: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.

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport
Posted: Wed May 19, 2010 01: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
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Arrays en FastReport (SOLUCIONADO)
Posted: Wed May 19, 2010 02: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
Posts: 1
Joined: Thu Sep 08, 2011 03:55 PM
Re: Arrays en FastReport (SOLUCIONADO)
Posted: Thu Sep 08, 2011 06: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

Continue the discussion