Как передать несколько данных в параметр Crystal Report - PullRequest
0 голосов
/ 11 октября 2018

Как мне передать несколько значений одному параметру в отчете Crystal?

enter image description here

В моем поле Qty я хочу, чтобы это были мои входные значения,Как мне этого добиться?

int[] value = new int[listProducts.Items.Count];
        int[] mylist = new int[listProducts.Items.Count];
        foreach (ListViewItem item in listProducts.Items)
        {
            mylist = value.Select(I => int.Parse(item.SubItems[2].Text)).ToArray();
        }
returnGood.SetParameterValue("_Qty", mylist);

В моем отчете отображается только 1 значение, я ввел 13 и 15, но отображается только 13.

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете ввести строку значений в поле параметра, используя разделитель.Затем используйте функцию Split() в своем отчете для анализа поля параметра в массив.

Например, если у вас есть поле параметра с именем MyParam и вы передали значения в параметр как 1,2,3,4, тогдаРезультатом этого будет параметр со строковым значением "1,2,3,4".Затем, чтобы создать массив строковых значений, вы можете использовать следующее в поле формулы.

Stringvar Array myArray := Split({?MyParam}, ",");
MyArray[1];

Эта формула затем выведет первое значение массива.Изменение индекса для MyArray позволит вам напечатать другие значения массива.

Я все же хочу предостеречь при таком подходе.С такими массивами сложно работать, потому что в Crystal Report есть несколько ограничений.Например, поле формулы может не возвращать массив и всегда будет требовать, чтобы вы указали определенное индексированное значение, которое будет возвращено как скалярный результат формулы.Поэтому, когда вы не знаете, сколько значений ожидать в массиве, логика может стать довольно сложной, чтобы понять, как обращаться со всеми значениями, передаваемыми в параметр.Значение поля параметра всегда должно быть строкой, чтобы это работало также.Поэтому, если вам нужно, чтобы отдельные значения массива анализировались как другой тип данных, вам потребуется преобразовать их в эти типы данных и сохранить их в новых переменных после использования функции Split().

Если вызнать, сколько значений следует ожидать в одном поле параметров с самого начала, обычно лучше установить несколько полей параметров с самого начала, поскольку с ними гораздо проще работать в отчете Crystal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...