📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -