Использование кросс-данных

Обсуждение Stimulsoft Reports.NET
Ответить
Буланов
Сообщения: 3
Зарегистрирован: 19 июн 2013, 16:44

Использование кросс-данных

Сообщение Буланов »

1. Есть задача сформировать отчет, в котором будет что-то такое (суть: список команд по вертикали и члены команд по горизонтали, сгруппированные по спортивным достижениям):

Строка 1. ||Команда А||Мастер спорта:|Иванов| Петров | Сидоров || 1 разряд: | Васечкин___________ || 2 разряд: Попов
Строка 2. ||Команда Б||Мастер спорта:|Бобров |________________|| 1 разряд: | Никифоров | Марков

Использую бэнд "Данные", в который вывожу "Команда А", "Команда Б" и т.д. и в нем кросс-бэнд "Данные", в котором вывожу людей, сгруппированных по спортивным достижениям. В результате получаю:

Строка 1. || Команда А || Мастер спорта: | Иванов | Петров | Сидоров || 1 разряд: | Васечкин || 2 разряд: Попов
Строка 2. || Команда Б || Мастер спорта: | Бобров || 1 разряд: | Никифоров | Марков

т.е. выравнивания по наименованиям групп между строками не происходит. Можно с этим что-то сделать? Или может другой способ есть?

2. Используя бэнд "Заголовок колонки" и указав в бэнде "Данные" ширину колонки и количество колонок, можно копировать заголовки для всех колонок. А можно ли такое сделать для бэнда "Кросс-данные"? Т.е. чтобы выглядело примерно так:

№ Строки ||__Команда__||Фамилия/Возраст|Фамилия/Возраст|Фамилия/Возраст||
Строка 1. ||_Команда А_||_Иванов_/__ 30__|_Петров_/__25__|_Сидоров_/_23__||
Строка 2. ||_Команда Б_||_Бобров_/___29__|_Марков_/__27__| ______________||

Или опять же другой способ может есть?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Использование кросс-данных

Сообщение HighAley »

Здравствуйте.

Для ответа на ваш вопрос нам необходимо видеть структуру ваших данных.
Пришлите, пожалуйста, тестовые данные для отчёта.

Спасибо.
Буланов
Сообщения: 3
Зарегистрирован: 19 июн 2013, 16:44

Re: Использование кросс-данных

Сообщение Буланов »

2 таблицы:

КОМАНДА
primaryKey
Наименование

СПОРТСМЕН
primaryKey
Фамилия
Возраст
СпортивноеЗвание
Команда (ссылка на таблицу КОМАНДА)

Реальные данные совсем не про спортсменов. Пример привел для упрощения взаимопонимания.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Использование кросс-данных

Сообщение HighAley »

Здравствуйте.

Мы пока не можем предложить вам решение проблемы.
Но мы ещё не рассмотрели все варианты.
Нам необходимо дополнительное время для ответа.

Спасибо.
Буланов
Сообщения: 3
Зарегистрирован: 19 июн 2013, 16:44

Re: Использование кросс-данных

Сообщение Буланов »

Спасибо, что пытаетесь помочь.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Использование кросс-данных

Сообщение Aleksey »

Здравствуйте,

Как вариант, можно использовать несколько вложенных друг в друга датабэндов с дополнительным источником данных. В событиях необходимо будет устанавливать количество колонок для корректного отображения. В приложенном отчете устанавливается количество колонок только для "спортивного звания", возможно, на реальных данных придется так же расчитывать и количество колонок для фамилий, чтобы они помещались и не наслаивались друг на друга.

Спасибо.
Вложения
Capture.PNG
Capture.PNG (26.47 КБ) 4621 просмотр
ReportSport.mrt
(12.53 КБ) 425 скачиваний
data.xml
(1.89 КБ) 384 скачивания
ka3yc
Сообщения: 18
Зарегистрирован: 07 авг 2008, 03:50
Откуда: Russia, Samara

Re: Использование кросс-данных

Сообщение ka3yc »

Aleksey писал(а):Здравствуйте,

Как вариант, можно использовать несколько вложенных друг в друга датабэндов с дополнительным источником данных. В событиях необходимо будет устанавливать количество колонок для корректного отображения.
Добрый день!
Увидел такую фишку, как колонки, думал, спасение -ан нет.
Если строка текста длиннее, чем ширина колонки, и перенос слов выключен (а с переносом будет смотреться ужасно), то часть текста будет обрезана.
Можно сделать колонку пошире, чтоб влезал самый длинный текст, но тогда если строчки будут короткими, будет смотреться нелепо.

Мне бы хотелось сделать вывод, наподобие Win-form'овского FlowLayoutPanel: чтобы элементы (текстбоксы) выводились слева направо, пока хватает места, потом перенос на следующую строку и так далее.
Пробовал добавлять cross-data -там не делается перенос :)

Поясню, на всякий случай, зачем мне это. Можно было бы передать отчету одну строку, где были бы склеены значения, но проблема в том, что на каждый из элементов нужно будет навесить гиперссылку.

Может, это можно как-то сделать по-хитрому?
Прикладываю макет отчета, не требующий данных, и картинку, как хотелось бы
Report.mrt
(7.67 КБ) 372 скачивания
desired.png
desired.png (23.41 КБ) 4155 просмотров
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Использование кросс-данных

Сообщение Aleksey »

Здравствуйте,

Вывести данные в одну строку, с определенным разделителем, возможно с помощью функции Func.EngineHelper.JoinColumnContent(). Но, в данном случае, нельзя будет добавить гиперссылки.

К сожалени, простого решения для вашей задачи нет. Как вариант, это только полностью рендерить данный отчет из кода - получать список значений и вручную добавлять текстовые элементы с нужными переносами.

Спасибо.
ka3yc
Сообщения: 18
Зарегистрирован: 07 авг 2008, 03:50
Откуда: Russia, Samara

Re: Использование кросс-данных

Сообщение ka3yc »

Алексей, спасибо за участие :)
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Использование кросс-данных

Сообщение Aleksey »

Здравствуйте,

Дайте знать, если будут еще вопросы.

Спасибо.
Ответить