Передать параметр из MVC в отчет Стимулсофт - PullRequest
0 голосов
/ 27 февраля 2019

Код просмотра выглядит следующим образом:

@using Stimulsoft.Report.Mvc;
@using Stimulsoft.Report;

@{
    ViewBag.Title = "ListPouyaProject";
    Layout = "~/Views/Shared/_mainView.cshtml";
}

<section class="content">
    <!-- Default box -->
    <div class="box">
        <div class="box-body">
            <div class="form-group">
            Start Date: <input type="text" id="date1" name="date1" onclick="PersianDatePicker.Show(this, '1392/03/22');" />
           End Date : <input type="text" id="date2" name="date2" onclick="PersianDatePicker.Show(this, '1397/03/22');" />
            </div>
            <div class="form-group">
                @Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions()
                {
                    Actions =
                    {
                        GetReport = "Report4_ListPouyaProject",
                        ViewerEvent = "ViewerEvent"
                    }
                })
            </div>
        </div>
    </div>
</section>

Код контроллера выглядит следующим образом:

public ActionResult Report4_ListPouyaProject()
{
    var report = new StiReport();
    report.Load(Server.MapPath("~/Content/Reports/ListPouyaProject.mrt"));
    return StiMvcViewer.GetReportResult(report);
}
public ActionResult ListPouyaProject()
{
    return View();
}
public ActionResult ViewerEvent()
{
    return StiMvcViewer.ViewerEventResult();
}

Я хочу передать переменные date1 и date2 вконтроллер из поля зрения.

Для этого нам нужно добавить следующие команды в контроллер:

report.CompiledReport.DataSources["spm_report_4_ListPouyaProject"].Parameters["StartDate"].ParameterValue = DateTime.Parse(date1);


report.CompiledReport.DataSources["spm_report_4_ListPouyaProject"].Parameters["EndDate"].ParameterValue = DateTime.Parse(date2);

Как передать параметры date1 и date2 из вида в контроллер

1 Ответ

0 голосов
/ 27 августа 2019

Во-первых, вам нужно добавить компонент StiMvcViewer на страницу просмотра.Также вам нужно передать объект StiMvcViewerOptions в конструктор.Минимальные обязательные параметры - это два действия - GetReport и ViewerEvent, они находятся в группе параметров Действия.

  @using Stimulsoft.Report.MVC;
    @Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions()
        {
            Actions =
            {
                GetReport = "GetReport",
                ViewerEvent = "ViewerEvent"
            }
        })

    <div style="width: 150px;">
                    @Html.ActionLink("Simple List", "Index", new { id = "1" })
                    <br />Report Snapshot
                </div>

и в контроллере:

public ActionResult GetReport(int? id)
    {
        // Create the report object
        StiReport report = new StiReport();
     switch (id)
{
    // Load report snapshot
    case 1:
        // Load report
         // Load report snapshot
               report.LoadDocument(Server.MapPath("~/Content/Reports/SimpleList.mdc"));
                break;
    }
              // Load data from XML file for report template
        if (!report.IsDocument)
        {
            DataSet data = new DataSet("Demo");
            data.ReadXml(Server.MapPath("~/Content/Data/Demo.xml"));

            report.RegData(data);
        }
        return StiMvcViewer.GetReportResult(report);
    }
    public ActionResult ViewerEvent()
    {
        return StiMvcViewer.ViewerEventResult();
    }
...