Объединить несколько значений одного поля базы данных - PullRequest
2 голосов
/ 23 августа 2011

У меня есть отчет, который вводит значения из хранимой процедуры.Я хочу использовать некоторые из этих значений как часть заголовка отчета.

Я пытаюсь найти способ взять каждое из 2–5 различных значений из поля базы данных «Распределить» и объединить ихсделать заголовок, разделенный пробелами и запятыми, когда это необходимо.

Если бы я делал это в C #, я бы использовал foreach и распечатывал каждое значение, но я не вижу такой функциональности в Crystal Reports.

Как можно объединить каждое значение вотдельное поле базы данных?ПОЭТОМУ, это поле в настоящее время используется для заполнения строки в кросс-таблице.Я тоже подумал о том, чтобы получить доступ к этому полю кросс-таблицы, но не понимаю, как это возможно изнутри функции.

1 Ответ

4 голосов
/ 23 августа 2011

Создайте формулу с именем «push», добавьте ее в раздел «Сведения», исключите ее и добавьте к ее тексту следующее:

//{@push}
//build an array of unique string values

//force formula to execute during first pass (before grouping and totaling is done)
WhileReadingRecords;  

//create a string array
Stringvar Array items;

//change {table.field} to an appropriate value
items := Array_Push(items, {table.field});

//can't return an array, so use a dummy value
true;

Создайте формулу с именем 'serialize', добавьте ее в раздел заголовка отчета, затем добавьте к ее тексту следующее:

//{@serialize}
//create comma-delimited list

//force evaluation to occur during second pass
WhilePrintingRecords;  

//declare array
Stringvar Array items;

//serialize array
Join(items, ",");

Это решение основано на двух пользовательских функциях, которые я создал: Array_Push () и Array_Contains ()

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