تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حقل حسابي في Master-Details في الداتا جريد
#1
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته


كما هو موضح بالصورة التالية:
[ATTACH=CONFIG]1395[/ATTACH]

هنالك حقل بإسم (Normal Leaves Used) في الداتا جريد الاولى من الجهة اليسرى, يجب أن يكون من نوع (Calculated) و هو غير قابل للإدخال من قبل المستخدم و يجب أن يكون محسوب بالطريقة التالية:
Normal Leaves Used=Sum[Normal] in datagrid2

و تاريخ الاجازة (Leave Date) يجب أن يكون أكبر أو يساوي تاريخ بداية السنة (Begin of Year) و أصغر من بداية السنة القادمة.

فكيف أقوم بعمل كل هذا؟

جزاكم الله خيراً.

أخوكم في الله.
Hoob Computer


الملفات المرفقة صورة/صور
   
الرد }}}}
تم الشكر بواسطة:
#2
انظر هذا الموضوع
حيث يمكنك تعديله باسناد قيمة الخلية التى تريدها الى الدالة الموجودة فى المثال مع مراعاة تغيير نوع البيانات من وقت الى رقم
http://vb4arb.com/vb/showthread.php?2860...-%DD%ED%E6
كما يمكنك استخدام جملة استعلام بها المعامل SUM يتم فلترتها بناءا على رقم كل موظف
الرد }}}}
تم الشكر بواسطة:
#3
أخي الكريم, شكراً لردك السريع.
و لكن, المثال الذي اعطيتني إياه مختلف عن الشيء الذي طلبته.

حيث الذي طلبته هو:
- يوجد لدي داتاجريد عدد (2) و الاولى بإسم (Datagrid1) و الثانية بإسم (Datagrid2).
- الـ (Datagrid1) يوجد بها الاعمدة التالية:
* عمود (ID).
* عمود (Employee).
* عمود (Begin of Year).
* عمود (Normal Leaves Used).
* عمود (Sick Leaves Used).

- الـ (Datagrid2) يوجد بها الاعمدة التالية:
* عمود (ID) و هو مختلف عن الموجود في الـ (Datagrid1).
* عمود (Annual ID) و هو نفس عمود (ID) الموجود في الـ (Datagrid1).
* عمود (Leave Date).
* عمود (Normal).
* عمود (Sick Leave).

و إن عمود (Normal Leaves Used) الموجود في الـ (Datagrid1) يساوي المعادلة التالية:

(في حال إن عمود (ID) الموجود في الـ (Datagrid1) يساوي عمود (Annual ID) الموجود في الـ (Datagrid2) فعندها, عمود (Normal Leaves Used) الموجود في الـ (Datagrid1) يساوي مجموع عمود (Normal) الموجود في الـ (Datagrid2)).

لذا, من المفروض أن قيم العمود (Normal Leaves Used) الموجود في الـ (Datagrid1) تكون متغيرة بحسب القيم الموجودة في عمود (Normal) الموجود في الـ (Datagrid2), و كل هذا يعتمد على تساوي قيمتي عمودي (ID) و (Annual ID) .

و هذه الطريقة تسمى بـ (Calculated Field in Master-Details Gridview).

أرجو أن تكون الصورة واضحة أكثر الان.

[COLOR="#0000FF"]أخوكم في الله.
Hoob Computer[/COLOR]
الرد }}}}
تم الشكر بواسطة:
#4
انظر هذا المثال


الملفات المرفقة
.rar   MasterGrid.rar (الحجم : 71.22 ك ب / التحميلات : 92)
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم أخي,
جزاك الله خيراً على المثال الرائع, لكن عندي سؤال اذا سمحت:
في الحقيقة أنا محترف في قواعد البيانات و تصميم قواعد البيانات, و ضعيف في الفيجول بيسك دوت نت.
لذا, لو سمحت أن تتفضل بشرح الكود التالي لي و سأكون شاكراً لجميلك :


PHP كود :
Private Shared con As OleDbConnection
    
Private Shared Function GetConnectioin() As OleDbConnection
        
Return New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb")
    
End Function
    
Shared ReadOnly Property DatabaseConnection As OleDbConnection
        Get
            
If con Is Nothing Then
                con 
GetConnectioin()
                
con.Open()
            
End If
            Return 
con
        End Get
    End Property
    Shared 
Function FillGrid() As DataTable
        Dim querystring 
As String "SELECT EMPLOYEE.EMPID, EMPLOYEE.EMPLOYEE, Sum(EMPLEAVES.NORMAL) AS SumOfNORMAL, Sum(EMPLEAVES.SICK) AS SumOfSICK FROM EMPLOYEE INNER JOIN EMPLEAVES ON EMPLOYEE.EMPID = EMPLEAVES.EMPID GROUP BY EMPLOYEE.EMPID, EMPLOYEE.EMPLOYEE"
        
Dim adapter As New OleDbDataAdapter(querystringDatabaseConnection)
        
Dim dt As New DataTable
        adapter
.Fill(dt)
        Return 
dt
    End 
Function
    
Shared Function FillGrid(ByVal EMPID As Integer) As DataTable
        Dim querystring 
As String "SELECT EMPLEAVES.ID, EMPLEAVES.EMPID, EMPLEAVES.NORMAL, EMPLEAVES.SICK FROM(EMPLEAVES) where EMPLEAVES.EMPID =@id"
        
Dim adapter As New OleDbDataAdapter(querystringDatabaseConnection)
        
adapter.SelectCommand.Parameters.Add("@id"OleDbType.Integer).Value EMPID
        Dim dt 
As New DataTable
        adapter
.Fill(dt)
        Return 
dt
    End 
Function 


فما هو الـ (Private Shared)؟

بالاضافة الى, حاولت اضافة خاصية الاضافة للداتاجريد ولكن يظهر عندي خطأ اثناء محاولة الاضافة. فما هو الحل برأيك؟

أخوكم في الله.
Hoob Computer
الرد }}}}
تم الشكر بواسطة:
#6
أنا قمت بعمل كلاس منفصل وضعت فيه الأكواد التى سنحتاجها وهذا هو الطبيعى فى بناء المشاريع بعمل كلاسات منفصلة عن user persentation عموما
shared تجعلنا نستدعى أى دالة من أى كلاس دون الحاجة الى انشاء نسخة جديدة منها
ثانيا أنا قمت بعمل دالة ترجع datatable وتم اسنادها الى datagridview بالنسبة للإضافة من رأى أن تقوم بالإضافة عن طريق جريدفيو آخر أو عن طريق textboxs ويتم عرض النتيجة كما فى المثال
الرد }}}}
تم الشكر بواسطة:
#7
جزاك الله خيراً أخي الكريم.

وفيت و كفيت.

أخوكم في الله.
Hoob Computer
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] شباب كيفية انقاص او طرح الكمية الموضوعة فى الداتا جريد من الجدول احمد عبد الحكيم 2 311 04-10-16, 11:37 PM
آخر رد: benomar
  احتاج مساعدة في الداتا جريد فيو Mo_rb 8 307 18-06-16, 04:28 PM
آخر رد: boudyonline
  مشكلة الترقيم التلقائي للعمود الاول في الداتا جريد فيو kofa 31 734 18-06-16, 03:53 AM
آخر رد: khodor1985
  أريد منع المستخدم من تعديل خلية معينة في داتا جريد ؟؟؟ Abdh111 3 165 05-06-16, 09:28 PM
آخر رد: khodor1985
  حفظ من سطر جريد فيو له قيمة شيك بوكس djelloul 3 255 02-04-16, 07:18 AM
آخر رد: khodor1985
  إنشاء جريد فيو من جدولين djelloul 4 302 01-04-16, 11:33 PM
آخر رد: djelloul
  كود عدم تكرار البيانات بالداتا جريد فيو ِAbou Sama 3 766 29-12-15, 09:09 PM
آخر رد: العواد الصغير
  [سؤال] في حالة حذف او اضافة صف جديد بالداتا جريد فيو عند التعديل لا تتأثر قاعدة البيانات ِAbou Sama 0 505 26-12-15, 03:52 AM
آخر رد: ِAbou Sama
  مساعده في عدم استجابة قاعدة البيانات الي التعديل في الداتا جريد فيو ِAbou Sama 4 415 25-12-15, 08:59 AM
آخر رد: silverlight
  [سؤال] هل من كود لعمل update set لبيانات الجدول من الداتا جريد احمد عبد الحكيم 7 623 18-12-15, 06:55 PM
آخر رد: احمد عبد الحكيم

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم