1

いくつかの計算を行う小さな 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);
            }
        }
    }
}
4

0 に答える 0