Страница 1 из 1
Динамическая колонка
Добавлено: 16 июл 2007, 20:49
DmitriD
Добрый день!:feelgood:
Как быть, если в 1-м из запросов TableAdapter-a выбирается таблица и динамическая колонка Acts.
Смысла добавлять ее в DataTable нет(чтобы Report Designer ее видел), да только как ее отобразить в отчете?
Динамическая колонка
Добавлено: 17 июл 2007, 05:04
Edward
В этом случае Вы можете воспользоваться вычисляемой колонкой, которая создается прямо в дизайнере.
Пример работы с вычисляемыми колонками Вы можете найти здесь:
http://www.stimulsoft.com/livedemos/Rep ... ields.html
Спасибо.
Динамическая колонка
Добавлено: 17 июл 2007, 18:49
DmitriD
К сожалению не представляю как получить значение колонки X c помощью вычисляемой колонки в дизайнере.
select N.autoid1, N.Id_nacl,
(
select GROUP_CONCAT( R.Id_protocol) from
regl_act R WHERE R.Id_invoice_i = N.autoid1
GROUP By R.id_invoice_i
) as x
from nacladnai N
+---------+---------+---------------+
| autoid1 | Id_nacl | x |
+---------+---------+---------------+
| 11 | 1 | 209,280,175,1 |
| 12 | 2 | 3245 |
| 13 | 3 | 134,128,078 |
| 14 |4 | 174,134 |
| 15 | 5 | 096 |
| 16 | 6 | NULL |
| 17 | 7 | NULL |
| 18 | 8 | 222,431,12 |
| 19 | 9 | 61,093 |
+---------+---------+---------------+
9 rows in set
Динамическая колонка
Добавлено: 18 июл 2007, 05:05
Edward
Вы также можете напрямую создать SQL запрос в дизайнере и получить все необходимые колонки сразу в дизайнере.
Пример создания запроса с подключением к базе данных Вы можете посмотреть здесь:
http://www.stimulsoft.com/livedemos/dat ... igner.html
Это, наверное, будет самый простой способ.
Спасибо.
Динамическая колонка
Добавлено: 18 июл 2007, 14:10
Pavel
Достичь желаемого можно выполнив следующие шаги:
1. В словаре определить переменную, например v.
2. Установить в дизайнере связь между "nacladnai" и "regl_act"(добавить Relation)
3. На бэнд(Data1) который отображает "nacladnai", положить контейнер, на контейнер Cross - Data бэнд(Cross_Data1), для которого установить Data Relation = nacladnai, Data Source = "regl_act" и Master Component = Data1, Width = 0 т.к. Cross_Data1 нужен только для того чтобы вытянуть значения из regl_act.
4. На Data1 положить текстбокс("Text1"), где написать: {v}.
5. Для "Text1" на событие AfterPrintEvent написать: v = "";
6. Для Cross_Data1 на событие RenderingEvent написать: v += regl_act.Id_protocol + ";";
В результате получится, что для каждой строки "nacladnai" будет выводится переменная "v", которая будет содержать все значения "regl_act", для данного значения Id_invoice_i, разделенные точкой с запятой.
Т.к. Cross_Data1 имеет нулевую ширину, то доступ к нему лучше осуществлять через Report Tree.
Спасибо.