View Full Version : تبديل تاريخ ميلادي به شمسي
lovelygirl
یک شنبه 10 آبان 1388, 12:35 عصر
دوستان تبديل تاريخ ميلادي به شمسي رو ميخوام خيلي جستجو كردم اما يه جواب درست و درمون پيدا نكردم ميشه راهنمايي كنيد خيلي فوريه خواهشا سريع و كامل جواب بدين
Mahmood_M
یک شنبه 10 آبان 1388, 13:08 عصر
برای استفاده از تاریخ شمسی ، بهترین راه استفاده از کامپوننتهای مربوط به تبدیل تاریخ میلادی به شمسی هست :
کامپوننت تقویم شمسی (http://barnamenevis.org/forum/showthread.php?t=110628)
این کامپوننت برای دریافت ورودی و نمایش تاریخ به کاربر مناسب است ...
DLL ای هم به نام Shamsi.DLL هست که برای کار با توابع تبدیل تاریخ می تونه مفید باشه ...
در گوگل جستجو کنید ، موارد بسیاری پیدا خواهید کرد ...
موفق باشید ...
lovelygirl
یک شنبه 10 آبان 1388, 13:21 عصر
دوست عزيزم اون لينكي كه دادي اصلا دانلود نميشه يه جاهاي عجيب و غريب ميره اون dll رو هم سرچ كردم هيچي نمياره فقط مطالب آموزشي مياره خوده dll رو نميشه دانلود كرد
خواهشا اگه راه ديگه اي دارين بگيد كارم بدجوري گير كرده:عصبانی++:
Pr0grammer
یک شنبه 10 آبان 1388, 13:42 عصر
http://barnamenevis.org/forum/showthread.php?t=163867&highlight=%D8%B4%D9%85%D8%B3%DB%8C
http://barnamenevis.org/forum/showthread.php?t=110628&highlight=%D8%B4%D9%85%D8%B3%DB%8C
http://barnamenevis.org/forum/showpost.php?p=762161&postcount=7
http://barnamenevis.org/forum/showthread.php?t=180959&highlight=Shamsi.DLL
lovelygirl
دوشنبه 11 آبان 1388, 09:43 صبح
اون لينك هايي كه مدير دادن رو امتحان كردم اما به جواب نرسيدم آخر يه يونيت پيدا كردم كه درست كار ميكنه اگه كسي خواست بگه بهش بدم اما مشكلم بازم حل نشده من تاريخ رو توي دلفي تونستم بيارم ولي ميخوام اين تاريخ رو توي اكسس ذخيره كنيم يعني فيلد تاريخ رو وصل كنم به جدولم در اكسس .
اما تو اكسسم هيچي نمياد جدول تاريخم خالي نشون داده ميشه
ميشه راهنمايي كنيد
Felony
دوشنبه 11 آبان 1388, 09:59 صبح
کدی که نوشتید چی هست ؟ فیلد تاریختون توی اکسس از چه نوعی در نظر گرفته شده ؟
Hadi_Fayyaz
دوشنبه 11 آبان 1388, 10:32 صبح
اون لينك هايي كه مدير دادن رو امتحان كردم اما به جواب نرسيدم آخر يه يونيت پيدا كردم كه درست كار ميكنه اگه كسي خواست بگه بهش بدم اما مشكلم بازم حل نشده من تاريخ رو توي دلفي تونستم بيارم ولي ميخوام اين تاريخ رو توي اكسس ذخيره كنيم يعني فيلد تاريخ رو وصل كنم به جدولم در اكسس .
اما تو اكسسم هيچي نمياد جدول تاريخم خالي نشون داده ميشه
ميشه راهنمايي كنيد
سلام
ميشه اسم يونيتي كه پيدا كرديد رو بدونم و اينكه چه تابعي توي اين يونيت كار تبديل تا ريخ رو انجام ميده؟
با تشكر
lovelygirl
دوشنبه 11 آبان 1388, 11:13 صبح
کدی که نوشتید چی هست ؟ فیلد تاریختون توی اکسس از چه نوعی در نظر گرفته شده ؟
فيلد تاريخم در اكسس از نوع Text هستش ميخوام تاريخ شمسي رو از دلفي وارد اكسس كنم اما تو اكسس نشون نميده فيلد توي دلفي رو از نوع dbtext گرفتم كه وصلش كردم به جدول اكسسم البته فيلد هاي زيادي دارم كه همشون به اكسسم وصله و درست كار ميكنند فقط اين تاريخم كار نميكنه نميدونم اشكالم كجاست
lovelygirl
دوشنبه 11 آبان 1388, 11:17 صبح
سلام
ميشه اسم يونيتي كه پيدا كرديد رو بدونم و اينكه چه تابعي توي اين يونيت كار تبديل تا ريخ رو انجام ميده؟
با تشكر
اون يونيتي كه گرفتم اسمش date و تابع به كار رفته در اون TodayAsStringShamsi هستش
براتون ضميمه ميكنم كه بايد اول اين يونيت رو جايي كه پروژتون ذخيره كرديد قرار بدين و بعدش از توي دلفي از منوي project و گزينه add project اين يونيت را اضافه كنيد بعدش در قمست use خود دلفي اسم يونيت يعني date را use كنيد درست كار ميكنه من امتحان كردم
Felony
دوشنبه 11 آبان 1388, 12:07 عصر
براتون ضميمه ميكنم كه بايد اول اين يونيت رو جايي كه پروژتون ذخيره كرديد قرار بدين و بعدش از توي دلفي از منوي project و گزينه add project اين يونيت را اضافه كنيد بعدش در قمست use خود دلفي اسم يونيت يعني date را use كنيد درست كار ميكنه من امتحان كردم
دیگه وقتی از منوی Project یونیت رو Add میکنید نیازی نیست که کنار پروژتون باشه ، این کار برای زمانی هست که یونیت رو خودتون دستی به Uses اضافه کنید و یونیت جزو یونیت های استاندارد ( Windows , Classes , Forms و ... ) نباشه .
lovelygirl
دوشنبه 11 آبان 1388, 12:15 عصر
دیگه وقتی از منوی Project یونیت رو Add میکنید نیازی نیست که کنار پروژتون باشه ، این کار برای زمانی هست که یونیت رو خودتون دستی به Uses اضافه کنید و یونیت جزو یونیت های استاندارد ( Windows , Classes , Forms و ... ) نباشه .
به هرحال ما اينطوري عمل كرديم جواب داد
حالا اگه ميشه شما جواب منو بده
تو اكسس چطوري بيارمش؟
Felony
دوشنبه 11 آبان 1388, 12:25 عصر
به هرحال ما اينطوري عمل كرديم جواب داد
درسته که جواب میده ، در کل گفتم تا نحوه ی عملکردش رو بدونید .
حالا اگه ميشه شما جواب منو بده
تو اكسس چطوري بيارمش؟
یه نمونه نوشتم با همون یونیتی که قرار دادید و به درستی کار میکنه ، ضمیمه رو ببینید .
Hadi_Fayyaz
دوشنبه 11 آبان 1388, 12:34 عصر
اون يونيتي كه گرفتم اسمش date و تابع به كار رفته در اون TodayAsStringShamsi هستش
براتون ضميمه ميكنم كه بايد اول اين يونيت رو جايي كه پروژتون ذخيره كرديد قرار بدين و بعدش از توي دلفي از منوي project و گزينه add project اين يونيت را اضافه كنيد بعدش در قمست use خود دلفي اسم يونيت يعني date را use كنيد درست كار ميكنه من امتحان كردم
ببينيد دوست عزيز اشكالي كه شما به اون اشاره ميكنيد ربطي به تابع تبديل تاريخ ميلادي به شمسي نداره بلكه مربوط ميشه به نوع فيلد هايي كه استفاده كرديد.
اگه درست فهميده باشم شما يك DBText روي فرمتون گذاشتيد و و اون رو از طريق يك DataSource به يك فيلد از جدول وصل كرديد و بعد توي برنامه خروجي تابع رو به DBText.Caption نسبت ميديد. در اين صورت روي فرمتون تاريخ نشون داده ميشه ولي در داخل جدول تاريخ نشون داده نميشه. اگه اين كار رو كرده باشيد بايد بگم تا اونجايي كه من ميدونم DBText يك ابجكتي براي نمايش اطلاعات از داخل جدول روي فرم هست نه براي ورود اطلاعات به جدول بنا بر اين با تغيير Caption مربوط به DBText نبايد انتظار داشته باشيد كه اطلاعات داخل جدول تغيير كنه. حالا براي حل مشكلتون ميتونيد به جاي DBText از DBEdit استفاده كنيد و يا با دستور هاي Insert يا Edit مربوط به جدول كار ورود اطلاعات به جدول رو انجام بديد.
اميد وارم اشكال شما رو درست حدس زده باشم.
موفق باشيد
lovelygirl
دوشنبه 11 آبان 1388, 13:03 عصر
ببينيد دوست عزيز اشكالي كه شما به اون اشاره ميكنيد ربطي به تابع تبديل تاريخ ميلادي به شمسي نداره بلكه مربوط ميشه به نوع فيلد هايي كه استفاده كرديد.
اگه درست فهميده باشم شما يك DBText روي فرمتون گذاشتيد و و اون رو از طريق يك DataSource به يك فيلد از جدول وصل كرديد و بعد توي برنامه خروجي تابع رو به DBText.Caption نسبت ميديد. در اين صورت روي فرمتون تاريخ نشون داده ميشه ولي در داخل جدول تاريخ نشون داده نميشه. اگه اين كار رو كرده باشيد بايد بگم تا اونجايي كه من ميدونم DBText يك ابجكتي براي نمايش اطلاعات از داخل جدول روي فرم هست نه براي ورود اطلاعات به جدول بنا بر اين با تغيير Caption مربوط به DBText نبايد انتظار داشته باشيد كه اطلاعات داخل جدول تغيير كنه. حالا براي حل مشكلتون ميتونيد به جاي DBText از DBEdit استفاده كنيد و يا با دستور هاي Insert يا Edit مربوط به جدول كار ورود اطلاعات به جدول رو انجام بديد.
اميد وارم اشكال شما رو درست حدس زده باشم.
موفق باشيد
با dbedit امتحان كردم توي اين آبجكت كه اصلا تاريخ رو نمياره فقط توي text تاريخ رو مياره
مشكلم رو درست حدس زدين اما خوب با edti جواب نداد يعني اصلا تاريخ رو هم تو دلفي نشون نداد
lovelygirl
دوشنبه 11 آبان 1388, 13:20 عصر
درسته که جواب میده ، در کل گفتم تا نحوه ی عملکردش رو بدونید .
یه نمونه نوشتم با همون یونیتی که قرار دادید و به درستی کار میکنه ، ضمیمه رو ببینید .
دوست عزيزم من به جز فليد تاريخ فيلدهاي ديگه هم دارم ايني كه شما دادي رو گذاشتم تو برنامه ام درست كار ميكنه اما فيلدهاي ديگمو پاك ميكنه يا نميدنم چرا اونا رو اضافه نميكنه فقط فيلد تاريخ پر ميشه بقيه سطرهاي جدوالم خالي ميمونه
ميشه بازم كمكم كني
خيلي ممنون ميشم
Felony
دوشنبه 11 آبان 1388, 19:06 عصر
دوست عزيزم من به جز فليد تاريخ فيلدهاي ديگه هم دارم ايني كه شما دادي رو گذاشتم تو برنامه ام درست كار ميكنه اما فيلدهاي ديگمو پاك ميكنه يا نميدنم چرا اونا رو اضافه نميكنه فقط فيلد تاريخ پر ميشه بقيه سطرهاي جدوالم خالي ميمونه
ميشه بازم كمكم كني
خيلي ممنون ميشم
اگر میتونید سورستون رو قرار بدید یا تکه کدی که برای اضافه کرد رکوردهاتون به جدول نوشتید رو اینجا بزارید تا بررسی بشه .
lovelygirl
سه شنبه 12 آبان 1388, 08:46 صبح
اگر میتونید سورستون رو قرار بدید یا تکه کدی که برای اضافه کرد رکوردهاتون به جدول نوشتید رو اینجا بزارید تا بررسی بشه .
دوست عزيز من كله برنامه ام را با جدوال اكسسم فرستادم
توضيح برنامه ام رو بدم كه اين برنامه واسه تماس هاي گرفته شده از طرف داشنگاه پيام نور هستش كه نام را توي باكس اولي وارد ميكنم بعد تو باكس بعدي كد واحد دانشكاهي رو ميزنم مثلا 16 واسه آبعلي خودش تو دوتا باكس زيري آبعي رو مي نويسه و بعد پايين هم موضوع تماس و غيره رو ميزنم الان ميخوام تاريخ شمسي تو جدولي كه با نام tel ساختم بياد اگه نيگاش كنيد ميبيند كه اون كدي رو كه شما دادين وارد كردم فقط سطر خالي با تاريخ شمسي رو ايجاد كرده
ممنون ميشم راهنمايي كنيد
چون حجم برنامه ام زياد بود و آپلود نميشد دو تيكه اش كردم 1 و 2 خودتون كه ميدونيد كه همه رو يه جا تو يه فلدر بزاريد تا اجرا شه
Felony
سه شنبه 12 آبان 1388, 13:20 عصر
موقع اجرای برنامه dbText تون رو با تاریخ شمستون مقدار دهی کنید ، برنامتون رو ویرایش کردم الان درست کار میکنه .
lovelygirl
سه شنبه 12 آبان 1388, 13:38 عصر
موقع اجرای برنامه dbText تون رو با تاریخ شمستون مقدار دهی کنید ، برنامتون رو ویرایش کردم الان درست کار میکنه .
دوست عزيزم اين كه هنوزم تاريخو نمي نويسه كه
ميخوام تاريخو تو اكسسم بياره ها
Felony
سه شنبه 12 آبان 1388, 14:05 عصر
من تست کردم کار کرد ، اون رکورد آخر تو بانک رو ببینید .
lovelygirl
سه شنبه 12 آبان 1388, 14:10 عصر
من تست کردم کار کرد ، اون رکورد آخر تو بانک رو ببینید .
نميدونم كلافه شدم
پس چرا اينجا هيچي نمي نويسه:عصبانی++::عصبانی++:
Felony
سه شنبه 12 آبان 1388, 14:18 عصر
من مشکل شما رو نمیدونم چیه ولی بهترین روش این هست که خودتون دستی رکوردها رو اضافه کنید ، یعنی به وسیله ی متد insert جدول رو به حالت ورودی ببرید و رکوردهاتون رو بهش پست کنید ، دقیقا مثل نمونه ی قبلی که من قرار دادم .
موفق باشید .
lovelygirl
سه شنبه 12 آبان 1388, 14:23 عصر
من مشکل شما رو نمیدونم چیه ولی بهترین روش این هست که خودتون دستی رکوردها رو اضافه کنید ، یعنی به وسیله ی متد insert جدول رو به حالت ورودی ببرید و رکوردهاتون رو بهش پست کنید ، دقیقا مثل نمونه ی قبلی که من قرار دادم .
موفق باشید .
من كه مشكلمو گفتم كه
اين تاريخ شمسي رو از دلفي ميخوام ببرم تو اكسسم اما نميدونم چرا همه فيلدهام مياد جز فيلد تاريخم
ركوردهامو كه با navigator اضافه مي كنم كه دستي اضافه نميكنم
عقلم ديگه نمي كشه:اشتباه:
lovelygirl
چهارشنبه 13 آبان 1388, 15:35 عصر
برنامه ام را اينجا برايتان گذاشتم شرمندم هنوزم ويروس داره ببينيد دستي كه ميزنم تاريخ رو مينويسه اما خوب بازم مشكل داره چون وسطاش پيغام خطا هم ميده
اگه ميشه راهنماييم كنيد:افسرده:
دلفــي
چهارشنبه 13 آبان 1388, 16:04 عصر
برنامه ام را اينجا برايتان گذاشتم شرمندم هنوزم ويروس داره ببينيد دستي كه ميزنم تاريخ رو مينويسه اما خوب بازم مشكل داره چون وسطاش پيغام خطا هم ميده
اگه ميشه راهنماييم كنيد:افسرده:
کد شما مشکلی نداره ، ولی این رو هم یه امتحانی بکنید:
ADOTable1.FieldByNmae('Date').AsString := Trim(DBText1.Caption);
lovelygirl
چهارشنبه 13 آبان 1388, 16:15 عصر
کد شما مشکلی نداره ، ولی این رو هم یه امتحانی بکنید:
ADOTable1.FieldByNmae('Date').AsString := Trim(DBText1.Caption);
ببينيد مشكله من در اينه كه تاريخ شمس رو تو بانك اكسس نمي نويسه
بعدشم ايني كه شما گفتينو كجا بنويسم؟
دلفــي
چهارشنبه 13 آبان 1388, 16:20 عصر
ببينيد مشكله من در اينه كه تاريخ شمس رو تو بانك اكسس نمي نويسه
بعدشم ايني كه شما گفتينو كجا بنويسم؟
برنامه ای که آپلود کردید ناقصه و فرم 2 توش نیست ، لطف کنید برنامه کامل رو بزارید تا بهتر بتونم کمکتون کنم .
اون کد رو هم باید هنگام ارسال به جدول تلفن وارد کنید .
lovelygirl
پنج شنبه 14 آبان 1388, 08:29 صبح
برنامه ای که آپلود کردید ناقصه و فرم 2 توش نیست ، لطف کنید برنامه کامل رو بزارید تا بهتر بتونم کمکتون کنم .
اون کد رو هم باید هنگام ارسال به جدول تلفن وارد کنید .
چرا برنامه ام كامله فقط چون حجمش زياد بود دو تيكه اش كردم دو تا فلدر رو تو يه فلدر قرار بدين درست ميشه در ضمن جداول رو هم تو تاپيك قبلي آپلود كردم و توضيح برنامه ام رو هم دادم
lovelygirl
پنج شنبه 14 آبان 1388, 12:41 عصر
ببينيد درست گذاشتم
يونيت 2 را برايتان آپلود كردم
دلفــي
پنج شنبه 14 آبان 1388, 14:32 عصر
ببينيد درست گذاشتم
يونيت 2 را برايتان آپلود كردم
بله درست بود !
این هم برنامه اصلاح شده :
lovelygirl
شنبه 16 آبان 1388, 14:42 عصر
بله درست بود !
این هم برنامه اصلاح شده :
بابته برنامه ممونم اما اجرا نميشه
عكس مربوط به خطاها را براتون ميزارم ببينيد
مرسي
دلفــي
شنبه 16 آبان 1388, 15:01 عصر
بابته برنامه ممونم اما اجرا نميشه
عكس مربوط به خطاها را براتون ميزارم ببينيد
مرسي
این خطا به این خاطره که کوئیک ریپورتی که من ازش استفاده کردم با کوئیک ریپورتی که شما به کار بردید متفاوته .
برای حل مشکلتون چهار راه وجود داره
1- از کوئیک ریپورتی که من استفاده کردم استفاده کنید (اگه خواستید براتون میفرستم)
2 - کامپوننت مربوط به کوئیک ریپورت رو از روی فرم حذف کرده و دوباره از سربرگ کامپوننت ها اضافه کنید .
3 - روی فرم مربوط به کوئیک ریپورت راست کلیک کرده و گزینه View As Text رو بزنید و در Object کوئیک ریپورت تمامی سطرهایی که در اون گزینهUseStandardPrinter وجود داره رو حذف کنید .
4 - صفحه گزارش رو دوباره از نو ایجاد کنید .
lovelygirl
شنبه 16 آبان 1388, 15:49 عصر
این خطا به این خاطره که کوئیک ریپورتی که من ازش استفاده کردم با کوئیک ریپورتی که شما به کار بردید متفاوته .
برای حل مشکلتون چهار راه وجود داره
1- از کوئیک ریپورتی که من استفاده کردم استفاده کنید (اگه خواستید براتون میفرستم)
2 - کامپوننت مربوط به کوئیک ریپورت رو از روی فرم حذف کرده و دوباره از سربرگ کامپوننت ها اضافه کنید .
3 - روی فرم مربوط به کوئیک ریپورت راست کلیک کرده و گزینه View As Text رو بزنید و در Object کوئیک ریپورت تمامی سطرهایی که در اون گزینهUseStandardPrinter وجود داره رو حذف کنید .
4 - صفحه گزارش رو دوباره از نو ایجاد کنید .
روي فرمم كه كامپوننت ندارم كه بعدشم تو تو هيچ كدوم از سطرها اوني كه شما ميگين رو نداره كه
دوباره صفحه گزارشمو بسازم؟آخه هيچي كه فرقي نكرده همون شما چيشو عوض كردين؟
lovelygirl
شنبه 16 آبان 1388, 16:07 عصر
خودم فهميدم چي شده گزارشمو به جدولم وصل نكرده بودين
بعدش فقط دوست عزيزم من اون دكمه ها رو الكي گذاشته بودم راستش من ميخواستم با dbnavigator كار كنم شما رو دكمه ها برنامه نوشتين البته خيلي خوب بود مرسي واقعا زحمت كشيدين كامل اجرا ميشه خيلي خوشحال شدم كه اجرا ميشه اما من گزينه هاي ديگه هم مثل Edit ركوردها يا پيمايش ركورد ها رو هم ميخوام واسه همين از navigator استفاده كردم البته قبلا هم گفتم مديرم گفته با اين كار كنم به هرحال شايد تونستم edit و پيمايش ركورد ها رو خودم درستش كردم
بازم ممنونم مرسي
maryammb66
چهارشنبه 18 اسفند 1389, 10:07 صبح
سلام چطوری از فایل ضمیمه که به اسم date هستش رو اجرا کنم
مهران رسا
چهارشنبه 16 شهریور 1390, 16:18 عصر
تابع TodayAsPersianDay برای نمایش ایام هفته به صورت فارسی به یونیت DATE.pas (Persian Turbo Vision Demo) اضافه شد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.