我正在尝试使用Visual Studio 2012中的报表项来生成基于填充数据集的图表。
我的数据集表中有以下列:
date
usersvalue
averagevalue
(其中,但这些是我想在图表中显示的内容。)
我从空白报告开始,设置数据源并添加通用折线图:
请注意,这会从列出的两个系列(Series 1
和Series 2
)开始。我找不到在我看到的任何属性页面中指定的位置。我希望我的usersvalue
和我的averagevalue
成为我的数据点系列,其中date
值是x轴。但是,如果我将这些值添加到系列中,它会在图表上创建4行,usersvalue
和averagevalue
创建系列1和系列2。
我认为自己不是假人。我可以在Crystal Reports和Excel中执行此操作,没有任何问题。我一直试图弄清楚如何只用我想要的信息显示两行现在几个小时。要么我错过了一些非常明显的东西,要么这是我遇到过的最不直观的报道系统。
有人能告诉我我做错了吗?
答案 0 :(得分:7)
请尝试以下方法:
首先创建一个名为" dstest"的数据集。并使用" dttest"制作数据表并填写数据,如图
make a report file (eg. test.rdlc) and drag/drop a line chart as figure
add the dataset "dstest" along with rdlc that we have created before.
添加"值","类别组"和"系列组"如图。用"值"," X"和" Y"
添加一个Windows窗体并在其中拖放一个报表查看器。 在表单加载时写下面的代码:
private void test_Load(object sender, EventArgs e)
{
DataTable dtt = new DataTable();
dtt.Columns.Add("X", typeof(string));
dtt.Columns.Add("Y", typeof(string));
dtt.Columns.Add("Values", typeof(int));
dtt.Rows.Add(new object[] { "3/26/2014", "uservalue", 10 });
dtt.Rows.Add(new object[] { "3/25/2014", "uservalue", 14 });
dtt.Rows.Add(new object[] { "3/24/2014", "uservalue", 9 });
dtt.Rows.Add(new object[] { "3/26/2014", "averagevalue", 15 });
dtt.Rows.Add(new object[] { "3/25/2014", "averagevalue", 16 });
dtt.Rows.Add(new object[] { "3/24/2014", "averagevalue", 7 });
ReportDataSource rds1 = new ReportDataSource("dstest", dtt); // dstest is dataset that you have added when creating rdlc
reportViewer1.LocalReport.DataSources.Add(rds1);
reportViewer1.LocalReport.ReportPath = "you path of rdlc file"\test.rdlc";
this.reportViewer1.RefreshReport();
}
最后尝试运行并加载表单。 你的表格应该显示以下结果..