الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل من حل لتاريخ أم القرى؟

بدأه Almatrodi في 17 يونيو 2008 · 6 رد · 1,273 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

صراحة هالموضوع يهم الجميع

الكثير تطرق له بعدة حلول

موضوع قديم ومتجدد

ربما ما جعلني أكتب فيه مرة أخرى

هو أنني قرأت في مزايا الـ MS SQL 2008 وللأسف :angry: لم أجدها تدعمه كحقل مع العلم أن الفيستا أصبحت تدعمه

حاولت مراراً :wacko: وتكرار مع ما يسمى بالحقول المخصصة UDT ومع ذلك لم أرها تحل المشكلة :angry:

طبعاً أنا أرى أن المشكلة تنقسم إلى جزئين:

الأول:

ما يتعلق بقاعدة البيانات وحفظها والتعامل مع الحقل كحقل تاريخي تستفيد من جميع دوال وخصائص الحقل التاريخي

الثاني:

ما يتعلق بواجهة المستخدم

من ناحية التأكد من صحة الادخال

ومن ناحية العرض على الشاشة. فلا أريد أن أعرض عليه حقل نصي يقوم هو بكتابة التاريخ من خلاله

بل أريد أن يكون أداة تعرض له التاريخ كالموجودة للتاريخ الميلادي

في هذه النقطة وجدت أشخاص قاموا بإعداد أدوات للتاريخ الهجري والفارسي

لكنني لم أستطع تعديلها للتوافق مع تاريخ أم القرى

طبعاً الاعتراف بالحق فضيلة أنا أعرف أن هناك كلاسات تخدم تاريخ أم القرى

لكن المشكلة أنني لست بذلك المبرمج المتمكن مع الدوت نت بوجه عام

اعذروني على عرض شيئاً من الهموم

لكن لعل أحداً منكم قد استطاع لها حلاً فليفدنا بذلك

أو على الأقل يقدم شيئاً من المعلومات والإيضاحات التي تساعد على حل هذه المشلكة

تقبلوا تحياتي ومودتي جميعاً

:)

تم تعديل هذه المشاركة بواسطة Almatrodi في 17 يونيو 2008 في 14:37

#2
Almatrodi كتب:
صراحة هالموضوع يهم الجميع

الكثير تطرق له بعدة حلول

موضوع قديم ومتجدد

ربما ما جعلني أكتب فيه مرة أخرى

هو أنني قرأت في مزايا الـ MS SQL 2008 وللأسف :angry: لم أجدها تدعمه كحقل مع العلم أن الفيستا أصبحت تدعمه

حاولت مراراً :wacko: وتكرار مع ما يسمى بالحقول المخصصة UDT ومع ذلك لم أرها تحل المشكلة :angry:

طبعاً أنا أرى أن المشكلة تنقسم إلى جزئين:

الأول:

ما يتعلق بقاعدة البيانات وحفظها والتعامل مع الحقل كحقل تاريخي تستفيد من جميع دوال وخصائص الحقل التاريخي

الثاني:

ما يتعلق بواجهة المستخدم

من ناحية التأكد من صحة الادخال

ومن ناحية العرض على الشاشة. فلا أريد أن أعرض عليه حقل نصي يقوم هو بكتابة التاريخ من خلاله

بل أريد أن يكون أداة تعرض له التاريخ كالموجودة للتاريخ الميلادي

في هذه النقطة وجدت أشخاص قاموا بإعداد أدوات للتاريخ الهجري والفارسي

لكنني لم أستطع تعديلها للتوافق مع تاريخ أم القرى

طبعاً الاعتراف بالحق فضيلة أنا أعرف أن هناك كلاسات تخدم تاريخ أم القرى

لكن المشكلة أنني لست بذلك المبرمج المتمكن مع الدوت نت بوجه عام

اعذروني على عرض شيئاً من الهموم

لكن لعل أحداً منكم قد استطاع لها حلاً فليفدنا بذلك

أو على الأقل يقدم شيئاً من المعلومات والإيضاحات التي تساعد على حل هذه المشلكة

تقبلوا تحياتي ومودتي جميعاً

:)

الأفضل ما تخرن في قاعدة البيانات غير التاريخ الميلادي

وفي البرنامج إستخدم فئة UmAlQuraCalendar لإستخراج التاريخ الهجري من الميلادي

..

#3

السلام عليكم ورحمة الله وبركاتة,

الاخ "تركي العسيري" بارك الله فية تكلم في هذا الامر تحت عنوان "التاريخ الهجري – دعوة للنقاش" أتمني أن تستفيد مما طرحة.

مواضيع متنوعة

#4
Desert_Eagle كتب:

الأفضل ما تخرن في قاعدة البيانات غير التاريخ الميلادي

وفي البرنامج إستخدم فئة UmAlQuraCalendar لإستخراج التاريخ الهجري من الميلادي

..

أخي الفاضل

أشكر لك مشاركتك هذه

تخزين التاريخ الميلادي !!! هذه المشكلة!.

إذا كان عندي مجموعة لا بأس بها من الحقول التاريخية

فستكون المهمة قاسية للحفاظ على ذلك

ومن ناحية أخرى:

القضية ليست فقط العرض على الشاشة لغرض الغرض فقط

بل تتعداها إلى أنك يجب أن تسمح للمستخدم بالقيام بالتعديل

فأنت داخل البرنامج ستتعامل مع حقلين لكل حقل تاريخي

طبعاً الحقل الأول وهو في الغالب سيكون نصي أورقمي لتحرير نفس التاريخ

والحقل الثاني الحقل الحقيقي وهو التاريخ الميلادي وذلك في حالة

احتجت إلى أحد مهام الحقل التاريخي أياً كانت!

ثم يجب عليك كمبرمج أن تنتبه إلى التحويل من أم القرى للميلادي عند الحفظ مباشرة إلى الحقل الميلادي

كما تضيف إلى SQL عملية التحويل العكسية وتضيف حقل جديد يتولى حمل تأريخ أم القرى

تقبل تحياتي

#5
Moudey كتب:
السلام عليكم ورحمة الله وبركاتة,

الاخ "تركي العسيري" بارك الله فية تكلم في هذا الامر تحت عنوان "التاريخ الهجري – دعوة للنقاش" أتمني أن تستفيد مما طرحة.

عليكم السلام ورحمة الله وبركاته

أخي الكريم

لقد قرأت هذا الموضوع الذ طرحه الأستاذ العسيري منذ فترة طويلة

لقد تغيرت بعض الأمور الآن نوعاً مع دعم مايكروسوفت لتاريخ أم القرى

وظهور الدوت نت

لكن المشكلة ليست فقط فيما طرحه العسيري من ناحية الحفظ

المشكلة أيضاً كما ذكرت في "ثانياً" أنك تريد وضع واجهة رسومية رائعية لمستخدم برنامجك

يعني مثل:

http://www.codeproject.com/KB/selection/Fa...;select=1490945

أليس كذلك!

فالمشكلة أكبر من طريقة حفظ واسترجاع

أشكر لك مشاركتك

#6

Almatrodi كتب:
أخي الفاضل

أشكر لك مشاركتك هذه

تخزين التاريخ الميلادي !!! هذه المشكلة!.

إذا كان عندي مجموعة لا بأس بها من الحقول التاريخية

فستكون المهمة قاسية للحفاظ على ذلك

ومن ناحية أخرى:

القضية ليست فقط العرض على الشاشة لغرض الغرض فقط

بل تتعداها إلى أنك يجب أن تسمح للمستخدم بالقيام بالتعديل

فأنت داخل البرنامج ستتعامل مع حقلين لكل حقل تاريخي

طبعاً الحقل الأول وهو في الغالب سيكون نصي أورقمي لتحرير نفس التاريخ

والحقل الثاني الحقل الحقيقي وهو التاريخ الميلادي وذلك في حالة

احتجت إلى أحد مهام الحقل التاريخي أياً كانت!

ثم يجب عليك كمبرمج أن تنتبه إلى التحويل من أم القرى للميلادي عند الحفظ مباشرة إلى الحقل الميلادي

كما تضيف إلى SQL عملية التحويل العكسية وتضيف حقل جديد يتولى حمل تأريخ أم القرى

تقبل تحياتي

أخي الكريم يبدو أنك لم تفهم فقصدي تماما , سأحاول التوضيح

تعلم أن تقويم أم القرى يعتمد على جداول محددة إلى عام 1450 وبالتالي فهو دقيق جداً على خلاف التقويم الهجري العادي

وهذه الجداول مسجلة ضمن فئة UmAlQuraCalendar كما قرأت في MSDN

وبالتالي فكل تاريخ ميلادي يقابلة تاريخ واحد و أكيد بتقويم أم القرى

إذا لا داعي لخزن أكثر من تاريخ طالما أنك تستطيع إستخراج إحدهما من الآخر

طبعاً هذه الطريقة لا تنفع مع التاريخ الهجري العادي , لأنها لا تعطي قيم صحيحة 100%

أستخدم هذه الطريقة في برامج كبيرة وإحترافية بدون أي مشاكل

حيث أستخدم أداة UserControl يمكنها أن تحمل قيم أكثر من 13 تقويم مختلف ومنها تقويم أم القرى

ولا أحتاج في قاعدة البيانات سوى لحقل واحد من نوع تاريخ ويمكن التعامل معه بكل حرية

الأداة تقوم بتحويل أي تاريخ مدخل إليها إلى تاريخ ميلادي قبل خزن القيمة في قاعدة البيانات

7730490.png

بمجرد النقر على حرف "م" يتحول إلى التاريخ الهجري و النقر مرة أخرى يعيده إلى الميلادي

يمكن إدخال التاريخ يدوياً أو إختياره من نافذة إختيار التاريخ

التاريخ الميلادي لا مشكلة في رسم نافذتة , لكنك تحتاج لرسم نافذة إختيار التاريخ الهجري وهذا ما فعلته

للأسف الأداة مرتبطة بأدوات أخرى كثيرة ولا يمكن إستخدامها منفردة , ربما أحاول فصلها لاحقاً

لكن الفكرة الأساسية هي إرفاق نوع التقويم مع قيمة التاريخ مثلاً datFormDataBase



أو

datFormDataBase=new DateTime(datFormDataBase.Year,datFormDataBase.Month,datFormDataBase.Day,new UmAlQuraCalendar());
datFormDataBase=new DateTime(datFormDataBase.Year,datFormDataBase.Month,datFormDataBase.Day,new GregorianCalendar());

..

تم تعديل هذه المشاركة بواسطة Desert_Eagle في 19 يونيو 2008 في 23:51

#7

أخي الفاضل Desert_Eagle

أشكر لك إثراء الموضوع...

بالطبع كلنا متفقون على أنه لا يمكن حفظ التاريخ بغير صيغة التاريخ الميلادي. أعني كحقل تاريخي. كما أننا متفقون على أن تاريخ أم القرى مبني على جدول حتى عام 1450 حسب مدينة الملك عبدالعزيز..

وكلامك صحيح 100% بالنسبة إلى أنني لا أحفظ أكثر من تاريخ. ما دام أن معرفة إحداهما تأتي بالأخرى. كذلك عملية التحويل بينهما ووجودها في كلاسات الدوت نت.

بالنسبة لما ذكرت أخي الكريم في طريقة استخدامك. لم أفهمه جيداً... هل مستخدم البرنامج عندك يستطيع إدخال تاريخ أم القرى مباشرة أم لا؟.

عموماً ما أبحث عن حل له هو:

- عملية جعل التعامل مع حقل تاريخ أم القرى كالتعامل مع حقل التاريخ الميلادي. خاصة من ناحية:

* التأكد من صحة إدخال البيانات.

* طريقة العرض للمستخدم وجعله يختار بطريقة رائعة كما الحال في التاريخ الميلادي. بتجهيز أداة خاصة لعرض تاريخ أم القرى.

طبعاً مسألة الحفظ لنقل أننا نقوم بالتحويل لميلادي عند الحفظ والتحويل لأم القرى بعد القرآءة.

أوحتى جعلها وظيفة مرتبطة بنفس الجدول في قاعدة البيانات... وأيضاً هذه بالنسبة لي أرى أنها تحتاج إلى حل سريع في الأداء.

المشكلة أنني لست قوياً برمجياً بما فيه الكفاية فيما يتعلق بإعداد وتصميم أداة إدخال والتعامل معها داخل البرنامج... وإلا لأعددتها.

مواضيع مشابهة