|
|
|
Работа с MicrosoftReprtViewer
|
|||
|---|---|---|---|
|
#18+
Народ, помогите со следующей проблемой. В VisualStudio VB.Net создал отчет. На формочку кинул MicrosoftReprtViewer а в нем указал ссылку на rdlc - файл, а также DataSorces. В rdlc - фацйле расположен какой-то текст1, потом идет график1, за графиком1 какой-то текст2, а потом график2. Проблема заключается в следующем: Как мне программно сделать так, что если условие1, тогда выводится какой-то текст1, график1. А если условие2, тогда какой-то текст2, график2? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2009, 21:41 |
|
||
|
Работа с MicrosoftReprtViewer
|
|||
|---|---|---|---|
|
#18+
Что-то никто не отвечает! Тогда отвечу сам себе на свой же вопрос: :-) Для того чтобы при условии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)", что видно из выше написанного кода. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2009, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35831354&tid=1351933]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
111ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 408ms |

| 0 / 0 |
