![]() |
Problema: type variant en campo a calcular
Buenas foreros vengo con un problema q no eh podido resolver el tema es el siguiente tengo un detalle de compras (una grilla) en la cual van el nombre del producto a compra el precio la cantidad y el subtotal. esta grilla se carga atravez de un boton seleccionar q se encuentra en un listado de productos en dicho boton seleccionar al apretarlo deberia calcular el subtotal de la grilla el codigo lo tengo algo asi(solo la parte q refiere a mi problema:
y el error que tira dice esto en tiempo de ejecucion.. cannot access filed "subtotal" as type variant. Ayuda por favor!:( |
Cuando tratas de obtener el valor de un campo de esta manera TQuery["NOMBRECAMPO"], estás forzando un typecast a variant.
Intenta llamando los campos con el tipo de dato que corresponde Fields.FieldByName("").AsXXXXX
|
Cita:
Sql error: duplicate entry '91' (es el id de la factura) for key id_fc_2 ( el id_fc es la clave primaria de la tabla factura pero ese .._2 nose de donde sale). |
Revisa la estructura de las tablas en el motor. Lo mas probable es que id_fc_2 sea un constraint que creó autiomaticamente.
Si persiste el error haz un paso a paso para identificar el momento del error y poder revisar las estructuras o el código necesario. |
Cita:
Nuevamente gracias, de despistado olvide que en la tabla detalles la fk de factura estaba como unica. Muchas gracias. :D |
Cita:
al poder cargar varios productos en la grilla(detallesfactura) cada uno tiene su subtotal (cantidad*precio) ahora... en la tabla facturacompra tengo el campo 'monto total' el cual obviamente se llenara sumando todos los subtotales de la grilla... no logro hacerlo.. me ayudas por favor!!? :confused: |
Lo del profesor me deja sin palabras.
Para totalizar, hay varias formas de hacer eso. - Ir sumando los valores de subtotal en una variable que mostrarás como totalizado y actualizarás en cada operación de adición, edición o resta. - Recorrer el dataset en cada actualización del detalle para calcular subtotal - Hacer un SUM con SQL si ya está en la DB (Select SUM(VALOR) from DetFactura where x = y and z > a) Explora una opción y dices que problemas específicos tienes. |
Cita:
Pero Luego no se como seguir ja :o |
Cita:
No se porque usas un like, esto podría traerte valores incorrectos. mejor busca el valor exacto. El problema de esta solución (solo la menciono) es que debes ir por cada inserción y/o actualización a la DB a obtener un resultado que en teoría ya tienes en memoria. generando una carga innecesaria. Para efectos del ejercicio que estás realizando es funcional y no genera ningun problema. pero cuando se trata de muchas estaciones, redes extensas y demás. Detalles como estos hacen diferencia. Otra posible solución que te planteaba es recorrer el dataset para calcular el resultado. Una función como esta puede servir.
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 07:48:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi