![]() |
Suma de campos de un dbgrid
estoy trabajando con un mysql para realizar la conexion utilizo ADOConnection-->ADOTable-->DataSource-->DBgrid.
por ejemplo realizo una búsqueda y esta se visualiza en el dbgrid, pero necesito hacer la suma del campo total. es decir tengo el campo total pero solo quiero realizar la suma de los que se muestran en el dbgrid. es decir poner el resultado en un text. |
mmmmm
se me ocurre 2 cosas 1.- que podrias recorrer todo el dbgrid y mostrar la suma 2.- crear un query que te haga la suma si es como dices que en el grid muestras los resultados del query |
Cita:
Saludos |
Hola lisc_dla.
Creo que es más eficiénte hacerlo con una consulta SQL, pero si te decidis por hacerlo desde el DBGrid podrías hacer algo así :
Ejemplo de llamada:
Saludos. |
Solo un detalle la aplicación que estoy creando es sobre venta de artículos, hago la consulta de las ventas del día y estas se muestran en el dbgrid, pero necesito que en el text solo me muestre la suma de las ventas del día. Estuvo probando el ejemplo pero no se donde colocar la función y me muestra un error
|
Hola
Si se realiza una busqueda con un adotable me imagino que lo que se hara sera un filtro ?. Si se hace un filtro se puede usar algo como esto. Saludos |
mmmmm
si ya tienes una consulta para mostrar las ventas del dia, te recomentaria mejor crear una consulta similar la cual te sume las ventas del dia imaginemos que tu consulta es asi podrias crear esta consulta que te sume las ventas del dia
asocias un datasource al nuevo query y muestras esa informacion en un tdblabel |
oscarac
mi consulta para visualizar las ventas del día es: entonces como seria la suma |
1 Archivos Adjunto(s)
|
Cita:
y podes utilizarla en esa unidad sin problemas. También en otra unidad y agregarla en la declaración uses de la unit en que desees usarla. No mencionaste el error que te genera pero supongo que será por el alcance de la función. Una ventaja que tiene la función que te puse, es que podés utilizarla para cualquier TDBGrid y para cualquier campo de la tabla asociada al mismo (de tipo numérico lógicamente). Saludos. |
por ejemplo puedo colocar la función dentro del procedure
|
Hola
Esto si que esta para romperse la cabeza: ecfisa, directamente al DBgrid. oscarac, por sql. Caral, Por adotable. Si después de todo esto lisc_dla no se hace un lio o no necesita un loquero habremos hecho un buen trabajo....:D:D:D Saludos |
Cita:
Pero si la declarás en una unit donde guardes tus rutinas es reutilizable para cualquier TDBGrid de esa o cualquier otra aplicación que realices. Saludos. |
|
:D:D:D:D:D implementado el código
|
Voto por sum(total) where lo quesea evidentemente :)
|
como mencione mi consulta es:
pero donde coloco el codigo de la suma:
y donde colo este otro codigo
ya estuve intentando y me marca error |
Recuerda poner el código entre etiquetas.
![]() . |
Primero gracias por las etiquetas Casimiro ... ;)
Cita:
Cita:
Para el ejemplo supongo que el nombre del campo donde están los valores a sumar se llama Total. Saludos. |
Hola
No se, no se, no se. Si, no se, por eso digo, alguien me dice si este codigo tiene sentido? Saludos |
no quiero ser waterparty (aguafiestas) jejejeje ni nada
pero prefiero el uso de una consulta para la suma cuando la base de datos esta vacia o no contiene muchos datos, el filtro lo ejecuta rapidamente.... pero hazle un filtro a una tabla con 50,000 registros o mas, ahi veras que el rendimiento se ve afectado otra cosita....no encuentro diferencias entre los bloques de codigo que estan en el If then.. |
Hola
Es que para empezar esta usando un AdoTable, osea, ya abrio toda la tabla, ya por ahi perdio tiempo. Todo se deberia de hacer con sql, eso es definitivo. Saludos. PD: Exacto, el codigo es exacto, osea hello...... |
variar eso (la apertura de la tabla cambiarla por un query) no es nada del otro mundo (yo dije eso?, pensar que antes cosas como esa me daban dolor de cabeza)
|
Cita:
Cita:
Cita:
Saludos. |
Hola
Aqui pongo un ejemplo con las cosas como se necesitan. Se usa sql para ciertas cosas que me parecen son necesarias. Ademas aprovecho a responder al hilo de qreport que anda por ahi.:D En el ejemplo veras que hay un espacio en donde se puede ver en este caso el ID, escribe un numero menor del que este en ese momento y veras la informacion, ademas hara la suma del ID (que es lo mismo que sumar lo que sea) y se puede imprimir. Revisa el codigo, es muy basico y facil de entender. Saludos PD: El archivo adjunto se audestruira en cualquier momento, asi que .......:p:) |
[caral]
el código funciona, pero en realidad no es necesario algunas lineas |
Hola
De que funciona, funciona, dos veces.:) Saludos |
gracias gracias gracias [caral] :D:D:D
|
Hola
Gracias de que, si en poco he ayudado. Con gusto en lo poco que pueda ayudar ahi estare. Me alegro que te sirva de algo mi poca experiencia, pronto te pedire consejos. Saludos |
Sumar campos de un dbgrid
Sos unos genios autoctonos, GRACIAS por resolverme esta duda, tenia dias buscando una solucion a este problema y aqui esta mas claro que el agua.
Por lo de la duda del amigo lisc_dla, quedaria resuelta con la solucion de la fuction y la llamada que dieron SALUDOS |
Cita:
|
| La franja horaria es GMT +2. Ahora son las 09:25:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi