تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات
#11
ان شاء الله اليوم اجهز المثال و ارفعه مع سكربت القاعدة , اتوقع مساءً عندما يتوفر لدي الوقت
و ان شاء الله نجهز الكلاس بالمزيد من الدوال الخاصة بالحسابات و التعدادات
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: sendbad100 , khodor1985 , abdualla , Amir_Alzubidy
#12
الله يعطيك العافية ويزيدك من علمه وفضلة
ويجزيك الف خير عن كل حرف وعن كل ثانية

اطمع بكرمك ياليت كمان كلاس للبحث
الرد }}}
تم الشكر بواسطة: ابو ليلى , khodor1985 , khodor1985 , abdualla , Amir_Alzubidy
#13
اخي السندباد , اتبع نصيحة الاخ خضر اذا كنت تنظر الى المستقبل فكما قال لك #C مستقبلها اكبر و دعمها اوسع

انا من ناحيتي لا اتبع نظام محدد اعمل على اكثر من لغة و في عملي البرمجة منطق لا يهمني كثيراً باي لغة تكتب الكود بقدر ما يهمني فهمي للكود و الية عمله و في النهاية الفارق بين اللغات هو طريقة كيفية كتابة الكود من ناحية المحرر 
و اما الدعم و المكاتب فهي تتجه مع #C اكثر من غيرها من لغات منصة الدوت نت

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

البرنامج على VS2015

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

و الطريقة الثانية و هي خاصة بالبحث العام و الحصول على نتيجة و وفقاً لها ننتقل الى السجل الموافق للبحث في شاشة العرض
و هي طريقة مرنة تقبل البحث باي حقل تحدده انت و يمكنك تخصيصها مع اي كلاس فرعي 
و يمكنك بناء اي عدد من الحقول و البحث ضمنها بسهولة و يوجد لها ربط في برنامجنا

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


اما من ناحية البرنامج فقد تم مراجعة و تنظيم الكود بطريقة فنية و تم ادراج معالجة للادخالات الفارغة و كذلك ضبط عمليات باقي العمليات بشكل متكامل

المثال مصغر و فيه تقريباً كل ما تحتاج له مع امكانية التوسيع .

بعد ان تكون قد ركبت القاعدة يتوجب عليك تغير اسم السيرفر في اعدادت البرنامج وفق الصورة

و بعدها شغل البرنامج و جرب العمليات


واجهة البرنامج



الملفات المرفقة
.rar   RelationsTablesWithClasses.rar (الحجم : 131.85 ك ب / التحميلات : 237)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
#14
(10-04-17, 11:13 PM)khodor1985 كتب :
السلام عليكم ورحمة الله وبركاته
الشكر كل الشكر على جهود الأخ الحبيب أبو ليلي،
أخي العزيز سندباد نصيحة من أخ إلى أخ ابتعد عن لغة VB.Net وتعلم لغة C#، فعلى علمي أنك تسعى لتعلم هذه اللغة فلا تضيعها.

أتمنى لكم التوفيق

شكرل لك اخي / خضر   شكرا على النصيحة   الله يجزيك الف خير.

(11-04-17, 03:12 AM)ابو ليلى كتب : اخي السندباد , اتبع نصيحة الاخ خضر اذا كنت تنظر الى المستقبل فكما قال لك #C مستقبلها اكبر و دعمها اوسع

انا من ناحيتي لا اتبع نظام محدد اعمل على اكثر من لغة و في عملي البرمجة منطق لا يهمني كثيراً باي لغة تكتب الكود بقدر ما يهمني فهمي للكود و الية عمله و في النهاية الفارق بين اللغات هو طريقة كيفية كتابة الكود من ناحية المحرر 
و اما الدعم و المكاتب فهي تتجه مع #C اكثر من غيرها من لغات منصة الدوت نت

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

البرنامج على VS2015

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

و الطريقة الثانية و هي خاصة بالبحث العام و الحصول على نتيجة و وفقاً لها ننتقل الى السجل الموافق للبحث في شاشة العرض
و هي طريقة مرنة تقبل البحث باي حقل تحدده انت و يمكنك تخصيصها مع اي كلاس فرعي 
و يمكنك بناء اي عدد من الحقول و البحث ضمنها بسهولة و يوجد لها ربط في برنامجنا

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


اما من ناحية البرنامج فقد تم مراجعة و تنظيم الكود بطريقة فنية و تم ادراج معالجة للادخالات الفارغة و كذلك ضبط عمليات باقي العمليات بشكل متكامل

المثال مصغر و فيه تقريباً كل ما تحتاج له مع امكانية التوسيع .

بعد ان تكون قد ركبت القاعدة يتوجب عليك تغير اسم السيرفر في اعدادت البرنامج وفق الصورة

و بعدها شغل البرنامج و جرب العمليات


واجهة البرنامج


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

الله يجزيك الف الف الف خير على كل ما قدمته.


بالنسبة للسي شارب باذن الله مواصل تقدمي بها ولكن على استحياء  قليلا قليلا  ووجدت تشابه في السي شارب والفجوال بيسك لذلك احاول الجمع بينها لاني اجد الفجوال اسهل لانها مطورة من اللغة القديمة فجوال بيسك 6 التي اجيد القليل منها.

الف الف الف شكر
الرد }}}
تم الشكر بواسطة: abdualla , abdualla , ابو ليلى , ابو ليلى , Amir_Alzubidy
#15
الله يعطيك العافية والصحة يا ابا ليلى على المثال الرائع
وزادك الله من علمه
Mish3l
الرد }}}
تم الشكر بواسطة: ابو ليلى , Amir_Alzubidy , abdualla
#16
(11-04-17, 03:39 AM)sendbad100 الف شكر اخي /  ابو ليلى كتب : على النصيحة وعلى كل الجهد والوقت المبذول.

الله يجزيك الف الف الف خير على كل ما قدمته.


بالنسبة للسي شارب باذن الله مواصل تقدمي بها ولكن على استحياء  قليلا قليلا  ووجدت تشابه في السي شارب والفجوال بيسك لذلك احاول الجمع بينها لاني اجد الفجوال اسهل لانها مطورة من اللغة القديمة فجوال بيسك 6 التي اجيد القليل منها.

الف الف الف شكر
نعم كلامك صحيح التشابه كبير مع احتفاظ كل واحدة بخصوصيتها و كذلك التشابه كبير بين #C و الجافا ايضاً 
(11-04-17, 10:57 PM)tryold كتب : الله يعطيك العافية والصحة يا ابا ليلى على المثال الرائع
وزادك الله من علمه
عافاك الله و سلمك من كل مكروه
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: sendbad100 , Amir_Alzubidy , abdualla
#17
(13-04-17, 01:24 PM)Amir_alzubidy كتب : شكرا جزيلا اخي ابو ليلى
جزاكم الله خيرا و اسأل الله ان يرزقك ما تتمنى
و ان يبارك لك في علمك و عملك و اهلك و طاعتك و كل ما تحب و احببت .
اللهم آمين

شكراً لك اخي امير و جازاك الله خيراً على دعواتك .
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}
تم الشكر بواسطة: sendbad100
#18
شكرا جزيلا ساحاول ان افهم الكود لقد حولته على قاعدة بيانات FireBird ولم اغير الا نص الاتصال فقط وهذه ميزة العمل بشكل طبقات لا تحتاج الى تغيير الكثير من الكود

PHP كود :
csb.ServerType FbServerType.Default
 
       csb.Port 3050
        csb
.Password "masterkey"
 
       csb.UserID "sysdba"
 
       csb.Database "localhost"
 
       csb.Dialect 3
        csb
.Database "Studants_Db.fdb"
 
       SetConnectionString csb.ConnectionString 

هناك الذي لم أفهمه ، اي منطقيته من الوهلة الاولى 
مثلا يتم تعبئة جدول الدفعات لكل الطلاب سواء للطالب الذي نعرض سجله الان او الذي لم ننتقل له ابدا
PHP كود :
 Private Sub FillPayes()
 
       Dt_Payes Payes.FillTable(CType(Lb_ID.TextInteger))
 
       DG_Payes.DataSource Dt_Payes
        RenameGridColumns
()

 
       If Dt_Payes.Rows.Count 0 Then
            Txt_AllPayes
.Text Payes.Sum_Payes(CType(Lb_ID.TextInteger))
 
       Else
            Txt_AllPayes
.Text 0
        End 
If
 
   End Sub 


ومن تجربتي عندي قاعدة لا تعرض الا ما تحتاجه فقط ، ولا تجلب بيانات لا يراها المستخدم

وليست هذه المشكلة فحسب ان تعبئة جدول  Payes يعود عدة مرات لعملية Fill واعتقد حتى في جدول Student لو كان هذا حقيقي وهذا ما افعله في احدى المنظومات التي تعمل على شبكة ستكون مشكلة كبيرة
الرد }}}
تم الشكر بواسطة:
#19
حسنا لقد يتم تعبئة جدول Pa بكل البيانات لكل الطلاب هذه ملاحظة اذا لم تكن مشكلة فهي اذا ليست مشكلة
مع انني ارى ولست بمنزلة خبرتكم ان يتم احظار بيانات فقط اول سجل .

ايضا عند  النقر على زر الحركة يتم الدخول للاجراء Fill_TableWithCoundition مرتين وليس مرة واحدة ولازلت ابحث عن سبب المشكلة ولماذا ومن اين جاء الامر او الايعاز بتعبئة البيانات مرة اخرى .

عفوا تصحيح جدول PayMents_TB لايوجد خيار تعديل

المشكلة في الحدث BnStudant_CurrentChanged وايضا BnStudant_CurrentChanged هما المسؤلان عن هذا التكرار لتعبئة الجدول مرتين
طبعا ان وجود الامر DS.clear يحل المشكلة ولكن المفترض ان يتم توحيد الحدثين وما فيهما يكون بحدت واحد منهما فقط لاجل كود نظيف

PositionChange يتشارك مع الحدث CurrentChanged هنا تكمن المشكلة 

وعندما الغيت الحدث PositionChange  سار كل شئ على مايرام الان 

ايضا في زر الحفظ اجد اعادة ملئ البيانات من جديد
PHP كود :
 'اعادة لملئ
            Dt_Studant = Studant.FillTable 

سواء في الاضافة او التعديل ، اليس من الافضل هو اضافة السجل الجديد الى الـ Table دون الحاجة الى ارسال امر تحديث او تعبئة من جديد .
طبعا لا مشكلة هنا على برنامج صغير وعلى جهاز محلي ولكن بحال كان الجهاز هذا جهاز طرفي ويتصل بسيرفر على بعد عدة حجرات بسلك طوله 20 متر ويجلب بيانات 100 ألف سجل فارى انها مشكلة والمفروض ان ننتج مثال جيد يصلح لكل الاحوال

في الحذف ايضا يوجد امر التعبئة

PHP كود :
  'حذف الطالب
            Pos = BnStudant.Position
            Studant.Delete(CType(Lb_ID.Text, Integer))
            '
اعادة لملئ
            Dt_Studant 
Studant.FillTable 

عند حذف سجل من جدول المؤشر يتوقف تلقائيا على اخر سجل فيه .
يعني ايضا لا حاجة للتعبئة ، وان كان هناك ما يحتاج الى ضبط يتم ضبطه يدويا .

بالنسبة لعملية الحذف من الممكن الغاء امر التعبئة واستخدام هذا الامر
PHP كود :
Dt_Studant.Rows(BnStudant.Position).Delete() 

ايضا لحل مشكلة التعبئة في زر الحفظ لامر تعديل هو عدم التعبئة اطلاقا لان البيانات التي بالادوات هي نفسها التي تم حفظها ولا تحتاج الى اي تغيير

اما عند الاضافة فسوف اعود معكم بعد ساعة لانني خارج في مهمة خارج المنزل
الرد }}}
تم الشكر بواسطة: ابو ليلى
#20
اخ ابو ليلى وجدت ان الغاء هذه الاسطر كفيلة بحل مشكلة التعبئة من جديد حيث تغنينا عن التعبئة مرة اخرى

PHP كود :
      'اعادة لملئ
        Dt_Studant = Studant.FillTable

       


        BnStudant.DataSource = Dt_Studant
            '
اعادة التوجيه
        If Add_Edit 
True Then
            BnStudant
.MoveLast()
 
       Else
            BnStudant
.Position Pos
        End 
If 

سواء للحفظ او الاضافة
الرد }}}
تم الشكر بواسطة: ابو ليلى , تعليموه


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ابسط كود لرفع الملفات عن طريق سيرفر FTP Basil Abdallah 2 4,270 20-11-20, 07:21 PM
آخر رد: walihn
  لفهم كيفية الربط الذي يتم بين الجداول viv 4 5,400 03-10-20, 05:34 PM
آخر رد: Arfat007
  العلاقات بين الجداول-الاضافة و الحذف و التعديل-برنامج لحفظ مصادر الموقع ابو ليلى 12 18,112 04-04-19, 10:08 PM
آخر رد: اباذر
  مثال القراءة والكتابه على ملف تيكست Txt على الانترنت + مثال + شرح m.sami.ak 11 9,049 02-06-18, 09:46 PM
آخر رد: YousefOkasha
Exclamation [VB.NET] التعامل مع ال CMD عن طريق ال TextBox YousefOkasha 5 5,485 02-06-18, 09:34 PM
آخر رد: YousefOkasha
  [درس فيديو] مثال بسيط لبرنامج إجازات فقط لأغراض الشرح (الدرس الأول) عبدالله الدوسري 7 12,077 28-04-18, 06:55 PM
آخر رد: moniam
  موضوع الاستاذ رامي مثال \ لطريقة تفعيل برنامجك عند العميل وتغيير كلمة مرور اRamilove سعود 8 8,128 06-10-17, 01:43 AM
آخر رد: حمادة دراز
  الترقيم التلقائي في الجداول مشاكل و حلول ابو ليلى 4 4,130 09-04-17, 01:35 AM
آخر رد: ابو ليلى
  صمم الكلاس الخاص بك - كلاس للتعامل مع SQL SERVER ابو ليلى 11 9,595 03-09-16, 07:43 PM
آخر رد: tryold
  [درس فيديو] تشغيل اوامر Run من البرنامج & مثال غلق الويندوز بعد وقت محدد باستخدام VB.net أحمد النجار 1 4,099 23-12-15, 04:26 AM
آخر رد: الماجيك مسعد

التنقل السريع :


يقوم بقرائة الموضوع: