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

📄 frmdhd.frm

📁 服装销售系统,VB开发.没有解压密码
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    grdDET.RemoveAll
End Sub

'刷新表显示

Private Sub RefreshTable(vRs As ADODB.Recordset)
    On Error GoTo RefErr
    If vRs.EOF Or vRs.BOF Then Exit Sub
    grdDET.Update
    grdDET.RemoveAll
    '表头文本框刷新
    txtPurcode.Text = vRs("表单号")
    txtPurdate.Text = CStr(Format(vRs("制表日期"), "YYYY-MM-DD 00:00"))
    txtDHDate.Text = CStr(Format(vRs("到货日期"), "YYYY-MM-DD 00:00"))
    cmbProvider.Text = vRs("厂商编码")
    cmbProvider.DroppedDown = True
    cmbProvider.DroppedDown = False
    TxtName.Text = cmbProvider.Columns(1).Text
    txtIptno.Text = vRs("录入员")
    
    If Trim(vRs("备注")) <> "0" Then txtRemark.Text = vRs("备注") Else txtRemark.Text = ""
    
    
    '如果确认状态为真则不允许修改
    If vRs("确认状态").Value Then
        cmdToolCommit.Caption = "弃审[&O]"
        cmdToolDelete.Enabled = False
        cmdToolSave.Enabled = False
        grdDET.AllowUpdate = False
        grdDET.SelectByCell = True
    Else
        cmdToolCommit.Caption = "审核[&O]"
        cmdToolDelete.Enabled = True
        cmdToolSave.Enabled = True
        grdDET.AllowUpdate = True
        grdDET.SelectByCell = False
    End If
    
    While Not vRs.EOF
       
        Temp = vRs("商品编码") & vbTab & _
                vRs("品名") & vbTab & _
                vRs("单位") & vbTab & _
                vRs("颜色") & vbTab & _
                vRs("尺寸") & vbTab & _
                vRs("含税进价") & vbTab & _
                vRs("进价") & vbTab & _
                vRs("税率") & vbTab & _
                vRs("进货数量") & vbTab & _
                vRs("含税进价金额") & vbTab & _
                vRs("进价金额")
        grdDET.AddItem Temp
        '记录后移
        vRs.MoveNext
    Wend
    Call CalTotalDelete
    Exit Sub
RefErr:
    ErrNum = Err.number
    MsgBox "读数据库发生错误!" & vbCrLf & Error$(ErrNum), vbExclamation, "提示窗口"

End Sub

'保存表
Private Function SaveTable() As Boolean
    On Error GoTo SaveErr
    Dim N
    grdDET.MoveFirst
    For N = 0 To grdDET.Rows - 1
        sSQL = "INSERT INTO  " & TableName & " (表单号,制表日期,到货日期,厂商编码" & _
            ",录入员,商品编码,品名,单位,颜色,尺寸,进价" & _
            ",进货数量,有效数量,进价金额,税率,含税进价,含税进价金额,备注)" & _
            " VALUES('"
        sSQL = sSQL & _
            Trim(txtPurcode.Text) & "','" & _
            Trim(txtPurdate.Text) & "','" & _
            Trim(txtDHDate.Text) & "','" & _
            Trim(cmbProvider.Text) & "','" & _
            Trim(txtIptno.Text) & "','"
            
        sSQL = sSQL & _
            Trim(grdDET.Columns("商品编码").Text) & "','" & _
            Trim(grdDET.Columns("品名").Text) & "','" & _
            Trim(grdDET.Columns("单位").Text) & "','" & _
            Trim(grdDET.Columns("颜色").Text) & "','" & _
            Trim(grdDET.Columns("尺寸").Text) & "'," & _
            Val(grdDET.Columns("不含税进价").Value) & "," & _
            Val(grdDET.Columns("数量").Value) & "," & _
            Val(grdDET.Columns("数量").Value) & "," & _
            Val(grdDET.Columns("不含税进价金额").Value) & "," & _
            Val(grdDET.Columns("税率").Value) & "," & _
            Val(grdDET.Columns("含税进价").Value) & "," & _
            Val(grdDET.Columns("含税进价金额").Value) & ",'" & _
            Trim(txtRemark.Text) & "')"
    
            
        If RunSQL(sSQL) <> 0 Then
            SaveTable = False
            Exit Function
        End If
        grdDET.MoveNext
    Next N
    SaveTable = True
    Exit Function
SaveErr:
    ErrNum = Err.number
    MsgBox "保存数据库发生错误!", vbExclamation, "提示窗口"
End Function


Private Sub cmbProvider_CloseUp()
    TxtName.Text = cmbProvider.Columns(1).Text
End Sub

Private Sub cmbProvider_GotFocus()
    cmbProvider.DroppedDown = True
End Sub


Private Sub cmbProvider_InitColumnProps()
    On Error GoTo LinkErr
    Set RsTemp = Nothing
    sSQL = "SELECT 厂商编码,厂商名称 FROM 厂商主档"
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockReadOnly
    While Not RsTemp.EOF
        cmbProvider.AddItem RsTemp("厂商编码") + vbTab + RsTemp("厂商名称")
        RsTemp.MoveNext
    Wend
    Exit Sub
LinkErr:
    MsgBox "初始化数据错误!" & Err.Description, vbExclamation, "错误窗口"
End Sub

Private Sub cmdPrintBill_Click()
    On Error Resume Next
    Dim N, Qty, sum As Single, CurPage, ColorAndSize, PRECOLOR
    Dim strControl As String, strValue As String
    Dim RP As New ADODB.Recordset
    Call CalTotalDelete
    sSQL = "select 商品编码,品名,单位,sum(进货数量) as 数量,含税进价 as 单价,sum(含税进价金额) as 金额 from LSDHD   where 表单号='" & Trim(txtPurcode.Text) & "' group by 商品编码,品名,单位,含税进价"
    Set RsTemp = Nothing
    RsTemp.CursorLocation = adUseClient
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockPessimistic
    
    If GetSetting("LSDSTAR", "库存设置", "打印零售价", "1") = "0" Then
    Else
        ColorAndSize = ""
        While Not RsTemp.EOF
            Load rptBill
            ColorAndSize = ""
            sum = 0
            Qty = 0
            For N = 0 To 5
                If RsTemp.EOF Then Exit For
                For j = 0 To 5
                    If j = 3 Or j = 4 Or j = 5 Then
                        strControl = "lblc" & (j + 1) & "r" & N + 1
                        If j = 3 Then
                            strValue = Format(RsTemp(j), "#")
                        Else
                            strValue = Format(RsTemp(j), DecNum)
                        End If
                    ElseIf j = 0 Or j = 1 Or j = 2 Then
                        strControl = "lblc" & (j + 1) & "r" & N + 1
                        strValue = RsTemp(j)
                    End If
                    rptBill.Sections("Indent").Controls(strControl).Caption = strValue
                    
                Next j
            
                sSQL = "select 商品编码,品名,单位,颜色,尺寸,进货数量 as 数量 from LSDHD where 表单号='" & Trim(txtPurcode.Text) & "' and 商品编码='" & Trim(RsTemp("商品编码")) & "' and 含税进价=" & RsTemp("单价") & " order by 商品编码,颜色,尺寸"
                Set RP = Nothing
                RP.CursorLocation = adUseClient
                RP.Open sSQL, Conn, adOpenStatic, adLockPessimistic
                strControl = "lblR" & Trim(Str(N + 1))
           
            
            
                ColorAndSize = ColorAndSize & Trim(RP("商品编码"))
                PRECOLOR = ""
                While Not RP.EOF
                    If PRECOLOR <> Trim(RP("颜色")) Then
                        PRECOLOR = Trim(RP("颜色"))
                        ColorAndSize = ColorAndSize & Trim(RP("颜色")) & "[" & Trim(RP("尺寸")) & ":" & Trim(RP("数量")) & "]"
                    Else
                        ColorAndSize = ColorAndSize & "[" & Trim(RP("尺寸")) & ":" & Trim(RP("数量")) & "]"
                    End If
                    RP.MoveNext
                Wend

                ColorAndSize = ColorAndSize & vbCrLf
                Qty = Qty + RsTemp("数量")
                sum = sum + RsTemp("金额")
                RsTemp.MoveNext
            Next N
            rptBill.Sections("Indent").Controls("lblColorAndSize").Caption = ColorAndSize

    '        sum = Format(sum, DecNum)
            rptBill.Sections("Indent").Controls("lbl大写").Caption = D2X(sum)
    '        rptBill.Sections("Indent").Controls("lblSJ").Caption = Format(sum * 0.17 / 1.17, DecNum)
            rptBill.Sections("Indent").Controls("lblSum").Caption = Format(Qty, "#")
            rptBill.Sections("Indent").Controls("lblIamt").Caption = Format(sum, DecNum)
            
            RsTemp.MovePrevious
            rptBill.Sections("Indent").Controls("lblPage").Caption = "第 " & Str(Int((RsTemp.AbsolutePosition - 1) / 6) + 1) & " 页 共 " & Str(Int((RsTemp.RecordCount - 1) / 6) + 1) & " 页"
            RsTemp.MoveNext
            
            rptBill.Sections("Indent").Controls("lbltitle").Caption = "订货单" ' GetSetting("LSDSTAR", "单据标题", "进货单", "进货单")
            rptBill.Sections("Indent").Controls("lblno").Caption = "NO:" & txtPurcode.Text
            rptBill.Sections("Indent").Controls("lblgrp").Caption = "供应商:" & cmbProvider.Columns("厂商名称").Text
            rptBill.Sections("Indent").Controls("lblDate").Caption = "制表日期:" & txtPurdate.Text & " 订货日期:" & txtDHDate.Text
            rptBill.Sections("Indent").Controls("lblBZ").Caption = "备注:" & txtRemark.Text
            rptBill.Sections("Indent").Controls("lblYH").Visible = True
            rptBill.Sections("Indent").Controls("lblIptno").Caption = "开票:" & txtIptno.TheName
        '    rptBill.Sections("Indent").Controls("lbl大写").Caption = D2X(Val(txtIamt0.Text))
        '    rptBill.Sections("Indent").Controls("lblSJ").Caption = Format(Val(txtIamt0.Text) * 0.17 / 1.17, "#.00")
        '    rptBill.Sections("Indent").Controls("lblIamt").Caption = Format(Val(txtIamt0.Text) * 0.17 / 1.17, "#.00")

            If GetSetting("LSDSTAR", "单据标题", "显示预览窗口", "1") = "1" Then
                rptBill.Show 1
            Else
                rptBill.PrintReport
            End If
            Unload rptBill
        Wend
        
       ' rptBill.PrintReport
'        Unload rptBill
    End If
    MsgBox "打印完成!", vbInformation, "提示窗口"

End Sub

'增加新表
Private Sub cmdToolAdd_Click()
    On Error Resume Next
    TableState = "新建"
    grdDET.AllowUpdate = True
    grdDET.SelectByCell = False
    Set Rs = Nothing
    QueryFlag = False
    Call ShowStatus(2)
    '清除整个表显示
    Call ClearTable
    txtIptno.Text = UserCode
    If GetSetting("LSDSTAR", "进销管理", "进货单单号是否自动生成", "1") = "1" Then
        txtPurcode.Text = GeneratePurcode(TableName)
    End If
    txtPurcode.SetFocus
    cmdToolSave.Enabled = True
    cmdToolCommit.Caption = "审核[&O]"
'    cmdToolCommit.Enabled = False
    cmdToolPrevious.Enabled = False
    cmdToolNext.Enabled = False
    cmdToolDelete.Enabled = False
    txtPurdate.Text = Format(Now, "yyyy-mm-dd")
    txtDHDate.Text = Format(Now, "yyyy-mm-dd")
End Sub

'改变确认状态
'只有审核员才能进行该操作
Private Sub cmdToolCommit_Click()
    If cmdToolCommit.Caption = "审核[&O]" Then
        AcceptVil (True)
    Else
        AcceptVil (False)
    End If
    
End Sub

'删除当前表
Private Sub cmdToolDelete_Click()
    On Error Resume Next
    Call ShowStatus(88)
    If txtPurcode.Text = "" Then
        MsgBox "当前表单为空!", vbExclamation, "提示窗口"
        Exit Sub
    End If

    Temp = "确认之要删除该表吗?" & vbCrLf & "表单号为:" & txtPurcode.Text
    Temp = MsgBox(Temp, vbQuestion + vbYesNo, "提示窗口")
    If Temp = vbYes Then
        
        sSQL = "DELETE  FROM " & TableName & " WHERE 表单号='" & txtPurcode.Text & "'"
        RunSQL sSQL
        
        Call ClearTable
        cmdToolPrevious.Enabled = False
        cmdToolNext.Enabled = False
        Call ShowStatus(5)
    End If
End Sub

'退出
Private Sub cmdToolExit_Click()
    Unload Me
End Sub

''设置是否进行合法性验证
Private Sub SetValidate(Flag As Boolean)
    txtPurcode.CausesValidation = Flag
    txtPurdate.CausesValidation = Flag
    cmbProvider.CausesValidation = Flag
    txtIptno.Validation = Flag
    grdDET.CausesValidation = Flag
End Sub

'生成查询条件
Private Function GenerateQuerySQL() As String
    Dim strTemp As String
    sSQL = "SELECT 表单号 FROM LSDHD "
    If txtPurcode.Text <> "" Then
        strTemp = strTemp & "  表单号" & AnalyseCondition(txtPurcode.Text, True) & " AND "
    End If
    If txtPurdate.Text <> "" Then
        strTemp = strTemp & "  制表日期 BETWEEN '" & _
                Format(txtPurdate.Text, "YYYY-MM-DD 00:00") & "' AND '" & _
                Format(txtPurdate.Text, "YYYY-MM-DD") & " 23:59' AND "
    End If
    If cmbProvider.Text <> "" Then
        strTemp = strTemp & "  厂商编码" & _
            AnalyseCondition(cmbProvider.Text, True) & " AND "
    End If
    If txtIptno.Text <> "" Then
        strTemp = strTemp & "  录入员" & _
            AnalyseCondition(txtIptno.Text, True) & " AND "
    End If
    If grdDET.Columns(0).CellText(0) <> "" Then
        strTemp = strTemp & "  商品编码 " & _
            AnalyseCondition(grdDET.Columns(0).CellText(0), True) & " AND "
    End If
    If grdDET.Columns(3).CellText(0) <> "" Then
        strTemp = strTemp & "  进货数量 " & _
            AnalyseCondition(grdDET.Columns(3).CellText(0), True) & " AND "
    End If
    If grdDET.Columns(4).CellText(0) <> "" Then
        strTemp = strTemp & "  进价 " & _
            AnalyseCondition(grdDET.Columns(4).CellText(0), False) & " AND "
    End If
    If strTemp <> "" Then
        '去掉尾部的" AND "
        sSQL = sSQL & " WHERE " & Mid(strTemp, 1, Len(strTemp) - 4)
    End If
    sSQL = sSQL & " GROUP BY 表单号,制表日期 ORDER BY 制表日期 desc,表单号 desc"
    GenerateQuerySQL = sSQL
End Function

Private Sub cmdToolJian_Click()
    Dim s, ss, Qty
    Load frmDist
    'Set frmDist.frm = Me
    frmDist.Show 1
    sSQL = "SELECT 品名,单位,进价,零售价,税率,含税进价 FROM 商品主档 WHERE 商品编码='" & frmDist.GCode & "'"
    Set RsTemp = Nothing
    RsTemp.Open sSQL, Conn, adOpenStatic, adLockOptimistic
    
    If RsTemp.EOF Then
        MsgBox "该商品编码不存在!" & vbCrLf & "请检查输入是否正确或查询商品编码.", vbExclamation, "提示窗口"
        Exit Sub
    End If
    If frmDist.R <> "" Then
        ss = frmDist.R
        
        i = 1
        While i <= Len(ss)
            s = ""
            Qty = ""
            While Mid(ss, i, 1) <> "#" And i <= Len(ss)
                If Mid(ss, i, 1) = "@" Then
                    s = s & vbTab
                ElseIf Mid(ss, i, 1) = "$" Then
                    Qty = ""
                    s = s & vbTab & RsTemp("含税进价") & vbTab & RsTemp("进价") & vbTab & "17" & vbTab
                Else
                    Qty = Qty & Mid(ss, i, 1)
                    s = s & Mid(ss, i, 1)
                End If
                i = i + 1
            Wend
            i = i + 1
            Temp = frmDist.GCode & vbTab & RsTemp("品名") & vbTab & _
                    RsTemp("单位") & vbTab & s & vbTab & Str(Qty * RsTemp("含税进价")) & vbTab & Str(Qty * RsTemp("进价"))
            grdDET.AddItem Temp
        Wend
    End If


    Unload frmDist
End Sub

'查询
Private Sub cmdToolQuery_Click()
    Dim strTemp As String
    TableState = "查询"
    grdDET.AllowUpdate = True
    grdDET.SelectByCell = False
    If cmdToolQuery.Caption = "查询[&Q]" Then
        cmdToolQuery.Caption = "开始[&Q]"
        QueryFlag = True
        Call ShowStatus(1)
        
        cmdToolAdd.Enabled = False
        cmdToolSave.Enabled = False
        cmdToolPrevious.Enabled = False
        cmdToolNext.Enabled = False
        cmdToolDelete.Enabled = False
        cmdToolCommit.Caption = "弃审[&O]"
        
        Call SetValidate(False)
        Call ClearTable
        txtPurcode.SetFocus
    ElseIf cmdToolQuery.Caption = "开始[&Q]" Then
        cmdToolQuery.Caption = "查询[&Q]"
        QueryFlag = False
        
        cmdToolAdd.Enabled = True
        cmdToolSave.Enabled = True
        cmdToolPrevious.Enabled = True
        cmdToolNext.Enabled = True
        cmdToolDelete.Enabled = True
        cmdToolCommit.Caption = "审核[&O]"
        
        Call SetValidate(True)

        grdDET.Update

⌨️ 快捷键说明

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