这是一个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();
我在ReportData
添加Tablix
后添加RDLC
,添加报告数据 - Add DataSet -> Choose datasource -> chose the Class Balance_Party -> load it to tablix
。
现在,其中一个报告引发了一个问题,即需要在已显示数据集的tablix
中添加列运行时间。怎么做?如何在任何Tablix中添加列运行时。?
编辑: - 添加列的目的是,假设报告是关于每方的总销售额。现在如果一方为另一种类型的商品做生意会怎么样。
E.g。第一列是Party,第二列是一个项目的总销售额,如铅笔。现在有些派对开始销售圆珠笔。所以在设计师中我只添加了一列。现在我需要额外的圆珠笔专栏。在我的电脑上,我可以重新设置报告,但在客户端的电脑上,这是不可能的。