⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm月库存结帐.frm

📁 服装销售系统,VB开发.没有解压密码
💻 FRM
字号:
VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form frm月库存结帐 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "月库存结帐"
   ClientHeight    =   3465
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   5580
   Icon            =   "frm月库存结帐.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   3465
   ScaleWidth      =   5580
   ShowInTaskbar   =   0   'False
   Begin VB.TextBox txtMsg 
      Appearance      =   0  'Flat
      BackColor       =   &H80000018&
      Height          =   345
      Left            =   840
      TabIndex        =   8
      Top             =   1425
      Width           =   3885
   End
   Begin MSComDlg.CommonDialog dlgPrinter 
      Left            =   2550
      Top             =   2205
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.CommandButton cmdSet 
      Caption         =   "打印设置[&O]"
      Height          =   525
      Left            =   975
      TabIndex        =   7
      Top             =   2085
      Width           =   1410
   End
   Begin VB.CommandButton cmdExit 
      Caption         =   "退出[&X]"
      Height          =   525
      Left            =   3195
      TabIndex        =   6
      Top             =   2790
      Width           =   1410
   End
   Begin VB.CommandButton cmdSave 
      Caption         =   "结帐[&S]"
      Height          =   525
      Left            =   960
      TabIndex        =   5
      Top             =   2805
      Width           =   1410
   End
   Begin VB.CommandButton cmdReport 
      Caption         =   "报表[&R]"
      Height          =   525
      Left            =   3210
      TabIndex        =   4
      Top             =   2085
      Width           =   1410
   End
   Begin MSComCtl2.DTPicker dtpTDate 
      Height          =   345
      Left            =   3000
      TabIndex        =   1
      Top             =   720
      Width           =   1710
      _ExtentX        =   3016
      _ExtentY        =   609
      _Version        =   393216
      Format          =   23855104
      CurrentDate     =   36580
   End
   Begin MSComCtl2.DTPicker dtpLDate 
      Height          =   345
      Left            =   825
      TabIndex        =   0
      Top             =   720
      Width           =   1710
      _ExtentX        =   3016
      _ExtentY        =   609
      _Version        =   393216
      Format          =   23855104
      CurrentDate     =   36580
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      Caption         =   "本月结帐日期"
      Height          =   180
      Left            =   3180
      TabIndex        =   3
      Top             =   315
      Width           =   1080
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "上月结帐日期"
      Height          =   180
      Left            =   900
      TabIndex        =   2
      Top             =   285
      Width           =   1080
   End
End
Attribute VB_Name = "frm月库存结帐"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Option Explicit

Private Sub cmdExit_Click()
    Unload Me
End Sub

Private Sub cmdReport_Click()
    On Error Resume Next
    If envDStar.rscmd月库存商品帐.State = adStateOpen Then
        envDStar.rscmd月库存商品帐.Close
    End If
    sSQL = " SELECT * FROM 月结报表 WHERE 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
    envDStar.Commands("cmd月库存商品帐").CommandText = sSQL
    envDStar.Commands("cmd月库存商品帐").Execute
    envDStar.rscmd月库存商品帐.Open
    rpt月结报表.Show
End Sub

Private Sub cmdSave_Click()
    '上月结存:上月盘点结存数量
    '本期购进:经销进货+代销进货-经销退货-代销退货(有效数量)
    '本期发出:销售-销售退货+配送-配送返货-盘点长货+盘点短货
    '
    '上月结存+本期购进-本期发出=本期结存
    
    On Error GoTo SaveErr
    
    Conn.BeginTrans
    sSQL = "SELECT 编码,结存数量 FROM 月结报表 WHERE 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    If Not RsTemp.EOF Then
        If MsgBox("已存在本日的汇总,删除吗?", vbQuestion + vbYesNo, "提示窗口") = vbNo Then
            Conn.RollbackTrans
            Exit Sub
        Else
            sSQL = "DELETE 月结报表 WHERE 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
            Cmd.ActiveConnection = Conn
            Cmd.CommandText = sSQL
            Cmd.Execute
        End If
    End If
    txtMsg.Text = "正在汇总本月数据......"
    sSQL = "INSERT INTO 月结报表(编码,品名,单价,结帐日期,结存数量,金额) " & _
        " SELECT A.商品编码,A.品名,A.进价,'" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' AS 结帐日期,B.数量,B.进价金额 " & _
        " FROM 商品主档 AS A INNER JOIN 配送中心库存 AS B ON A.商品编码=B.商品编码"
    Cmd.ActiveConnection = Conn
    Cmd.CommandText = sSQL
    Cmd.Execute
    txtMsg.Text = "正在汇总上月结存数据......"
    If dtpLDate.Value = dtpTDate.Value Then
        If MsgBox("上月结存日期和本期结帐日期一致,上月结存数将采用本期库存进行汇总,继续吗?", vbQuestion + vbYesNo, "提示窗口") = vbYes Then
            sSQL = "UPDATE 月结报表 SET 上月结存=结存数量 WHERE 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
            Cmd.CommandText = sSQL
            Cmd.Execute
        Else
            Conn.RollbackTrans
            Exit Sub
        End If
    End If
    sSQL = "SELECT 编码,结存数量 FROM 月结报表 WHERE 结帐日期='" & Format(dtpLDate.Value, "YYYY-MM-DD") & "'"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 上月结存=" & RsTemp("结存数量") & " WHERE 编码='" & Trim(RsTemp("编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend
    txtMsg.Text = "正在汇总本期购进数据......"
    sSQL = "SELECT 商品编码,SUM(进货数量) AS 进货数量 FROM 经销进货单 WHERE 制表日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期购进=" & RsTemp("进货数量") & " WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend
    txtMsg.Text = "正在汇总本期退货数据......"
    sSQL = "SELECT 商品编码,SUM(进货数量) AS 进货数量 FROM 经销退货单 WHERE 制表日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期购进=本期购进-" & RsTemp("进货数量") & " WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend

    txtMsg.Text = "正在汇总连锁店本期配送数据......"
    sSQL = "SELECT 商品编码,SUM(配送数量) AS 配送数量 FROM 商品配送单 WHERE 配送日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期发出=" & RsTemp("配送数量") & " WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend
    txtMsg.Text = "正在汇总连锁店本期配送返货数据......"
    sSQL = "SELECT 商品编码,SUM(配送数量) AS 配送数量 FROM 分店返货单 WHERE 配送日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期发出=本期发出-" & RsTemp("配送数量") & " WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend
    
    txtMsg.Text = "正在汇总商品盘点数据......"
    sSQL = "SELECT 商品编码,SUM(盘亏数量) AS 数量 FROM 盘点盈亏报告单 WHERE  制表日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' AND 盘点部门='配送中心'" & _
         " GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期发出=本期发出-(" & RsTemp("数量") & ") WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend
    
    txtMsg.Text = "正在汇总配送中心本期销售数据......"
    sSQL = "SELECT 商品编码,SUM(数量) AS 销售数量 FROM 批发单 WHERE 制表日期 BETWEEN '" & Format(DateAdd("D", 1, dtpLDate.Value), "YYYY-MM-DD") & "'" & _
         " AND '" & Format(dtpTDate.Value, "YYYY-MM-DD") & "' AND 确认状态=1 GROUP BY 商品编码"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        sSQL = "UPDATE 月结报表 SET 本期发出=本期发出+" & RsTemp("销售数量") & " WHERE 编码='" & Trim(RsTemp("商品编码")) & "' AND 结帐日期='" & Format(dtpTDate.Value, "YYYY-MM-DD") & "'"
        Cmd.CommandText = sSQL
        Cmd.Execute
        RsTemp.MoveNext
    Wend

    Conn.CommitTrans
    txtMsg.Text = "汇总数据成功!!!"
    MsgBox "汇总数据成功!!!", vbInformation, "提示窗口"
    Exit Sub
SaveErr:
    Conn.RollbackTrans
    MsgBox "保存发生错误!!!", vbExclamation, "错误窗口"
End Sub

Private Sub cmdSet_Click()
    dlgPrinter.ShowPrinter
End Sub

Private Sub Form_Load()
    On Error Resume Next
    Call SetFormToCenter(Me)
    dtpLDate.Value = DateAdd("M", -1, Now)
    dtpTDate.Value = Now
End Sub

⌨️ 快捷键说明

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