いくつかの計算を行う小さな Windows アプリケーションがあり、型指定されていないデータセット、つまり「progDS」が入力されています。MS Access データベースを使用しました。型指定されたデータセットを使用すると、レポートはすべての行を選択し、レポート ビューアーに表示します (これは私の要件ではありません)。私がしようとしていたのは、新しい計算フィールドを含む必要がある 3 つの行だけを表示することです。
アプリケーションは、学生のフォームを受け取る私の部門用であり、特定のプログラム (データセット 'progDS' が含まれる) が提供されます。RDLCレポート、およびReportViewerは型指定されたデータセットのみを受け取り、データセットを上書きまたは変更して、私のもの、つまり「progDS」を与える方法。
別のフォームに ReportViewer があり、データセット 'progDS' をそのフォームに取得できます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace FreshFormReport
{
public partial class Form3 : Form
{
Form1 ObjFomr1 = new Form1();
DataSet dsF3 = new DataSet();
DataSet2 dataSet = new DataSet2();
DataTable dtF3 = new DataTable();
BindingSource bs = new BindingSource();
public Form3()
{
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
try
{
// TODO: This line of code loads data into the 'DataSet2.RpTable' table. You can move, or remove it, as needed.
// this.RpTableTableAdapter.Fill(this.DataSet2.RpTable);
reportViewer1.LocalReport.DataSources.Clear();
// this.reportViewer1.RefreshReport();
Microsoft.Reporting.WinForms.ReportDataSource rptSource = new Microsoft.Reporting.WinForms.ReportDataSource("dsF3", dsF3.Tables["Porgrams"]);
reportViewer1.Reset();
reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
Microsoft.Reporting.WinForms.LocalReport localRep = reportViewer1.LocalReport;
localRep.Refresh();
localRep.ReportEmbeddedResource = "C:\\Users\\******* \\Documents\\Visual Studio 2010\\Projects\\FreshFormReport\\FreshFormReport\\MyReport.rdlc";
rptSource.Name = "MyReport";
//RpTableTableAdapter.Fill(DataSet2.RpTable);
rptSource.Value = DataSet2.RpTable;
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(rptSource);
//string name = localRep.GetDataSourceNames().ToString();
reportViewer1.LocalReport.ReportPath = "C:\\Users\\****** \\Documents\\Visual Studio 2010\\Projects\\FreshFormReport\\FreshFormReport\\MyReport.rdlc";
//reportViewer1.LocalReport.ReportEmbeddedResource = "MyReport.rdlc";
//reportViewer1.Refresh();
reportViewer1.Refresh();
reportViewer1.RefreshReport();
}
catch (Exception x)
{
MessageBox.Show(x.Message);
}
}
public void F3function(DataSet ds, DataTable dt)
{
try
{
dsF3 = ds;
dtF3 = dt;
bs.DataSource = dt;
}
catch (Exception x)
{
MessageBox.Show(x.Message);
}
}
}
}