Передача переменных из C# в FastReport

118
14 июля 2021, 15:00

Есть веб-приложение на C#, в котором есть 3 выпадающих списка.

Требуется, чтобы после выбора 3 значений и нажатия кнопки, выбранные переменные должны быть переданы в PDF-файл. Решил это делать через FastReport. Не понимаю, как черезString Sklad = ddlZone.SelectedItem.Text; передать в FastReport переменную в коде.

Answer 1

И всё-таки прямой ответ на поставленный Вами вопрос это использование параметров. Заведите в отчете параметры, соответствующие названиям полей и используйте их вместо источника данных.

string sklad = ddlZone.SelectedItem.Text;
string stack = ddlStack.SelectedItem.Text;
string pocket = ddlPocket.SelectedItem.Text;
string tagText = $"{sklad} {stack} {pocket}";
//формирование отчета FastReport
string reportName = "Barcode.frx";
string reportPath = Server.MapPath($"~/Reports/ReportTemplates/FastReport/{reportName}";
using (var webRep = new WebReport())
{
    FastReport.Utils.Config.WebMode = true;
    using (webRep.Report = new FastReport.Report())
    {
        webRep.Report.Load(reportPath);
        webRep.Report.SetParameterValue("zone_name", sklad);
        webRep.Report.SetParameterValue("stack_name", stack);
        webRep.Report.SetParameterValue("count_of_pockets", pocket);
        webRep.Report.SetParameterValue("BARCODE", tagText);
        webRep.Report.Prepare();
        FastReportExports.ToPdf(webRep.Report);
    }
} 
Answer 2

Отправляю часть кода, как я решил свою проблему, может кому-нибудь в дальнейшем пригодится

DataTable table = new DataTable("Table");
DataSet ds = new DataSet();
String Sklad = ddlZone.SelectedItem.Text;
String Stack = ddlStack.SelectedItem.Text;
String Pocket = ddlPocket.SelectedItem.Text;
String tagText = ddlZone.SelectedItem.Text + " " + ddlStack.SelectedItem.Text + " " + ddlPocket.SelectedItem.Text;
table.Columns.Add("ZONE_NAME");
table.Columns.Add("STACK_NAME");
table.Columns.Add("COUNT_OF_POCKETS");
table.Columns.Add("BARCODE");
TableRow rownew = new TableRow();
table.Rows.Add(rownew);
foreach (DataRow row in table.Rows)
{
    row["zone_name"] = Sklad;
    row["stack_name"] = Stack;
    row["count_of_pockets"] = Pocket;
    row["BARCODE"] = tagText;
}

//формирование отчета FastReport
string ReportName = "Barcode.frx";
string pp = Server.MapPath("~/Reports/ReportTemplates/FastReport/" + ReportName);
WebReport WebRep = new WebReport();
FastReport.Utils.Config.WebMode = true;
WebRep.Report = new FastReport.Report();
WebRep.Report.Load(pp);
WebRep.Report.RegisterData(table, "Table");
WebRep.Report.Prepare();
FastReportExports.ToPdf(WebRep.Report);
WebRep.Report.Dispose();
WebRep.Dispose();
READ ALSO
Ловлю ошибку 404

Ловлю ошибку 404

Ловлю ошибку 404 в IIS название папки в URL дублируется Exception Requested URL:/test/test/LoginPageaspx Если удаляю с url один test все работает

105
Реализация WebSocket сервера

Реализация WebSocket сервера

С помощью чего можно создать вебсокет сервер с такими характеристиками? (С помощью чего, я имею ввиду, мб какие нибудь библиотеки есть которые...

95
Проверить генерик-тип интерфейса в C#?

Проверить генерик-тип интерфейса в C#?

У меня есть тип AType который реализует генерик-интерфейс IA<BType> Тип BType реализует интерфейс ICКак я могу проверить связан AType с IC или нет?

98