Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Multiplicando el resultado de un ComboBox (https://www.clubdelphi.com/foros/showthread.php?t=51137)

Camilo 06-12-2007 16:23:18

Multiplicando el resultado de un ComboBox
 
Hola Amigos:

Necesito su ayuda en el siguiente tema:
Tengo una Tabla (Table1) con un campo (Campo1) de tipo Currency.
Tengo en un Form un ComboBox1 y sus items son los 30 dias del mes (1,2,3,4,5...).
Necesito que al dal Click a cualquiera de los numeros del ComboBox; este numero (el Seleccionado) se multiplique por el valor del Campo1 de la Tabla1 que es currency. Y que a su vez me refleje el resultado en un DbEdit1.

Trabajo D-7 Paradox.

Muchas gracias por su calificado aporte.

enecumene 06-12-2007 16:56:34

A ver:

Código Delphi [-]
DBEdit1.Text := Tabla1.fields[0].asCurrency * float(ComboBox1.Text);

lo puedes poner en los eventos OnClick o OnChange del ComboBox.

PD. Lo hice sin delphi en mano puede no estar correcto.

Saludos.

jhonny 06-12-2007 17:00:15

Supongo que el DBEdit1 esta conectado a un Campo2, entonces la cosa quedaria asi en el OnClik del ComboBox:

Código Delphi [-]
Table1.Edit;
Table1.FieldByName('Campo2').AsFloat := StrToInt(ComboBox.Items[ComboBox.ItemIndex]) * Table1.FieldByName('Campo1').AsFloat;
Table1.Post;

Espero te sirva ;).

jhonny 06-12-2007 17:03:03

Que raro que luego de 36 minutos del primer mensaje, coloquemos este mensaje tan seguido :D.

Camilo 06-12-2007 17:07:27

Muchachos mil gracias por sus siempre buenas intenciones y aportes; en ambos casos me sale el siguiente error:

[Error] Unit29.pas(452): Incompatible types: 'String' and 'Extended'
Gracias

jhonny 06-12-2007 17:13:05

Cita:

Empezado por Camilo (Mensaje 250944)
Muchachos mil gracias por sus siempre buenas intenciones y aportes; en ambos casos me sale el siguiente error:

[Error] Unit29.pas(452): Incompatible types: 'String' and 'Extended'
Gracias

Con lo que te hemo mostrado no debería mostrar ese error...

¿Sería posible que veamos las lineas 451, 452 y 453 de tu unidad?

Camilo 06-12-2007 17:22:59

Tienes Razon Jhonny realmente el mensaje es el siguiente:
"[Error] Unit29.pas(452): Incompatible types: 'String' and 'Extended'"

y las lineas son las siguientes:
Código Delphi [-]
 procedure TFormAlmuerzos.ComboBox2Click(Sender: TObject);
begin
DbEdit7.Text := StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat;
end;

Recuerda que el resultado de la operacion lo necesito en el DbEdit7

Gracias.

jhonny 06-12-2007 17:34:05

Cita:

Empezado por Camilo (Mensaje 250949)
Tienes Razon Jhonny realmente el mensaje es el siguiente:
"[Error] Unit29.pas(452): Incompatible types: 'String' and 'Extended'"

y las lineas son las siguientes:
Código Delphi [-]
 procedure TFormAlmuerzos.ComboBox2Click(Sender: TObject);
begin
DbEdit7.Text := StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat;
end;

Recuerda que el resultado de la operacion lo necesito en el DbEdit7

Gracias.

Ok, aqui podemos tener un problema distinto...

Te explicare el asunto,

1) Si el DbEdit7 es de tipo TDBEdit, entonces debera tener asociado un DataSource (En su propiedad DataSource) y un campo (En su propiedad DataField), por lo que si el valor de dicho campo es modificado, automaticamente se vera reflejado en el DBEdit.

2) Si DbEdit7 es de tipo TEdit, allí si tendras que hacer algo parecido a lo que estas haciendo.

Ahora los ejemplos para ambos casos:

Caso 1 (Si DBEdit7 es un TDBEdit):
==================================

Donde Valor2 es el campo asociado a la propiedad DataField del DBEdit7...

Código Delphi [-]
Table1.Edit;
Table1.FieldByName('Valor').AsFloat := StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat;
Table1.Post;


Caso 2 (Si DBEdit7 es un TEdit):
================================

Código Delphi [-]
DbEdit7.Text := FormatFloat('###,###,##0.00', StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat;
StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat);


Espero te sirva de algo ;).

enecumene 06-12-2007 17:45:24

Mejor Respuesta que la del amigo jhonny no puedo dar :D.

Saludos

Camilo 06-12-2007 17:53:59

Muchachos una vez mas dieron en el punto. Quiero agradecerles de corazon la ayuda que nos brindan.
La solucion dada a mi problema fue la alternativa 1 es decir:
Código Delphi [-]
 Table1.Edit;
Table1.FieldByName('Valor').AsFloat := StrToInt(ComboBox2.Items[ComboBox2.ItemIndex]) * TableCostos.FieldByName('Almuerzo').AsFloat;
Table1.Post;
.

Como siempre muchachos abrazo de Admiracion y gratitud.

jhonny 06-12-2007 17:57:14

Yeahhh¡¡¡ :D


La franja horaria es GMT +2. Ahora son las 00:43:48.

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