С Новым годом! Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
7 / 7 / 1
Регистрация: 04.12.2009
Сообщений: 42

SubReports, Стандартные Reports не Crystal Reports, как с ними работать?

22.05.2013, 14:28. Показов 3918. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно вопрос в названии.

Вот пример:
http://www.youtube.com/watch?v=6S8Zzqthsbw
Делал по нему пока, не столкнулся с некоторыми трудностями.
На 5:30 боец перетаскивает один отчет в другой, я так сделать не могу. У меня отчет тянется, но не ложится на другой отчет или в какую либо форму(ячейку).
Затем на 6:15 у бойца есть СоmboBox со списком отчетов, у меня TextBox.
Про предварительный просмотр я уже молчу.

После некоторого времени отчет все таки вставил, но после запуска Вместо положенных данных сообщение о ошибке:
Не удалось получить данные для вложенного отчета расположенного по адресу /*Имя отчета написанного в поле кт. я обозвал TextBox*/.
Дополнительные сведения см. в файлах журнала.

Что за файлы и где они я так и не нашел

Использую:
Microsoft Visual Studio 2010
Версия 10.0.40219.1 SP1Rel
Платформа Microsoft .NET Framework
Версия 4.0.30319 SP1Rel
Установленная версия: Ultimate
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2013, 14:28
Ответы с готовыми решениями:

crystal reports
Проблема при переносе приложения на другой компьютер с x64 ОС, при запуске отчет пустой. Делал setup, туда включал...

Crystal reports + CSharp или C++
Начал смотреть VS .NET, понравился Crystal reports. Хочу сделать прилагу на С++ или CSharp, наверное придется на CSharp, т.к. там есть...

Crystal Reports - кто-нибудь работал ?
Задача такая : нужно написать программу, которая представляет данные (считанные из базы) в виде таблиц, отчётов, и, что самое главное —...

6
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 4
26.09.2013, 15:14
Sanek911, здравствуйте.
Наткнулся на это сообщение при поиске решения такой же проблемы в абсолютно такой же ситуации. Если не сложно - решили ли вы проблему? Если да то как?
0
7 / 7 / 1
Регистрация: 04.12.2009
Сообщений: 42
27.09.2013, 09:34  [ТС]
Создание SubReport
//-------------------------
Создаем два обычных отчета.
//-------------------------
В одном из них в какое-то поле добавляем элемент SubReport(Панель элементов).
В свойствах SubReport'а, Parameters элемента SubReport, добавляете параметр и указываете его имя (например, Par) и значение (например, =Fields!CustomerID.Value).
//-------------------------
В файле rdlc вложенного отчета:
1. Данные отчета -> Параметры -> создаем параметр с таким же именем(Par).
2. В свойстве таблицы, на вкладке фильтры указываете выражение (например: выражение(=Fields!CustomerID.Value), оператор(=), значение(=Parameters!Par.Value).
//-------------------------
необходимо добавить следующий код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//подключить библиотеку ибо не будет данного события
using Microsoft.Reporting.WinForms;
 
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) {
//Передаем источник данных в отчет
//e.DataSources.Add(new ReportDataSource(/*Имя DataSet в SubReport'e*/, /*объект с данными*/));
    e.DataSources.Add(new ReportDataSource("PerHourSectorInfo", this.PerHourSectorInfoBindingSource));
}
 
private void btnShowReport_Click(object sender, EventArgs e) {
//Подписываемся на событие
    this.reportViewer1.LocalReport.SubreportProcessing +=
        new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
 
    reportViewer1.RefreshReport();
}
1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 4
27.09.2013, 11:35
Да все вроде так.
Но в результате вместо вложенного отчета (основной печатается нормально) выводится сообщение
"Не удалось получить данные для вложенного отчета расположенного по адресу ... Дополнительные сведения см. в файлах журнала."
При чем данные, нужные записи детальной таблицы, в e.DataSources я под отладчиком вижу, они там есть. Поэтому мне кажется, что главный отчет не видит самого определения подчиненного отчета.
У меня в студии тоже везде вместо комбобоксов - текстовые поля, куда названия отчетов приходится забивать вручную, а не выбирать из доступного. Может в этом причина? Типа данные корректны по форме, но не найдены по содержанию.

Добавлено через 36 минут
Попробовал сейчас на вложенном отчете вывести просто статический текст - не помогло.
Отдельно (как основной), кстати, вложенный отчет печатается нормально.

Добавлено через 1 минуту
т.е. похоже, что не доступно именно описание вложенного отчета, а не данные из БД, на которые я сначала грешил.
0
7 / 7 / 1
Регистрация: 04.12.2009
Сообщений: 42
30.09.2013, 11:41  [ТС]
забыл об этом:

C#
1
2
3
4
5
6
private void SetDataSourceForReportViewer(String NameDataSet, DataTable TabSource) {
  ReportDataSource oReportDataSource = new ReportDataSource();
  oReportDataSource.Name = NameDataSet;//Имя ДатаСета
  oReportDataSource.Value = TabSource;//Источник данных
  this.rpview.LocalReport.DataSources.Add(oReportDataSource);//Добавление источника данных
}
сюда нужно передать
Имя ДатаСета отчета
Дата тейбл с данными

Добавлено через 16 минут
Значит так по коду дело обстоит так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//подключить библиотеку ибо не будет нужного события
using Microsoft.Reporting.WinForms;
 
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) {
//Передаем источник данных в отчет
//e.DataSources.Add(new ReportDataSource(/*Имя DataSet в SubReport'e*/, /*объект с данными*/));
    e.DataSources.Add(new ReportDataSource("PerHourSectorInfo", this.PerHourSectorInfoBindingSource));
}
 
private void SetDataSourceForReportViewer(String NameDataSet, DataTable TabSource) {
    ReportDataSource oReportDataSource = new ReportDataSource();
    oReportDataSource.Name = NameDataSet;//Имя ДатаСета
    oReportDataSource.Value = TabSource;//Источник данных(Дата Тейбл)
}
 
private void btnShowReport_Click(object sender, EventArgs e) {
    //Загружаешь данные в свои дата тейблы
    //указываешь какой репорт показывать
    this.rpview.LocalReport.ReportEmbeddedResource = "Dispatcher.Сменный отчет.rdlc";
    //указываешь сабрепорты
    SetDataSourceForReportViewer("udf_MineData", this.dsReport.udf_MineData);
 
    //Подписываемся на событие
    this.reportViewer1.LocalReport.SubreportProcessing +=
        new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
 
    reportViewer1.RefreshReport();
}
вроде должно работать
1
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 4
30.09.2013, 14:51
Sanek911, Спасибо. Вроде заработало.
Просто стал по порядку делать отчет с нуля заново. Сначала сделал со статическим текстом - вложенность заработала. Потом потихоньку наращивал. Вроде сделал что хотел.
Видимо, в своем первом варианте, при создании методом тыка где то не туда или не так тыкнул. Попозже попробую разобраться.
Спасибо еще раз.
0
7 / 7 / 1
Регистрация: 04.12.2009
Сообщений: 42
07.10.2013, 11:54  [ТС]
В моем ответе за 30.09.2013, 10:41 [ТС] есть недочеты. т.к. исправить не могу решил написать все заново

//-------------------------
Создаем два обычных отчета.
//-------------------------
В одном из них в какое-то поле добавляем элемент SubReport(Панель элементов).
Заходим "Свойства вложенного отчета"
в поле "Использовать этот отчет в качестве вложенного:" пишем только имя одного из наших отчетов без .rdlc
Затем:
Parameters элемента SubReport, добавляете параметр и указываете его имя (например, Par) и значение (например, =Fields!CustomerID.Value).
//-------------------------
В файле rdlc вложенного отчета:
1. Данные отчета -> Параметры создаем параметр с таким же именем(Par).
2. В свойстве таблицы, на вкладке фильтры указываете выражение (например: выражение(=Fields!CustomerID.Value), оператор(=), значение(=Parameters!Par.Value).
//-------------------------
необходимо добавить следующий код

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//подключить библиотеку ибо не будет нужного события
using Microsoft.Reporting.WinForms;
 
private void SetDataSourceForReportViewer(String NameDataSet, DataTable TabSource) {
    ReportDataSource oReportDataSource = new ReportDataSource();
    oReportDataSource.Name = NameDataSet;//Имя ДатаСета(того что в отчете)
    oReportDataSource.Value = TabSource;//Источник данных(тут много вариантов, но я использовал DataTabe)
    this.reportViewer1.LocalReport.DataSources.Add(oReportDataSource);//Добавление источника данных(а именно отчета)
}
 
private void btnShowReport_Click(object sender, EventArgs e) {
    //Пишем путь к главному отчету
    reportViewer1.LocalReport.ReportEmbeddedResource = "DMZOrderReport.ReportDMZ.rdlcc";
 
    //этот метод вызвать нужно для главного отчета, для Subreport'ов работает событие
    SetDataSourceForReportViewer("udf_MineData", this.dsReport.udf_MineData);
 
    //Подписываемся на событие
    this.reportViewer1.LocalReport.SubreportProcessing +=
        new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
 
    reportViewer1.RefreshReport();
}
 
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) {
//Передаем источник данных в отчет
//e.DataSources.Add(new ReportDataSource(/*Имя DataSet в SubReport'e*/, /*объект с данными*/));
    e.DataSources.Add(new ReportDataSource("PerHourSectorInfo", this.PerHourSectorInfoBindingSource));
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2013, 11:54
Помогаю со студенческими работами здесь

Управление отчетом в Crystal Reports .NET
Никак не могу понять возможно ли _программно_ делать следующие вещи. 1)Изменять число колонок в отчете. 2)Изменять поля привязанные к...

Создание дистрибутива приложения, работающего с БД и Crystal reports
Здравствуйте! Подскажите, пожалуйста, каким образом в VS 2010 можно создать дистрибутив приложения на C#? при этом в приложении...

Исключение в Crystal Reports
Всем привет, пытаяюсь отловить Exception который возникает из-за невалидной ф-ции в файле rpt. Некоторые файлы отчетов приводят к тому,...

Crystal reports на другом компьютере
Написал программку с отчетами Crystal Reports. На копмпьютере где ВС стоит, все замечательно работает. На другом компьютере вылетает ошибка...

Развертывание приложения с Crystal Reports
Здравствуй форум! Сделал программу БД с отчетами на Crystal Reports. На другом компе она не пашет. Я в гугл сразу конечно. Нашел 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru