Я все еще думаю моя идея должна работать, но покуда вы нашли разрешение.
> Я говорю громыхающее, потому что everytime я хочу изменить
> значение TopN, котор я должен получить многодельным изменяющ много формулу:
Будет «изменением значение TopN» ссылаясь к из верхних значений вы хотите добавить совместно, или возможно как раз сколько группы находятся в рапорте? Любая дорога, не должно быть проблемой (до пункта).
Ваша первая формула использует Redim для того чтобы установить размер блока до 4, и то никогда не изменено в формулах которые вы вывесили. Если ваш рапорт имеет больше чем 4 группы, то вы получите subscript ошибку. Возможно вы делаете что-то никогда не будет иметь больше чем 4 группы на рапорте, как 4 четверти в годе. В противном случае, вы прибавлять на больше групп.
One-way, котор нужно отрегулировать должен был бы просто увеличить номер в Redim к максимальному числу групп вы думаете вы всегда будет иметь на рапорте. Более динамический вариант должен увеличить размер блока по необходимости. Для того чтобы сделать то, как раз измените вашу вторую формулу следующим образом:
//array оценивает в сноске группы
WhilePrintingRecords;
numberVar блок RT;
если GroupNumber > подсчитывает (RT) после этого
Заповедник RT Redim [GroupNumber];
RT [GroupNumber]: = tonumber ({#period большое});
То как раз использует заповедник Redim для того чтобы расширить RT когда обязательно. Вариант заповедника держит в настоящее время содержание (все значения, котор хранят до того пункта).
Если числом групп на рапорте была забота, то это должно позаботиться о оно, до пункта. Ограничение здесь что блок может только иметь 1000 элементов, поэтому если вы всегда имеете рапорт с больше чем 1000 группами, то которые будут проблема. Но в виду того что предел using ваши в настоящее время формулы 4, я угадываю что пределом 1000 вероятно не будет проблема. -)
Если вы обеспокоенный о изменять формулы для того чтобы добавить совместно что-то за исключением верхних 3 значений, то то что-то что вы общаться с, но вы можете упростить его. По мере того как оно теперь, формула выпускных экзаменов сортирует значения в блоке от наиболее низко к наиболее высоко и добавляет совместно окончательные 3 значения, и она только работает если точно 4 группы на рапорте, то (который приносит нас назад к тому более предыдущему вопросу, делает ваше _always_ рапорта имейте 4 группы на ем?). Вы можете упростить что бит путем сортировать значения от наиболее высоко к наиболее низко и добавлять совместно первые 3 значения. Та дорога он не имеет значение сколько элементы находятся в блоке (ie. сколько группы находятся на рапорте). Как раз добавьте совместно первые элементы n для того чтобы получить ваш итог. То arguably немного просто чем добавляющ совместно последнее N.
Для того чтобы сортировать блок от наиболее высоко к самому низкому, как раз измените эту линию в окончательной формуле
если RT [counter2] > RT [counter2 + 1] после этого
к этому
если RT, то [counter2] < RT="">
IOW, изменяют > к <>
После этого измените последнюю линию к:
добавьте: = RT [1] +RT [2] +RT [3]
FWIW, будет очень небольшой вещью, но перемеююым добавлять в подачах той формулы никакая настоящая причина. Вы smogли как раз забыть они и конечный рубеж smogло быть:
RT [2] +RT [3] +RT [4] // ваша первоначально формула
RT [1] +RT [2] +RT [3] // мой вариант
Также, когда вы сослались «изменяющ много формулу», будете вы возможно используя формулами как одни, котор вы вывесили для того чтобы добавить совместно значения topN для больше чем одного поля, и вы говорили о изменять формулы для всего из тех полей если вы хотели изменить n?
Если так, вы smogли упростить то путем класть n в формулу и использование той формулы в формулах, то которые добавляют совместно значения. Например, создайте названную формулу topN которое как раз говорит
3
Другой вариант должен был бы положить 3 в перемеююый в формуле в вашем коллекторе рапорта. Любая дорога, вы после этого использовали бы те формулу/перемеююый в вашей окончательной формуле. Как вы используете они будут зависеть от того, насколько ваш блок сортированы. Если вы сортируете его в ничходящем заказе, то по мере того как я предложил, тогда вы хотите добавить совместно первые значения n и вы smogли как раз заменить конечный рубеж окончательной формулы с этим:
если {@topN} < Array=""> заповедник RT, то Redim [{@topN}];
Сумма (RT)
То как раз говорит что если блок имеет больше элементов чем вы хотеть, то (например он имеет 4 элементы и вас только хотеть верхнее 3), тогда использует заповедник Redim для того чтобы сделать блок более малым, сбрасывающ излишние значения. Если блок фактическ имеет немногие элементы чем вы хотеть, то (например он имеет 3 элемента и вы хотеть верхнее 4), оно не докучаете с Redim. Отсутствие пункта в добавлять больше элементов как раз будут 0.
После этого он как раз использует сумму для того чтобы добавить совместно о в блок.
Фактическ, даже если вы не используете формулу topN/переменную идею, это smogло быть хорошая дорога отрегулировать изменять число значений для того чтобы добавить. Последние линии smogли быть:
если заповедник < Array=""> RT, то 3 Redim [3];
Сумма (RT)
Если вы хотите изменить, то сколько значения добавлены, как раз измените те 2 3 к новому значению.
О'КЕЙО, я угадываю который должен дать вас достаточно для того чтобы жевать дальше. -)
Джеймс