Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Источник данных для ReportViewer / 4 сообщений из 4, страница 1 из 1
18.04.2015, 08:26
    #38939753
Северянин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Источник данных для ReportViewer
Осваиваю отчеты. Формирую источник данных для отчета. Есть такой код, взятый по этой ссылке ( msdn.microsoft.com ):
Код C#
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
using System;
using System.Collections.Generic;
 
// Define the Business Object "Product" with two public properties
//    of simple datatypes.
public class Product {
    private string m_name;
    private int m_price;
 
    public Product(string name, int price) {
        m_name = name;
        m_price = price;
    }
 
    public string Name {
        get {
            return m_name;
        }
    }
 
    public int Price {
        get {
            return m_price;
        }
    }
}
 
// Define Business Object "Merchant" that provides a 
//    GetProducts method that returns a collection of 
//    Product objects.
 
public class Merchant {
    private List<Product> m_products;
 
    public Merchant() {
        m_products = new List<Product>();
        m_products.Add(new Product("Pen", 25));
        m_products.Add(new Product("Pencil", 30));
        m_products.Add(new Product("Notebook", 15));
    }
 
    public List<Product> GetProducts() {
        return m_products;
    }
}




Далее в форме подключаю этот источник данных:
В методе Form1_Load() добавляю следующий код первой строкой перед вызовом метода RefreshReport
Код: c#
1.
this.ProductBindingSource.DataSource = m_merchant.GetProducts();


И в файле Form1.cs добавляю следующий код первой строкой перед конструктором в пределах определения разделяемого класса.
Код: c#
1.
private Merchant m_merchant = new Merchant();


Тут как бы все понятно. Я подставляю свои данные и все работает как надо.
А застрял я вот где:
Как мне в источник данных добавить еще один класс, например такой:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Product2 {
    private string m_name2;
    private int m_price2;
 
    public Product(string name2, int price2) {
        m_name = name2;
        m_price = price2;
    }
 
    public string Name2 {
        get {
            return m_name2;
        }
    }
 
    public int Price2 {
        get {
            return m_price2;
        }
    }
}



Т. е. нужно, чтоб в отчете сначала печатался список из Product, а затем из Product2. Вот если один Product, тогда печатается нормально, а как мне после него воткнуть Product2? Сколько уже бьюсь, ни хрена не получается.
Если так нельзя сделать, может можно "склеить" отчеты? Или хотя бы подскажите, в какую сторону копать.
Прошу прощение за терминологию, пока C# освоил не очень.
...
Рейтинг: 0 / 0
18.04.2015, 13:52
    #38939803
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Источник данных для ReportViewer
Можно два датасета, можно вложенными отчетами

2 (и более) датасета - это предпочтительнее.
...
Рейтинг: 0 / 0
18.04.2015, 14:11
    #38939808
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Источник данных для ReportViewer
Северянин,

Тут не весь код, еще гдето в дизайнере к репорту добавляется датасорс в виде биндингсорса
...
Рейтинг: 0 / 0
18.04.2015, 15:38
    #38939824
Северянин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Источник данных для ReportViewer
Разобрался. Все дело в датасетах. Просто надо их воткнуть в отчет столько, сколько нужно.
Ребята, спасибо большое за помощь!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Источник данных для ReportViewer / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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