Ver Mensaje Individual
  #7  
Antiguo 22-10-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por briast Ver Mensaje
Ahora el usuario solicita que se le muestren los datos ordenando las Cat1 por el campo Res1 y luego los registros de cada Categoría 1 que se ordenen por el campo Res2.

La tabla resultante debería ser la siguiente:

Código:
NºReg   |   Cat1    |   Cat2  |    Res1   |   Res2   |   Res3
--------------------------------------------------------
    1            2           null          27           350        200
    2            2             5           10            34          50
    3            2             1            5            100         87
    4            3           null          45            17          24
    5            3             2           67            12          34
    6            3             9           34            23           21           
    7            1           null         100          200        150
    8            1             2           45            18          25
    9            1             3           35            27          10
  10            1             1           25            35          50
Esto es más difícil que aquello de encontrar al gato en la imagen.

Disculpa es que no entendí la parte que te pongo en negritas con relación a la tabla resultante.

De todas formas, si tuviéramos que recurrir a la inserción que venías realizando, creo que bastaría con que tu campo en el IndexFieldNames fuera de tipo flotante (un InternalCalc TFloatField, por ejemplo).

Así, cada vez que localizaras los dos registros entre los cuales debe insertarse, le asignarías al nuevo registro un valor que se encuentre entre esos dos, y sin tener que modificar nada de los registros ya agregados.

OrdenNuevoRegistro = (OrdenRegistroAnterior + OrdenRegistroSiguiente) / 2
Responder Con Cita