Страница 1 из 1

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

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

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

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

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

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

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

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

Или опять же другой способ может есть?

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

Добавлено: 20 июн 2013, 18:10
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 21 июн 2013, 07:23
Буланов
2 таблицы:

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

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

Реальные данные совсем не про спортсменов. Пример привел для упрощения взаимопонимания.

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

Добавлено: 21 июн 2013, 17:56
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 24 июн 2013, 07:29
Буланов
Спасибо, что пытаетесь помочь.

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

Добавлено: 24 июн 2013, 16:48
Aleksey
Здравствуйте,

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

Спасибо.

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

Добавлено: 17 мар 2016, 12:49
ka3yc
Aleksey писал(а):Здравствуйте,

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

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

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

Может, это можно как-то сделать по-хитрому?
Прикладываю макет отчета, не требующий данных, и картинку, как хотелось бы
Report.mrt
(7.67 КБ) 372 скачивания
desired.png
desired.png (23.41 КБ) 4151 просмотр

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

Добавлено: 17 мар 2016, 13:58
Aleksey
Здравствуйте,

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

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

Спасибо.

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

Добавлено: 22 мар 2016, 07:16
ka3yc
Алексей, спасибо за участие :)

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

Добавлено: 22 мар 2016, 09:51
Aleksey
Здравствуйте,

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

Спасибо.