سوال: ارسال مقادیر سرچ شده با استفاده از stimulsoft

ساخت وبلاگ
سلام

دوستان من یه جدول گزارش دارم میخوام وقتی کاربر مثلآ یه مقداری رو سرچ کرد فقط همون مقادیر برای چاپ برن به استیمول

من از asp.net mvc استفاده میکنم. کاری که کردم این بود که با استفاده از ایجکس مقدار سرچ شده رو به اکشن پرینت فرستادم

و وقتی دیباگ میکنم مقادیر هم از دیتابیس واکشی میشه و مقادیر به صورت exporthtml تبدیل میشه اما نمیدونم چرا اکشن پرینت

دوباره فراخونی میشه و مقدار سرچ من null میشه و صفحه استیمول سفید میشه. اما وقتی دستی request میدم صفحه ریپورت نمایش

درکل شما چطوری یه مقداری که سرچ شده رو به اکشن برای پرینت پاس میدید؟


داده میشه و مشکلی نداره. منظورم از دستی به این صورت هست مثلآ


http://localhost:1516/ReportUserOuthgood/print?name=رضا

public ActionResult Print(string Name)
{
//Convert.ToInt32(Session["id_WorkHouse"])
//var goods = db.Goods.Include(g => g.GoodFoot).Include(g => g.GoodHead).Include(g => g.Unit);
//return View(goods.ToList());
StiReport report = null;

if (Name != null)
{

var findPerson = db.UserDefs.Where(s => s.UserNameFamily == Name).Select(s => new { s.UserId }).FirstOrDefault();
var findToStockBuy = db.StockBuys.Where(s => s.WorkerUserId == findPerson.UserId).FirstOrDefault();
var sd = findToStockBuy.WorkerUserId;
var path = HostingEnvironment.MapPath($@"~/App_Data/Report.mrt");

report = new StiReport();

report.Load(path);
int WorkhouseIdq;
WorkhouseIdq = Convert.ToInt32(Session["id_WorkHouse"]);

var stockBuys = (db.StockBuys.Include(s => s.Good).
Include(s => s.GoodFoot).
Include(s => s.GoodHead).
Include(s => s.Unit).
Include(s => s.Workhouse).
Where(s => s.WorkhouseId == WorkhouseIdq && s.statusId == 5 && s.WorkerUserId == findToStockBuy.WorkerUserId/*WorkerUserId.Value*/)
.Select(s => new OutGoodsPrintVM()
{
GoodName = s.Good.GoodName,
Description = s.Description,
UnitName = s.Unit.UnitName,
EnterExitDate = s.EnterExitDate,
GoodFootName = s.GoodFoot.GoodFootName,
GoodHeadName = s.GoodHead.GoodHeadName,
QuantityStock = s.QuantityStock.HasValue ? s.QuantityStock.Value : 0
})

).ToList();
report.RegBusinessObject("stockBuys", "stockBuys", stockBuys);

DateTime a = new DateTime();
a = DateTime.Now;

DateTime d = new DateTime(a.Year, a.Month, a.Day);

report.Dictionary.Variables["CurrentDate"].Value = GetPersianDate(d).ToString();
report.Dictionary.Variables["Name"].Value = (from u in db.UserDefs
where u.UserId == findToStockBuy.WorkerUserId
select u.UserNameFamily).FirstOrDefault();

report.Compile();

// var result = System.Text.Encoding.UTF8.GetString(StiPdfExportSe rvice(report).ToArray());

var result = System.Text.Encoding.UTF8.GetString(ExportReportTo Html(report).ToArray());
return Content(result, "text/html");
}
else
{

return Content(Name, "text/html");
}

}

private static MemoryStream ExportReportToHtml(StiReport report)
{

//var settings = new Stimulsoft.Report.Export.StiHtmlExportSettings();
//// Create an HTML service instance.
//var service = new Stimulsoft.Report.Export.StiHtmlExportService();

//// Create a text writer objects.
//var textWriter = new Stimulsoft.System.IO.TextWriter();
//var htmlTextWriter = new Stimulsoft.Report.Export.StiHtmlTextWriter(textWri ter);
//// Export HTML using text writer.
//service.ExportTo(report, htmlTextWriter, settings);

//// Write HTML text to DIV element.
//var container = document.getElementById("htmlContainer");
//container.innerHTML = textWriter.getStringBuilder().toString();

report.Render();
var stream = new MemoryStream();

var settings = new StiHtml5ExportSettings();
var service = new StiHtml5ExportService();
service.ExportTo(report, stream, settings);
return stream;

}

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 187 تاريخ : سه شنبه 28 آذر 1396 ساعت: 1:59