Как создается ваш скриптлет? Единственное, что приходит на ум, это если у вас есть класс вроде
public class YourScriptlet extends JRDefaultScriptlet {
public void afterDetailEval() throws JRScriptletException {
// your code here
}
}
Вы можете добавить конструктор и закрытый член для другого объекта, который служит контейнером для всего, что вам нужно вне контекста Jasper, например,
Какой-то объект для отслеживания количества (или того, что вам нужно, чтобы отслеживать)
public class YourInfoObject {
private final AtomicInteger count = new AtomicInteger();
public int increment() {
return this.count.incrementAndGet();
}
public int get() {
return this.count.intValue();
}
public void set(int value) {
this.count.set(value);
}
}
Ваш класс скриптлета с конструктором
public class YourScriptlet extends JRDefaultScriptlet {
private final YourInfoObject obj;
public YourScriptlet(YourInfoObject obj) {
this.obj = obj;
}
public void afterDetailEval() throws JRScriptletException {
// your code here
obj.set(count);
}
}
Затем откуда угодно (сервлет со ссылкой на ваш объект) вы можете получить доступ к значению.