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

مشكلتين ارقتني ( مقارنة جدولين + صفحة فاتورة )

بدأه روكامبول في 29 أكتوبر 2013 · 6 رد · 616 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

المشكلة الاولى 

 

لدي جدولين 

 

الاول = اسماء موظفين 

الثاني = مواعيد دوامهم 

 

ما هو الاستعلام المناسب لاستخراج اسماء من لم يسجل وقت دخول او خروج او لم يسجل ابداً في يوم ما ؟

 

المشكلة الثانية 

 

كيف يمكنني انشاء صفحة فاتورة علماً اني استعملت هذا الكود ولكن يظهر به مشاكل فهو لا يحفظ الجدول 

 

 SqlConnection1.ConnectionString = constring
        ds1.EnforceConstraints = False
        SqlConnection1.Open()
        Dim str1 As String = "SELECT * FROM amr1 ORDER BY tk1 "
        Dim str2 As String = "SELECT * FROM amr2 ORDER BY tk1 "
 
        SqlDataAdapter1 = New SqlClient.SqlDataAdapter(str1, SqlConnection1)
        SqlDataAdapter2 = New SqlClient.SqlDataAdapter(str2, SqlConnection1)
        ds1.Clear()
        SqlDataAdapter1.Fill(ds1, "amr1")
        SqlDataAdapter2.Fill(ds1, "amr2")
 
        ds1.Relations.Add("REL1", ds1.Tables("amr1").Columns("tk1"), ds1.Tables("amr2").Columns("tk7"), True)
        ds1.EnforceConstraints = True
      
        BS.DataSource = ds1
        BS.DataMember = "amr1"
        Me.DataGridView1.DataSource = BS
        Me.DataGridView1.DataMember = "REL1"
        SqlDataAdapter1.Dispose()
        SqlDataAdapter2.Dispose()
        SqlConnection1.Close()
        ' SHOWBUTTON()
        RecordCount()
ولحفظ الجدول 
 
 Dim SQL As String = "INSERT INTO amr2(tk1, tk2, tk3, tk4, tk5, tk6, tk7) VALUES     (@tk1, @tk2, @tk3, @tk4, @tk5, @tk6, @tk7)"
        Dim CMD As SqlClient.SqlCommand = New SqlClient.SqlCommand
        With CMD
            .CommandType = CommandType.Text
            .Connection = SqlConnection1
            .Parameters.Add("@tk1", SqlDbType.Int, 4, "tk1")
            .Parameters.Add("@tk2", SqlDbType.NVarChar, 255, "tk2")
            .Parameters.Add("@tk3", SqlDbType.NVarChar, 255, "tk3")
            .Parameters.Add("@tk4", SqlDbType.Int, 4, "tk4")
            .Parameters.Add("@tk5", SqlDbType.Float, 8, "tk5")
            .Parameters.Add("@tk6", SqlDbType.Float, 8, "tk6")
            .Parameters.Add("@tk7", SqlDbType.Int, 4, "tk7")
            .CommandText = SQL
        End With
        If SqlConnection1.State = ConnectionState.Open Then SqlConnection1.Close()
        SqlConnection1.Open()
        SqlDataAdapter2.TableMappings.AddRange(New DataTableMapping() {New DataTableMapping("Table", "amr2", New DataColumnMapping() {New DataColumnMapping("tk1", "tk1"), New DataColumnMapping("tk2", "tk2"), New DataColumnMapping("tk3", "tk3"), New DataColumnMapping("tk4", "tk4"), New DataColumnMapping("tk5", "tk5"), New DataColumnMapping("tk6", "tk6"), New DataColumnMapping("tk7", "tk7")})})
        SqlDataAdapter2.InsertCommand = CMD
        SqlDataAdapter2.Update(ds1, "amr2")
        SqlConnection1.Close()
#3

اشكرك اخي الكريم تم حل المشكلة الاولى بهذا الكود 

 

"SELECT USERINFO2.USERID ,USERINFO2.NAME
FROM USERINFO2
WHERE USERID not in (SELECT i2 FROM(log2) WHERE i11 Between '" & txtFromDate & "'AND'" & txtToDate & "'"
 
 
وتبقى المشكلة الثانية فما هي انسب طريقة لانشاء صفحة فاتورة ؟ 
 
#5

وكيف استخدم CTE أو Temporary Tables ليتك وضحت اكثر وفاتني ان اقول اني استخدم vb.net لانشاء هذا البرنامج 

#6

الـ Temporary Tables تُستخدم هكذا :

SELECT c.CustomerID,ContactName,MIN(OrderDate) as mindate
INTO #table_min_date
FROM Orders o,Customers c
WHERE o.CustomerID=c.CustomerID
GROUP BY o.CustomerID,ContactName,c.CustomerID

و CTE هكذا :

WITH exampleCTE AS(
SELECT C.CustomerID,ContactName,CompanyName FROM Customers AS C
JOIN Orders O ON O.CustomerID = C.CustomerID
JOIN [Order Details] OD ON O.OrderID = OD.OrderID
JOIN Products P ON OD.ProductID = P.ProductID
WHERE P.ProductName = 'Snack3r')
SELECT * FROM exampleCTE;

أما إن كنت تريد استخدام VB.NET فقط فهذا فراق بيني و بينك :)

1
#7

اشكرك اخي الكريم واكيد لست ملتزم تماما بال vb.net فاغلب العمليات اريد ان اجريها بقاعدة البيانات بحيث تكون واجهة البرنامج فقط بال vb.net 

 

عندي سؤال اخي واعتقد انه خاص بال sql فقط وهو 

 

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

 

1- اسماء الموظفين

2- حركاتهم ( اي وقت الدخول والخروج الخ ) 

3- الحضور 

4- الغياب

 

ولكني محتار الان بصفحة مطلوبة مني وهي انشاء تقرير باسماء الموظفين يشمل الاسم ووقت الدخول ووقت الخروج وان لم يسجل وقت دخول او لم يسجل وقت خروج تكون الخانه في الجدول فارغه او يكتب بها لم يسجل 

 

اي ربط جدول الموظفين بجدول الحركات بحيث يظهر وقت واحد فقط وهو الذي سجله الموظف وان لم يسجل يذكر اسمه وامامه كلمه غائب او تكون فارغة 

 

فكيف يمكن ذلك لان الذي يحصل معي استخراج اسم الموظف ان بصم بدخول او خروج فقط اما ان لم يبصم فلا يظهر شيء ؟

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…