Добрый день, все, < /p>
Я потратил большую часть последних 2 недель в поисках помощи по этому вопросу с моим приложением C winform. Когда пользователь дважды щелкнет строку в этой сетке, код захватывает значение из столбца CustomerID, вкладывает ее в статическую общедоступную строку, а затем открывает другую форму, в которой есть отчет. был указан. Я поместил отчет в подпапку, называемую отчетами, которая находится в решении рядом со всеми моими формами. Не смей слишком много, я на 100% самоучка. < /P>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
using System.Data.SqlClient;
namespace FormsApp
{
public partial class ReportGenerator : Form
{
public ReportGenerator()
{
InitializeComponent();
this.reportViewer1.RefreshReport();
}
private void ReportGenerator_Load(object sender, EventArgs e)
{
if (CustomerList.CustomerID!= "")
{
this.reportViewer1.ProcessingMode = ProcessingMode.Local;
this.reportViewer1.LocalReport.ReportPath = "\\Reports\\CustomerDetails.rdlc";
this.reportViewer1.ShowParameterPrompts = true;
ReportParameter CustID = new ReportParameter("CustomerID",CustomerList.CustomerID);
this.reportViewer1.LocalReport.SetParameters(CustID);
}
else
{}
}
}
}
< /code>
Я использую LocalReport неправильно? Я действительно в тупике, и это последний бит, который мне нужно, чтобы работать, тогда мое приложение завершено.
Любая помощь будет высоко оценена.using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
using System.Data.SqlClient;
namespace FormsApp
{
public partial class ReportGenerator : Form
{
public ReportGenerator()
{
InitializeComponent();
this.reportViewer1.RefreshReport();
}
private DataTable getCustomerData()
{
SqlConnection con = new SqlConnection(Home.ConString);
DataSet ds = new DataSet();
ds.DataSetName = "CustomerListRetrieve";
string sql = "SELECT * FROM Customers";
SqlDataAdapter da = new SqlDataAdapter(sql, con);
da.Fill(ds);
DataTable dt = ds.Tables[0];
return dt;
}
private void ReportGenerator_Load(object sender, EventArgs e)
{
if (CustomerList.CustomerID != "")
{
this.reportViewer1.Reset();
this.reportViewer1.LocalReport.ReportEmbeddedResource = "FormsApp.Reports.CustomerDetails.rdlc";
ReportDataSource rds = new ReportDataSource("CustomerListRetrieve", getCustomerData());
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(rds);
ReportParameter CustID= new ReportParameter("CustomerID", CustomerList.CustomerID);
this.reportViewer1.LocalReport.SetParameters(CustID);
this.reportViewer1.LocalReport.Refresh();
ViewButtonClicked();
}
else
{}
}
private void ViewButtonClicked(object sender, ReportParametersEventArgs e)
{
var SubmittedParameters = e.Parameters.Clone();
e.Parameters.Clear();
SubmittedParameters.Where(x => x.Name == "Parametername").FirstOrDefault().Values[0] = "YourValue";
SubmittedParameters.ToList().ForEach(x => e.Parameters.Add(x));
}
private void OnReportChosenFromList()
{
reportViewer1.SubmittingParameterValues -= ViewButtonClicked;
reportViewer1.SubmittingParameterValues += ViewButtonClicked;
}
}
}
< /code>
Код данных, который я добавил после ответа от Codingbiz. После добавления этого я больше не получил ошибку определения отчета, просто пустое окно при загрузке отчета
. После добавления это я получу 2 ошибки, указав: < /p>
Ошибка 1 только назначение, вызов, приращение, уменьшение, ожидание и выражения объекта могут использоваться в качестве оператора. < /Li>
Добрый день, все, < /p> Я потратил большую часть последних 2 недель в поисках помощи по этому вопросу с моим приложением C winform. Когда пользователь дважды щелкнет строку в этой сетке, код захватывает значение из столбца CustomerID, вкладывает ее в статическую общедоступную строку, а затем открывает другую форму, в которой есть отчет. был указан. Я поместил отчет в подпапку, называемую отчетами, которая находится в решении рядом со всеми моими формами. Не смей слишком много, я на 100% самоучка. < /P> [code]using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Reporting.WinForms; using System.Data.SqlClient;
namespace FormsApp { public partial class ReportGenerator : Form { public ReportGenerator() { InitializeComponent(); this.reportViewer1.RefreshReport(); }
} } } < /code> Я использую LocalReport неправильно? Я действительно в тупике, и это последний бит, который мне нужно, чтобы работать, тогда мое приложение завершено. Любая помощь будет высоко оценена.using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Microsoft.Reporting.WinForms; using System.Data.SqlClient;
namespace FormsApp { public partial class ReportGenerator : Form { public ReportGenerator() { InitializeComponent(); this.reportViewer1.RefreshReport(); }
private DataTable getCustomerData() { SqlConnection con = new SqlConnection(Home.ConString); DataSet ds = new DataSet(); ds.DataSetName = "CustomerListRetrieve"; string sql = "SELECT * FROM Customers"; SqlDataAdapter da = new SqlDataAdapter(sql, con); da.Fill(ds); DataTable dt = ds.Tables[0]; return dt; }
private void ViewButtonClicked(object sender, ReportParametersEventArgs e) { var SubmittedParameters = e.Parameters.Clone(); e.Parameters.Clear(); SubmittedParameters.Where(x => x.Name == "Parametername").FirstOrDefault().Values[0] = "YourValue"; SubmittedParameters.ToList().ForEach(x => e.Parameters.Add(x)); } private void OnReportChosenFromList() { reportViewer1.SubmittingParameterValues -= ViewButtonClicked; reportViewer1.SubmittingParameterValues += ViewButtonClicked; } } } < /code> Код данных, который я добавил после ответа от Codingbiz. После добавления этого я больше не получил ошибку определения отчета, просто пустое окно при загрузке отчета [/code]. После добавления это я получу 2 ошибки, указав: < /p> [list] [*] Ошибка 1 только назначение, вызов, приращение, уменьшение, ожидание и выражения объекта могут использоваться в качестве оператора. < /Li> [code]Microsoft.Reporting.WinForms.ReportParameterCollection[/code] не содержит определения для «клона» и метода расширения «клон» ... [/list] Действительно озадачен. Вероятно, внедрил предложения неправильно.