How to generate report after loading from database

Stimulsoft Reports.BLAZOR discussion
Post Reply
muhammadhunainnasir
Posts: 25
Joined: Wed Mar 12, 2025 9:44 pm

How to generate report after loading from database

Post by muhammadhunainnasir »

Hi,

I would like to know how can I generate report from the code and apply values for filters programmatically.
Below is the code for reading report from database. Assume I want to show customer data and apply filter only show customer where id = 3 (Parameter).

I want to acheive below items:
1. Run report with filters
2. Save generated report as (PDF, Excel, etc)

Code: Select all

public StiReport? LoadReportFromDatabase(string reportName)
{
    // Query the database for an existing report
    using (var connection = new SqlConnection(DatabaseConnection.ConnectionString))
    {
        connection.Open();
        var command = new SqlCommand("SELECT ReportData FROM Reports WHERE ReportName = @ReportName", connection);
        command.Parameters.AddWithValue("@ReportName", reportName);

        var reportData = command.ExecuteScalar() as string;

        if (!string.IsNullOrEmpty(reportData))
        {
            try
            {
                var report = new StiReport();
                report.LoadPackedReportFromString(reportData);
                
                //LoadSubMenuDataSource(report);
                return report;
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error loading report: {ex.Message}");
            }
        }
    }

    // Report not found, return null
    return null;

}
Lech Kulikowski
Posts: 7334
Joined: Tue Mar 20, 2018 5:34 am

Re: How to generate report after loading from database

Post by Lech Kulikowski »

Hello,

Please send your report for analysis.

Thank you.
muhammadhunainnasir
Posts: 25
Joined: Wed Mar 12, 2025 9:44 pm

Re: How to generate report after loading from database

Post by muhammadhunainnasir »

Hi,

I can share a report. But this is not specific report related question. I want a mechanism where I can generate a report through code and apply all filters when generating and save as.
Lech Kulikowski
Posts: 7334
Joined: Tue Mar 20, 2018 5:34 am

Re: How to generate report after loading from database

Post by Lech Kulikowski »

Hello,

You can use variables in your query or filters and then set them from the code:
https://github.com/stimulsoft/Samples-R ... 0in%20Code

Thank you.
muhammadhunainnasir
Posts: 25
Joined: Wed Mar 12, 2025 9:44 pm

Re: How to generate report after loading from database

Post by muhammadhunainnasir »

Hi I am using below code but it's printing blank report:

I found online that I had to change GraphicsEngine to Gdi for printing and then I switched it back after printing as I was getting error second time.

Code: Select all

StiReport? taxInvoice = LoadReportFromDatabase("Tax Invoice");
if (taxInvoice != null && model?.Docket_ID != null)
{
    //Set new value
    taxInvoice["Docket_ID"] = model.Docket_ID;

    //Render report with new value
    taxInvoice.Render();
    Stimulsoft.Drawing.Graphics.GraphicsEngine = Stimulsoft.Drawing.GraphicsEngine.Gdi;
    taxInvoice.Print();
    Stimulsoft.Drawing.Graphics.GraphicsEngine = Stimulsoft.Drawing.GraphicsEngine.ImageSharp;
}
return await Task.FromResult(true);


public StiReport? LoadReportFromDatabase(string reportName)
{
    // Query the database for an existing report
    using (var connection = new SqlConnection(DatabaseConnection.ConnectionString))
    {
        connection.Open();
        var command = new SqlCommand("SELECT ReportData FROM Reports WHERE ReportName = @ReportName", connection);
        command.Parameters.AddWithValue("@ReportName", reportName);

        var reportData = command.ExecuteScalar() as string;

        if (!string.IsNullOrEmpty(reportData))
        {
            try
            {
                var report = new StiReport();
                report.LoadPackedReportFromString(reportData);
                return report;
            }
            catch (Exception ex)
            {
            }
        }
    }
    // Report not found, return null
    return null;
}
Lech Kulikowski
Posts: 7334
Joined: Tue Mar 20, 2018 5:34 am

Re: How to generate report after loading from database

Post by Lech Kulikowski »

Hello,

Thank you for the information.
muhammadhunainnasir
Posts: 25
Joined: Wed Mar 12, 2025 9:44 pm

Re: How to generate report after loading from database

Post by muhammadhunainnasir »

Hi,

It was not for information. I am having issue the report is printing blank. There is no data in the report
muhammadhunainnasir
Posts: 25
Joined: Wed Mar 12, 2025 9:44 pm

Re: How to generate report after loading from database

Post by muhammadhunainnasir »

I have tried every possibility but my report is always printed blank. Please tell me what do you see wrong in the code ?

Code: Select all

public async Task<bool> PrintInvoiceData(InvoiceModel? model)
{
    try
    {
        StiReport? taxInvoice = LoadReportFromDatabase("Tax Invoice");
        if (taxInvoice != null && model?.Docket_ID != null)
        {
            //Set docket id
            taxInvoice["Docket_ID"] = model.Docket_ID;

            //Render report with new value
            taxInvoice.Render();
            Stimulsoft.Drawing.Graphics.GraphicsEngine = Stimulsoft.Drawing.GraphicsEngine.Gdi;
            taxInvoice.Print();
            Stimulsoft.Drawing.Graphics.GraphicsEngine = Stimulsoft.Drawing.GraphicsEngine.ImageSharp;
        }
        return await Task.FromResult(true);
    }
    catch (Exception ex)
    {
        return false;
    }
}

/// <summary>
/// 
/// </summary>
/// <param name="reportName"></param>
/// <returns></returns>
public StiReport? LoadReportFromDatabase(string reportName)
{
    // Query the database for an existing report
    using (var connection = new SqlConnection(DatabaseConnection.ConnectionString))
    {
        connection.Open();
        var command = new SqlCommand("SELECT ReportData FROM Reports WHERE ReportName = @ReportName", connection);
        command.Parameters.AddWithValue("@ReportName", reportName);

        var reportData = command.ExecuteScalar() as string;

        if (!string.IsNullOrEmpty(reportData))
        {
            try
            {
                var report = new StiReport();
                report.LoadPackedReportFromString(reportData);
                return report;
            }
            catch (Exception ex)
            {
            }
        }
    }

    // Report not found, return null
    return null;
}
Below is Report data saved in database:

Code: Select all

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
I have also attached the report .mrt file.
Attachments
Tax Invoice_2507240807536639.mrt
Tax Invoice Report
(51.08 KiB) Downloaded 65 times
Lech Kulikowski
Posts: 7334
Joined: Tue Mar 20, 2018 5:34 am

Re: How to generate report after loading from database

Post by Lech Kulikowski »

Hello,

Please send test data for your report.

Thank you.
Post Reply