Autor |
Mensaje |
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Buenas gente, por primera vez estoy usando un datasource, databrowser y controlesdatas
como se hace para ingresar en un campo x el resultado de un calculo automáticamente.
por ejemplo una fuente de alimentación de pc de 500w sale 700 pesos y hay en el taller 3 pues bien 700 por 3 es igual a 2100 pesos, esa cantidad guardarla en un campo x al guardar los datos o editarlos , como se hace?
otra pregunta: la tabla que hice es autoincremental y puse un controldata para el id, pero te permite editarlo cuando no debería, como se hace para bloquear la edición de un controldata?
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
|
#1 Lunes, 06 Abril 2015, 01:50 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
No uso esos controles, pero imagino que como todos: Para no editarlo la propiedad ReadOnly a true o Enabled a false.
Para calcular sumas y totales utiliza el Evento Change de la cantidad.
Sobre eso un detalle:
No guardes el resultado de esa multiplicación en la base de datos. No sólo no es necesario si no que es fuente de errores. Te puede parecer lógico, pero no lo es. Si tienes el precio y tienes la cantidad, implícitamente ya tienes el total. En cualquier grid, reporte o formulario no donde lo necesites lo obtienes con un código absolutamente simple y nunca tendrás errores. Si, por el contrario, guardas la suma en un campo que calcula un formulario, siempre te puede ocurrir que los valores se cambien por otra vía (otro formulario, que el programa te aborte en un momento raro, cortes de luz, etc).
En otras palabras: Si tienes el 2 y el 2 ya tienes el 4.
Saludos
|
#2 Lunes, 06 Abril 2015, 06:33 |
|
|
Lykan
Cesar David Callejas Martinez
Usuario
Registrado: Abril 2015
Mensajes: 10
Edad: 29 Ubicación: Sensuntepeque
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Entonces lo correcto es por decirlo de un modo mantener solo los operandos en la base de datos y realizar la operación (en este caso multiplicación) solo cuando sea necesaria?
|
#3 Domingo, 26 Abril 2015, 04:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Efectivamente. Así no hay nunca errores en ello. Si almacenas el valor en un campo, la posibilidad de descoordinación entre los datos reales (eliminado de alguna fila, añadido incompleto de otra, etc. etc.) es muy grande.
Si no quieres hacer el cálculo cada vez, puedes dejarle el trabajo a la base de datos creando una vista. Para Mysql sería algo así:
CREATE VIEW Totales AS SELECT count(micampo1) AS Total1, sum(micampo2) AS Total2 FROM mitabla
El resultado sería una vista (que se maneja igual que una tabla) en la te aparecerán los totales de verdad tal y como lo harían si los hubieses grabado.
Para consultarla:
SELECT Total1, Total2 FROM Totales
Saludos.
última edición por shordi el Domingo, 26 Abril 2015, 10:22; editado 1 vez
|
#4 Domingo, 26 Abril 2015, 10:21 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Añado algo más:
Si quieres almacenar subtotales, puedes hacerlo usando la potencia de SQL:
Por ejemplo, para hacer inventario de materiales:
CREATE VIEW inventario AS SELECT material, count(material) AS disponibles FROM materiales GROUP BY material
Con esto tendrás una vista que te hace un inventario tal y como si tú lo mantuvieses... y sin errores.
última edición por shordi el Domingo, 26 Abril 2015, 10:30; editado 1 vez
|
#5 Domingo, 26 Abril 2015, 10:29 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Shordi:
+1
Pues si que son potentes las vistas!!!
|
#6 Domingo, 26 Abril 2015, 11:53 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Hay gente que con SQL hace cosas que yo ni me atrevía a imaginar que se pudieron hacer...
|
#7 Domingo, 26 Abril 2015, 15:49 |
|
|
frajanic
Usuario
Registrado: Octobre 2013
Mensajes: 44
Edad: 68
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
He leído que utilizas los controles datasource, databrowser y controlesdatas. Estoy haciendo una aplicación 100% de base de datos y no encuentro información ni ejemplos de su utilización y me imagino que facilitarán la interactuación con una base de datos. Soy algo novato en gambas. Gracias.
|
#8 Domingo, 10 May 2015, 10:21 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Busca en los ejemplos de gambas o en la Granja de gambas si usas la versión 3.7. Hay un ejemplo de su uso.
Personalmente no los utilizo, que prefiero controlas las cosas más por mi cuenta, pero seguro que hay gente que te puede ayudar con ellos.
Saludos.
|
#9 Domingo, 10 May 2015, 11:03 |
|
|
|