ممنونم جناب مدائنی ولی من جزتازه کارا هستم کامل متوجه نمیشم , من یه کلاس دارم که از این برای شمسی سازی استفاده کردم .
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.ShortDatePattern = "yyyy/MM/dd";
formatInfo.LongDatePattern = "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.NumberNegativePattern = 0;
}
return _Culture;
}
public static string ToPeString(this DateTime date, string format = "yyyy/MM/dd")
{
return 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 Stimulsoft.Base;
using Stimulsoft.Report.Mvc;
using Stimulsoft.Report;
namespace WebNew.Controllers
{
public class ReportController : Controller
{
// GET: Home
public ActionResult Index()
{
return 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.SerialInsurance,
a.StartDate,
a.EndDate,
b.Brand,
c.Model,
d.Color,
e.Storage,
a.DeviceSerial,
a.DevicePrice,
a.InsurancePrice,
g.FullName,
g.LocalID,
g.CustomerTel,
g.CustomerEmail,
g.CustomerAddress,
f.FullNameUser
};
System.Globalization.PersianCalendar x = new System.Globalization.PersianCalendar();
DateTime dt = x.ToDateTime(1390, 4, 21, 0, 0, 0, 0, 0);
// دریافت لیست از دیتا بیس
string Path = Server.MapPath("~/Reports/SerialInsurance.mrt"); // نام و مسیر قالبی که در دیزانر ایجاد کردیم
report.Load(Path);
report.RegBusinessObject("sti", q); // نام شیئی که در دیزانر ایجاد کردیم
report.Dictionary.SynchronizeBusinessObjects(2);
return StiMvcViewer.GetReportSnapshotResult(HttpContext, report);
}
//ایجاد پرینت
public ActionResult PrintReport()
{
return StiMvcViewer.PrintReportResult(this.HttpContext);
}
//ایجاد خروجی
public ActionResult ExportReport()
{
return StiMvcViewer.ExportReportResult(this.HttpContext);
}
public ActionResult ViewerEvent()
{
return StiMvcViewer.ViewerEventResult(this.HttpContext);
}
// GET: Report
public ActionResult PrintInsurance()
{
return View();
}
}
مهمترینم واسم تاریخ که نمیتونم به ToPeString() تغییرش بدم .