var data = new Appointment[] {...};
// or
var data = from ... where ... select...;
ReportDataSource rds = new ReportDataSource();
rds.Name = "Appointments";
rds.Value = data;
localReport.DataSources.Add(rds);
Вы можете использовать любой DataTable
, IEnumerable
, BindingSource
или System.Web.UI.IDataSource
в качестве значения ReportDataSource
(переменная data
в этом примере).
Определение RDL выглядит так же, как с данными базы данных. Вместо столбцов базы данных в определении набора данных будут свойства объекта:
<DataSets>
<DataSet Name="Appointments">
<Fields>
<Field Name="Id">
<DataField>Id</DataField>
</Field>
<Field Name="Name">
<DataField>Name</DataField>
</Field>
</Fields>
<Query>
<DataSourceName>ds</DataSourceName>
<CommandText>Appointments</CommandText>
</Query>
</DataSet>
</DataSets>