Значения двух полей привязываются к одному xrlabel во время выполнения.

Мой отчет связан с DataTable. Я хочу показать два значения поля в моей метке.

private void Form1_Load(object sender, EventArgs e)
{
    using (rptCustomer rpt = new rptCustomer())
    {
        rpt.DataSource = CreateTestData();
        rpt.DataMember = CreateTestData().TableName;

        rpt.xrLabel.Text = "[CustomerID] - [CustomerName]"; // it's doesn't work

        //rpt.xrLabel.DataBindings.Add("Text", null, "Customer.CustomerID"); -- it's work

        rpt.xrCustomerID.DataBindings.Add("Text", null, "Customer.CustomerID");
        rpt.xrCustomerName.DataBindings.Add("Text", null, "Customer.CustomerName");
        rpt.xrCustomerAddress.DataBindings.Add("Text", null, "Customer.Address");
        rpt.ShowPreviewDialog();
    }
}

public DataTable CreateTestData()
{
    DataTable dt = new DataTable("Customer");
    dt.Columns.Add("CustomerID");
    dt.Columns.Add("CustomerName");
    dt.Columns.Add("Address");

    for (int i = 1; i <= 10; i++)
    {
        DataRow row = dt.NewRow();
        row[0] = i;
        row[1] = "Customer " + i;
        row[2] = "Address " + i;
        dt.Rows.Add(row);
    }

    return dt;
}

Это мой отчет о результатах.
[CustomerID] - [CustomerName] должно быть 1 - Customer 1.

Вот мой результат!


person Triple K    schedule 27.10.2015    source источник


Ответы (1)


Вам необходимо использовать объект DataSet в качестве источника данных для вашего отчета.
Вот пример:

using (rptCustomer rpt = new rptCustomer())
{
    var dataSet = new DataSet("TestDataSet");
    var table = CreateTestData();

    dataSet.Tables.Add(table);

    rpt.DataSource = dataSet;
    rpt.DataMember = table.TableName;

    rpt.xrLabel.Text = "[CustomerID] - [CustomerName]"; // Suddenly, it's work.

    //rpt.xrLabel.DataBindings.Add("Text", null, "Customer.CustomerID"); -- It's work too.

    rpt.xrCustomerID.DataBindings.Add("Text", null, "Customer.CustomerID");
    rpt.xrCustomerName.DataBindings.Add("Text", null, "Customer.CustomerName");
    rpt.xrCustomerAddress.DataBindings.Add("Text", null, "Customer.Address");
    rpt.ShowPreviewDialog();
}
person nempoBu4    schedule 27.10.2015