sellstat.frm

来自「一个关于电脑管理汽车的软件」· FRM 代码 · 共 795 行 · 第 1/2 页

FRM
795
字号
End Sub

Private Sub Form_Load()
 Dim i As Integer
 On Error GoTo eh

 VarInitData.InitBSE BSE1
 For i = 0 To 1
  DTPicker1(i) = Date
 Next i
 Combo1.AddItem "货品编码"
 Combo1.AddItem "货品分类"
 Combo1.AddItem "品牌商标"
 Combo1.AddItem "货品产地"
 Combo1.AddItem "购货单位"
 Combo1.AddItem "销售日期"
 Combo1.AddItem "销售单"
 Combo1.AddItem "发票类型"
 Combo1.AddItem "支付方式"
 SearchGoodsKey = "goodscoding"
 InitListView
 Combo1.ListIndex = 0
' LoadGData
 'LoadData SearchGoodsKey, Combo1.ListIndex
 Exit Sub
eh:
 MsgBox "出错误了1"
End Sub

Private Sub Form_Resize()
 'On Error Resume Next
 On Error GoTo eh
 If Me.ScaleHeight > 0 And Me.ScaleWidth > 0 Then
  frameInfo(0).Width = Me.ScaleWidth
  lstBillDocu.top = frameInfo(0).top + frameInfo(0).Height + 50
  lstBillDocu.left = 100
  lstBillDocu.Width = Me.ScaleWidth - 200
  lstBillDocu.Height = Me.ScaleHeight - frameInfo(0).Height - frameInfo(1).Height
  frameInfo(1).top = lstBillDocu.top + lstBillDocu.Height
  frameInfo(1).Width = Me.ScaleWidth
 End If
 Exit Sub
eh:
 MsgBox "出错误了2"
End Sub
Private Sub InitListView()
 lstBillDocu.ColumnHeaders.Clear
 With lstBillDocu.ColumnHeaders
  .Add , , "统计对象"
  .Add , , "货物数量"
  .Add , , "销售额"
  .Add , , "成本额"
  .Add , , "毛利"
  .Add , , "比率(%)"
 End With
End Sub
Private Sub LoadData(ByVal SearchGoodsKey As String, ByVal VarIndex As Integer)
 Dim TempSQL As String
 Dim TempRS As MYSQL_RS, TempStr() As Variant, TempBillStr() As String
 Dim TempRS2 As MYSQL_RS
 Dim i As Long, TempCount As Long, TempMoney As Double, j As Long, K As Long, m As Long, TempCount2 As Long, TempMoney2 As Double, TempMoney3 As Double
 Dim TempIndex As Long
 Dim TempSQLTable As Integer, TempKey As String, TempKey2 As String
 Dim VarFind As Long, FindGoodsBS As Boolean
 Dim TempText As String, BackGoodsBS As Boolean
  lstBillDocu.ListItems.Clear
  If VarIndex <= 3 Then
   TempSQLTable = 20
   TempKey = "goodscount"
   TempKey2 = "realsellmoney"
  Else
   TempSQLTable = 19
   TempKey = "gcount"
   TempKey2 = "grealsellmoney"
  End If
  TempSQL = VarInitData.DisplaySQLVal(19) & "Where selldate >= " & Quote(DTPicker1(0).Value) & " and selldate <= " & Quote(DTPicker1(1).Value)
  Set TempRS = New MYSQL_RS
  TempRS.OpenRs TempSQL, gCnn
  With TempRS
   If .RecordCount > 0 Then
    ReDim TempStr(1 To .RecordCount)
    ReDim TempBillStr(1 To .RecordCount)
   End If
   i = 0
   K = 0
   Do Until .EOF
    If VarIndex > 3 Then
     If VarFunction.FindSameVariant(.Fields(SearchGoodsKey), TempStr, .RecordCount) = False Then
      i = i + 1
      TempStr(i) = .Fields(SearchGoodsKey)
     End If
    End If
    K = K + 1
    TempBillStr(K) = .Fields("billnum")
    .MoveNext
   Loop
   .CloseRecordset
   .ReleaseMemory
  End With
  Set TempRS = Nothing
  If K > 0 Then
   If VarIndex <= 3 Then
    TempSQL = VarInitData.DisplaySQLVal(20) '& "Where stockdate >= " & Quote(DTPicker1(0).Value) & " and stockdate <= " & Quote(DTPicker1(1).Value)
    Set TempRS = New MYSQL_RS
    TempRS.OpenRs TempSQL, gCnn
    With TempRS
     If .RecordCount > 0 Then
      ReDim TempStr(1 To .RecordCount)
     End If
     i = 0
     Do Until .EOF
      If VarFunction.FindSameVariant(.Fields(SearchGoodsKey), TempStr, .RecordCount) = False Then
       i = i + 1
       TempStr(i) = .Fields(SearchGoodsKey)
      End If
      .MoveNext
     Loop
     .CloseRecordset
     .ReleaseMemory
    End With
    Set TempRS = Nothing
   End If
  End If
  If i > 0 And K > 0 Then
   For j = 1 To i
    If VarIndex <= 3 Then
     TempSQL = "Select * From sellhistory2 " & " Where " & SearchGoodsKey & " = " & Quote(TempStr(j))
    Else
     TempSQL = VarInitData.DisplaySQLVal(TempSQLTable) & " Where " & SearchGoodsKey & " = " & Quote(TempStr(j)) '& " and stockdate >= " & Quote(DTPicker1(0).Value) & " and stockdate <= " & Quote(DTPicker1(1).Value)
    End If
    Set TempRS = New MYSQL_RS
    TempRS.OpenRs TempSQL, gCnn
    With TempRS
     TempText = .Fields(SearchGoodsKey)
     TempCount = 0
     TempMoney = 0
     TempMoney3 = 0
     FindGoodsBS = False
    For m = 1 To K
     .MoveFirst
     .MovePrevious
     Do Until .EOF
      BackGoodsBS = False
      VarFind = .FindNext("billnum", TempBillStr(m))
      If VarFind > -1 Then
       TempCount2 = .Fields(TempKey)
       TempMoney2 = .Fields(TempKey2)
       If Mid(TempBillStr(m), 2, 1) = "T" Then BackGoodsBS = True
       If BackGoodsBS = True Then
        TempCount2 = -TempCount2
        TempMoney2 = -TempMoney2
       End If
       TempCount = TempCount + TempCount2
       TempMoney = TempMoney + TempMoney2
       FindGoodsBS = True
       If VarIndex <= 3 Then
        If BackGoodsBS = False Then
         TempMoney3 = TempMoney3 + Val(.Fields("goodspricemoney"))
        Else
         TempMoney3 = TempMoney3 - Val(.Fields("goodspricemoney"))
        End If
       Else
        TempSQL = "Select * From sellhistory2 " & " Where goodscoding = " & Quote(.Fields("goodscoding"))
        Set TempRS2 = New MYSQL_RS
        TempRS2.OpenRs TempSQL, gCnn
        With TempRS
         Do Until .EOF
         If BackGoodsBS = False Then
          TempMoney3 = TempMoney3 + Val(.Fields("goodspricemoney"))
         Else
          TempMoney3 = TempMoney3 - Val(.Fields("goodspricemoney"))
         End If
          .MoveNext
         Loop
         .CloseRecordset
         .ReleaseMemory
        End With
        Set TempRS2 = Nothing
       End If

       
      Else
       Exit Do
      End If
     Loop
    Next m
     .CloseRecordset
     .ReleaseMemory
    End With
    Set TempRS = Nothing
    
    If FindGoodsBS = True Then
     lstBillDocu.ListItems.Add
     TempIndex = lstBillDocu.ListItems.Count
     With lstBillDocu.ListItems(TempIndex)
      .Text = TempText
      .SubItems(1) = TempCount
      .SubItems(2) = VarFunction.DefFormat(TempMoney)
      .SubItems(3) = Format(TempMoney3, VarInitData.MoneyFormat)
      .SubItems(4) = Format(TempMoney - TempMoney3, VarInitData.MoneyFormat)
      If TempMoney <> 0 Then
       .SubItems(5) = Format((TempMoney - TempMoney3) / TempMoney * 100, VarInitData.MoneyFormat)
      Else
       .SubItems(5) = VarInitData.MoneyFormat
      End If
     End With
    End If
   Next j
  End If
  Label1(0) = 0
  Label1(1) = Format("0", VarInitData.MoneyFormat)
  Label1(2) = Format("0", VarInitData.MoneyFormat)
  Label1(3) = Format("0", VarInitData.MoneyFormat)

  TempCount = lstBillDocu.ListItems.Count
  If TempCount > 0 Then
   For i = 1 To TempCount
    With lstBillDocu.ListItems(i)
     Label1(0) = Val(Label1(0)) + Val(.SubItems(1))
     Label1(1) = VarFunction.DefFormat(Val(Label1(1)) + Val(.SubItems(3)))
     Label1(2) = VarFunction.DefFormat(Val(Label1(2)) + Val(.SubItems(2)))
     Label1(3) = VarFunction.DefFormat(Val(Label1(3)) + Val(.SubItems(4)))
    End With
   Next i
  End If
  VarInitData.lstSort lstBillDocu
End Sub


Private Sub Form_Unload(Cancel As Integer)
 If BSE1.EngineStarted Then BSE1.EndSubClassing
End Sub
Private Sub LoadData2Bak(ByVal SearchGoodsKey As String, ByVal VarIndex As Integer)
 Dim TempSQL As String
 Dim TempRS As MYSQL_RS, TempStr() As Variant, TempBillStr() As String
 Dim TempRS2 As MYSQL_RS
 Dim i As Long, TempCount As Long, TempMoney As Double, j As Long, K As Long, m As Long, TempCount2 As Long, TempMoney2 As Double, TempMoney3 As Double
 Dim TempIndex As Long
 Dim TempSQLTable As Integer, TempKey As String, TempKey2 As String
 Dim VarFind As Long, FindGoodsBS As Boolean
 Dim TempText As String, BackGoodsBS As Boolean
  lstBillDocu.ListItems.Clear
  If VarIndex <= 3 Then
   TempSQLTable = 20
   TempKey = "goodscount"
   TempKey2 = "gmoney"
  Else
   TempSQLTable = 38
   TempKey = "gcount"
   TempKey2 = "gmoney"
  End If
  TempSQL = VarInitData.DisplaySQLVal(38) & "Where drawdate >= " & Quote(DTPicker1(0).Value) & " and drawdate <= " & Quote(DTPicker1(1).Value)
  Set TempRS = New MYSQL_RS
  TempRS.OpenRs TempSQL, gCnn
  With TempRS
   If .RecordCount > 0 Then
    ReDim TempStr(1 To .RecordCount)
    ReDim TempBillStr(1 To .RecordCount)
   End If
   i = 0
   K = 0
   Do Until .EOF
    If VarIndex > 3 Then
     If VarFunction.FindSameVariant(.Fields(SearchGoodsKey), TempStr, .RecordCount) = False Then
      i = i + 1
      TempStr(i) = .Fields(SearchGoodsKey)
     End If
    End If
    K = K + 1
    TempBillStr(K) = .Fields("drawbillnum")
    .MoveNext
   Loop
   .CloseRecordset
   .ReleaseMemory
  End With
  Set TempRS = Nothing
  If K > 0 Then
   If VarIndex <= 3 Then
    TempSQL = VarInitData.DisplaySQLVal(20) '& "Where stockdate >= " & Quote(DTPicker1(0).Value) & " and stockdate <= " & Quote(DTPicker1(1).Value)
    Set TempRS = New MYSQL_RS
    TempRS.OpenRs TempSQL, gCnn
    With TempRS
     If .RecordCount > 0 Then
      ReDim TempStr(1 To .RecordCount)
     End If
     i = 0
     Do Until .EOF
      If VarFunction.FindSameVariant(.Fields(SearchGoodsKey), TempStr, .RecordCount) = False Then
       i = i + 1
       TempStr(i) = .Fields(SearchGoodsKey)
      End If
      .MoveNext
     Loop
     .CloseRecordset
     .ReleaseMemory
    End With
    Set TempRS = Nothing
   End If
  End If
  If i > 0 And K > 0 Then
   For j = 1 To i
    If VarIndex <= 3 Then
     TempSQL = "Select * From maintainpartbill2 " & " Where " & SearchGoodsKey & " = " & Quote(TempStr(j))
    Else
     TempSQL = VarInitData.DisplaySQLVal(TempSQLTable) & " Where " & SearchGoodsKey & " = " & Quote(TempStr(j)) '& " and stockdate >= " & Quote(DTPicker1(0).Value) & " and stockdate <= " & Quote(DTPicker1(1).Value)
    End If
    Set TempRS = New MYSQL_RS
    TempRS.OpenRs TempSQL, gCnn
    With TempRS
     TempText = .Fields(SearchGoodsKey)
     TempCount = 0
     TempMoney = 0
     TempMoney3 = 0
     FindGoodsBS = False
    For m = 1 To K
     .MoveFirst
     .MovePrevious
     Do Until .EOF
      BackGoodsBS = False
      VarFind = .FindNext("drawbillnum", TempBillStr(m))
      If VarFind > -1 Then
       TempCount2 = .Fields(TempKey)
       TempMoney2 = .Fields(TempKey2)
       If Mid(TempBillStr(m), 2, 1) = "T" Then BackGoodsBS = True
       If BackGoodsBS = True Then
        TempCount2 = -TempCount2
        TempMoney2 = -TempMoney2
       End If
       TempCount = TempCount + TempCount2
       TempMoney = TempMoney + TempMoney2
       FindGoodsBS = True
       
       TempSQL = VarInitData.DisplaySQLVal(10) & " Where goodscoding = " & Quote(.Fields("goodscoding"))
       Set TempRS2 = New MYSQL_RS
       TempRS2.OpenRs TempSQL, gCnn
       With TempRS2
        Do Until .EOF
        If BackGoodsBS = False Then
         TempMoney3 = TempMoney3 + Val(.Fields("goodspricemoney"))
        Else
         TempMoney3 = TempMoney3 - Val(.Fields("goodspricemoney"))
        End If
         .MoveNext
        Loop
        .CloseRecordset
        .ReleaseMemory
       End With
       Set TempRS2 = Nothing
       
      Else
       Exit Do
      End If
     Loop
    Next m
     .CloseRecordset
     .ReleaseMemory
    End With
    Set TempRS = Nothing
    
    If FindGoodsBS = True Then
     lstBillDocu.ListItems.Add
     TempIndex = lstBillDocu.ListItems.Count
     With lstBillDocu.ListItems(TempIndex)
      .Text = TempText
      .SubItems(1) = TempCount
      .SubItems(2) = VarFunction.DefFormat(TempMoney)
      .SubItems(3) = Format(TempMoney3, VarInitData.MoneyFormat)
      .SubItems(4) = Format(TempMoney - TempMoney3, VarInitData.MoneyFormat)
      If TempMoney <> 0 Then
       .SubItems(5) = Format((TempMoney - TempMoney3) / TempMoney * 100, VarInitData.MoneyFormat)
      Else
       .SubItems(5) = VarInitData.MoneyFormat
      End If
     End With
    End If
   Next j
  End If
  Label1(0) = 0
  Label1(1) = Format("0", VarInitData.MoneyFormat)
  Label1(2) = Format("0", VarInitData.MoneyFormat)
  Label1(3) = Format("0", VarInitData.MoneyFormat)

  TempCount = lstBillDocu.ListItems.Count
  If TempCount > 0 Then
   For i = 1 To TempCount
    With lstBillDocu.ListItems(i)
     Label1(0) = Val(Label1(0)) + Val(.SubItems(1))
     Label1(1) = VarFunction.DefFormat(Val(Label1(1)) + Val(.SubItems(3)))
     Label1(2) = VarFunction.DefFormat(Val(Label1(2)) + Val(.SubItems(2)))
     Label1(3) = VarFunction.DefFormat(Val(Label1(3)) + Val(.SubItems(4)))
    End With
   Next i
  End If
End Sub


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?