Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Operaciones

Hola, buen día a todos... Tengo un problema con una multiplicación...

La cual quiero agarrar los datos de los campos que están dentro de DBGrid y ponerlo en otro campo dentro del mismo DBGrid...

Si alguien me puede ayudar con este problema, se lo agradecería mucho!!!

Operación...

Cantidad * Precio = Importe

Son los campos del DBGrid...
Responder Con Cita
  #2  
Antiguo 26-02-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿El campo importe ya existe en tu tabla? Es decir, lo que quieres ¿es actualizar ese campo o simplemente presentarlo como campo calculado en tu dbgrid?

Si es esto último, y creo que debe ser así, lo que necesitas es utilizar el evento OnCalcFields del DatSet asociado al dbgrid y ahí poner algo como

Código Delphi [-]
DataSet['Importe'] := DataSet['Cantidad']*DataSet['Precio'];

// Saludos
Responder Con Cita
  #3  
Antiguo 26-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
El DBGrid es sólo la forma de presentar los datos. En realidad están contenidos en el conjunto de datos que está asociado al TDataSource que está asociado al DBGrid.

Código Delphi [-]
DBGrid1.DataSource.DataSet ['Importe'] := DBGrid1.DataSource.DataSet ['Cantidad'] * DBGrid1.DataSource.DataSet ['Precio'];

O mejor:

Código Delphi [-]
ElDataSet ['Importe'] := ElDataSet ['Cantidad'] * ElDataSet ['Precio'];

Y, en caso de que Cantidad o Precio pudieran estar en blanco, entonces más seguro:

Código Delphi [-]
ElDataSet ['Importe'] := ElDataSet.FieldByName ('Cantidad').AsFloat * ElDataSet.FieldByName ('Precio').AsFloat;
Responder Con Cita
  #4  
Antiguo 26-02-2013
rotsen26 rotsen26 is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 41
Poder: 0
rotsen26 Va por buen camino
Cita:
Empezado por Al González Ver Mensaje
El DBGrid es sólo la forma de presentar los datos. En realidad están contenidos en el conjunto de datos que está asociado al TDataSource que está asociado al DBGrid.

Código Delphi [-]
DBGrid1.DataSource.DataSet ['Importe'] := DBGrid1.DataSource.DataSet ['Cantidad'] * DBGrid1.DataSource.DataSet ['Precio'];

O mejor:

Código Delphi [-]
ElDataSet ['Importe'] := ElDataSet ['Cantidad'] * ElDataSet ['Precio'];

Y, en caso de que Cantidad o Precio pudieran estar en blanco, entonces más seguro:

Código Delphi [-]
ElDataSet ['Importe'] := ElDataSet.FieldByName ('Cantidad').AsFloat * ElDataSet.FieldByName ('Precio').AsFloat;
Me parece perfecto este código...
Pero si los datos están en una memoria(memorydata), allí como se hace la operación???
Responder Con Cita
  #5  
Antiguo 26-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El componente de memoria también es un DataSet, por lo que será igual.

Por cierto, no olvides poner títulos descriptivos a tus preguntas: 'Operaciones' es poco descriptivo
Responder Con Cita
  #6  
Antiguo 26-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Román, una disculpa, no había visto tu mensaje.

rotsen26, tal como te comentó Casimiro:
Cita:
Empezado por Casimiro Notevi Ver Mensaje
El componente de memoria también es un DataSet, por lo que será igual.


Y apoyo la otra sugerencia que él te hace. Recuerda abrir hilos con títulos descriptivos. Por ejemplo, éste pudo llamarse: "¿Cómo asigno a un campo la multiplicación de otros dos? Mostrando los tres datos en un DBGrid."
Responder Con Cita
  #7  
Antiguo 26-02-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
Y apoyo la otra sugerencia que él te hace. Recuerda abrir hilos con títulos descriptivos. Por ejemplo, éste pudo llamarse: "¿Cómo asigno a un campo la multiplicación de otros dos? Mostrando los tres datos en un DBGrid."
Con un título así, lo promocionamos a 'premium' con menos de 20 mensajes
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
operaciones con bits pulpin C++ Builder 2 25-04-2008 21:14:57
Operaciones con Imagenes reinier Gráficos 3 25-04-2008 13:37:35
operaciones!! MARLON1 Varios 7 20-02-2008 18:29:30
Operaciones númericas emeritos Varios 7 29-01-2007 00:23:22
operaciones con fechas ing_alsaac Varios 2 11-05-2003 10:02:57


La franja horaria es GMT +2. Ahora son las 22:27:47.


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
Copyright 1996-2007 Club Delphi