我必须制作一个report.rdlc,我必须将数据集传递给它
我使用C#而不是SQLDATAADAPTER制作的DataTable可以填充为
adpt.fill(ds);
但我只使用带有列和行的c#自定义构建的DataTable 如何使报告数据源或使其成为数据集
答案 0 :(得分:1)
实际上简单......数据集只不过是“DataTable”实例的集合。你应该可以做..
var DS = new DataSet();
YourCustomPopulatedDataTable.TableName = "SomeTable";
DS.Tables.Add( YourCustomPopulatedDataTable );
我们做了什么创建了一个基线“ReportManager”类,但是在我获得带有数据的数据集之后,我写了XML输出但是还有XSD之类的东西
DS.WriteXmlSchema( "MyXYZReport.xsd"); // the report will get this in a moment
DS.WriteXml( "MyXYZReport.xml");
然后,修改您的项目并添加创建的“.xsd”文件,这样您就不必粗略地指出报告的架构。所以,第一次,我查询数据,生成XSD / XML并在实际报告之前停止。然后,修改项目并将XSD添加到其中。
现在,打开你的rdlc。在左侧,您应该有一个“报告数据”面板。如果没有,请单击报表中的任意位置,但不要单击特定对象。足以让您专注于.RDLC。然后,单击菜单中的“查看”,最后一项应显示“报告数据”选项。显示后,它将显示数据的来源/位置,参数,图像,数据源,数据集等。
单击DataSet,右键单击Add Dataset并选择您添加到项目中的.XSD。这将显示一个对话框,提示“Name”以在报告中引用,然后是数据源。数据源应列出名称,例如“MyXYZReport”。在其下将是“可用数据集”并在数据集中具有表的名称。请注意我在上面做的一行更改,以便在写入XSD之前“命名”该表。无论该名称是什么(“SomeTable”),都应列在可用数据集中。选择那个。然后,根据我的目的,我将数据集的“名称”(对话框中的第一个字段)更改为相同的值“SomeTable”。这样,我不猜哪个名字是哪个。他们都会将此称为“SomeTable”。
现在,在开始添加控件的报告中,表达式对话框将显示“已知”数据集(表格实例)和相关字段。