PDA

View Full Version : نمایش تاریخ میلادی موجود در بانک sql به صورت شمسی در گزارش گیری با quickrep دردلفی



khaterer
سه شنبه 30 آذر 1389, 00:37 صبح
سلام دوستان
در گزارشات و همچنین در dbgrid تاریخ به صورت میلادی نشون میده آیا راهی هست که بتونم آنها رو به صورت شمسی در گزارشام و dbgrid نشون بدم ممنون میشم راهنمایی ام کنید خیلی درگیرم

m_h_2007
سه شنبه 30 آذر 1389, 00:56 صبح
بهترین راه برای نمایش تاریخ به صورت شمسی استفاده از Persian.dll هستش

کافیه کنار فایل اجرایی برنامه قرارش بدی و از توابع زیر داخل برنامه استفاده کنی

Function PrintDate : ShortString;
External 'persian.dll';

Function PrintNormal : ShortString;
External 'persian.dll';

hp1361
سه شنبه 30 آذر 1389, 11:01 صبح
سلام

شما می تونید در رویداد GetText فیلد بانکتون(همون فیلدی که تاریخ رو ذخیره کرده اید) دستوراتی رو بنویسید که فیلد مورد نظر به صورت دلخواه شما نمایش داده بشه.مثلا از Persian.dll که دوستمون در بالا معرفی کردن استفاده کنید و کد تغییر مقدار فیلد مورد نظر رو بنویسید.نتیجه دلخواه در زمان نمایش فیلد در DBGrid ظاهر خواهد شد.

موفق باشیم

MOJTABAATEFEH
سه شنبه 30 آذر 1389, 13:36 عصر
سلام

شما می تونید در رویداد GetText فیلد بانکتون(همون فیلدی که تاریخ رو ذخیره کرده اید) دستوراتی رو بنویسید که فیلد مورد نظر به صورت دلخواه شما نمایش داده بشه.مثلا از Persian.dll که دوستمون در بالا معرفی کردن استفاده کنید و کد تغییر مقدار فیلد مورد نظر رو بنویسید.نتیجه دلخواه در زمان نمایش فیلد در DBGrid ظاهر خواهد شد.

موفق باشیم

دوست عزیز 1کم راجع به این مورد توضیح بدین
با تشکر

hp1361
سه شنبه 30 آذر 1389, 14:06 عصر
دوست عزیز 1کم راجع به این مورد توضیح بدین
با تشکر

سلام

کجاشو توضیح بدم؟نام رویداد که مشخصه!کاری هم که باید بکنی مشخصه! کجاشو متوجه نمیشید بگین توضیح بدم

MOJTABAATEFEH
سه شنبه 30 آذر 1389, 15:16 عصر
سلام

کجاشو توضیح بدم؟نام رویداد که مشخصه!کاری هم که باید بکنی مشخصه! کجاشو متوجه نمیشید بگین توضیح بدم

یه خورده باهاش کار کردم طریقه ارسال به این رویداد و دریافت خروجی و نمایش در DBgrid رو بفرمایید و اینکه متغییر TEXT چکاری انجام میده؟
فرق این رویداد با Settext چیه؟
با تشکر

hp1361
سه شنبه 30 آذر 1389, 17:24 عصر
سلام

دیتاست زمانیکه اطلاعات رو از بانک میخونه و می خواد نمایش بده مقدار فیلد مورد نظر رو در متغیر Text میریزه.حالا شما در رویداد OnGetText تعریف میکنید که چه کارهایی با مقدار Text انجام بده و در آخر چه چیزی نمایش بده.

رویداد OnSetText هم زمانیکه مقدار یک فیلد تفییر میکنه فراخوانی میشه.مثلا اگه شما میخواهید مقدا فیلد چیزی بغیراز اون مقداری باشه که نمایش داده میشه از این رویداد استفاده می کنید.

تنها کاری که شما میکنید اینه که در رویدادOnGetText مقدار فیلد مورد نظر رو با استفاده از همون Persian.dll تغییر بدید و در متغیرText بریزید

چون persian .dll رو نداشتم کد رو اینطوری نوشتم


procedure TForm1.ADOTable1DateGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
Text:=Sender.AsString+'test';
end;

موفق باشیم

MOJTABAATEFEH
سه شنبه 30 آذر 1389, 21:28 عصر
سلام

دیتاست زمانیکه اطلاعات رو از بانک میخونه و می خواد نمایش بده مقدار فیلد مورد نظر رو در متغیر Text میریزه.حالا شما در رویداد OnGetText تعریف میکنید که چه کارهایی با مقدار Text انجام بده و در آخر چه چیزی نمایش بده.

رویداد OnSetText هم زمانیکه مقدار یک فیلد تفییر میکنه فراخوانی میشه.مثلا اگه شما میخواهید مقدا فیلد چیزی بغیراز اون مقداری باشه که نمایش داده میشه از این رویداد استفاده می کنید.

تنها کاری که شما میکنید اینه که در رویدادOnGetText مقدار فیلد مورد نظر رو با استفاده از همون Persian.dll تغییر بدید و در متغیرText بریزید

چون persian .dll رو نداشتم کد رو اینطوری نوشتم


procedure TForm1.ADOTable1DateGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
Text:=Sender.AsString+'test';
end;

موفق باشیم

مقدار اولیه Text که خالیه من به صورت زیر عمل کردم :

Text:=Sender.AsString+'test';
showmessage(text);


نمایش پیغام هم text رو درست و طبق انتظار نشون میده ولی در dbgrid مقدار اصلی نمایش داده میشه مشکل از چیه؟

با تشکر

MOJTABAATEFEH
جمعه 03 دی 1389, 13:17 عصر
کسی از این مورد استفاده نکرده؟

sasan_vm
دوشنبه 06 دی 1389, 01:18 صبح
سلام
به نظر من بهتره تبدیل را با sql انجام بدی و به راحتی در هر query از اون استفاده کنی فارق از IDE, Compiler, Package,...
تبدیل تاریخ ... (http://barnamenevis.org/showthread.php?235167-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-%D8%A8%D9%87-%D8%B4%D9%85%D8%B3%DB%8C-%D9%88-%D8%A8%D8%A7%D9%84%D8%B9%DA%A9%D8%B3&p=1046432&viewfull=1#post1046432)

khaterer
سه شنبه 21 دی 1389, 13:34 عصر
سلام دوستان
ببخشید امکان داره نحوه استفاده از persian.dll را توضیح بدید ؟