Использование кросс-данных
Использование кросс-данных
1. Есть задача сформировать отчет, в котором будет что-то такое (суть: список команд по вертикали и члены команд по горизонтали, сгруппированные по спортивным достижениям):
Строка 1. ||Команда А||Мастер спорта:|Иванов| Петров | Сидоров || 1 разряд: | Васечкин___________ || 2 разряд: Попов
Строка 2. ||Команда Б||Мастер спорта:|Бобров |________________|| 1 разряд: | Никифоров | Марков
Использую бэнд "Данные", в который вывожу "Команда А", "Команда Б" и т.д. и в нем кросс-бэнд "Данные", в котором вывожу людей, сгруппированных по спортивным достижениям. В результате получаю:
Строка 1. || Команда А || Мастер спорта: | Иванов | Петров | Сидоров || 1 разряд: | Васечкин || 2 разряд: Попов
Строка 2. || Команда Б || Мастер спорта: | Бобров || 1 разряд: | Никифоров | Марков
т.е. выравнивания по наименованиям групп между строками не происходит. Можно с этим что-то сделать? Или может другой способ есть?
2. Используя бэнд "Заголовок колонки" и указав в бэнде "Данные" ширину колонки и количество колонок, можно копировать заголовки для всех колонок. А можно ли такое сделать для бэнда "Кросс-данные"? Т.е. чтобы выглядело примерно так:
№ Строки ||__Команда__||Фамилия/Возраст|Фамилия/Возраст|Фамилия/Возраст||
Строка 1. ||_Команда А_||_Иванов_/__ 30__|_Петров_/__25__|_Сидоров_/_23__||
Строка 2. ||_Команда Б_||_Бобров_/___29__|_Марков_/__27__| ______________||
Или опять же другой способ может есть?
Строка 1. ||Команда А||Мастер спорта:|Иванов| Петров | Сидоров || 1 разряд: | Васечкин___________ || 2 разряд: Попов
Строка 2. ||Команда Б||Мастер спорта:|Бобров |________________|| 1 разряд: | Никифоров | Марков
Использую бэнд "Данные", в который вывожу "Команда А", "Команда Б" и т.д. и в нем кросс-бэнд "Данные", в котором вывожу людей, сгруппированных по спортивным достижениям. В результате получаю:
Строка 1. || Команда А || Мастер спорта: | Иванов | Петров | Сидоров || 1 разряд: | Васечкин || 2 разряд: Попов
Строка 2. || Команда Б || Мастер спорта: | Бобров || 1 разряд: | Никифоров | Марков
т.е. выравнивания по наименованиям групп между строками не происходит. Можно с этим что-то сделать? Или может другой способ есть?
2. Используя бэнд "Заголовок колонки" и указав в бэнде "Данные" ширину колонки и количество колонок, можно копировать заголовки для всех колонок. А можно ли такое сделать для бэнда "Кросс-данные"? Т.е. чтобы выглядело примерно так:
№ Строки ||__Команда__||Фамилия/Возраст|Фамилия/Возраст|Фамилия/Возраст||
Строка 1. ||_Команда А_||_Иванов_/__ 30__|_Петров_/__25__|_Сидоров_/_23__||
Строка 2. ||_Команда Б_||_Бобров_/___29__|_Марков_/__27__| ______________||
Или опять же другой способ может есть?
Re: Использование кросс-данных
Здравствуйте.
Для ответа на ваш вопрос нам необходимо видеть структуру ваших данных.
Пришлите, пожалуйста, тестовые данные для отчёта.
Спасибо.
Для ответа на ваш вопрос нам необходимо видеть структуру ваших данных.
Пришлите, пожалуйста, тестовые данные для отчёта.
Спасибо.
Re: Использование кросс-данных
2 таблицы:
КОМАНДА
primaryKey
Наименование
СПОРТСМЕН
primaryKey
Фамилия
Возраст
СпортивноеЗвание
Команда (ссылка на таблицу КОМАНДА)
Реальные данные совсем не про спортсменов. Пример привел для упрощения взаимопонимания.
КОМАНДА
primaryKey
Наименование
СПОРТСМЕН
primaryKey
Фамилия
Возраст
СпортивноеЗвание
Команда (ссылка на таблицу КОМАНДА)
Реальные данные совсем не про спортсменов. Пример привел для упрощения взаимопонимания.
Re: Использование кросс-данных
Здравствуйте.
Мы пока не можем предложить вам решение проблемы.
Но мы ещё не рассмотрели все варианты.
Нам необходимо дополнительное время для ответа.
Спасибо.
Мы пока не можем предложить вам решение проблемы.
Но мы ещё не рассмотрели все варианты.
Нам необходимо дополнительное время для ответа.
Спасибо.
Re: Использование кросс-данных
Спасибо, что пытаетесь помочь.
Re: Использование кросс-данных
Здравствуйте,
Как вариант, можно использовать несколько вложенных друг в друга датабэндов с дополнительным источником данных. В событиях необходимо будет устанавливать количество колонок для корректного отображения. В приложенном отчете устанавливается количество колонок только для "спортивного звания", возможно, на реальных данных придется так же расчитывать и количество колонок для фамилий, чтобы они помещались и не наслаивались друг на друга.
Спасибо.
Как вариант, можно использовать несколько вложенных друг в друга датабэндов с дополнительным источником данных. В событиях необходимо будет устанавливать количество колонок для корректного отображения. В приложенном отчете устанавливается количество колонок только для "спортивного звания", возможно, на реальных данных придется так же расчитывать и количество колонок для фамилий, чтобы они помещались и не наслаивались друг на друга.
Спасибо.
- Вложения
-
- Capture.PNG (26.47 КБ) 4611 просмотров
-
- ReportSport.mrt
- (12.53 КБ) 424 скачивания
-
- data.xml
- (1.89 КБ) 383 скачивания
Re: Использование кросс-данных
Добрый день!Aleksey писал(а):Здравствуйте,
Как вариант, можно использовать несколько вложенных друг в друга датабэндов с дополнительным источником данных. В событиях необходимо будет устанавливать количество колонок для корректного отображения.
Увидел такую фишку, как колонки, думал, спасение -ан нет.
Если строка текста длиннее, чем ширина колонки, и перенос слов выключен (а с переносом будет смотреться ужасно), то часть текста будет обрезана.
Можно сделать колонку пошире, чтоб влезал самый длинный текст, но тогда если строчки будут короткими, будет смотреться нелепо.
Мне бы хотелось сделать вывод, наподобие Win-form'овского FlowLayoutPanel: чтобы элементы (текстбоксы) выводились слева направо, пока хватает места, потом перенос на следующую строку и так далее.
Пробовал добавлять cross-data -там не делается перенос
Поясню, на всякий случай, зачем мне это. Можно было бы передать отчету одну строку, где были бы склеены значения, но проблема в том, что на каждый из элементов нужно будет навесить гиперссылку.
Может, это можно как-то сделать по-хитрому?
Прикладываю макет отчета, не требующий данных, и картинку, как хотелось бы
Re: Использование кросс-данных
Здравствуйте,
Вывести данные в одну строку, с определенным разделителем, возможно с помощью функции Func.EngineHelper.JoinColumnContent(). Но, в данном случае, нельзя будет добавить гиперссылки.
К сожалени, простого решения для вашей задачи нет. Как вариант, это только полностью рендерить данный отчет из кода - получать список значений и вручную добавлять текстовые элементы с нужными переносами.
Спасибо.
Вывести данные в одну строку, с определенным разделителем, возможно с помощью функции Func.EngineHelper.JoinColumnContent(). Но, в данном случае, нельзя будет добавить гиперссылки.
К сожалени, простого решения для вашей задачи нет. Как вариант, это только полностью рендерить данный отчет из кода - получать список значений и вручную добавлять текстовые элементы с нужными переносами.
Спасибо.
Re: Использование кросс-данных
Алексей, спасибо за участие
Re: Использование кросс-данных
Здравствуйте,
Дайте знать, если будут еще вопросы.
Спасибо.
Дайте знать, если будут еще вопросы.
Спасибо.