Вам нужно будет обрабатывать изменяемый список во внешней функции. Вы можете создавать UFL и предоставлять такие функции, как ListCreate, ListAdd, ListRead, ListDispose
Если вы не хотите иметь дело с UFL, вы можете изменить размер массива, используя redim preserve
redim preserve arrayname [newsize];
Очевидно, это скопирует существующий массив в новый и увеличит / уменьшит размер, что приведет к снижению производительности. Тем не менее, отчеты Crystal в любом случае работают медленно, и я сомневаюсь, что копирование небольшого массива будет серьезной проблемой производительности.