![]() |
Agrupar campos en ClientDataSet y recorrer el resultado
Hola
Tengo una tabla con varios campos , dos de ellos son cliente y Obra , quiero hacer el equivalente a un group by cliente y obra en un ClientDataSet. Pongo un ejemplo Cliente---Obra-----Cantidad--IVA--IVA(2ª posibilidad) 1----------A-----------10-----16----16 1----------A-----------20-----16-----7 1----------B-----------10-----16-----16 2----------B-----------20------7------7 Bien la agrupación me daria 2 grupos , El primero formado por los 2 primeros registros obviamente , el segundo el 3 regitro y el tercero con el último registro. Pongo 2 veces IVA para en lugar de repetir 2 veces la tabla , para simular 2 tablas y dos posibilidades Bien quiero hacer un código que me saque lo siguiente Resultado que quiero con el primer IVA que he puesto : Cliente---Obra---Cantidad---IVA 1----------A-------30-------16 1----------B-------10-------16 2----------B-------20--------7 El Resultado con el 2º IVA que he puesto seria cliente--Obra--Cantidad---IVA 1--------B--------30-----16 2--------B--------20------7 y luego un mensaje que diga algo así : Los registros (1 y 2) no han podido ser contabilizados por que tienen distinto IVA |
Consulta en la ayuda las propiedades Aggregates, Groupinglevel, IndexName del CDS..
|
Al final lo he solucionado así .
en IndexName hago un indice por Cliente y Obra. Luego como tengo filtrado los campos ha insertar . hago algo así : Supongamos que el ClientDataSet para el ejemplo Client
Más o menos , este es la manera del código , que funciona , pero la lastima es cuando haces un indexname = 'miIndice' y te lo ordena como si fuera más o menos un group by , no sepa de una propiedad , un valor integer para cada grupo de valores . Un saludo |
Cita:
|
La franja horaria es GMT +2. Ahora son las 12:38:45. |
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