Eu ainda penso que minha idéia deve ter trabalhado, mas contanto que você encontrou uma solução.
> Eu digo metálico, porque cada vez que eu quero mudar
> valor que de TopN eu tenho que começ ocupado mudando muita fórmula:
É a “mudança o valor de TopN” que refere quanto dos valores superiores você quer adicionar junto, ou talvez apenas quantos grupos estão no relatório? Uma ou outra maneira, não tem que ser um problema (até um ponto).
Sua primeira fórmula usa Redim para ajustar o tamanho da disposição a 4, e aquela é mudada nunca nas fórmulas que você afixou. Se seu relatório tem mais de 4 grupos, você começ um erro subscrito. Talvez você está fazendo algo que nunca terá mais de 4 grupos em um relatório, como os 4 quartos em um ano. Se não, você deve permitir mais grupos.
O one-way a segurar que seria aumentar simplesmente o número no Redim ao número máximo de grupos que você o pensa terá nunca em um relatório. Uma opção mais dinâmica é aumentar como necessário o tamanho da disposição. Para fazer isso, apenas mudar sua segunda fórmula como segue:
//array avalia no pé de página do grupo
WhilePrintingRecords;
disposição numberVar RT;
se GroupNumber > conta (RT) então
Conserva RT de Redim [GroupNumber];
RT [GroupNumber]: = tonumber ({#period bruto});
Isso apenas usa a conserva de Redim para expandir o RT quando necessário. A opção da conserva mantem os índices atuais (todos os valores armazenados até esse ponto).
Se o número de grupos no relatório era um interesse, este deve tomar dele, até um ponto. A limitação aqui é que uma disposição pode somente ter 1000 elementos, assim que se você tem nunca um relatório com mais de 1000 grupos, que serão um problema. Mas desde que o limite using suas fórmulas atuais é 4, eu estou supor que um limite de 1000 provavelmente não será um problema. :-)
Se você é referido sobre a mudança das fórmulas para adicionar junto algo à excepção dos 3 valores superiores, aquele é algo que você teria que tratar, mas você pode o simplificar. Enquanto é agora, a fórmula do final classifica os valores na disposição do mais baixo a o mais altamente e adiciona junto os 3 valores finais, e trabalha somente se há exatamente 4 grupos no relatório (que nos traz de volta a essa pergunta mais adiantada, faz seu _always_ do relatório têm 4 grupos nele?). Você pode simplificar que um bocado classificando os valores do mais altamente a o mais baixo e adicionando junto os primeiros 3 valores. Essa maneira não importa quantos elementos estão na disposição (IE. quantos grupos estão no relatório). Apenas adicionar junto os primeiros elementos de N para começ seu total. Aquele é discutìvel um pouco mais simples do que adicionando junto o último N.
Para classificar a disposição do mais altamente a mais baixo, apenas mudar esta linha na fórmula final
se RT [counter2] > RT [counter2 + 1] então
a isto
se RT [counter2] < RT="">
IOW, mudam > a <>
Mudar então a última linha a:
adicionar: = RT [1] +RT [2] +RT [3]
FWIW, é uma coisa muito menor, mas a variável da adição em saques dessa fórmula nenhum objectivo real. Você poderia apenas esquecer que e a linha final poderiam ser:
RT [2] +RT [3] +RT [4] // sua fórmula original
RT [1] +RT [2] +RT [3] // minha versão
Igualmente, quando você consultou “mudando muita fórmula”, é você talvez fórmulas de utilização como essas que você afixou para adicionar junto os valores do topN para mais de um campo, e você estava falando sobre a mudança das fórmulas para todos aqueles campos se você quis mudar N?
Em caso afirmativo, você poderia simplificar aquele põr o N em uma fórmula e usando essa fórmula nas fórmulas que adicionam junto os valores. Por exemplo, criar uma fórmula nomeada o topN que apenas diz
3
Uma outra opção seria põr os 3 em uma variável na fórmula em seu encabeçamento do relatório. Uma ou outra maneira, você usaria então essas fórmula/variável em sua fórmula final. Como você se usa dependerá de como sua disposição é classificada. Se você a classifica em ordem descendente, como eu sugeri, a seguir você quer adicionar junto os primeiros valores de N e você poderia apenas substituir a linha final da fórmula final com a esta:
se {@topN} < Array=""> conserva RT de Redim [{@topN}];
Soma (RT)
Isso apenas diz que se a disposição manda mais elementos do que você querer (por exemplo o manda 4 elementos e somente querer os 3 superiores), a seguir usa a conserva de Redim para fazer a disposição menor, rejeitando os valores não desejados. Se a disposição manda realmente poucos elementos do que você querer (por exemplo o manda 3 elementos e querer os 4 superiores), não se incomoda com o Redim. Nenhum ponto em adicionar mais elementos que apenas serão 0.
Então apenas usa a soma para adicionar junto o que é deixado na disposição.
Realmente, mesmo se você não usa a fórmula do topN/idéia variável, esta poderia ser uma boa maneira de segurar a mudança do número de valores para adicionar. As últimas linhas podiam ser:
se conserva < Array=""> RT de 3 Redim [3];
Soma (RT)
Se você quer mudar quantos valores estão adicionados, apenas mudar aqueles dois 3 ao valor novo.
APROVAÇÃO, eu supor que deve o dar bastante para mastigar sobre. :-)
James