MIRZAEI2003
جمعه 11 شهریور 1390, 16:45 عصر
در این قسمت با استفاده از farsilibrary,dll مقدار یک textbox که در stimulsoft report مقدار آن تاریخ میلادی است را به تاریخ شمسی تبدیل می کنیم.
فایل FarsiLibrary.Utils.dll به همراه این آموزش attach شده است.
در محیط design بر روی قسمتی خارج از صفحه طراحی کلیک کنید از پنل سمت راست تب propertis را انتخاب کنید بر روی گزینه refrenced assemblies کلیک کنید بر روی دکمه (...) کلیک کنید.و در انتها عبارت زیر را تایپ کرده و ok کنید.
FarsiLibrary.Utils.dll
در محیط design بر روی textbox کلیک کنید از پنل سمت راست گزینه propertise را انتخاب کنید بر روی دکمه تب event tab کلیک کنید(علامت رعد و برق) سپس بر روی گزینه GetValue کلیک کنید و دکمه سمت راست آن(...) را کلیک کنید. در پنجره باز شده عبارت زیر را در بنویسید.
{e.Value=FarsiLibrary.Utils.PersianDateConverter.T oPersianDate(datasource_name.date_column_name).ToS tring();}
که در این عبارت datasource_name نام datasource و date_column_name نام ستونی (فیلدی) است که مقدار تاریخ میلادی در آن قرار دارد.
بر روی گزینه ok کلیک کنید.
از این لحظه به بعد تاریخ شمسی نمایش داده خواهد شد.(برای تمام سطرهایی که آن textbox را نمایش می دهند اعمال می شود)
----------------------------------------------------------------------
روش دوم :
اگر در کد برنامه می خواهید تاریخ را فارسی کنید (اگر تاریخ فقط یک بار نمایش داده میشود (query شما یک رکورد بر میگرداند))
از روش زیر استفاده کنید.
فایل attach شده را به refrence های برنامه اضافه کنید.
کد برنامه به صورت زیر خواهد بود.
SqlConnection con = null;
SqlCommand cmd = null;
SqlDataReader rd = null;
con = new SqlConnection("Data Source=(local);Initial Catalog=anything;Integrated Security=True");
Stimulsoft.Report.Components.StiText Text13 = report1.GetComponentByName("Text13") as Stimulsoft.Report.Components.StiText;
report1 نام شی است که از Report ساخته ایم.
Text13 در این قسمت نام Textbox میباشد که تاریخ را بر میگرداند(در قسمت design با کلیک بر روی textbox نام آن نمایش داده میشود که در پروژه شما نام آن متفاوت است)
try
{
cmd = new SqlCommand("SELECT tarikh ... , con);
که در این قسمت select... نحوه query است که مقدار تاریخ شما را برمیگرداند.
con.Open();
rd = cmd.ExecuteReader();
DateTime tarikh1;
while (rd.Read())
{
tarikh1 = Convert.ToDateTime(rd["tarikh"]);
}
Text13.Text = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate(tarikh1).ToString();
امیدوارم آموزش مفید بوده باشه.
فایل FarsiLibrary.Utils.dll به همراه این آموزش attach شده است.
در محیط design بر روی قسمتی خارج از صفحه طراحی کلیک کنید از پنل سمت راست تب propertis را انتخاب کنید بر روی گزینه refrenced assemblies کلیک کنید بر روی دکمه (...) کلیک کنید.و در انتها عبارت زیر را تایپ کرده و ok کنید.
FarsiLibrary.Utils.dll
در محیط design بر روی textbox کلیک کنید از پنل سمت راست گزینه propertise را انتخاب کنید بر روی دکمه تب event tab کلیک کنید(علامت رعد و برق) سپس بر روی گزینه GetValue کلیک کنید و دکمه سمت راست آن(...) را کلیک کنید. در پنجره باز شده عبارت زیر را در بنویسید.
{e.Value=FarsiLibrary.Utils.PersianDateConverter.T oPersianDate(datasource_name.date_column_name).ToS tring();}
که در این عبارت datasource_name نام datasource و date_column_name نام ستونی (فیلدی) است که مقدار تاریخ میلادی در آن قرار دارد.
بر روی گزینه ok کلیک کنید.
از این لحظه به بعد تاریخ شمسی نمایش داده خواهد شد.(برای تمام سطرهایی که آن textbox را نمایش می دهند اعمال می شود)
----------------------------------------------------------------------
روش دوم :
اگر در کد برنامه می خواهید تاریخ را فارسی کنید (اگر تاریخ فقط یک بار نمایش داده میشود (query شما یک رکورد بر میگرداند))
از روش زیر استفاده کنید.
فایل attach شده را به refrence های برنامه اضافه کنید.
کد برنامه به صورت زیر خواهد بود.
SqlConnection con = null;
SqlCommand cmd = null;
SqlDataReader rd = null;
con = new SqlConnection("Data Source=(local);Initial Catalog=anything;Integrated Security=True");
Stimulsoft.Report.Components.StiText Text13 = report1.GetComponentByName("Text13") as Stimulsoft.Report.Components.StiText;
report1 نام شی است که از Report ساخته ایم.
Text13 در این قسمت نام Textbox میباشد که تاریخ را بر میگرداند(در قسمت design با کلیک بر روی textbox نام آن نمایش داده میشود که در پروژه شما نام آن متفاوت است)
try
{
cmd = new SqlCommand("SELECT tarikh ... , con);
که در این قسمت select... نحوه query است که مقدار تاریخ شما را برمیگرداند.
con.Open();
rd = cmd.ExecuteReader();
DateTime tarikh1;
while (rd.Read())
{
tarikh1 = Convert.ToDateTime(rd["tarikh"]);
}
Text13.Text = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate(tarikh1).ToString();
امیدوارم آموزش مفید بوده باشه.