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

📄 -

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
    Set Rsc = Nothing
End Function

Public Function DelRsItem(FieldName As String, ChName As String) As Boolean
    '删除人事项目的限制
    Dim Rsc As New ADODB.Recordset
    Dim Sql As String
    Const OpeStatus = "删除"
    With Rsc
        '没有用在公式的内容中
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_Formula WHERE charindex('" & FieldName & _
            "',Fcontent)<>0 "
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("公式内容使用了“" & ChName & "”,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '没有用在公式的限定条件中
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_Formula WHERE charindex('" & FieldName & _
              "',FLimit)<>0 "
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("公式的限定条件使用了“" & ChName & "”,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '没有用在标准表的字段中
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_StandTbl WHERE ltrim(rtrim(BzbHxItem))='" & _
              FieldName & "' OR ltrim(rtrim(BzbVxItem))='" & _
              FieldName & "'"
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("标准表的项目使用了“" & ChName & "”,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '没有用在标准表的限定条件中
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_StandTbl WHERE charindex('" & FieldName & _
               "',BzbCond)<>0 "
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("标准表的限定条件使用了“" & ChName & "”,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '没有用在银行代发的项目中
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_BankItem WHERE ltrim(rtrim(DataContent))='" & _
              FieldName & "' "
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("“" & ChName & "”是银行代发文件项目,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '不是报表显示项目
        If .State = 1 Then .Close
        Sql = "SELECT * FROM PM_ReportItem WHERE ltrim(rtrim(FieldName))='" & FieldName & "'"
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("“" & ChName & "”是报表显示项目,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '不是工资表引用的人事项目
        If .State = 1 Then .Close
        Sql = "SELECT * FROM Rs_Items WHERE AddMinusItem=1 AND FieldName<>'deptcode'" & _
              " AND FieldName<>'EmpNO' AND FieldName<>'EmpName' AND FieldName<>'EmpSort'" & _
              " and ltrim(rtrim(FieldName))='" & FieldName & "'"
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("“" & ChName & "”已在工资表中使用,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
        '在人事表中没有数据
        If .State = 1 Then .Close
        Sql = "select * from Rs_BasicInfo b inner join Rs_ExtendInfo e on b.EmpId=e.Empid " & _
            " where " & FieldName & " is not  null and ltrim(rtrim(" & FieldName & "))<>''"
        .Open Sql, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not .EOF Then
            Call Xtxxts("“" & ChName & "”已在人事表中有数据,不能" & OpeStatus & "!", 0, 1)
            DelRsItem = False
            Exit Function
        End If
     End With
     DelRsItem = True
End Function

Public Sub Print_EmpInfo() '人事档案打印
Dim Max_y As Integer
With DY_Tybbyldy.Tydy
        '-----------------
        .X1 = 0: .Y1 = 0: .X2 = 0: .Y2 = 0
        '-----------------
    .PaperSize = pprA3
    .MarginLeft = "10mm"
    .MarginRight = "10mm"
    .MarginTop = "5mm"
    .MarginBottom = "5mm"
    
     .StartDoc
     .CurrentX = "3.5in"
     .FontName = "宋体": .FontBold = True
     .FontSize = 14
     DY_Tybbyldy.Tydy = "人事档案"
  
     .FontSize = 10
     .CurrentX = "1in": .CurrentY = "1.4in"
     .FontBold = False
     .FontSize = 10
     '--------------------------
      Dim r As Integer
      Dim Height_Y As Integer
      Height_Y = 2100
      For r = 1 To Ed_EmpArInfoFrm.Lbl_ItmName.Count - 1
         .CurrentX = 1600 + Ed_EmpArInfoFrm.Lbl_ItmName(r).Left
         .CurrentY = Height_Y + Ed_EmpArInfoFrm.Lbl_ItmName(r).Top
         DY_Tybbyldy.Tydy = Ed_EmpArInfoFrm.Lbl_ItmName(r).Caption & ":"
         .CurrentX = 1600 + Ed_EmpArInfoFrm.Txt_RsItm(r).Left + 100
         .CurrentY = Height_Y + Ed_EmpArInfoFrm.Lbl_ItmName(r).Top
         DY_Tybbyldy.Tydy = Ed_EmpArInfoFrm.Txt_RsItm(r).Text
         If .CurrentY > Max_y Then Max_y = .CurrentY
      Next r
    
     .FontBold = True
     .CurrentX = "1in": .CurrentY = .CurrentY + 200
     .FontBold = False
     '------------------
      .CurrentX = .CurrentX + 100

    If Ed_EmpArInfoFrm.Pic_Emp.Height + .CurrentY > .PageHeight - 1675 Then .NewPage
    .CurrentY = Ed_EmpArInfoFrm.Pic_Emp.Top + Height_Y + 100 '               .CurrentY + 100
    .CurrentX = Ed_EmpArInfoFrm.Pic_Emp.Left + 600
    .X1 = .CurrentX
    .Y1 = .CurrentY
    .X2 = Ed_EmpArInfoFrm.Pic_Emp.Width + .CurrentX
    .Y2 = Ed_EmpArInfoFrm.Pic_Emp.Height + .CurrentY
    .CurrentY = .CurrentY + Ed_EmpArInfoFrm.Pic_Emp.Height
    .Picture = Ed_EmpArInfoFrm.Pic_Emp.Picture

     '----------------
     .EndDoc
     DY_Tybbyldy.Show 1
 End With
End Sub

Public Sub initializtion()
    '删除工资数据表
    Sql = ""
    Sql = "delete pm_payroll"                       '工资表
    Sql = Sql & " delete pm_AttendRecord"            '考勤表
    Sql = Sql & " delete pm_OpeDept"                 '操作员部门权限
    Sql = Sql & " delete pm_OpeSort"                 '操作员类别权限
    Sql = Sql & " delete pm_TaxRate"                 '税率表
    Sql = Sql & " delete pm_TaxData"                 '税率数据表
    Sql = Sql & " delete pm_BankItem"                '银行代发项目
    Sql = Sql & " delete pm_BankPara"                '银行代发路径
    Sql = Sql & " delete pm_StandTblData"            '标准表数据
    Sql = Sql & " delete pm_StandTbl"                '标准表
    Sql = Sql & " delete pm_SortEmp"                 '类别人员
    Sql = Sql & " delete pm_SortItem"                '类别项目
    Sql = Sql & " delete pm_ReportItem"              '报表项目
    Sql = Sql & " delete pm_Formula"                 '公式
    Sql = Sql & " delete pm_Bank"                    '银行信息
    Sql = Sql & " delete pm_Sort"                    '工资类别


    '删除工资表、考勤表中的自定义字段,首先删除缺省值。用DropColumn函数
    
    '将选用的人事字段的addminusitem置0
    Sql = Sql & " update rs_items set addminusitem=0 WHERE (sid=1 OR sid=2 ) AND ltrim(rtrim(fieldname))<>'deptcode' AND ltrim(rtrim(fieldname))<>'empsort'" & _
          " AND ltrim(rtrim(fieldname))<>'empno' AND ltrim(rtrim(fieldname))<>'empname'"
    '将rs_items的工资项目、考勤项目删除。
    Sql = Sql & " delete rs_items WHERE (sid=3 OR sid =4) AND ynroot=0 "
    '将会计日历表复原
    Sql = Sql & " update gy_kjrlb set pmjzbz=0 "
    SqlField = DropColumn
    On Error GoTo Err1
    Cw_DataEnvi.DataConnect.BeginTrans
    If Trim(SqlField) <> "" Then
      Cw_DataEnvi.DataConnect.Execute SqlField
    End If
    Cw_DataEnvi.DataConnect.Execute Sql
    Call Xtxxts("数据初始化成功!", 0, 4)
    Cw_DataEnvi.DataConnect.CommitTrans
    Exit Sub
Err1:
   Cw_DataEnvi.DataConnect.RollbackTrans
   Call Xtxxts("数据初始化不成功!", 0, 1)
End Sub
Private Function DropColumn() As String
  '删除工资表
   SqlField = ""
   If Rsc.State = 1 Then Rsc.Close
   Set Rsc = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM rs_items WHERE sid=3  AND ynroot=0 ")
   With Rsc
     Do While Not .EOF
       SqlField = SqlField & " alter table pm_Payroll drop CONSTRAINT df_" & Trim(!FieldName)
       SqlField = SqlField & " alter table pm_payroll drop column " & Trim(!FieldName)
       .MoveNext
     Loop
   End With
   '删除考勤表
   If Rsc.State = 1 Then Rsc.Close
   Set Rsc = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM rs_items WHERE sid=4 ")
   With Rsc
     Do While Not .EOF
       SqlField = SqlField & " alter table pm_attendRecord drop CONSTRAINT df_" & Trim(!FieldName)
       SqlField = SqlField & " alter table pm_attendRecord drop column " & Trim(!FieldName)
       .MoveNext
     Loop
   End With
   '删除工资表中的人事项目
   If Rsc.State = 1 Then Rsc.Close
   Set Rsc = Cw_DataEnvi.DataConnect.Execute("SELECT FieldName FROM rs_Items WHERE (Sid=1 OR Sid=2) AND addminusItem=1 AND " & _
           " FieldName<>'DeptCode' AND FieldName<>'EmpNO' AND FieldName<>'EmpName' AND FieldName<>'Empsort' ")
   With Rsc
        Do While Not .EOF
            SqlField = SqlField & " alter table PM_Payroll drop column " & Trim(Rsc!FieldName)
            .MoveNext
        Loop
   End With
   
   DropColumn = SqlField
End Function


'******************************************************************
'*    模 块 名 称 :私有模块
'*    功 能 描 述 :
'*    程序员姓名  :苗鹏
'*    最后修改人  :苗鹏
'*    最后修改时间:2002/01/10
'*    备        注:
'******************************************************************

Public Function GetTableField(sExec As String, sTableName As String, sFieldName As String, s As String) As Integer '分离表名和字段名,s为分隔符
    On Error GoTo ErrCtrl
    
    Dim i As Integer
    
    For i = 1 To Len(sExec)
        If Mid(sExec, i, 1) = s Then
            sTableName = Left(sExec, i - 1)
            sFieldName = Right(sExec, Len(sExec) - i)
            Exit For
        End If
    Next i
    If i <= Len(sExec) Then
        GetTableField = 1
    Else
        GetTableField = 0
    End If
    Exit Function

ErrCtrl:
    GetTableField = -1
End Function

Public Function InitView(tv As TreeView, Optional sSql As String = " 1=1 ")    '初始化字段树
    On Error GoTo ErrCtrl
    
    Dim rs As New ADODB.Recordset
    Dim s As String
    Dim nodx As Node
    
    If sSql = "" Then
        sSql = " 1=1  "
    End If
    tv.Nodes.Clear
    tv.Enabled = False
    Set nodx = tv.Nodes.Add(, , "R", "备选项目")
    '读取表
    s = "SELECT DISTINCT TableName AS TableFrom FROM Rs_Items WHERE SID<10 AND " & sSql
    Set rs = Cw_DataEnvi.DataConnect.Execute(s)
    With rs
        If .EOF() Then
            Exit Function
        End If
        Do While Not .EOF()
            Set nodx = tv.Nodes.Add("R", tvwChild, UCase(Trim(!TableFrom)), GetTableNameC(Trim(!TableFrom)))
            nodx.EnsureVisible
            .MoveNext
        Loop
        .Close
    End With
    
    '读取字段
    s = "SELECT FieldName  AS FieldName,CHName AS FieldNameC,TableName AS TableFrom " & Chr(10) _
        & ",Correlation AS FieldRelation,CorTable AS CorTable ,IndexCode AS TCode,IndexName AS TName,AddMinusItem " & Chr(10) _
        & " FROM Rs_Items WHERE SID<10 AND " & sSql  'TableName is not Null "
    Set rs = Cw_DataEnvi.DataConnect.Execute(s)
    With rs
        If .EOF() Then
            Exit Function
        End If
        Do While Not .EOF()
            '末级节点的Tag值为此字段的英文全名
            If !AddMinusItem = 1 And Trim(sSql) = Trim("1=1") Then
                '如果是选入工资表的字段,添加工资表节点
                Set nodx = tv.Nodes.Add(UCase("PM_PayRoll"), tvwChild, UCase("PM_PayRoll") & "." & UCase(Trim(!FieldName)), UCase(Trim(!FieldNameC)))
                If Trim(!CorTable & "") <> "" And Trim(!TCode & "") <> "" And Trim(!TName & "") <> "" Then
                    nodx.Tag = Trim(!FieldRelation & "") & "@" & Trim(!CorTable & "") & "@" & Trim(!TCode & "") & "@" & Trim(!TName & "")
                End If
                
            End If
            Set nodx = tv.Nodes.Add(UCase(Trim(!TableFrom)), tvwChild, UCase(Trim(!TableFrom) & "." & Trim(!FieldName)), UCase(Trim(!FieldNameC)))
            If Trim(!CorTable & "") <> "" And Trim(!TCode & "") <> "" And Trim(!TName & "") <> "" Then
                nodx.Tag = Trim(!FieldRelation & "") & "@" & Trim(!CorTable & "") & "@" & Trim(!TCode & "") & "@" & Trim(!TName & "")
            End If
            .MoveNext

⌨️ 快捷键说明

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