تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف احصل على رصيد بالمخزن؟
#9
السلام عليكم ورحمة الله وبركاته

بعد إذن الأخ (تركي الحلواني)

تفضل المثال



كود :
Option Explicit '' البعض يحذف هذا السطر مما يتسبب لنفسه بالمتاعب

'' AccessDatabase4.0: store.mdb
''  Tables:-   Operations: (ID(Key)>AutoNumber , date>DateTime , ItemID>Integer , QtyIn>Single , QtyOut>Single , Operation>Byte )
''             Items:      (ID(Key)>AutoNumber , Description>Text , Quantity(محجوز)>Single , OrderPoint(محجوز)>Single )

'' 2 MSFlexGrid

Dim myConnection As New ADODB.Connection
Dim myCommand As New ADODB.Command
Dim myRecordSet As New ADODB.Recordset


Private Sub Form_Load()
    myConnection.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;         " & _
                                    " Data Source=" & App.Path & "\store.mdb;   " & _
                                    " Persist Security Info=False               "
    myConnection.CursorLocation = adUseClient
    
    Call OperatiosFlexGrid
    Call OperatiosDBLoad
    
    Call ItemsFlexGrid
    Call ItemsDBLoad
    
End Sub

Private Sub OperatiosFlexGrid()
    With Me.MSFlexGrid1
        .Rows = 1
        .Cols = 6
        .ColWidth(0) = 1000: .ColAlignment(0) = flexAlignCenterCenter
        .ColWidth(1) = 1200: .ColAlignment(1) = flexAlignCenterCenter
        .ColWidth(2) = 800: .ColAlignment(2) = flexAlignCenterCenter
        .ColWidth(3) = 2200: .ColAlignment(3) = flexAlignLeftCenter
        .ColWidth(4) = 800:  .ColAlignment(4) = flexAlignCenterCenter
        .ColWidth(5) = 800:  .ColAlignment(5) = flexAlignCenterCenter
        .TextMatrix(0, 0) = "رقم العملية"
        .TextMatrix(0, 1) = "التاريخ"
        .TextMatrix(0, 2) = "رقم الصنف"
        .TextMatrix(0, 3) = "وصف الصنف"
        .TextMatrix(0, 4) = "الكمية"
        .TextMatrix(0, 5) = "العملية"
    End With
End Sub

Private Sub OperatiosDBLoad()

    Dim sql As String
    sql = " SELECT *                            " & _
          "      , IIf(QtyIn = 0, QtyOut, QtyIn) AS Quantity                        " & _
          "      , IIf(Operations.Operation = 0, 'بيع' ,'شراء') AS OperationName    " & _
          "                                     " & _
          "   FROM Operations                   " & _
          "                                     " & _
          " INNER JOIN Items                    " & _
          " ON Operations.ItemID = Items.ID     " & _
          "                                     " & _
          " ORDER BY [Date]                     "
          
    myConnection.Open
    
    myCommand.ActiveConnection = myConnection
    myCommand.CommandText = sql
    myCommand.CommandType = adCmdText
    
    myRecordSet.CursorType = adOpenStatic
    myRecordSet.CursorLocation = adUseClient
    myRecordSet.LockType = adLockOptimistic
    myRecordSet.Open myCommand
  
    If myRecordSet.RecordCount > 0 Then
        With Me.MSFlexGrid1
            
            .Rows = myRecordSet.RecordCount + 1
            Dim r As Integer
            For r = 1 To myRecordSet.RecordCount
                    .TextMatrix(r, 0) = Format$(myRecordSet.Fields("Operations.id"), "0000")    '' رقم العملية
                    .TextMatrix(r, 1) = Format$(myRecordSet.Fields("Date"), "yyyy/MM/dd")   '' تاريخ العملية
                    .TextMatrix(r, 2) = Format$(myRecordSet.Fields("ItemID"), "0000")       '' رقم الصنف
                    .TextMatrix(r, 3) = myRecordSet.Fields("Description")   '' وصف الصنف
                    .TextMatrix(r, 4) = myRecordSet.Fields("Quantity")      '' الكمية
                    .TextMatrix(r, 5) = myRecordSet.Fields("OperationName") '' نوع العملية
                myRecordSet.MoveNext
            Next r
            Me.Label1.Caption = "مجموع العمليات: " & Str(myRecordSet.RecordCount)
            
        End With
    End If
        
    myConnection.Close
    
End Sub



Private Sub ItemsFlexGrid()
    With Me.MSFlexGrid2
        .Rows = 1
        .Cols = 5
        .ColWidth(0) = 1000: .ColAlignment(0) = flexAlignCenterCenter
        .ColWidth(1) = 2200: .ColAlignment(1) = flexAlignLeftCenter
        .ColWidth(2) = 1200: .ColAlignment(2) = flexAlignCenterCenter
        .ColWidth(3) = 1200: .ColAlignment(3) = flexAlignCenterCenter
        .ColWidth(4) = 1200:  .ColAlignment(4) = flexAlignCenterCenter
        .TextMatrix(0, 0) = "رقم الصنف"
        .TextMatrix(0, 1) = "وصف الصنف"
        .TextMatrix(0, 2) = "كمية الشراء"
        .TextMatrix(0, 3) = "كمية البيع"
        .TextMatrix(0, 4) = "الكمية المتبقية"
    End With
End Sub


Private Sub ItemsDBLoad()
    
    Dim sql As String
    sql = " SELECT    SUM(QtyIn)  AS SUMSale    " & _
          "         , SUM(QtyOut) AS SUMBuy     " & _
          "         , (SUM(QtyIn) - SUM(QtyOut)) AS SUMQuantity     " & _
          "         , Description, Operations.ItemID                " & _
          "                                     " & _
          "   FROM Operations                   " & _
          "                                     " & _
          " INNER JOIN Items                    " & _
          " ON Operations.ItemID = Items.ID     " & _
          "                                     " & _
          " GROUP BY Description,ItemID         " & _
          "                                     " & _
          " ORDER BY ItemID                     "
          
    myConnection.Open
    
    myCommand.ActiveConnection = myConnection
    myCommand.CommandText = sql
    myCommand.CommandType = adCmdText
    
    myRecordSet.CursorType = adOpenStatic
    myRecordSet.CursorLocation = adUseClient
    myRecordSet.LockType = adLockOptimistic
    myRecordSet.Open myCommand
  
    If myRecordSet.RecordCount > 0 Then
        With Me.MSFlexGrid2
            
            .Rows = myRecordSet.RecordCount + 1
            Dim r As Integer
            For r = 1 To myRecordSet.RecordCount
                    .TextMatrix(r, 0) = Format$(myRecordSet.Fields("ItemID"), "0000")   '' رقم الصنف
                    .TextMatrix(r, 1) = myRecordSet.Fields("Description")   '' نوع الصنف
                    .TextMatrix(r, 2) = myRecordSet.Fields("SUMSale")       '' كمية الشراء
                    .TextMatrix(r, 3) = myRecordSet.Fields("SUMBuy")        '' كمية البيع
                    .TextMatrix(r, 4) = myRecordSet.Fields("SUMQuantity")   '' الكمية المتبقية
                myRecordSet.MoveNext
            Next r
        
        End With
    End If
        
    myConnection.Close
    
End Sub

السلام عليكم ورحمة الله وبركاته


الملفات المرفقة
.rar   store -01.rar (الحجم : 46.76 ك ب / التحميلات : 428)
الرد }}}
تم الشكر بواسطة: محمد كريّم , محمد كريّم , awidan76


الردود في هذا الموضوع
كيف احصل على رصيد بالمخزن؟ - بواسطة samy666 - 13-12-12, 08:01 PM
كيف احصل على رصيد بالمخزن؟ - بواسطة samy666 - 22-12-12, 12:14 PM
كيف احصل على رصيد بالمخزن؟ - بواسطة samy666 - 22-12-12, 06:07 PM
كيف احصل على رصيد بالمخزن؟ - بواسطة samy666 - 23-12-12, 01:07 PM
كيف احصل على رصيد بالمخزن؟ - بواسطة @@أبورائد@@_mybb_import5382 - 23-12-12, 07:53 PM
كيف احصل على رصيد بالمخزن؟ - بواسطة samy666 - 23-12-12, 09:53 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يمكن انشاء حقل جمع متراكم في فترة معينة لعميل معين مع وجود رصيد اول مدة rachid 1 4,165 14-04-13, 03:02 PM
آخر رد: VB_Coder

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


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