То, что я хочу сделать, - это параметризованный отчет, я бы хотел использовать для этого SSRS или другие необычные инструменты, но на данный момент это опасно, потому что я действительно не хочу возиться с сервером компании, и я неиметь много времени;Также, если это инструмент, это должен быть бесплатный и легкий инструмент, и я его пока не нашел.
Итак, моя идея - создать простой контроллер с индексом, который будет возвращать список для просмотра в соответствии с параметрами.и View будет использовать эту ViewModel в качестве модели, после чего пользователи смогут экспортировать этот список в CSV или PDF, проблема в следующем: MVC запрашивает реальную модель БД для завершения строительных лесов, как это можно сделать?
Контроллер (я называю здесь сохраненный процесс)
public class ReporteEntregasPresentacionController : Controller
{
private EntregaMedicamentosEntities db = new EntregaMedicamentosEntities();
public ActionResult Index(DateTime DateFrom, DateTime DateTo)
{
ReporteEntregasPresentacionViewModel rep = new ReporteEntregasPresentacionViewModel();
string sqlQuery = "[dbo].[spEntregasPorPresentacion] ({0},{1})";
Object[] parameters = { DateFrom, DateTo };
rep.LstEntregasPresentacionViewModel = db.Database.SqlQuery<ItemEntregasPresentacionViewModel>(sqlQuery, parameters).ToList();
return View(rep);
}
}
ViewModel :
public class ReporteEntregasPresentacionViewModel
{
public int index;
public List<ItemEntregasPresentacionViewModel> LstEntregasPresentacionViewModel;
}
public class ItemEntregasPresentacionViewModel {
public string idProducto { get; set; }
public string Descripcion { get; set; }
public string EntregasTotales { get; set; }
}
У меня нет Просмотр сейчас, но я должен быть примерно таким:
@model EntregaMedicamentos.Models.ReporteEntregasPresentacionViewModel
<link href="~/Content/css/styles.css" rel="stylesheet" />
@{
ViewBag.Title = "ReporteEntregasPresentacion";
}
<h2>ReporteEntregasPresentacion</h2>
@using (Html.BeginForm("Index", "Entrega", FormMethod.Post))
{
<div class="card text-white bg-secondary">
<h5 class="card-header">Search</h5>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="input-group">
@Html.TextBox("DateFrom", ViewBag.currentFilter1 as DateTime?, new { @class = "form-control", placeholder = "Desde fecha", @readonly = "true", type = "datetime" })
@Html.TextBox("DateTo", ViewBag.currentFilter2 as DateTime?, new { @class = "form-control", placeholder = "Hasta fecha", @readonly = "true", type = "datetime" })
<button id="Submit4" type="submit" style='font-size:22px ;color:blue'><i class='fas fa-search'></i></button>
</div>
</div>
</div>
</div>
</div>
}
<br>
<table class="table table-striped ">
<tr class="table-primary">
<th>
Código
</th>
<th>
Producto
</th>
<th>
Entregas Totales
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.idProducto)
</td>
<td>
@Html.DisplayFor(modelItem => item.Descripcion)
</td>
<td>
@Html.DisplayFor(modelItem => item.Valor)
</td>
</tr>
}
</table>