www.pudn.com > renshixitong.rar > frmPay.frm


VERSION 5.00 
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX" 
Begin VB.Form frmPay  
   Caption         =   "员工工资列表" 
   ClientHeight    =   4452 
   ClientLeft      =   60 
   ClientTop       =   348 
   ClientWidth     =   6708 
   LinkTopic       =   "Form1" 
   MDIChild        =   -1  'True 
   ScaleHeight     =   4452 
   ScaleWidth      =   6708 
   WindowState     =   2  'Maximized 
   Begin MSFlexGridLib.MSFlexGrid msgList  
      Height          =   3135 
      Left            =   120 
      TabIndex        =   1 
      Top             =   480 
      Width           =   6255 
      _ExtentX        =   11028 
      _ExtentY        =   5525 
      _Version        =   393216 
      Cols            =   4 
      FixedCols       =   3 
      AllowUserResizing=   1 
   End 
   Begin VB.Label lblTitle  
      Caption         =   "员  工  工  资  列  表" 
      BeginProperty Font  
         Name            =   "宋体" 
         Size            =   12 
         Charset         =   134 
         Weight          =   700 
         Underline       =   0   'False 
         Italic          =   0   'False 
         Strikethrough   =   0   'False 
      EndProperty 
      ForeColor       =   &H8000000D& 
      Height          =   255 
      Left            =   240 
      TabIndex        =   0 
      Top             =   120 
      Width           =   3135 
   End 
End 
Attribute VB_Name = "frmPay" 
Attribute VB_GlobalNameSpace = False 
Attribute VB_Creatable = False 
Attribute VB_PredeclaredId = True 
Attribute VB_Exposed = False 
Option Explicit 
Dim mrc As ADODB.Recordset 
Dim MsgText As String 
Public txtSQL As String 
Private Sub Form_Activate() 
    '设置读写权限 
     
     
End Sub 
 
Private Sub Form_Load() 
     
    ShowTitle 
    ShowData 
     
    flagEdit = True 
End Sub 
 
Private Sub Form_Resize() 
    If Me.WindowState <> vbMinimized And fMainForm.WindowState <> vbMinimized Then 
        '边界处理 
        If Me.ScaleHeight < 10 * lblTitle.Height Then 
             
            Exit Sub 
        End If 
        If Me.ScaleWidth < lblTitle.Width + lblTitle.Width / 2 Then 
             
            Exit Sub 
        End If 
        '控制控件的位置 
                 
        lblTitle.Top = lblTitle.Height 
        lblTitle.Left = (Me.Width - lblTitle.Width) / 2 
         
        msgList.Top = lblTitle.Top + lblTitle.Height + lblTitle.Height / 2 
        msgList.Width = Me.ScaleWidth - 200 
        msgList.Left = Me.ScaleLeft + 100 
        msgList.Height = Me.ScaleHeight - msgList.Top - 200 
    End If 
End Sub 
 
 
 
Public Sub FormClose() 
    Unload Me 
End Sub 
 
'删除记录 
Public Sub RecordDelete() 
    Dim sSql As String 
    Dim intCount As Integer 
     
  On Error GoTo myErr 
     
    If msgList.Rows > 1 Then 
        If MsgBox("真的要删除这条文件记录么?", vbOKCancel + vbExclamation, "警告") = vbOK Then 
            intCount = msgList.Row 
            sSql = "delete from " & msTableName & " where gzid='" & Trim(msgList.TextMatrix(msgList.Row, 1)) & "' and gzdate=cdate('" & Format(msgList.TextMatrix(msgList.Row, 16), "yyyy-mm-dd") & "')" 
 
            dbHuaxia.Execute sSql, dbSQLPassThrough 
            ShowData 
            If msgList.Rows > 1 Then 
                If intCount = msgList.Rows Then 
                    MovCursor msgList.Rows - 1, msgList 
                Else 
                    MovCursor intCount, msgList 
                End If 
            End If 
        End If 
    End If 
     
    Exit Sub 
     
myErr: 
    ShowError 
End Sub 
 
'刷新表格 
Public Sub RecordRefresh() 
    '设置msSql 
    msSql = msSelect & msTableName & " where gzdate>='" & Format(DateAdd("m", -1, Now), "yyyy-mm-dd") & "' and gzdate<='" & Format(Now, "yyyy-mm-dd") & "'" & msOrderBy 
         
    '显示数据 
    msBarText = "当前数据时间范围:" & Format(DateAdd("m", -1, Now), "yyyy-mm-dd") & "至" & Format(Now, "yyyy-mm-dd") 
    sOrder0 = "+ {gzdate}" 
    sOrder1 = "+ {gzid}" 
     
    ShowData 
End Sub 
 
'记录添加 
Public Sub RecordAdd() 
    gintMode = Add 
    frmPay1.Show 1 
    ShowData 
End Sub 
 
'记录查询 
Public Sub RecordFind() 
    frmPay2.Show 1 
    If Trim(frmPay2.sQSql & " ") <> "" Then 
        msSql = msSelect & msTableName & " where" & frmPay2.sQSql & msOrderBy 
        ShowData 
    End If 
    Unload frmPay2 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
    flagEdit = False 
    gintMode = 0 
 
End Sub 
 
'详细显示记录 
Public Sub RecordView() 
    If msgList.Rows > 1 = False Then 
        gintMode = View 
        gsSql = " where gzid='" & Trim(msgList.TextMatrix(msgList.Row, 1)) & "' and gzdate=cdate('" & Format(msgList.TextMatrix(msgList.Row, 16), "yyyy-mm-dd") & "')" 
        frmPay1.Show 1 
    End If 
     
End Sub 
 
 
'计发本月工资 
Public Sub WageOut() 
    frmWage.Show 1 
End Sub 
 
'计发基本工资 
Public Sub WageOne() 
     
    Dim sSql As String 
     
 On Error GoTo myErr 
    With fMainForm 
   '设置菜单和工具条 
         .mnuFile.Enabled = False 
         .mnuRecord.Enabled = False 
         .mnuMan.Enabled = False 
         .mnuBonus.Enabled = False 
         .mnuCar.Enabled = False 
         .mnuMater.Enabled = False 
         .mnuWork.Enabled = False 
         .mnuWindow.Enabled = False 
         .mnuSysEdit.Enabled = False 
         .mnuPreview.Enabled = False 
         .mnuPrint.Enabled = False 
         .mnuWage.Enabled = False 
         .tbToolBar.Enabled = False 
         
    End With 
     
    With fMainForm.crptPrint 
    
        '设定连接串 
        .Connect = gsCon 
        '设定打印的报表文件 
        .ReportFileName = App.Path & "\rpt\one.rpt" 
         
        '排序 
        .SortFields(0) = sOrder0 
        .SortFields(1) = sOrder1 
                 
        '指定打印的记录数 
        sSql = msSql 
        .SQLQuery = Left(sSql, InStr(1, sSql, "order by") - 2) 
        .PrinterStartPage = 0 
        .PrinterStopPage = -1 
        .CopiesToPrinter = 1 
        '设定打印预览窗口为frmPreview的子窗体 
        .WindowParentHandle = frmPreview.hWnd 
        frmPreview.Show 
 
        '设定打印的方式 
         
        .Destination = PREVIEWMODE 
        .Action = PREVIEWMODE 
    End With 
     
myErr: 
    ShowError 
End Sub 
 
 
'计发基本工资 
Public Sub WageTwo() 
     
    Dim sSql As String 
       
  On Error GoTo myErr 
    With fMainForm 
   '设置菜单和工具条 
         .mnuFile.Enabled = False 
         .mnuRecord.Enabled = False 
         .mnuMan.Enabled = False 
         .mnuBonus.Enabled = False 
         .mnuCar.Enabled = False 
         .mnuMater.Enabled = False 
         .mnuWork.Enabled = False 
         .mnuWindow.Enabled = False 
         .mnuSysEdit.Enabled = False 
         .mnuPreview.Enabled = False 
         .mnuPrint.Enabled = False 
         .mnuWage.Enabled = False 
         .tbToolBar.Enabled = False 
         
    End With 
     
    With fMainForm.crptPrint 
    
        '设定连接串 
        .Connect = gsCon 
        '设定打印的报表文件 
        .ReportFileName = App.Path & "\rpt\two.rpt" 
         
        '排序 
        .SortFields(0) = sOrder0 
        .SortFields(1) = sOrder1 
                 
        '指定打印的记录数 
        sSql = msSql 
        .SQLQuery = Left(sSql, InStr(1, sSql, "order by") - 2) 
        .PrinterStartPage = 0 
        .PrinterStopPage = -1 
        .CopiesToPrinter = 1 
        '设定打印预览窗口为frmPreview的子窗体 
        .WindowParentHandle = frmPreview.hWnd 
        frmPreview.Show 
 
        '设定打印的方式 
         
        .Destination = PREVIEWMODE 
        .Action = PREVIEWMODE 
    End With 
    Exit Sub 
     
myErr: 
    ShowError 
End Sub 
 
 
 
'显示Grid的内容 
 
Public Sub ShowData() 
 
    Dim j As Integer 
    Dim i As Integer 
 
 
    Set mrc = ExecuteSQL(txtSQL, MsgText) 
    With msgList 
        .Rows = 1 
         
        Do While Not mrc.EOF 
            .Rows = .Rows + 1 
            For i = 1 To mrc.Fields.Count 
                Select Case mrc.Fields(i - 1).Type 
                    Case adDBDate 
                        .TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & "", "yyyy-mm-dd") 
                    Case Else 
                        .TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & "" 
                End Select 
            Next i 
            mrc.MoveNext 
        Loop 
                
         
    End With 
    mrc.Close 
     
End Sub 
 
 
'显示Grid表头 
Public Sub ShowTitle() 
    Dim i As Integer 
     
    With msgList 
        .Cols = 17 
        .TextMatrix(0, 1) = "编号" 
        .TextMatrix(0, 2) = "姓名" 
        .TextMatrix(0, 3) = "底薪" 
        .TextMatrix(0, 4) = "补贴" 
        .TextMatrix(0, 5) = "奖金" 
        .TextMatrix(0, 6) = "加班" 
        .TextMatrix(0, 7) = "扣考核" 
        .TextMatrix(0, 8) = "代扣养老金" 
        .TextMatrix(0, 9) = "代扣医疗保险" 
        .TextMatrix(0, 10) = "代扣住房公积金" 
        .TextMatrix(0, 11) = "税前小计" 
        .TextMatrix(0, 12) = "所得税" 
        .TextMatrix(0, 13) = "房贴" 
        .TextMatrix(0, 14) = "房租" 
        .TextMatrix(0, 15) = "实发工资" 
        .TextMatrix(0, 16) = "时间" 
         
        '固定表头 
        .FixedRows = 1 
                 
        '设置各列的对齐方式 
        For i = 0 To 1 
            .ColAlignment(i) = 0 
        Next i 
         
        For i = 2 To 15 
            .ColAlignment(i) = 7 
        Next i 
        .ColAlignment(16) = 0 
         
        '表头项居中 
        .FillStyle = flexFillRepeat 
        .Col = 0 
        .Row = 0 
        .RowSel = 1 
        .ColSel = .Cols - 1 
        .CellAlignment = 4 
         
        '设置单元大小 
        .ColWidth(0) = 300 
        For i = 1 To 6 
            .ColWidth(i) = 1000 
        Next i 
        .ColWidth(7) = 1200 
        .ColWidth(8) = 1200 
        .ColWidth(9) = 1400 
        For i = 10 To 16 
            .ColWidth(i) = 1000 
        Next i 
        .Row = 1 
    End With 
End Sub 
 
 
Private Sub msgList_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) 
    '右键弹出 
    If Button = 2 And Shift = 0 Then 
        PopupMenu fMainForm.menuPay 
    End If 
     
     
End Sub