ammu11 Ответов: 0

Фильтр диапазона дат crystal report в MVC 5 razor


Я делаю веб-сайт и вариант для получения отчета. И след, который я получил, извлек все данные из таблицы под названием booking и дал ссылку для загрузки отчета. это работает именно так, как мне нужно. Здесь то, что мне нужно, это то, что нужно отфильтровать дату, то есть от даты и до даты, которую я хочу дать как динамически, так и между этими диапазонами мне нужно распечатать детали. Для этого есть написанная хранимая процедура в sql и при передаче двух дат она работает корректно.
На самом деле данные берутся из двух таблиц и в хранимой процедуре внутренне соединяются с условием. Моя проблема заключается в том, как я могу фильтровать даты и печатать данные ony между этими диапазонами??

часть контроллера

public ActionResult ExportCustomers()
       {

           ReportDocument rd = new ReportDocument();
           rd.Load(Path.Combine(Server.MapPath("~/CrystalReports/Report.rpt")));

           rd.SetDataSource(db.ItemBookings.Select(p => new
           {

               name = p.CustID,
               status = p.Status,
               bookingTime = p.Bookingtime,
               Post = p.TotalAmount,
           }).ToList());

           Response.Buffer = false;
           Response.ClearContent();
           Response.ClearHeaders();


           Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
           stream.Seek(0, SeekOrigin.Begin);
           return File(stream, "application/pdf", "CollectionHistory.pdf");
       }


на странице просмотра

<div><a href="@Url.Action("ExportCustomers")"> Report PDF </a></div>  


хранимая процедура

CREATE procedure [dbo].[spItemBookingDateFilter]
	    @FomDate AS VARCHAR(20),
		@ToDate AS VARCHAR(20)
AS
Begin
SELECT        IB.ID, IB.CustID, IB.DeviceID, IB.Bookingtime, IB.RouteID, IB.IsCollected, IB.IsAllocated, IB.Status, IB.TotalAmount, IB.TotalWeight, AD.Id AS Expr1, AD.Name, AD.MobNo, AD.Location, AD.Address, AD.Post, 
                         AD.PostalCode
FROM            dbo.ItemBooking AS IB INNER JOIN
                         dbo.CustomerAddressDetail AS AD ON IB.AddressID = AD.Id 
						 AND  convert(VARCHAR(50),@FomDate,105) <= IB.BookingTime AND convert(VARCHAR(50),@ToDate,105) >= IB.BookingTime

						 end

GO


давая таблицу, она просто загружается в виде pdf-файла, но как я могу дать хранимую процедуру с параметром для фильтрации диапазона дат и печати этих данных ??
кто-нибудь, пожалуйста, подскажите мне, как получить правильный результат ??

Что я уже пробовал:

Я искал во многих отношениях, но только для приложения c# windows, но не знаю, как реализовать в MVC razor с хранимой процедурой или таблицей данных?

0 Ответов