Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Post Problemas con el DBGrid

Hola, como estan???

Quisiera que alguno de uds. me dijera como puedo multiplicar o realizar operaciones matematicas entre dos o mas campos de un DBGrid o por lo menos como sacar el valor de determinado campo del DBGrid a una variable.

De antemano muchas gracias.

El nuevo de Delphi
Responder Con Cita
  #2  
Antiguo 06-12-2005
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 DBGrid estará enlazado a un dataset, por ejemplo un Table. Basta entonces que uses Table.FieldByName('campo').AsInteger o Table.FieldByName('campo').AsFloat, dependiendo del tipo de datos, para extraer el valor del registro actual- que será el seleccionado en el DBGrid.

Como comentario lateral, si estás haciendo cálculos entre campos de un mismo registro quizá te convenga considerar el uso de campos calculados, ya sea en la parte del cliente (añadiendo un campo calculado en el editor de campos del dataset y asignando el valor del cálculo en el evento OnCalcFields) o del lado del servidor (usando un Query y haciendo el cálculo en la sentencia SELECT).

Al hacer esto, puedes consultar el valor del campo calculado como con cualquier otro campo, usando FieldByName.

// Saludos
Responder Con Cita
  #3  
Antiguo 06-12-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
DBGrid

Ok ya tengo los campos calculados, aunque no los hice en el evento OnCalField, ya tengo los valores que necesito, solo necesito saber como introducir el valor calculado (q esta en una variable) en una columna que he creado en el dbgrid
Responder Con Cita
  #4  
Antiguo 06-12-2005
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
Cita:
Empezado por Shidalis
Ok ya tengo los campos calculados, aunque no los hice en el evento OnCalField, ya tengo los valores que necesito, solo necesito saber como introducir el valor calculado (q esta en una variable) en una columna que he creado en el dbgrid
Pues ¿dónde, entonces, es que tienes los campos calculados?

Si vienen de una consulta SQL entonces aparecerán en el DBGrid (a menos que no los hayas incluido en el editor de campos). Y si no están en la consulta entonces justamente un campo calculado del lado del cliente y el evento OnCalcFields hacen que aparezca ya la columna en el DBGrid.

// Saludos
Responder Con Cita
  #5  
Antiguo 06-12-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Talking Todavia!!!

Gracias por la respuesta pero no estoy trabjando de esa manera, estoy trabajando " A Pie " tengo la consulta sql pero solo la muestro en el dbgrid posteriormente quiero calcular 2 campos que son cantidad * precio, los cuales ya los tengo calculados en una variable Total pero esta fuera de la consulta, ahora lo que quiero saber es si existe la manera de que pueda introducir el valor de Total dentro de una columna del DBGrid que esta vacia. O si existe otra forma mas facil (seguro que la hay pero no la se) de trabajar te agradeceria que me la explicaras
Responder Con Cita
  #6  
Antiguo 06-12-2005
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
Cita:
Empezado por Shidalis
O si existe otra forma mas facil (seguro que la hay pero no la se) de trabajar te agradeceria que me la explicaras
Pero si es justo lo que he estado haciendo !! Pero dices que de esa forma no estás trabajando. Entonces ¿qué es lo que quieres?

Para lo que describes bastaría que hagas una consulta

Código SQL [-]
select *, campo*precio as total from tabla

y ya tienes tu DBGrid con la columna que muestra el total en cada registro.

Si quieres meter arbitrariamente un valor en una celda de un DBGrid en el momento que quieras pues no, eso no es posible. Un DBGrid no es como un StringGrid en el que pueden llenarse directamente las celdas. El DBGrid siempre tomará sus datos de un DataSet. Si los datos no están en el DataSet entonces nunca aparecerán en el grid.

// Saludos
Responder Con Cita
  #7  
Antiguo 06-12-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Thumbs up Gracias

Muchas gracias por tu ayuda, no he podido hacer la consulta pero ahi estoy
Responder Con Cita
  #8  
Antiguo 06-12-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
¿porque no se pudo con la consulta? ¿te marca algún error?

Como menciona Roman, la mejor manera de hacer lo que pides es con las dos opciones que ya te mencionó, campos calculados o directo en la consulta. Si no estas haciendolo de ninguna de esas dos formas, le estarías dando muchas vueltas a un asunto sencillo.
__________________

Responder Con Cita
  #9  
Antiguo 07-12-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Thumbs up Muchas Gracias!!

Tenian razon, me estaba matando la cabeza por nada, lo que pasa es que no sabia utilizar el evento OnCalcFields, pero ya aprendi y es mucho mas sencillo de lo que esperaba
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


La franja horaria es GMT +2. Ahora son las 23:50:27.


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