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

📄 +

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
   Begin VB.Label TsLabel 
      Alignment       =   1  'Right Justify
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "单据号:"
      Height          =   180
      Index           =   0
      Left            =   240
      TabIndex        =   5
      Top             =   1560
      Width           =   765
   End
End
Attribute VB_Name = "BadDebt_FrmReturnList"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'***********************************************************************************************************
'*    模 块 名 称 :坏帐收回处理
'*    功 能 描 述 :此功能模块主要完成对已经发生的坏帐进行坏帐收回处理
'*    程序员姓名  :陈恩宇
'*    最后修改人  :陈恩宇
'*    最后修改时间:2001/12/20
'*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
'*
'*    1.每次调入外部功能窗体,均要加锁ChangeLock=True,窗体关闭后解锁ChangeLock=false
'*                                    TextValiLock=True             TextValiLock=false
'*
'*    2.Lab_OperStatus 用此标签来标识单据录入状态(默认值为1) "1"-浏览 "2"-新增 "3"-修改
'*
'*    3.Lab_Djclzt 用此标签来标识单据处理状态(默认值为1) "1"-填制单据  "2"-查询单据列表  "3"-明细帐联查单据
'*
'*    4.原则:只要单据能够存盘(无论修改或新增)则其必须接受完整性及有效性规则检查
'***********************************************************************************************************
 
'[以下为根据实际情况设置变量
'凭证制作需要的变量
Dim VouchRow As Long                     '每张凭证内分录的ID值
Dim EffectVouchId As Long                '生成正式凭证的凭证ID

Dim Jsq_Max As Long                      '网格的最大记录数
Dim OperationNum    As Long              '本次转帐操作批号
Dim YbJe As Double                       '原币金额
Dim BbJe As Double                       '本币金额
Dim Ybhj As Double                       '原币合计
Dim Bbhj As Double                       '本币合计
Dim Int_Kjyear As Integer                '当前会计年度
Dim Int_Period As Integer                '会计期间

Dim AccRate As Double                    '记帐汇率
Dim BankBillNo As String                 '银行票号
Dim SsCode As String                     '结算方式
Dim ForeignCurrCode As String            '外币编码
Dim BillDate As Date                     '单据日期
Dim PersonName As String                 '经办人名称
Dim CustName As String                   '客户
Dim SuppName As String                   '供应商

'以上是凭证制作需要的变量





Dim Bln_BillChange As Boolean                   '标识单据是否发生改动
Dim Rec_Query As New ADODB.Recordset            '单据组查询结果动态集(保存当前单据组ID)
Public Str_QueryCondi As String                 '单据组查询条件(接收单据列表传递查询条件)
']

'以下为固定使用变量(单据)
Dim BillCode As String                          '单据设计编码(索引号)
Dim Var_Bill() As Variant                       '用来返回单据设计信息
Dim ReportTitle As String                       '报表主标题
Dim Tsxx As String                              '系统提示信息

'以下为固定使用变量(网格)
Dim Cxnrrec As New ADODB.Recordset              '显示查询内容动态集
Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
Dim GridCode As String                          '显示网格网格代码
Dim GridInf() As Variant                        '整个网格设置信息
Dim Pmbcsjhs As Long                            '屏幕网格保持数据行数(大于等于1)
Dim Fzxwghs As Integer                          '辅助项网格行数(包括合计行)
Dim Sfxshjwg As Boolean                         '是否显示合计网格
Dim Qslz As Long                                '网格隐藏(非操作显示)列数
Dim Sjhgd As Double                             '网格数据行高度
Dim GridBoolean() As Boolean                    '网格列信息(布尔型)
Dim GridStr()  As String                        '网格列信息(字符型)
Dim GridInt() As Integer                        '网格列信息(整型)
Dim Sfblbzkd As Boolean                         '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
Dim Dqlrwgh As Long                             '当前录入数据网格行
Dim Dqlrwgl As Long                             '当前录入数据网格列
Dim Dqlkwgh As Long                             '刚刚离开网格行(不一定为录入行)
Dim Dqlkwgl As Long                             '刚刚离开网格列
Dim Dqtoprow As Long                            '当前录入状态时最上端可视行
Dim Dqleftcol As Long                           '当前录入状态时最左端可视列
Dim Zdlrqnr As String                           '字段录入修改前内容(用来判断内容是否修改)
Dim Wbkbhlock As Boolean                        '文本框改变值锁
Dim changelock As Boolean                       '网格行列改变控制锁(用来区别用户改变.程序改变)
Dim Gdtlock As Boolean                          '滚动条滚动控制(用来区别用户改变.程序改变)
Dim Yxxpdlock As Boolean                        '字段有效性判断锁(内容不修改不需进行字段有效性判断)
Dim Hyxxpdlock As Boolean                       '行有效性判断锁(字段内容不修改不需进行行有效性判断)
Dim Valilock As Boolean                         '文本框失去焦点是否进行有效性控制(TRUE 为锁定*限用网格录入)
Dim Shsfts As Boolean                           '删除记录行是否提示
Dim Szzls As Integer                            '网格信息数组最大下标值(网格列数-1)

'以下为固定使用变量(文本框)
Dim Textvar() As Variant                        '存储变体型文本框信息
Dim Textboolean() As Boolean                    '存储布尔型文本框信息
Dim Textint() As Integer                        '存储整型文本框信息
Dim Textstr() As String                         '存储字符型文本框信息
Dim Max_Text_Index As Integer                   '最大录入文本框索引值
Dim TextGroupCode As String                     '文本框录入分组编码
Dim TextValiLock As Boolean                     '文本框失去焦点是否进行有效性控制判断
Dim TextValiJudgeLock() As Boolean              '文本框录入有效性判断控制锁
Dim TextChangeLock As Boolean                   '文本框内容变换控制锁
    
Private Sub Form_KeyPress(KeyAscii As Integer)      '控 制 焦 点 转 移
    
    Dim jdzygs As Integer
    jdzygs = 7                                       '在单据录入中,此焦点转移控制值一定小于等于文本框个数,否则网格回车键将不支持.
    Select Case KeyAscii
    Case vbKeyReturn
        If Kjjdzy(jdzygs) Then
            KeyAscii = 0
        End If
    Case 39           '屏蔽字符"'"
        KeyAscii = 0
    End Select
    
End Sub

Private Sub Form_Load()                                                        '窗 体 装 入
    
    '初始化各种锁值(Fixed)
    changelock = False             '网格行列改变控制锁
    Gdtlock = False                '滚动条滚动控制
    Yxxpdlock = True               '字段有效性判断锁
    Hyxxpdlock = True              '行有效性判断锁
    Wbkbhlock = False              '文本框内容改变锁
    
    '调入单据信息(需要修改BillCode)
    BillCode = "0207"
    Call Sub_ReadBillInfo(BillCode, Me, Var_Bill())
    Lab_Title = Var_Bill(2)
    Lab_Title.Move (Me.Width - Lab_Title.Width) / 2, 800
    
    '报表编码
    XtReportCode = Var_Bill(5)
    Load Dyymctbl
    
    '以下为文本框处理程序(Fixed)
    TextGroupCode = Var_Bill(3)
    
    Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
    Call Wbkcsh
    
    '调入网格并记录一些网格信息(Fixed)
    GridCode = Var_Bill(4)         '网格属性编码
    Call BzWgcsh(WglrGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
    
    Qslz = GridInf(1)
    Sjhgd = GridInf(2)
    Fzxwghs = GridInf(4)
    Sfblbzkd = GridInf(5)
    Shsfts = GridInf(6)
    Sfxshjwg = GridInf(7)
    Szzls = WglrGrid.Cols - 1
    Pmbcsjhs = Int((WglrGrid.Height - WglrGrid.FixedRows * WglrGrid.RowHeight(0)) / Sjhgd) - Fzxwghs - 1
    
    For jsqte = WglrGrid.FixedRows To WglrGrid.Rows - 1
        WglrGrid.RowHeight(jsqte) = Sjhgd
    Next jsqte
    
    '初始化合计网格(Fixed)
    Call Cshhjwg
    
    '单据变动置为False(Fixed)
    Bln_BillChange = False

End Sub

Private Sub Sub_Search()
    BadDebt_FrmReturnQuery.Show 1
    If UCase(Trim(BadDebt_FrmReturnQuery.Tag)) = "TRUE" Then
        '生成查询结果
        Call Sub_Query(0)
        
    Else
        BadDebt_FrmReturnQuery.UnloadCheck.Value = 1
        Unload BadDebt_FrmReturnQuery
        Unload Me
    End If
    
End Sub

Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
    
    '卸载条件窗体
    BadDebt_FrmReturnQuery.UnloadCheck.Value = 1
    Unload BadDebt_FrmReturnQuery
    
    '卸载打印页面窗体
    Unload Dyymctbl
    
    '判断单据是否发生变化,并返回相应标识
    If Bln_BillChange Then
        Xtfhcs = "1"
    Else
        Xtfhcs = "0"
    End If
    
End Sub


Private Sub Sub_Query(Int_QueryType As Integer)                                     '生成查询结果(Define)
    
    '过程参数:Int_QueryType 0-"点确定按钮"查询  1-"刷新"查询
    Dim Rec_Query As New ADODB.Recordset        '查询结果动态集
    Dim Coljsq As Long                          '网格列计数器
    Dim jsqte As Integer                        '临时动态计数器
    Dim TempForCur As String                    '临时币别代码
    Dim BanTotal(6) As Single                   '计算应收总帐合计
    Dim TmpYear As Integer
    Dim Rec_Bill As New ADODB.Recordset
    Dim BillID As Integer
    
    '录入文本框清除内容
    For jsqte = Max_Text_Index To 0 Step -1
        LrText(jsqte).Tag = ""
        LrText(jsqte).Text = ""
    Next jsqte
    
    '清空网格内容
    WglrGrid.Clear 1
    
    '禁止网格刷新动作,为加快网格显示速度(Fixed)
    WglrGrid.Redraw = False
    
    '以下为自定义部分[
 
    If Int_QueryType = 0 Then   '0-"点确定按钮"查询
        With BadDebt_FrmReturnQuery
            
            '填充表头部门内容
            BadDebt_FrmReturnList.LrText(1).Text = Trim(.LrText(0).Text)
            BadDebt_FrmReturnList.LrText(1).Tag = Trim(.LrText(0).Tag)
            
            '生成查询条件
            Str_QueryCondi = " where 1=1 and BadItemCode='60' and YbYsje>YbSsje "
         
            For jsqte = 1 To 4
                Select Case jsqte
                    Case 1  '客户
                        If Trim(.LrText(0).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " and PsCode = '" & Trim(.LrText(0).Tag) & "'"
                        End If
                    Case 2  '币别
                        If Trim(.LrText(1).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And ForeignCurrCode='" & Trim(.LrText(1).Tag) & "'"
                        End If
                    Case 3  '部门
                        If Trim(.LrText(2).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And DeptCode= '" & Trim(.LrText(2).Tag) & "'"
                        End If
                    Case 4 '经办人
                        If Trim(.LrText(3).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And PersonCode= '" & Trim(.LrText(3).Tag) & "'"
                        End If
                
                End Select
            Next jsqte
        End With
    Else
        '1-"刷新"查询
        
    End If
     
    Sqlstr = "SELECT * FROM Ar_v_BadReturn " & Str_QueryCondi & "  Order By BillDate"

    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Rec_Query
        
        WglrGrid.Rows = WglrGrid.FixedRows
        jsqte = WglrGrid.FixedRows
        Do While Not .EOF
            WglrGrid.AddItem ""
            
            '[>>自定义填充内容
            WglrGrid.TextMatrix(jsqte, 0) = "*"
            WglrGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = False                                         '选中
            WglrGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Format(.Fields!DebtDate, "yyyy-mm-dd")        '坏帐日期
            If Val(Trim((.Fields!VouchNo) & "")) <> 0 Then
                WglrGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = Trim((.Fields("VouchClassCode") & "")) & "-" & Trim(.Fields!VouchNo) '凭证号
            End If
            WglrGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Trim((.Fields!ForeignCurrCode) & "")          '币别编码
            WglrGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = Trim((.Fields!ForeignCurrName) & "")          '币别名称
            WglrGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(.Fields!AccRate)                          '记帐汇率
            
            If Val(.Fields!YbYsje) - Val(.Fields!YbSsje) > 0 Then
                WglrGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Val(.Fields!YbYsje) - Val(.Fields!YbSsje) '坏帐发生金额(原币)
                WglrGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = Val(.Fields!YbYsje) - Val(.Fields!YbSsje) '坏帐收回金额
                WglrGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = Val(.Fields!BbYsje) - Val(.Fields!BbSsje) '坏帐收回金额(本币)
            End If
            WglrGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = Trim((.Fields!AccCodeArAp) & "")              '坏帐科目编码
            WglrGrid.TextMatrix(jsqte, Sydz("011", GridStr(), Szzls)) = Trim((.Fields!BadDebtID) & "")                '坏帐标识ID

            '<<]
            
            '设置数据行高度(Fixed)
            WglrGrid.RowHeight(jsqte) = Sjhgd
            
            '动态集指针加1,同时将计数器加1(Fixed)
            .MoveNext
            jsqte = jsqte + 1

⌨️ 快捷键说明

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