这是一个Windows桌面应用程序 . 我在rdlc中使用 List<> 作为 data .

下面是代码 .

public class Balance_Party
{
    public string Name { get; set; }
    public double Amount { get; set; }

    public static List<Balance_Party> GetPartyBalance()
    {
        List<Balance_Party> list = new List<Balance_Party>();

        string qry = "SELECT " + 
            "[PRTY_NAME] AS NAME,[PRTY_AMOUNT] AS AMOUNT " + 
            "FROM [PARTY_MSTR]";
        DataTable dt = globalData.q.select(qry, globalData.connectionstring);

        list = (from DataRow row in dt.Rows

                    select new Balance_Party
                    {
                        Name = row["NAME"].ToString() == string.Empty ? " " : row["NAME"].ToString(),
                        Amount = row["AMOUNT"].ToString() == string.Empty ? 0 : Convert.ToDouble(row["AMOUNT"].ToString())
                    }).ToList();
        return list;
    }
}

Report_Viewer 表单中,我按以下方式加载 List<> .

Microsoft.Reporting.WinForms.ReportDataSource dataset1
            = new Microsoft.Reporting.WinForms.ReportDataSource();

this.reportViewer.LocalReport.DataSources.Clear();
        this.reportViewer.LocalReport.ReportEmbeddedResource = "Report";
var list1 = Balance_Party.GetPartyBalance();
dataset1 = new Microsoft.Reporting.WinForms.ReportDataSource("Balance_Party", list1);
dataset1.Value = list1;

this.reportViewer.LocalReport.DataSources.Add(dataset1);
this.reportViewer.LocalReport.Refresh();
this.reportViewer.RefreshReport();

RDLC 中添加 Tablix 之后添加 ReportData ,添加报告数据 - Add DataSet -> Choose datasource -> chose the Class Balance_Party -> load it to tablix .

现在,其中一个报告引发了一个问题,即它需要在已经有要显示的数据集的 tablix 中添加列运行时 . 怎么做?如何在任何tablix中添加列运行时 .

编辑: - 添加列的目的是,假设报告是关于每方的总销售额 . 现在如果一方为另一种类型的商品做生意会怎样 .

例如 . 第一列是Party,第二列是一个项目的总销售额,如铅笔 . 现在有些派对开始销售圆珠笔 . 所以在设计师中我只添加了一列 . 现在我需要额外的圆珠笔专栏 . 在我的电脑上,我可以重新设置报告,但在客户端的电脑上,这是不可能的 .