以下は、.NET WinFormsアプリケーションのいずれかでレポートデータソースを設定する方法の簡単なサンプルです。
public void getMyReportData()
{
using (myEntityDataModel v = new myEntityDataModel())
{
var reportQuery = (from r in v.myTable
select new
{
l.ID,
l.LeaveApplicationDate,
l.EmployeeNumber,
l.EmployeeName,
l.StartDate,
l.EndDate,
l.Supervisor,
l.Department,
l.Col1,
l.Col2,
.......,
.......,
l.Address
}).ToList();
reportViewer1.LocalReport.DataSources.Clear();
ReportDataSource datasource = new ReportDataSource("nameOfReportDataset", reportQuery);
reportViewer1.LocalReport.DataSources.Add(datasource);
Stream rpt = loadEmbededReportDefinition("Report1.rdlc");
reportViewer1.LocalReport.LoadReportDefinition(rpt);
reportViewer1.RefreshReport();
//Another way of setting the reportViewer report source
string exeFolder = Path.GetDirectoryName(Application.ExecutablePath);
string reportPath = Path.Combine(exeFolder, @"rdlcReports\Report1.rdlc");
reportViewer1.LocalReport.ReportPath = reportPath;
reportParameter p = new ReportParameter("DeptID", deptID.ToString());
reportViewer1.LocalReport.SetParameters(new[] { p });
}
}
public static Stream loadEmbededReportDefinition(string reportName)
{
Assembly _assembly = Assembly.GetExecutingAssembly();
Stream _reportStream = _assembly.GetManifestResourceStream("ProjectNamespace.rdlcReportsFolder." + reportName);
return _reportStream;
}
を使用するのも非常に簡単ですRDLCレポートでLINQを使用することができますこれは、レポートデザイナー(データソースを選択したウィザード)で参照が使用できないため、WebアプリケーションではなくWebサイトである場合にのみ機能します存在しない。 – Darren
これは、レポートでコードにアクセスする唯一の方法です。あなたのWCFサービス用のWebアプリケーションをセットアップできない場合は、プレーンSQLまたはストアドプロシージャ – JMan
yahでデータにアクセスするのが最適です。この質問をするのと同じ時間に、レポートのストアドプロシージャを作成しました。ちょうど実際には別の場所にデータアクセスロジックがあるのが好きではない... – Darren