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

📄 工资结算_dm.frm

📁 适合于中小型企业管理
💻 FRM
📖 第 1 页 / 共 3 页
字号:
         BeginProperty Column00 
            ColumnWidth     =   1635.024
         EndProperty
         BeginProperty Column01 
            ColumnWidth     =   1635.024
         EndProperty
      EndProperty
   End
   Begin VB.Label Label2 
      Alignment       =   2  'Center
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "方案名称"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   18
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00000000&
      Height          =   360
      Left            =   3240
      TabIndex        =   12
      Top             =   300
      Width           =   1515
   End
   Begin VB.Line Line1 
      BorderStyle     =   5  'Dash-Dot-Dot
      X1              =   3000
      X2              =   13080
      Y1              =   960
      Y2              =   960
   End
   Begin vsElasticLightLibCtl.vsElasticLight vsElasticLight1 
      Left            =   3240
      OleObjectBlob   =   "工资结算_Dm.frx":2141
      Top             =   480
   End
   Begin VB.Label Label3 
      Alignment       =   2  'Center
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "车间名称"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   15
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   300
      Left            =   930
      TabIndex        =   11
      Top             =   240
      Width           =   1275
   End
End
Attribute VB_Name = "FrmGzjs_Dm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim i As Integer
Dim TS(24) As String
Dim TxtSql As String
Dim RsFamc As ADODB.Recordset
Dim Rstmp As ADODB.Recordset

Private Sub CmbBmmc_Click()
    If CmbBmmc.ListIndex > -1 And ChkMx.Value = 0 Then
      TxtSql = "select 部门名称,工序名称,图号,品名,规格,硝材,sum(一级品) as 一级品,sum(留用数) as 留用,sum(站二级) as 站二级,sum(站报废) as 站报废,sum(擦二级) as 擦二级,sum(擦报废) as 擦报废,一级品价,sum(金额1) as 金额1,sum(领一级) as 领一级,sum(领二级) as 领二级,sum(实际废品) as 实际废品,sum(应交废品) as 应交废品,sum(实际废品) as 实际废品,sum(差额1) as 差额1,原材料价,sum(奖赔) as 奖赔,sum(送检数) as 送检数,sum(应交正品) as 应交正品,sum(金额2) as 金额2,sum(欠交数) as 欠交数,sum(金额3) as 金额3,sum(合计) as 合计 from Gz_工资结算Dm where 方案名称='" & CmbJsfa.Text & "' and 部门名称 ='" & CmbBmmc.Text & "' group by 部门名称 ,工序名称,图号,品名,规格,硝材,一级品价,原材料价 order by 工序名称,图号,品名,规格"
      OutTxt.Text = "C:\" & CmbJsfa.Text & "-" & CmbBmmc.Text & "1.xls"
    ElseIf CmbBmmc.ListIndex > -1 And ChkMx.Value = 1 Then
      TxtSql = "select * from Gz_工资结算Dm where 方案名称='" & CmbJsfa.Text & "' and 部门名称 ='" & CmbBmmc.Text & "' order by 员工姓名,工序名称,图号,品名,规格"
      OutTxt.Text = "C:\" & CmbJsfa.Text & "-" & CmbBmmc.Text & "2.xls"
    End If
      Set Rstmp = New ADODB.Recordset
    Rstmp.Open TxtSql, Cw_DataEnvi.DataConnect, adOpenStatic, adLockPessimistic, adCmdText
      Set DGList.DataSource = Rstmp
'      Rstmp.Close
'      Set Rstmp = Nothing
End Sub

Private Sub CmdDlg_Click()
    Cdlg.DialogTitle = "另存为Excel文件:"
    Cdlg.Filter = "Excel文件|*.Xls|所有文件|*.*"
    Cdlg.ShowSave
    If Cdlg.FileName = "" Then Exit Sub
         OutTxt.Text = Cdlg.FileName
End Sub

Private Sub CmdSave_Click()
On Error GoTo errs
    Dim Rs As ADODB.Recordset
    Dim ExcelApp As Excel.Application
    Dim ExcelBook As Excel.Workbook
    Dim ExcelSheet As Excel.Worksheet

    Set ExcelApp = New Excel.Application
    ExcelApp.Visible = False
    Set ExcelBook = ExcelApp.Workbooks.Add
    Set ExcelSheet = ExcelBook.Worksheets.Item(1)
    
    Set Rs = New ADODB.Recordset
     
    Rs.Open TxtSql, Cw_DataEnvi.DataConnect, , adLockPessimistic, adCmdText
    RecordsetToExcel Rs, ExcelSheet
    If OutTxt.Text = "" Then
      MsgBox "请指定输出文件位置和文件名!", 16, "严重错误"
      Exit Sub
    End If
    On Error GoTo ErrSave
     ExcelBook.Close True, OutTxt.Text
     MsgBox "输出成功!文件位于" & OutTxt.Text
     Rs.Close

Exit Sub
errs:
    MsgBox "Select 语句错误!", 16, "严重错误"
    ExcelBook.Close False
     Exit Sub
ErrSave:
    MsgBox "输出错误!", 16, "严重错误"
End Sub

'纪录导出到Execl
Public Sub RecordsetToExcel(Rs As ADODB.Recordset, excel_sheet As Excel.Worksheet)
    Dim i As Long, j As Long
    Dim excel_range As Excel.Range
    Dim col_count As Long

    If Rs.RecordCount = 0 Then
        Exit Sub
    End If

    Set excel_range = excel_sheet.Cells
    col_count = Rs.Fields.Count
                
    For i = 0 To col_count - 1
        excel_sheet.Cells(1, i + 1).Value = Rs.Fields(i).Name
    Next
    excel_sheet.Range(excel_sheet.Cells(1, 1), _
                      excel_sheet.Cells(1, col_count)).Font.Bold = True
        
    excel_sheet.Range("A2").CopyFromRecordset Rs
            
End Sub

Private Sub CmdZnjs_Click()
CmdZnjs.Caption = "结算中..."
CmdZnjs.Enabled = False
Dim Rs01 As ADODB.Recordset
Dim Rs02 As ADODB.Recordset
Dim Rs03 As ADODB.Recordset
Dim Cmdtmp As ADODB.Command
Dim Count As Double

Set Rs01 = New ADODB.Recordset
Set Rs02 = New ADODB.Recordset
Set Rs03 = New ADODB.Recordset
Set Cmdtmp = New ADODB.Command

Rs01.Open "select * from Gz_基础数据", Cw_DataEnvi.DataConnect, adOpenStatic, adLockReadOnly, adCmdText
If Rs01.EOF And Rs01.BOF Then
    MsgBox "请到“基础数据-方案参数”中添加并保存!", vbInformation, "无法进行工资结算"
    Exit Sub
End If
Cmdtmp.ActiveConnection = Cw_DataEnvi.DataConnect
Cmdtmp.CommandText = "delete from Gz_工资结算Dm where 方案名称='" & CmbJsfa.Text & "'"
Cmdtmp.Execute
Rs02.Open "select * from Gz_产量核对Dm where 方案名称= '" & CmbJsfa.Text & "'", Cw_DataEnvi.DataConnect, adOpenStatic, adLockReadOnly, adCmdText
Rs03.Open "select * from Gz_工资结算Dm", Cw_DataEnvi.DataConnect, adOpenStatic, adLockPessimistic, adCmdText
If Rs02.EOF And Rs02.BOF Then
    MsgBox "请到“产量核对-产量核对2”中重新计算并保存!", vbInformation, "无法进行工资结算"
    Exit Sub
End If

'更新欠交数等信息 可以更新为存储过程1
'========================================
Do While Not Rs02.EOF
    If Rs02!工序名称 = "站机" Then
        Rs03.AddNew
        Rs03!方案名称 = Rs02!方案名称
        Rs03!部门名称 = Rs02!部门名称
        Rs03!员工姓名 = Rs02!员工姓名
        Rs03!工序名称 = Rs02!工序名称
        Rs03!品名 = Rs02!品名
        Rs03!规格 = Rs02!规格
        Rs03!图号 = Rs02!图号
        Rs03!硝材 = Rs02!硝材
        Rs03!一级品 = IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品)
        Rs03!站二级 = IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)
        Rs03!站报废 = IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)
        Rs03!擦二级 = IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)
        Rs03!擦报废 = IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)
        Rs03!领一级 = IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级)
        Rs03!领二级 = IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级)
        Rs03!实际废品 = IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级) * 0.9) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)) - CLng(IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数)) - (IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)) - CLng(IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)) - CLng(IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数))) / 2
        Rs03!送检数 = IIf(IsNull(Rs02!送检数) = True, "0", Rs02!送检数)
        Rs03!留用数 = IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数)
        Rs03!欠交数 = (IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)) - CLng(IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)) - CLng(IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数))) / 2
        Rs03.Update
    Else
        Rs03.AddNew
        Rs03!方案名称 = Rs02!方案名称
        Rs03!部门名称 = Rs02!部门名称
        Rs03!员工姓名 = Rs02!员工姓名
        Rs03!工序名称 = Rs02!工序名称
        Rs03!品名 = Rs02!品名
        Rs03!规格 = Rs02!规格
        Rs03!图号 = Rs02!图号
        Rs03!硝材 = Rs02!硝材
        Rs03!一级品 = IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品)
        Rs03!站二级 = IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)
        Rs03!站报废 = IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)
        Rs03!擦二级 = IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)
        Rs03!擦报废 = IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)
        Rs03!领一级 = IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级)
        Rs03!领二级 = IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级)
        Rs03!实际废品 = IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级) * 0.9) - CLng(IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数)) - (IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)) - CLng(IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)) - CLng(IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数))) / 2
        Rs03!送检数 = IIf(IsNull(Rs02!送检数) = True, "0", Rs02!送检数)
        Rs03!留用数 = IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数)
        Rs03!欠交数 = (IIf(IsNull(Rs02!领一级) = True, "0", Rs02!领一级) + IIf(IsNull(Rs02!领二级) = True, "0", Rs02!领二级) - IIf(IsNull(Rs02!一级品) = True, "0", Rs02!一级品) - CLng(IIf(IsNull(Rs02!站二级) = True, "0", Rs02!站二级)) - CLng(IIf(IsNull(Rs02!擦二级) = True, "0", Rs02!擦二级)) - CLng(IIf(IsNull(Rs02!站报废) = True, "0", Rs02!站报废)) - CLng(IIf(IsNull(Rs02!擦报废) = True, "0", Rs02!擦报废)) - CLng(IIf(IsNull(Rs02!留用数) = True, "0", Rs02!留用数))) / 2
        Rs03.Update
    End If
        
        Rs02.MoveNext
Loop
    Rs02.Close
    Rs03.Close
'========================================

'工资结算
'========================================
Do While Not Rs01.EOF
    Rs03.Open "select * from Gz_工资结算Dm where 工序名称='" & Rs01!工序名称 & "' and 图号='" & Rs01!图号 & "'", Cw_DataEnvi.DataConnect, adOpenStatic, adLockOptimistic, adCmdText
    Do While Not Rs03.EOF
    If Rs01!工序名称 = "擦片" Then
        Count = "0.0"
        Rs03!一级品价 = Rs01!一级品价
        Rs03!二级品价 = Rs01!二级品价
        Rs03!料质价 = Rs01!料质价
        Rs03!金额1 = Rs01!一级品价 * Rs03!一级品 + Rs03!留用数 * Rs01!一级品价 + Rs01!二级品价 * Rs03!站二级 + Rs01!二级品价 * Rs03!站报废
        Count = Rs01!一级品价 * Rs03!一级品 + Rs03!留用数 * Rs01!一级品价 + Rs01!二级品价 * Rs03!站二级 + Rs01!二级品价 * Rs03!站报废
        Rs03!应交废品 = CLng(Rs01!一废品率 * Rs03!领一级 / 100) + CLng(Rs01!二废品率 * Rs03!领二级 / 100)
        Rs03!原材料价 = Rs01!原材料价
        Rs03!应交正品 = CLng(Rs03!送检数 * Rs01!成品率 / 100)
        Rs03!差额2 = CLng(Rs03!送检数 * Rs01!成品率 / 100) - Rs03!一级品 - Rs03!留用数 - Rs03!站二级 - Rs03!站报废
        If Rs01!成品率 = TS(0) * 1 Or Rs01!成品率 = TS(1) * 1 Or Rs01!成品率 = TS(2) * 1 Or Rs01!成品率 = TS(3) * 1 Or Rs01!成品率 = TS(4) * 1 Or Rs01!成品率 = TS(5) * 1 Or Rs01!成品率 = TS(6) * 1 Or Rs01!成品率 = TS(7) * 1 Or Rs01!成品率 = TS(8) * 1 Or Rs01!成品率 = TS(9) * 1 Then
                Rs03!实际废品 = Rs03!领一级 + Rs03!领二级 - Rs03!一级品 - Rs03!留用数 - Rs03!站二级 - Rs03!站报废 - Rs03!擦二级 * 0.9
                Rs03!差额1 = CLng(Rs01!一废品率 * Rs03!领一级 / 100) + CLng(Rs01!二废品率 * Rs03!领二级 / 100) - (Rs03!领一级 + Rs03!领二级 - Rs03!一级品数 - Rs03!留用数 - Rs03!站二级 - Rs03!站报废 - Rs03!擦二级 * 0.9 - Rs03!欠交数)
            If Rs01!原材料价 = 3 Or Rs01!原材料价 = 5 Then
                Rs03!奖赔 = Rs01!原材料价 * (CLng(Rs01!一废品率 * Rs03!领一级 / 100) + CLng(Rs01!二废品率 * Rs03!领二级 / 100) - (Rs03!领一级 + Rs03!领二级 - Rs03!一级品数 - Rs03!留用数 - Rs03!站二级 - Rs03!站报废 - Rs03!擦二级 * 0.9 - Rs03!欠交数))
                Count = Count + Rs01!原材料价 * (CLng(Rs01!一废品率 * Rs03!领一级 / 100) + CLng(Rs01!二废品率 * Rs03!领二级 / 100) - (Rs03!领一级 + Rs03!领二级 - Rs03!一级品数 - Rs03!留用数 - Rs03!站二级 - Rs03!站报废 - Rs03!擦二级 * 0.9 - Rs03!欠交数))

⌨️ 快捷键说明

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