سوال: تبدیل تاریخ میلادی به شمسی با استفاده از کلاس برای ارسال به StimulSoft بعد از کوئری در ASP .Net MVC

ساخت وبلاگ

سلام دوستان , من میخوام بعد از کوئریم تاریخ میلادی به شمسی تبدیل کنم با استفاده از کلاس شمسی و بعد با بقیه اطلاعات بفرستم برای گزارش لطفا راهنمایی کنید . ممنون

کلاس شمسی


using System;
using System.Globalization;
using System.Reflection;

namespace System
{
public static class PersianDateExtensionMethods
{
private static CultureInfo _Culture;
public static CultureInfo GetPersianCulture()
{
if (_Culture == null)
{
_Culture = new CultureInfo("fa-IR");
DateTimeFormatInfo formatInfo = _Culture.DateTimeFormat;
formatInfo.AbbreviatedDayNames = new[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
formatInfo.DayNames = new[] { "یکشنبه", "دوشنبه", "سه شنبه", "چهار شنبه", "پنجشنبه", "جمعه", "شنبه" };
var monthNames = new[]
{
"فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن","اسفند",""
};
formatInfo.AbbreviatedMonthNames =
formatInfo.MonthNames =
formatInfo.MonthGenitiveNames = formatInfo.AbbreviatedMonthGenitiveNames = monthNames;
formatInfo.AMDesignator = "ق.ظ";
formatInfo.PMDesignator = "ب.ظ";
formatInfo.ShortDatePatte = "yyyy/MM/dd";
formatInfo.LongDatePatte = "dddd, dd MMMM,yyyy";
formatInfo.FirstDayOfWeek = DayOfWeek.Saturday;
System.Globalization.Calendar cal = new PersianCalendar();

FieldInfo fieldInfo = _Culture.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
if (fieldInfo != null)
fieldInfo.SetValue(_Culture, cal);

FieldInfo info = formatInfo.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance);
if (info != null)
info.SetValue(formatInfo, cal);

_Culture.NumberFormat.NumberDecimalSeparator = "/";
_Culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational;
_Culture.NumberFormat.NumberNegativePatte = 0;
}
retu _Culture;
}

public static string ToPeString(this DateTime date, string format = "yyyy/MM/dd")
{
retu date.ToString(format, GetPersianCulture());
}
}
}

این هم کلاسی که کوئری برای ارسال به استیمول سافت قرار داده شده


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Http;
using System.Data;
using System.Data.Entity.Core.Common.CommandTrees;
using WebNew.Utility;
using Stimulsoft.Base;
using Stimulsoft.Report.Mvc;
using Stimulsoft.Report;

namespace WebNew.Controllers
{
public class ReportController : Controller
{
// GET: Home
public ActionResult Index()
{
retu View();
}

public ActionResult FromLoadFileReport(int id)
{
db_bimehEntities db = new db_bimehEntities();
StiReport report = new StiReport();

var q = from a in db.Table_Device
join b in db.Table_Brand on a.DeviceBrandID equals b.BrandID
join c in db.Table_ModelBrand on a.DeviceModelID equals c.ModelID
join d in db.Table_Color on a.DeviceColorID equals d.ColorID
join e in db.Table_Storage on a.StoreID equals e.StorageID
join f in db.Table_Users on a.UserID equals f.UserID
join g in db.Table_Customer on a.CustomerID equals g.CustomerID
where a.DeviceID == id
select new
{
a.Serial,
a.StartDate,
a.EndDate,
a.DeviceSerial,
a.DevicePrice,
a.InPrice,
b.Brand,
c.Model,
d.Color,
e.Storage,
g.FullName,
g.LocalID,
g.CustomerTel,
g.CustomerEmail,
g.CustomerAddress,
f.FullNameUser
};
// دریافت لیست از دیتا بیس

string Path = Server.MapPath("~/Reports/print.mrt"); // نام و مسیر قالبی که در دیزانر ایجاد کردیم
report.Load(Path);
report.RegBusinessObject("Report", q); // نام شیئی که در دیزانر ایجاد کردیم

report.Dictionary.SynchronizeBusinessObjects(2);

retu StiMvcViewer.GetReportSnapshotResult(HttpContext, report);
}
//ایجاد پرینت
public ActionResult PrintReport()
{
retu StiMvcViewer.PrintReportResult(this.HttpContext);
}
//ایجاد خروجی
public ActionResult ExportReport()
{
retu StiMvcViewer.ExportReportResult(this.HttpContext);
}

public ActionResult ViewerEvent()
{
retu StiMvcViewer.ViewerEventResult(this.HttpContext);
}
// GET: Report
public ActionResult PrintInsurance()
{
retu View();
}
}
}

دو فیلد تاریخ با نام StartDate و EndDate دارم که میلادی نمایش داده میشه و میخوام شمسی در گزارش دیده شه ولی در کوئری تبدیل میکنم خطا میگیره .

- - , .
.

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

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 193 تاريخ : دوشنبه 21 تير 1395 ساعت: 4:48