ورود

نسخه کامل مشاهده نسخه کامل : SpinEdit



tikzahraaran
03-03-2008, 01:49
با سلام
چگونه می توان با استفاده از 2 SpinEdit ساعت را به صورت 00:00 درون بانک اطلاعاتی اکسس نوشت
از راهنمایی و مساعدت شما کمال تقدیر و تشکر را دارم

:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::11::46:

VDeveloper
03-03-2008, 02:38
در داخل بانک اطلاعاتی ساعت و تاریخ با هم بصورت یک عدد اعشاری نگه داری میشند که بخش صحییح آن مربوط به تاریخ و بخش اعشاری آن مربوط به ساعت هست. شما نیازی ندارید که با این عدد بصورت مستقیم کار کنید، بانک اطلاعاتی و دلفی این عدد را در قالب TDateTime بصورت یک تاریخ و ساعت قابل فهم توسط انسان ارائه می کند. نوع TDate در واقع همان TDateTime است که اعشار آن صفر شده، و نوع TTime هم همان TDateTime است که بخش صحیح آن صفر شده.
در مورد سوال شما، کافی هست که یک متغیر از نوع TTime داشته باشید و مقدار آن را متناسب با مقادیر وارد شده در SpinEdit ها وارد کنید، و در نهایت مقدار بدست آمده را به فیلد مربوطه در بانک اختصاص بدید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این کد برای تاریخ مقدار صفر را ذخیره می کند که معادل اول ژانویه 1899 است. در زمان نمایش مقدار فیلد مربوطه می تونید نحوه نمایش آن را تعیین کنید تا فقط ساعت را نمایش دهد، یا از تابع TimeToStr استفاده کنید تا ساعت از مقدار فیلد جدا شده و بصورت یک رشته برگشت داده شود.

tikzahraaran
07-03-2008, 13:31
Vdeveloper عزیز
هنگامی که از Ttime استفاده می کنیم نمی توانیم بیش از 23 را برای ساعت و 60 را برای دقیقه استفاده کنیم
در صورتی که من می خواهم مثلا برای ساعت تا 120 ساعت نیز محاسبه شود یعنی مثلا 119:45

در ضمن از کمک و راهنمایی شما کمال تقدیر و تشکر را می کنم
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::40::40::11::46:

VDeveloper
07-03-2008, 13:48
همونطور که گفتم، TTime نوعی بر اساس TDateTime هست برای نگه داری تاریخ و ساعت. در تعریف تاریخ و ساعت زمانی بالاتر از 24 معنی نداره. مقداری که شما می خواید ذخیره کنید یک عدد صحیح محسوب میشه، نه یک تاریخ یا ساعت. اگر اون عدد (مثلا 111:30) از محاسبه بین دو زمان بدست میاد (مثلا 3:40 روز اول فروردین تا 11:30 روز 15 خرداد) در این صورت می تونید با کمک توابعی مقل HoursBetween یا DaysBetween تعداد ساعت ها یا روزهای بین این دو زمان را محاسبه کنید. اگر قرار هست فقط محلی برای نگه داری مدت زمان کاری باشه (مثلا مدت ساعات فعالیت یک کارمند) می تونید از یک فیلد اعشاری (عدد صحیح آن = ساعت و اعشار آن = دقیقه) استفاده کنید که در این صورت باید با محاسبه اعشار را به دقیقه تبدیل کنید. یا اینکه دو فیلد عدد صحیح درنظر بگیرید و در یکی ساعت و در یکی دقیقه را ثبت کنید.

tikzahraaran
08-03-2008, 09:11
Vdeveloper عزیز
از راهنمایی شما بسیار متشکرم امتحان می کنم ببینم چطور می شه
:40::40::40::40::40::40::40::40::40::40::40::40::4 0::40::11::46: