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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] التعامل مع الداتا جريد zepeir 5 2,965 15-09-17, 08:41 PM
آخر رد: Saadzindany
  حذف الأسطر الفارغة والناقصة من الداتا قريد فيو أبو راشد عبدالوهاب 20 646 21-08-17, 03:23 PM
آخر رد: ابو ليلى
  [سؤال] مشكلة الاختلاف بين ترتيب الصفوف في قاعدة البيانات والداتا جريد فيو waelalmsry75 2 143 18-08-17, 05:40 PM
آخر رد: waelalmsry75
  مساعدة محتاج كود جمع قيم عمود فى الداتا جريد osemy 4 2,484 28-07-17, 06:14 AM
آخر رد: hoshosgost@yahoo.com
  كيفية عرض السطر اللي واقفين عليه في الداتا جريد فيو في التكست بوكس khaled12345 19 534 16-07-17, 07:23 PM
آخر رد: حريف برمجة
  المساعدة في طريقة تحويل اسماء حقول الداتا كريد فيو الى العربية وادي العوضي 7 228 08-07-17, 03:07 PM
آخر رد: وادي العوضي
  لو سمحتوا يا جماعه طلب جمع قيم خلايا عمود فى الداتا جريد فيو نبيل كونكت 6 276 20-06-17, 11:02 PM
آخر رد: العواد الصغير
  ظهور خطا عند سحب البيانات وعرضها في الداتا كريد باستخدم الـــ Threading HATEM KAREM 0 198 06-05-17, 04:45 PM
آخر رد: HATEM KAREM
  كيف اقارن بين قيمه سابقه وقمه لاحقة في خليه في الداتا جريد فيو samawi 2 189 15-04-17, 02:52 AM
آخر رد: samawi
  [C#.NET] عمل تزييله لداتا جريد ahmed gabe 8 323 03-04-17, 06:42 PM
آخر رد: abdualla

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


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