Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   factura electronica (https://www.clubdelphi.com/foros/showthread.php?t=64457)

cmm07 02-04-2009 14:40:11

factura electronica
 
Hola amigos, como estan?, espero que bien, bueno se me presentó un problema, tengo una bd con los siguientes terminos:

Cod.Producto | Nombre Producto | Cantidad | Precio | % Dec | TOTAL
11111111111----Televisor-------------2------120000----20------X
22222222222----Delphi----------------4------ 650000---12------ X

¿Como puedo sacar el total de cada elemento? en un DBGrid?, no estoy usando ningún motor de bd, es una tabla virtual con ClientDataSet1, porque estoy haciendo una prueba.


ayudame porfavor, gracias.

diegofhernando 02-04-2009 15:06:03

Bien, si te entiendo bien lo que buscas es encontrar el resultado de cantidad * precio en una columna adicional... si no es asi disculpame que me acabo de levantar :D.

Asumiendo que es como lo imagino, deberías crear un campo "Aggregate" en tu CDS, para hacerlo, le das doble click al CDS y en el editor de campos un click derecho para seleccionar la opción "New field", seguidamente introduces un nombre para el campo, marcas la opción "Aggregate" y presionas "OK".

Luego que tienes tu nuevo campo, lo seleccionas desde el editor de campos y si te fijas en el inspector de objetos de delphi, tiene una propiedad llamada "Expression", alli introduces la función que te permitirá generar el resultado que buscas "cantidad * precio", por supuesto sin las comillas y con los nombres de los campos de tu CDS :p.

Para terminar, asegurate de poner en "True" la propiedad "Active" de tu nuevo campo y además de hacer lo mismo en la propiedad "AggregatesActive" de tu CDS.

Salu2 :cool:

cmm07 02-04-2009 16:10:02

hola, pues ya hice eso, el campo que creé se llama TOTAL, pero en ese campo me sale el resultado de todos los campos:

Cantidad Precio TOTAL
2-----------30--------180
1-----------20--------180
2-----------50--------180

viste, asi me aparece en el TOTAL la multiplicación de todos los campos, osea
2*30+1*20+2*50
y yo quiero que me aparezca de cada elemento un resultado, así:

Cantidad Precio TOTAL
2-----------30--------60
1-----------20--------20
2-----------50--------100

no sé si me explico bien??, gracias.

duilioisola 02-04-2009 17:25:11

Puedes crear un campo calculado en esa tabla.
- Le das doble click a la tabla.
- Botón derecho sobre la ventana que se despliega
- New Field
- Le pones el nombre y el tipo (numerico)
- Marcas el RadioButton "Calculated"
Luego generas un evento OnGetText para ese Field:
Código Delphi [-]
procedure TDataModule.TablaSUMALINEAGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
   Text := FloatToStr(TablaCANTIDAD.AsFloat+TablaPRECIO.AsFLOAT;
end;

cmm07 02-04-2009 17:46:03

ohh amigo gracias, muchas gracias, me salvaste la vida :D.. gracias.

y saludos


La franja horaria es GMT +2. Ahora son las 19:43:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi