Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-01

estructura para guardar datos de dif tipo

5 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paola Bruccoleri

Hola todos..

necesito ir guardando en alg�n lugar ciertos datos para luego procesarlos. Son los datos para imprimir X cant de comprobantes, q de antemano no se cu�ntos comprobantes son son.

Hab�a pensado en definir un tipo record:

   TComprobante = record
     tipocomp: string;
     fecha: TDate;
     idpropietario : integer;
     nombre : string;
     direccion : string;
     identificacion : string;
     importe : double;
     iva: double;
     detalle: string;
   end;

y varias variables de ese tipo.
retencion: TComprobante;
....

Ahora.. puede ser que algunas variables no se inicialicen porque no hay comprobante asociado.

La forma que tengo de saber si la variable record es vac�a es preguntando por cq de los campos? o sea:
if retencion.tipocomp ''
imprimir comprobante...

�se les ocurre otra forma mejor de hacer esto?

Si usara otro lenguaje (harbour x ej), definir�a un array multidimensional din�mico... en 1 rengl�n tengo todo pronto.. pero ac� veo que el array debe tener todos los elementos del mismo tipo, y no es el caso.

muchas gracias!

Reply by email

German
to Paola Bruccoleri

El 05/01/2013 05:07 p.m., Paola Bruccoleri escribi�:

Show quoted text 41 lines
Hola todos.. necesito ir guardando en alg�n lugar ciertos datos para luego procesarlos. Son los datos para imprimir X cant de comprobantes, q de antemano no se cu�ntos comprobantes son son. Hab�a pensado en definir un tipo record: TComprobante = record tipocomp: string; fecha: TDate; idpropietario : integer; nombre : string; direccion : string; identificacion : string; importe : double; iva: double; detalle: string; end; y varias variables de ese tipo. retencion: TComprobante; .... Ahora.. puede ser que algunas variables no se inicialicen porque no hay comprobante asociado. La forma que tengo de saber si la variable record es vac�a es preguntando por cq de los campos? o sea: if retencion.tipocomp '' imprimir comprobante... �se les ocurre otra forma mejor de hacer esto? Si usara otro lenguaje (harbour x ej), definir�a un array multidimensional din�mico... en 1 rengl�n tengo todo pronto.. pero ac� veo que el array debe tener todos los elementos del mismo tipo, y no es el caso. muchas gracias!

Hola
Aca podes hacer lo mismo, un array dinamico de registros, vas agregando registros uno a uno y luego solo recorres el array desde el primer hasta el ultimo elemento.

Por ejemplo, podrias definirias tu arraglo como: aComprobantes: array of
TComprobante;
le das tama�o 0 al principio -> setlength(aComprobantes, 0);
y luego vas agregando elementos: setlength(aComprobantes,
length(aComprobantes)+1);
y vas cargando datos - > aComprobantes[length(aComprobantes)-1].fecha :=
date();

luego para recorrer el array podes usar un for de 0 a length(aComprobante)-1

Espero se entienda mi explicacion.

Saludos!

Show quoted text 6 lines
_______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130105/498a0669/attachment.html>

Reply by email

Maxi
to Paola Bruccoleri: Hola todos.. necesito ir guardando en alg�n lugar ciertos datos para luego procesarlos.…

El d�a 5 de enero de 2013 17:07, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�:

Show quoted text 45 lines
Hola todos.. necesito ir guardando en alg�n lugar ciertos datos para luego procesarlos. Son los datos para imprimir X cant de comprobantes, q de antemano no se cu�ntos comprobantes son son. Hab�a pensado en definir un tipo record: TComprobante = record tipocomp: string; fecha: TDate; idpropietario : integer; nombre : string; direccion : string; identificacion : string; importe : double; iva: double; detalle: string; end; y varias variables de ese tipo. retencion: TComprobante; .... Ahora.. puede ser que algunas variables no se inicialicen porque no hay comprobante asociado. La forma que tengo de saber si la variable record es vac�a es preguntando por cq de los campos? o sea: if retencion.tipocomp '' imprimir comprobante... �se les ocurre otra forma mejor de hacer esto? Si usara otro lenguaje (harbour x ej), definir�a un array multidimensional din�mico... en 1 rengl�n tengo todo pronto.. pero ac� veo que el array debe tener todos los elementos del mismo tipo, y no es el caso. muchas gracias! _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

si son registros ya almacedados puedes guardar simplemente el id de cada registro en un array y luego haces un select * from facturas where id in (1,2,3,4......999) con los valores del arrary que cargarias a mano, y recorres la tabla con tu reporteador favorito.

El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://domonetic.com/blog

Reply by email

Martin Gomez
to Maxi

Hola Paola,
En Delphi siempre lo resolv� con el TMemoryDataset de JVCL. Creo que Lazarus incluye uno tambi�n.

No es la soluci�n optima en cuanto a velocidad o ahorro de recursos, pero te permite manejar los datos temporales como si fueran una tabla en disco, con lo que la aplicaci�n es mas f�cil de mantener a la larga.

2013/1/6 Maxi <maximiliano.duarte en gmail.com>

Show quoted text 71 lines
El d�a 5 de enero de 2013 17:07, Paola Bruccoleri <pbruccoleri en adinet.com.uy> escribi�: > Hola todos.. > > necesito ir guardando en alg�n lugar ciertos datos para luego procesarlos. > Son los datos para imprimir X cant de comprobantes, q de antemano no se > cu�ntos comprobantes son son. > > Hab�a pensado en definir un tipo record: > > TComprobante = record > tipocomp: string; > fecha: TDate; > idpropietario : integer; > nombre : string; > direccion : string; > identificacion : string; > importe : double; > iva: double; > detalle: string; > end; > > y varias variables de ese tipo. > retencion: TComprobante; > .... > > Ahora.. puede ser que algunas variables no se inicialicen porque no hay > comprobante asociado. > > La forma que tengo de saber si la variable record es vac�a es preguntando > por cq de los campos? o sea: > if retencion.tipocomp '' > imprimir comprobante... > > �se les ocurre otra forma mejor de hacer esto? > > Si usara otro lenguaje (harbour x ej), definir�a un array multidimensional > din�mico... en 1 rengl�n tengo todo pronto.. pero ac� veo que el array debe > tener todos los elementos del mismo tipo, y no es el caso. > > muchas gracias! > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es si son registros ya almacedados puedes guardar simplemente el id de cada registro en un array y luego haces un select * from facturas where id in (1,2,3,4......999) con los valores del arrary que cargarias a mano, y recorres la tabla con tu reporteador favorito. -- El que pregunta aprende, y el que contesta aprende a responder. No a la obsolecencia programada: http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html Linux User #495070 http://domonetic.com/blog _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130106/1bb0b44d/attachment.html>

Reply by email

Paola Bruccoleri
to Martin Gomez

El 06/01/2013 05:42 p.m., Martin Gomez escribi�:

Show quoted text 8 lines
Hola Paola, En Delphi siempre lo resolv� con el TMemoryDataset de JVCL. Creo que Lazarus incluye uno tambi�n. No es la soluci�n optima en cuanto a velocidad o ahorro de recursos, pero te permite manejar los datos temporales como si fueran una tabla en disco, con lo que la aplicaci�n es mas f�cil de mantener a la larga.

Hola Mart�n..
si, en las rx est� el rxmemorydata que supongo ser� similar.. lo estoy usando para guardar los renglones de otro comprobante.. veremos que sale de todo esto! :)

muchas gracias!
chauuuuu

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130106/0b8b8e66/attachment.html>

Reply by email