FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Campo aggregate dependiente de otro en clientdataset
Hola amigos, estoy haciendo la factura de un Terminal de puesto de venta. Es posible colocar en un clientdataset luego de un campo agreggate otro dependiente? por ejemplo: el total es sum(subtotal)(es la suma de todos los precios por sus respectivas cantidades), entonces pongo total2 que es total menos descuento. total2 depende de total. Otro caso es el vuelto es efectivo menos total2.
Cuando hago esto obtengo: Bit index out of range, es decir si dejo un solo aggregate se soluciona. ¿Que puede ser? |
#2
|
||||
|
||||
Hola giulichajari.
No podes usar el nombre de campo "total" en la expresión del campo total2, creo que la expresión que correspondería es:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Cita:
|
#4
|
||||
|
||||
Hola giulichajari.
Cita:
Debería ser: Código:
SUM(efectivo) - (SUM(subtotal) + SUM(descuento)) O expresado de forma mas simple: Código:
SUM(efectivo) - SUM(subtotal) - SUM(descuento)
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Cita:
Por lo que dices no puedo colocar total2 en la expresion del campo vuelto entonces debo repetir todo. |
#6
|
||||
|
||||
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
ayuda
Cita:
total: sum(subtotal) descuento: sum(subtotal) * sum(pdescuento/100) total2: sum(subtotal) - sum(subtotal) * sum(pdescuento/100) vuelto: sum(efectivo - (sum(subtotal) - sum(subtotal) * sum(pdescuento/100)) Me dice operation cannot mix aggregate value with record variyng value |
#8
|
||||
|
||||
Bueno, me gustaría tener información mas detallada de lo que estamos hablando pero así, a simple vista, ya veo un problema.
Supongamos que tu tabla tiene estos datos: Código:
ID SUBTOTAL PDESCUENTO 1 100 20 2 110 20 3 90 20 4 50 20 5 150 20 resultan en valor 0 ya que la sumatoria del descuento es igual a 100% y si seguimos agregando filas terminaríamos pagándole al cliente. Sería importante que expliques con detalle de que se trata lo que estas haciendo, los cálculos y resultados que deseas obtener y los campos involucrados en el asunto. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
Cita:
De donde obtenes el valor del descuento a aplicar, ¿ De la tabla de clientes ? Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
Claro, tengo un boton asociar en un form con la tabla clientes. La idea es asignar el valor del descuento de este query al campo pdescuento del clientdataset para obtener el valor del descuento. La idea es usar campos aggregates para que con solo hacer Post, por ejemplo, al asociar el cliente o agregar productos todo se calcula solo. Probe hacerlo manualmente pero no pude.
|
#12
|
||||
|
||||
Hola.
Como te dije, no estas dando toda la información necesaria. No sé la organización de tus datos por lo que voy a partir de un supuesto:
En el ClientDataSet relacionado a la tabla VENTAS crea un campo calculado, llamémosle TotalAgg y su propiedad Expresion igual a: 'SUM(SUBTOTAL)'. Agrega un query de los componentes que estes usando. Lo que sigue es para la elección del cliente y el descuento correspondiente:
Sobre estos valores de prueba, Productos: Código:
ID DESCRIPCION PRECIO 1 CAFE 60 2 LECHE 5 3 AZUCAR 10 4 MERMELADA 29 Código:
ID NOMBRE DESCUENTO 0 CONSUMIDOR FINAL 0 (posición 0 siempre para C. F.) 1 JUAN PEREZ 15 2 PABLO GOMEZ 15 3 ANA FERNANDEZ 18 1) Al seleccionar un cliente: 2) No incluí la asignación del código de factura, detalle que no hace al ejemplo y queda la implementación a tu criterio. Por último necesitas otro control para ingresar el pago. Para obtener el vuelto, simplemente basta con restar el total del pago (Vuelto = Pago - Total) y mostrarlo en pantalla. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 02-03-2015 a las 12:36:41. |
#13
|
|||
|
|||
Claro yo el clientdataset lo uso como una tabla temporal, al menos asi lo estaba haciendo, porque en mi estructura de datos tengo la tabla producto y ticket, que se relacionan por otra tabla(relacion varios a varios) VENTAS, dado que un producto puede aparecer en varios ticket y un ticket puede contener varios productos.
Pero voy a intentar tu modelo. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Campo aggregate ClientDataSet en runtime | Dclase | Conexión con bases de datos | 6 | 14-02-2014 13:17:25 |
buscar registros de un ClientDataSet a otro clientDataSet | novato_erick | Conexión con bases de datos | 2 | 02-02-2013 20:48:09 |
TClientDataSet + Campo Tipo Aggregate | mjjj | Varios | 0 | 11-08-2012 00:36:07 |
Asignar el valor de un campo aggregate a un campo de la base | TrUnkS | Conexión con bases de datos | 1 | 23-02-2010 05:17:42 |
Copiar Campos de un ClientDataSet a Otro | linsua | Conexión con bases de datos | 4 | 06-11-2003 21:25:00 |
|