Todavía pienso que mi idea debe haber trabajado, pero mientras usted encontró una solución.
> Digo anticuado, porque cada vez que quiero cambiar
> valor de TopN que tengo que conseguir ocupado cambiando mucha fórmula:
¿Es el “cambio el valor de TopN” que se refiere a cuántos de los valores superiores usted quiere agregar juntos, o apenas cuántos grupos están quizá en el informe? Cualquier manera, no tiene que ser un problema (hasta un punto).
Su primera fórmula utiliza Redim para fijar el tamaño del arsenal a 4, y eso nunca se cambia en las fórmulas que usted fijó. Si su informe tiene más de 4 grupos, usted conseguirá un error suscrito. Usted está haciendo quizá algo que nunca tendrá más de 4 grupos en un informe, como los 4 cuartos en un año. Si no, usted debe tener en cuenta más grupos.
Una forma a dirigir que sería aumentar simplemente el número en el Redim al número máximo de grupos que usted le piensa tendrá nunca en un informe. Una opción más dinámica es aumentar el tamaño del arsenal cuanto sea necesario. Para hacer eso, apenas cambiar su segunda fórmula como sigue:
//array evalúa en pie del grupo
WhilePrintingRecords;
arsenal numberVar RT;
si GroupNumber > entonces cuenta (RT)
Coto RT [GroupNumber] de Redim;
RT [GroupNumber]: = tonumber ({#period grueso});
Eso apenas utiliza el coto de Redim para ampliar el RT cuando es necesario. La opción del coto guarda el contenido actual (todos los valores almacenados hasta ese punto).
Si el número de grupos en el informe era una preocupación, éste debe tomar el cuidado de él, hasta un punto. La limitación aquí es que un arsenal puede solamente tener 1000 elementos, así que si usted tiene nunca un informe con más de 1000 grupos, que serán un problema. Pero puesto que el límite usar sus fórmulas actuales es 4, estoy conjeturando que un límite de 1000 no será probablemente un problema. :-)
Si usted se refiere sobre el cambio de las fórmulas para agregar junto algo con excepción de los 3 valores superiores, ése es algo que usted tendría que tratar de, pero usted puede simplificarlo. Mientras que ahora está, la fórmula del final clasifica los valores en el arsenal de lo más bajo posible a lo más arriba posible y agrega juntos los 3 valores finales, y trabaja solamente si hay 4 grupos en el informe (que nos trae de nuevo a esa pregunta anterior, hace exactamente su _always_ del informe tienen 4 grupos en él?). Usted puede simplificar que un pedacito clasificando los valores de lo más arriba posible a lo más bajo posible y agregando juntos los primeros 3 valores. Esa manera no importa cuántos elementos están en el arsenal (IE. cuántos grupos están en el informe). Apenas agregar juntos los primeros elementos de N para conseguir su total. Ése es discutible un poco más simple que agregando junto el N. pasado.
Para clasificar el arsenal de lo más arriba posible a la más bajo, apenas cambiar esta línea en la fórmula final
si RT [counter2] > RT [counter2 + 1] entonces
a esto
si RT [counter2] < RT="">
IOW, cambian > a <>
Entonces cambiar la línea pasada a:
agregar: = RT [1] +RT [2] +RT [3]
FWIW, es una cosa muy de menor importancia, pero la variable del adición en servicios de esa fórmula ninguÌn propósito real. Usted podría apenas olvidar que él y la línea final podrían ser:
RT [2] +RT [3] +RT [4] // su fórmula original
RT [1] +RT [2] +RT [3] // mi versión
¿También, cuando usted refirió a “cambiar mucha fórmula”, es usted quizás fórmulas que usan como las que usted fijó para agregar juntos los valores del topN para más de un campo, y usted hablaba cambiando las fórmulas para todos esos campos si usted quiso cambiar N?
Si es así usted podría simplificar eso poniendo la N en una fórmula y usando esa fórmula en las fórmulas que agregan juntos los valores. Por ejemplo, crear una fórmula nombrada el topN que apenas dice
3
Otra opción sería poner los 3 en una variable en la fórmula en su jefe del informe. Cualquier manera, usted entonces utilizaría esa fórmula/variable en su fórmula final. Cómo usted utiliza dependerá de cómo se clasifica su arsenal. Si usted la clasifica en orden decreciente, como sugerí, después usted quiere agregar juntos los primeros valores de N y usted podría apenas substituir la línea final de la fórmula final por esto:
si {@topN} < Array=""> coto RT de Redim [{@topN}];
Suma (RT)
Eso apenas dice que si el arsenal hace que más elementos que usted quieran (eg. tiene 4 elementos y les solamente querer el 3) superior, después utiliza el coto de Redim para hacer el arsenal más pequeño, desechando los valores indeseados. Si el arsenal hace realmente que pocos elementos que usted quieran (eg. tiene 3 elementos y usted querer el 4) superior, él no incomoda con el Redim. NinguÌn punto en el adición de más elementos que apenas serán 0.
Entonces apenas utiliza suma para agregar junto qué se deja en el arsenal.
Realmente, incluso si usted no utiliza la fórmula del topN/la idea variable, esto podría ser una buena manera de manejar el cambio del número de valores para agregar. Las líneas pasadas podían ser:
si coto < Array=""> RT [3] de 3 Redim;
Suma (RT)
Si usted quiere cambiar se agregan cuántos valores, apenas cambiar esos dos 3 al nuevo valor.
AUTORIZACIÓN, conjeturo que debe darle bastante para masticar encendido. :-)
James