powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с MicrosoftReprtViewer
2 сообщений из 2, страница 1 из 1
Работа с MicrosoftReprtViewer
    #35831354
ozist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, помогите со следующей проблемой.

В VisualStudio VB.Net создал отчет. На формочку кинул MicrosoftReprtViewer а в нем указал ссылку на rdlc - файл, а также DataSorces.

В rdlc - фацйле расположен какой-то текст1, потом идет график1, за графиком1 какой-то текст2, а потом график2.

Проблема заключается в следующем: Как мне программно сделать так, что если условие1, тогда выводится какой-то текст1, график1. А если условие2, тогда какой-то текст2, график2?

Заранее спасибо!
...
Рейтинг: 0 / 0
Работа с MicrosoftReprtViewer
    #35831612
ozist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то никто не отвечает! Тогда отвечу сам себе на свой же вопрос: :-)
Для того чтобы при условии1 в отчете выводить текст1 с графиком1, а при условии2 - текст2 с графиком2 делаем следующее:

Шаг1. Для нашего report.rdlc задаем два параметра: Param1, Param2. Кидаем в конструктор отчета Rectangle1, внутрь Rectangle1 помещаем TextBox1 и Chart1. Открываем Properties:
Rectangle1-->Visibility --> Hidden жмем <Expression...> в открывшемся редакторе формул пишем следующее: "=IIF(Parameters!Param1.Value = True,False,True)" - это означает, что если наш Param1 будет содержать в себе значение "True", тогда Rectangle1 - будет видимым, иначе не будет! Но, т.к. в Rectangle1 находятся еще и TextBox1 с Chart1, то и на них будет распространятся данное условие!

Шаг2. Повторяем Шаг1. только для Rectangle2, TextBox2, Chart2, Param2.

Шаг3. Далее необходимо в Param1 и Param2 каким-то образом посылать значения: На форме моего проекта я расположил CheckBox1 и CheckBox2, а также ReportViewer1 и Button1 и написал следующий код для обработчика события при нажатии Button1:

Dim ParamList As New System.Collections.Generic.List(Of_
Microsoft.Reporting.WinForms.ReportParameter)
ParamList.Add(New Microsoft.Reporting.WinForms.ReportParameter("Param1",_
Me.CheckBox1.Checked.ToString, False))
ParamList.Add(New Microsoft.Reporting.WinForms.ReportParameter("Param2",_
Me.CheckBox2.Checked.ToString, False))
Try
Me.ReportViewer1.LocalReport.SetParameters(ListParam)
Catch ex As System.Exception
MessageBox.Show(ex.ToString)
End Try
Me.ReportViewer1.RefreshReport()


Готово! Теперь Если user жмет CheckBox1 - ему в отчет выпадает одна инфа, если CheckBox2 - другая инфа, если галки стоят на обоих чекбоксах - в отчет попадает все! :-)

P.S.
На сайте msdn есть небольшой пример для метода SetParameters() с единственным отличием, в том примере в этот метод пихают параметр с типом "Microsoft.Reporting.WinForms.ReportParameter".
В моем же случае это не прокатило, мой метод SetParameters(), безжалостно требовал параметр с типом "System.Collections.Generic.IEnumerable(Of Microsoft.Reporting.WinForms.ReportParameter)", что видно из выше написанного кода. :-)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с MicrosoftReprtViewer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]