У меня есть многопользовательский отчет c #, основанный на базе данных, которую я создал под SQL.Я использую следующий код, чтобы попытаться установить источник данных, и попробовал много разных вариантов, но не могу получить информацию из моей базы данных, чтобы она правильно отображалась в моем отчете.Любая помощь очень ценится.Набор данных заполнен.Кроме того, отчеты из одной таблицы, правильно заполняемые данными, не работают только из множества отчетов.
ОБНОВЛЕНИЕ: теперь в отчете отображаются данные из одной таблицы с использованием report.Database.Tables["Invoices"].setDataSource(posDataSet.Tables["Invoices"]);
Однако при использовании той же логики в таблице, которая генерирует подробные строки, не отображаются никакие данные.
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 CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
namespace SureSalePos
{
public partial class Reporter : Form
{
private PosDatabaseDataSet posDataSet;
public Reporter(PosDatabaseDataSet dataToReportOn)
{
InitializeComponent();
posDataSet = dataToReportOn;
//InvoiceReport ir = new InvoiceReport();
// this.reportViewer.LocalReport.ReportPath = ir.FileName;
}
private void Reporter_Load(object sender, EventArgs e)
{
ConnectionInfo myConnectionInfo = new ConnectionInfo();
myConnectionInfo.ServerName = "";// "PosDatabaseDataSet";
myConnectionInfo.DatabaseName = "";//"PosDatabase.mdf";
myConnectionInfo.UserID = string.Empty;
myConnectionInfo.Password = string.Empty;
setDBLOGONforREPORT(myConnectionInfo);
//this.reportViewer.RefreshReport();
}
private void setDBLOGONforREPORT(ConnectionInfo myconnectioninfo)
{
InvoiceReport report = new InvoiceReport();
report.DataSourceConnections.Clear();
// For each table set the source from your dataset
report.Database.Tables["Invoices"].SetDataSource(posDataSet.Tables["Invoices"]);
report.Database.Tables["InvoiceItems"].SetDataSource(posDataSet.Tables["InvoiceItems"]);
//report.Database.Tables["People"].SetDataSource(posDataSet.Tables["People"]);
report.Database.Tables["Preferences"].SetDataSource(posDataSet.Tables["Preferences"]);
//report.Database.Tables["Skus"].SetDataSource(posDataSet.Tables["Skus"]);
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.RefreshReport();
}
private void crystalReportViewer1_Load(object sender, EventArgs e)
{
}
}
}
ПРАВКАОбновленный код выше 22 сентября