Como Agregar Resultado De Calculo A Un Campo Automaticamente?


Objetivo: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
100

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?

Objetivo: 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

Perfil MP  
Objetivo: 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?

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: Re: Como Agregar Resultado De Calculo A Un Campo Automaticamente?
Shordi:

+1

Pues si que son potentes las vistas!!!

Objetivo: 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...

Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5529s (PHP: -85% SQL: 185%)
Consultas SQL: 47 - Debug off - GZIP Activado