Top.Mail.Ru
Ответы

Создание отчета на языке C#

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
         Report report = new Report();  
 
        DataBaseManager dataBase = new DataBaseManager();  
 
        public PrintReport()  
 
        {  
 
            reportViewer1 = new Microsoft.Reporting.WinForms.ReportViewer();  
 
            dataBase = new DataBaseManager();  
 
            InitializeComponent();  
 
        }  
 
  
 
        private void PrintReport_Load(object sender, EventArgs e)  
 
        {  
 
            this.reportViewer1.RefreshReport();  
 
        }  
 
  
 
        private void reportViewer1_Load(object sender, EventArgs e)  
 
        {  
 
  
 
        }  
 
  
 
        private void button1_Click(object sender, EventArgs e)  
 
        {  
 
            DataTable dt = dataBase.ExecuteQuery("Select * from Issuance");  
 
            report.LoadReport(dt, "Report1", reportViewer1);  
 
        } 

public class Report
{
public void LoadReport(DataTable dataTable, string nameReport, ReportViewer reportViewer)
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..\..\{nameReport}.rdlc");
reportViewer.LocalReport.DataSources.Clear();
ReportDataSource source = new ReportDataSource("DataSet1", dataTable);
reportViewer.LocalReport.ReportPath = path;
reportViewer.LocalReport.DataSources.Add(source);
reportViewer.RefreshReport();
}
}
}

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
 using System; 
using System.Data; 
using System.IO; 
using System.Windows.Forms; 
using Microsoft.Reporting.WinForms; 
 
public class PrintReport : Form 
{ 
    private Report report; 
    private DataBaseManager dataBase; 
    private ReportViewer reportViewer1; 
    private Button button1; 
 
    public PrintReport() 
    { 
        report = new Report(); 
        dataBase = new DataBaseManager(); 
 
        reportViewer1 = new ReportViewer(); 
        button1 = new Button(); 
 
        button1.Text = "Print Report"; 
        button1.Click += new EventHandler(button1_Click); 
 
        Controls.Add(reportViewer1); 
        Controls.Add(button1); 
 
        InitializeComponent(); 
    } 
 
    private void InitializeComponent() 
    { 
        this.Load += new EventHandler(PrintReport_Load); 
        this.reportViewer1.Load += new EventHandler(reportViewer1_Load); 
    } 
 
    private void PrintReport_Load(object sender, EventArgs e) 
    { 
        this.reportViewer1.RefreshReport(); 
    } 
 
    private void reportViewer1_Load(object sender, EventArgs e) 
    { 
        // Можно добавить дополнительную логику, если требуется 
    } 
 
    private void button1_Click(object sender, EventArgs e) 
    { 
        DataTable dt = dataBase.ExecuteQuery("Select * from Issuance"); 
        report.LoadReport(dt, "Report1", reportViewer1); 
    } 
} 
 
public class Report 
{ 
    public void LoadReport(DataTable dataTable, string nameReport, ReportViewer reportViewer) 
    { 
        string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..\..\{nameReport}.rdlc"); 
        reportViewer.LocalReport.DataSources.Clear(); 
        ReportDataSource source = new ReportDataSource("DataSet1", dataTable); 
        reportViewer.LocalReport.ReportPath = path; 
        reportViewer.LocalReport.DataSources.Add(source); 
        reportViewer.RefreshReport(); 
    } 
} 
 
public class DataBaseManager 
{ 
    public DataTable ExecuteQuery(string query) 
    { 
        // Реализация метода ExecuteQuery для выполнения SQL-запроса и возврата DataTable 
        // Пример: 
        DataTable dataTable = new DataTable(); 
        // Заполнение dataTable данными из базы данных 
        return dataTable; 
    } 
}