Вы можете ввести строку значений в поле параметра, используя разделитель.Затем используйте функцию Split()
в своем отчете для анализа поля параметра в массив.
Например, если у вас есть поле параметра с именем MyParam
и вы передали значения в параметр как 1,2,3,4
, тогдаРезультатом этого будет параметр со строковым значением "1,2,3,4"
.Затем, чтобы создать массив строковых значений, вы можете использовать следующее в поле формулы.
Stringvar Array myArray := Split({?MyParam}, ",");
MyArray[1];
Эта формула затем выведет первое значение массива.Изменение индекса для MyArray позволит вам напечатать другие значения массива.
Я все же хочу предостеречь при таком подходе.С такими массивами сложно работать, потому что в Crystal Report есть несколько ограничений.Например, поле формулы может не возвращать массив и всегда будет требовать, чтобы вы указали определенное индексированное значение, которое будет возвращено как скалярный результат формулы.Поэтому, когда вы не знаете, сколько значений ожидать в массиве, логика может стать довольно сложной, чтобы понять, как обращаться со всеми значениями, передаваемыми в параметр.Значение поля параметра всегда должно быть строкой, чтобы это работало также.Поэтому, если вам нужно, чтобы отдельные значения массива анализировались как другой тип данных, вам потребуется преобразовать их в эти типы данных и сохранить их в новых переменных после использования функции Split()
.
Если вызнать, сколько значений следует ожидать в одном поле параметров с самого начала, обычно лучше установить несколько полей параметров с самого начала, поскольку с ними гораздо проще работать в отчете Crystal.