تقييم الموضوع :
  • 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 ك ب / التحميلات : 121)
الرد }}}
تم الشكر بواسطة:
#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
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تلوين خلية واحدة فقط فى الداتا غريد اذا تغيرت القيمة ؟ a.amin 11 7,223 15-02-23, 02:13 PM
آخر رد: tighrmte
  جمع عمود في داتا جريد واظهار الناتج في تكست بوكس nabil 9 12,999 08-12-22, 01:27 PM
آخر رد: عبدالمؤمن
  اسناد عامود في قاعدة بيانات اكسيس الى عامود من نوع كومبوبوكس بالداتا جريد فيو بالفيجو Ghassanfff 2 2,118 08-01-21, 08:52 PM
آخر رد: سعود
  كود عدم تكرار البيانات بالداتا جريد فيو ِAbou Sama 4 7,573 04-12-20, 10:59 PM
آخر رد: Osama_NY
  مشكلة في إظهار عمود التاريخ في داتا جريد فيو mofhmy 5 6,555 12-11-20, 12:13 PM
آخر رد: bahaa.elkomy@yahoo.com
  [VB.NET] حفظ البيانات دفعة واحدة الداتا جريد فيو mahmoud.3com 2 3,256 19-12-19, 11:23 PM
آخر رد: بسام محمدغانم
  سوال بخصوص الداتا جريد Abdelrahman ala 7 3,089 07-03-19, 03:26 AM
آخر رد: Abdelrahman ala
Photo [VB.NET] تعديل المدخلات في (الداتا قريد فيو ) لفاتورة مبيعات؟ EYADISMAIL 1 2,556 09-01-19, 10:30 PM
آخر رد: EYADISMAIL
  سؤال عن كيفية جمع الارقام الموجبة فقط من عمود في الداتا جريد فيو alfaiz678 2 2,384 01-10-18, 09:24 AM
آخر رد: alfaiz678
  سؤال عن الداتا ريدر sal_56 4 2,387 17-09-18, 10:23 AM
آخر رد: 911

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


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