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

📄 feenumeration.frm

📁 适合乡镇供电所使用电费处理系统v3 软件
💻 FRM
📖 第 1 页 / 共 3 页
字号:
Dim SeleXZ As String

Private Sub Form_Load()
    Dim intRecCount, intCounter As Integer
    On Error Resume Next
    Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
    List2.Enabled = False
    Frame3.Visible = False
    PrBar2.Visible = False
    OpenMdb
    Set MdbR = NdMd.OpenRecordset("乡镇档案")
    MdbR.MoveLast
    intCounter = MdbR.RecordCount
    MdbR.MoveFirst
    For intRecCount = 0 To intCounter - 1
        List1.AddItem& MdbR.Fields("镇代码") & " " & MdbR.Fields("简称") & ""
        MdbR.MoveNext
    Next intRecCount
    List1.ListIndex = 0
    GzNian = Year(Date)
    GzYue = Format(Month(Date), "0#")
End Sub

Private Sub Form_Unload(Cancel As Integer)
     On Error Resume Next
     Star_stop = True
     Screen.MousePointer = 0
     MdbR.Close
     NdMd.Close
End Sub

Private Sub List1_Click()
    On Error Resume Next
    Dim intRecCount, intCounter As Integer
    Set MdbR = NdMd.OpenRecordset("SELECT 村代码,简称 FROM 村档案 WHERE 村档案.镇代码 ='" & Mid(Trim(List1.Text), 1, 3) & "'")
    MdbR.MoveLast
    intCounter = MdbR.RecordCount
    MdbR.MoveFirst
    List2.Clear
    For intRecCount = 0 To intCounter - 1
        List2.AddItem& MdbR.Fields("村代码") & "" & MdbR.Fields("简称") & ""
        MdbR.MoveNext
    Next intRecCount
    List2.ListIndex = 0
    Star_stop = False
End Sub

Private Sub Command1_Click()
   Dim i As Integer
   On Error Resume Next
   If Command1.Caption = "停止(&S)" Then
      Command1.Caption = "开始(&S)"
      Star_stop = True
      PrBar2.Value = 0
      PrBar2.Visible = False
      Exit Sub
   Else
      Command1.Caption = "停止(&S)"
      Command2.Enabled = False
      If Option1 Then  '全部
         If Len(UserSeek) = 0 Then
            GzYue = Format(Month(Date), "0#")
            Call sTruInfo
         End If
         Set MdbR = NdMd.OpenRecordset("SELECT * From 用户电费 where ISNULL(用户电费.[" & AA & "]) <> True  AND VAL(用户电费.[" & AA & "]) <>0 order by 用户电费.组合编码 asc")
         If MdbR.eof Then
            MsgBox "本月新数据未上载入库或无用户记录!", vbInformation
            Command1.Caption = "开始(&S)"
            Command2.Enabled = True
            Exit Sub
         Else
            PrBar1.Visible = True
            Frame3.Visible = True
            Screen.MousePointer = 11
            Call CalcFEE(0)
            Screen.MousePointer = 0
            PrBar1.Visible = False
            Frame3.Visible = False
            Command1.Caption = "开始(&S)"
            '开始停止标记
            Star_stop = False
            Command2.Enabled = True
            PrBar1.Value = PrBar1.Min
         End If
       
      Else  '部分
         If Len(UserSeek) = 0 Then
            GzYue = Format(Month(Date), "0#")
            Call sTruInfo
         End If
         PrBar2.Visible = True
         PrBar2.Min = 0
         PrBar2.Value = 0
         PrBar2.Max = List2.ListCount
         Screen.MousePointer = 11
         For i = 0 To PrBar2.Max - 1
             If Star_stop Then Exit For
             If List2.Selected(i) Then
                SeleXZ = List2.List(i)
                Call CalcFEE(1)
             End If
                PrBar2.Value = i
        Next
        Screen.MousePointer = 0
        PrBar1.Visible = False
        PrBar2.Visible = False
        Frame3.Visible = False
        Command1.Caption = "开始(&S)"
        Star_stop = False
        Command2.Enabled = True
    End If
   End If
End Sub

Private Sub Command2_Click()
     Unload Me
End Sub

Private Sub Option1_Click()
      Option1.Value = True
      Option2.Value = False
      List2.Enabled = False
End Sub

Private Sub Option2_Click()
      Option1.Value = False
      Option2.Value = True
      Frame2.Enabled = True
      List1.Enabled = True
      List2.Enabled = True
End Sub

Sub CalcFEE(ReSum As Integer)
    Dim i As Integer, js As Integer, Bws As Integer
    Dim FzDs As Long, dlFlag As Long
    Dim JsRecord As Recordset
    Dim CbmStr As String
    On Error Resume Next
    If ReSum = 0 Then
       If Check1.Value Then
          Set MdbR = NdMd.OpenRecordset("SELECT DISTINCT 组合编码 From  用户电费 where ISNULL(用户电费.[" & AA & "]) <> True  AND VAL(用户电费.[" & AA & "]) <>0 and 用户电费.[" & LL & "]=false order by 用户电费.组合编码 asc")
       Else
          Set MdbR = NdMd.OpenRecordset("SELECT DISTINCT 组合编码 From  用户电费 where ISNULL(用户电费.[" & AA & "]) <> True  AND VAL(用户电费.[" & AA & "]) <>0 order by 用户电费.组合编码 asc")
       End If
    Else
       If Check1.Value Then
          Set MdbR = NdMd.OpenRecordset("SELECT DISTINCT 组合编码 From 用户电费 WHERE 用户电费.镇村代码='" & Left(List1.Text, 3) & Left(SeleXZ, 3) & "' and ISNULL(用户电费.[" & AA & "]) <> True  AND VAL(用户电费.[" & AA & "]) <>0 and 用户电费.[" & LL & "]=false ORDER BY 用户电费.组合编码")
       Else
          Set MdbR = NdMd.OpenRecordset("SELECT DISTINCT 组合编码 From 用户电费 WHERE 用户电费.镇村代码='" & Left(List1.Text, 3) & Left(SeleXZ, 3) & "' and ISNULL(用户电费.[" & AA & "]) <> True  AND VAL(用户电费.[" & AA & "]) <>0 ORDER BY 用户电费.组合编码")
       End If
    End If
    MdbR.MoveLast
    MdbR.MoveFirst
    PrBar1.Max = MdbR.RecordCount
    PrBar1.Min = 0
    PrBar1.Visible = True
    With MdbR
        For i = 0 To MdbR.RecordCount  'PrBar1.Max - 1
            dlFlag = 0
            If Star_stop Then Exit For
            Set JsRecord = NdMd.OpenRecordset("SELECT 用户电费.多表序号,用户电费.多价表,用户电费.用户类型,用户电费.镇村代码,用户电费.用户编码,用户电费.用户名称,用户电费.调整原因,用户电费.[" & AAA & "] AS 上期示数, 用户电费.[" & AA & "] AS 本期示数,用户电费.表损, 用户电费.倍率,用户电费.[" & LL & "] AS 计算,用户电费.[" & BB & "] AS 调整电量,用户电费.[" & CC & "] AS 本次电量, 用户电费.[" & DD & "] AS 合计电量,用户电费.旧表电量,用户电费.电价,用户电费.电建,用户电费.三峡,用户电费.[" & EE & "] AS 本期余额,用户电费.[" & DDD & "] AS 上期余额, 用户电费.[" & FF & "] AS 滞纳金, 用户电费.[" & GG & "] AS 本次电费, 用户电费.[" & HH & "] AS 合计电费,用户电费.[" & JJ & "] AS 发票打印,用户电费.[" & KK & "] AS 交费情况,用户电费.组合编码,用户电费.比率1,用户电费.比率2,用户电费.比率1电价,用户电费.比率2电价,用户电费.比率1电量,用户电费.比率2电量,用户电费.比率1电费,用户电费.比率2电费 " _
            & "From 用户电费 WHERE 用户电费.组合编码='" & MdbR.Fields!组合编码 & "' order by 用户电费.多表序号 asc")
            'If MdbR.Fields!组合编码 = "0014130189" Then Stop
            
            For js = 1 To JsRecord.RecordCount
                With JsRecord
                        Select Case .Fields!用户类型
                               Case "工业动力"
                                    sxMeter = True
                               Case Else  '普通照明
                                    If .Fields!多价表 Then
                                       '判断多价表是否翻转
                                       If .Fields!调整原因 = "翻转" Then
                                          '求出表位数
                                          Bws = Len(Trim(Str(Val(.Fields!上期示数))))
                                          Select Case Bws
                                                 Case 3
                                                      FzDs = (1000 + Val(.Fields!本期示数)) - Val(.Fields!上期示数)
                                                 Case 4
                                                      FzDs = (10000 + Val(.Fields!本期示数)) - Val(.Fields!上期示数)
                                                 Case 5
                                                      FzDs = (100000 + Val(.Fields!本期示数)) - Val(.Fields!上期示数)
                                                 Case 6
                                                      FzDs = (1000000 + Val(.Fields!本期示数)) - Val(.Fields!上期示数)
                                                 Case 7
                                                      FzDs = (10000000 + Val(.Fields!本期示数)) - Val(.Fields!上期示数)
                                          End Select
                                          .Edit
                                          .Fields!比率1电量 = ((FzDs * IIf(.Fields!倍率 = 0, 1, .Fields!倍率)) + .Fields!表损 + IIf(IsNull(.Fields!调整电量) = True, 0, .Fields!调整电量)) * .Fields!比率1
                                          .Fields!比率2电量 = ((FzDs * IIf(.Fields!倍率 = 0, 1, .Fields!倍率)) + .Fields!表损 + IIf(IsNull(.Fields!调整电量) = True, 0, .Fields!调整电量)) * .Fields!比率2
                                          
                                          .Fields!本次电量 = .Fields!比率1电量 + .Fields!比率2电量
                                          .Fields!合计电量 = .Fields!本次电量
                                          
                                          .Fields!比率1电费 = .Fields!比率1电量 * .Fields!比率1电价
                                          .Fields!比率2电费 = .Fields!比率2电量 * .Fields!比率2电价
                                          
                                          .Fields!本次电费 = .Fields!比率1电费 + .Fields!比率2电费
                                          .Fields!合计电费 = .Fields!本次电费 + .Fields!上期余额  'IIf(IsNull(.Fields!滞纳金) = True, 0, .Fields!滞纳金)
                                          .Fields!本期余额 = BSYE(.Fields!合计电费)
                                          
                                          .Update
                                       Else     '是多价表正常
                                          .Edit
                                          '如判断本期不为空值则计算
                                          If Val(IIf(IsNull(.Fields!本期示数) = True, 0, .Fields!本期示数)) <> 0 Then
                                             '再判断本期值是否和上期相同,不同则计算,防止出现1度
                                             If Val(IIf(IsNull(.Fields!本期示数) = True, 0, .Fields!本期示数)) <> Val(IIf(IsNull(.Fields!上期示数) = True, 0, .Fields!上期示数)) Then
                                                .Fields!比率1电量 = ((IIf(IsNull(.Fields!本期示数) = True, Val(.Fields!上期示数 & ""), Val(.Fields!本期示数 & "")) - Val(IIf(IsNull(.Fields!上期示数) = True, 0, .Fields!上期示数) & "")) + .Fields!表损 + .Fields!调整电量) * IIf(.Fields!倍率 = 0, 1, .Fields!倍率) * .Fields!比率1
                                                .Fields!比率2电量 = ((IIf(IsNull(.Fields!本期示数) = True, Val(.Fields!上期示数 & ""), Val(.Fields!本期示数 & "")) - Val(IIf(IsNull(.Fields!上期示数) = True, 0, .Fields!上期示数) & "")) + .Fields!表损 + .Fields!调整电量) * IIf(.Fields!倍率 = 0, 1, .Fields!倍率) * .Fields!比率2
                                                .Fields!本次电量 = (.Fields!比率1电量 + .Fields!比率2电量) - .Fields!表损
                                                
                                                .Fields!合计电量 = .Fields!本次电量 + .Fields!表损
                                                .Fields!比率1电费 = Format(.Fields!比率1电量, "0.00") * .Fields!比率1电价
                                                .Fields!比率2电费 = Format(.Fields!比率2电量, "0.00") * .Fields!比率2电价
                                                
                                                .Fields!本次电费 = .Fields!比率1电费 + .Fields!比率2电费
                                                
                                                .Fields!合计电费 = .Fields!本次电费 + .Fields!上期余额  'IIf(IsNull(.Fields!滞纳金) = True, 0, .Fields!滞纳金)
                                                .Fields!本期余额 = BSYE(.Fields!合计电费)
                                                .Update
                                             End If

⌨️ 快捷键说明

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