Crystal Reports C # - PullRequest
       25

Crystal Reports C #

1 голос
/ 18 сентября 2011

У меня есть многопользовательский отчет 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 сентября

1 Ответ

0 голосов
/ 21 сентября 2011

Вам не нужно устанавливать логин, так как вы предоставляете данные отчета. Попробуйте следующее:

report.DataSourceConnections.Clear();

// For each table set the source from your dataset
report.Database.Tables["TableName"].SetDataSource(posDataSet.Tables["TableName"]);

crystalReportViewer1.ReportSource = report;
crystalReportViewer1.RefreshReport();
...