frmDyn.frm
上传用户:djzm888
上传日期:2013-02-15
资源大小:867k
文件大小:18k
源码类别:

其他数据库

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  3. Begin VB.Form frmDyn 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "日考勤动态报表"
  6.    ClientHeight    =   7200
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   8880
  10.    BeginProperty Font 
  11.       Name            =   "宋体"
  12.       Size            =   10.5
  13.       Charset         =   134
  14.       Weight          =   400
  15.       Underline       =   0   'False
  16.       Italic          =   0   'False
  17.       Strikethrough   =   0   'False
  18.    EndProperty
  19.    Icon            =   "frmDyn.frx":0000
  20.    LinkTopic       =   "Form1"
  21.    LockControls    =   -1  'True
  22.    MaxButton       =   0   'False
  23.    MinButton       =   0   'False
  24.    ScaleHeight     =   7200
  25.    ScaleWidth      =   8880
  26.    ShowInTaskbar   =   0   'False
  27.    StartUpPosition =   2  '屏幕中心
  28.    Begin VB.CommandButton Command1 
  29.       Cancel          =   -1  'True
  30.       Height          =   525
  31.       Index           =   2
  32.       Left            =   7290
  33.       Picture         =   "frmDyn.frx":000C
  34.       Style           =   1  'Graphical
  35.       TabIndex        =   15
  36.       Top             =   1590
  37.       Width           =   1230
  38.    End
  39.    Begin VB.CommandButton Command1 
  40.       Height          =   525
  41.       Index           =   1
  42.       Left            =   7290
  43.       Picture         =   "frmDyn.frx":1E7D
  44.       Style           =   1  'Graphical
  45.       TabIndex        =   14
  46.       Top             =   892
  47.       Width           =   1230
  48.    End
  49.    Begin VB.CommandButton Command1 
  50.       Height          =   525
  51.       Index           =   0
  52.       Left            =   7290
  53.       Picture         =   "frmDyn.frx":3DE8
  54.       Style           =   1  'Graphical
  55.       TabIndex        =   13
  56.       Top             =   195
  57.       Width           =   1230
  58.    End
  59.    Begin VB.Frame Frame1 
  60.       Height          =   2025
  61.       Left            =   285
  62.       TabIndex        =   5
  63.       Top             =   75
  64.       Width           =   6615
  65.       Begin VB.OptionButton optSel 
  66.          Caption         =   "查询未打卡者"
  67.          Height          =   285
  68.          Index           =   2
  69.          Left            =   390
  70.          TabIndex        =   20
  71.          Top             =   1508
  72.          Width           =   1965
  73.       End
  74.       Begin VB.ComboBox cboDept 
  75.          Height          =   330
  76.          Left            =   4440
  77.          Style           =   2  'Dropdown List
  78.          TabIndex        =   19
  79.          Top             =   892
  80.          Width           =   1860
  81.       End
  82.       Begin VB.CommandButton Command2 
  83.          Caption         =   "…"
  84.          Height          =   330
  85.          Left            =   5970
  86.          TabIndex        =   18
  87.          Top             =   1485
  88.          Width           =   330
  89.       End
  90.       Begin VB.CheckBox chkSel 
  91.          Caption         =   "查询未打卡者"
  92.          Height          =   285
  93.          Index           =   1
  94.          Left            =   2175
  95.          TabIndex        =   17
  96.          Top             =   1095
  97.          Visible         =   0   'False
  98.          Width           =   1560
  99.       End
  100.       Begin VB.CheckBox chkSel 
  101.          Caption         =   "查询迟到者"
  102.          Height          =   285
  103.          Index           =   0
  104.          Left            =   2175
  105.          TabIndex        =   16
  106.          Top             =   750
  107.          Visible         =   0   'False
  108.          Width           =   1365
  109.       End
  110.       Begin VB.OptionButton optSel 
  111.          Caption         =   "查询全部打卡人员"
  112.          Height          =   285
  113.          Index           =   1
  114.          Left            =   390
  115.          TabIndex        =   12
  116.          Top             =   323
  117.          Value           =   -1  'True
  118.          Width           =   2055
  119.       End
  120.       Begin VB.OptionButton optSel 
  121.          Caption         =   "查询迟到者"
  122.          Height          =   285
  123.          Index           =   0
  124.          Left            =   405
  125.          TabIndex        =   11
  126.          Top             =   915
  127.          Width           =   1530
  128.       End
  129.       Begin VB.TextBox txtEmp 
  130.          Height          =   330
  131.          Left            =   4440
  132.          TabIndex        =   10
  133.          Top             =   1485
  134.          Width           =   1530
  135.       End
  136.       Begin VB.CommandButton cmdSel 
  137.          Caption         =   "…"
  138.          BeginProperty Font 
  139.             Name            =   "宋体"
  140.             Size            =   9
  141.             Charset         =   134
  142.             Weight          =   400
  143.             Underline       =   0   'False
  144.             Italic          =   0   'False
  145.             Strikethrough   =   0   'False
  146.          EndProperty
  147.          Height          =   330
  148.          Index           =   0
  149.          Left            =   5970
  150.          TabIndex        =   1
  151.          TabStop         =   0   'False
  152.          Top             =   300
  153.          Width           =   330
  154.       End
  155.       Begin VB.TextBox txtDate 
  156.          Height          =   330
  157.          Index           =   0
  158.          Left            =   4440
  159.          Locked          =   -1  'True
  160.          TabIndex        =   0
  161.          Top             =   300
  162.          Width           =   1530
  163.       End
  164.       Begin VB.CommandButton cmdSel 
  165.          Caption         =   "…"
  166.          BeginProperty Font 
  167.             Name            =   "宋体"
  168.             Size            =   9
  169.             Charset         =   134
  170.             Weight          =   400
  171.             Underline       =   0   'False
  172.             Italic          =   0   'False
  173.             Strikethrough   =   0   'False
  174.          EndProperty
  175.          Height          =   330
  176.          Index           =   1
  177.          Left            =   6015
  178.          TabIndex        =   3
  179.          TabStop         =   0   'False
  180.          Top             =   675
  181.          Visible         =   0   'False
  182.          Width           =   330
  183.       End
  184.       Begin VB.TextBox txtDate 
  185.          Height          =   330
  186.          Index           =   1
  187.          Left            =   4665
  188.          Locked          =   -1  'True
  189.          TabIndex        =   2
  190.          Top             =   675
  191.          Visible         =   0   'False
  192.          Width           =   1350
  193.       End
  194.       Begin VB.Label Label1 
  195.          AutoSize        =   -1  'True
  196.          Caption         =   "员工卡号:"
  197.          Height          =   210
  198.          Index           =   3
  199.          Left            =   3450
  200.          TabIndex        =   9
  201.          Top             =   1545
  202.          Width           =   945
  203.       End
  204.       Begin VB.Label Label1 
  205.          AutoSize        =   -1  'True
  206.          Caption         =   "部    门:"
  207.          Height          =   210
  208.          Index           =   2
  209.          Left            =   3450
  210.          TabIndex        =   8
  211.          Top             =   952
  212.          Width           =   945
  213.       End
  214.       Begin VB.Label Label1 
  215.          AutoSize        =   -1  'True
  216.          Caption         =   "统计日期:"
  217.          Height          =   210
  218.          Index           =   0
  219.          Left            =   3450
  220.          TabIndex        =   7
  221.          Top             =   360
  222.          Width           =   945
  223.       End
  224.       Begin VB.Label Label1 
  225.          AutoSize        =   -1  'True
  226.          Caption         =   "统计截至日期:"
  227.          Height          =   210
  228.          Index           =   1
  229.          Left            =   3225
  230.          TabIndex        =   6
  231.          Top             =   735
  232.          Visible         =   0   'False
  233.          Width           =   1365
  234.       End
  235.    End
  236.    Begin MSFlexGridLib.MSFlexGrid msfGrid 
  237.       Height          =   4485
  238.       Left            =   255
  239.       TabIndex        =   4
  240.       Top             =   2400
  241.       Width           =   8340
  242.       _ExtentX        =   14711
  243.       _ExtentY        =   7911
  244.       _Version        =   393216
  245.       FixedCols       =   0
  246.       ScrollBars      =   2
  247.    End
  248. End
  249. Attribute VB_Name = "frmDyn"
  250. Attribute VB_GlobalNameSpace = False
  251. Attribute VB_Creatable = False
  252. Attribute VB_PredeclaredId = True
  253. Attribute VB_Exposed = False
  254. Option Explicit
  255. Dim mFormatString As String
  256. '*****OPTSEL
  257. Const mALL = 1
  258. Const mLATE = 0
  259. Const mNOTCARD = 2
  260. '***CHKSEL
  261. 'Const mLATE = 0
  262. 'Const mABNORMAL = 1
  263. Private Sub cboDept_KeyDown(KeyCode As Integer, Shift As Integer)
  264.     If KeyCode = 13 Then
  265.         SendKeyTab KeyCode
  266.     End If
  267. End Sub
  268. Private Sub cmdSel_Click(Index As Integer)
  269.     frmRiLi.Show vbModal
  270.     If frmRiLi.mRetDate <> Empty Then
  271.         txtDate(Index) = frmRiLi.mRetDate
  272.     End If
  273. End Sub
  274. Private Sub Command1_Click(Index As Integer)
  275.     Select Case Index
  276.         Case 0
  277.             If Trim(txtDate(0)) = Empty Then
  278.                 MsgBox Trim(Label1(0)) & "不能为空", vbInformation, gTitle
  279.                 txtDate(0).SetFocus
  280.                 Exit Sub
  281.             End If
  282.             Me.MousePointer = vbHourglass
  283.             Me.Enabled = False
  284.             FindFlow
  285.             Me.Enabled = True
  286.             Me.MousePointer = 0
  287.             
  288.             Command1(1).Enabled = msfGrid.Rows > msfGrid.FixedRows
  289.         Case 1
  290.             If MsgBox("请准备好打印机,按[是]开始打印...", _
  291.                 vbYesNo, gTitle) = vbNo Then Exit Sub
  292.             Dim oldPaperSize As Integer
  293.             oldPaperSize = Printer.PaperSize
  294.             Printer.PaperSize = 9 'A4
  295.             PrintFlow Printer
  296.             Printer.PaperSize = oldPaperSize
  297.         Case 2
  298.             Unload Me
  299.     End Select
  300. End Sub
  301. Private Sub PrintFlow(objPrint As Printer)
  302.     Dim CurX As Single
  303.     Dim CurY As Single
  304.     Dim FixedX As Integer
  305.     Dim RowH As Integer '行高
  306.     Dim TopH As Integer '顶边距
  307.     Dim DataRows As Integer
  308.     Dim ForTimes As Integer
  309.     Dim Str As String
  310.     
  311.     DataRows = msfGrid.Rows - 1
  312.     Const Rows = 35
  313.     Const Sr = 56.7
  314.     FixedX = Sr * 5
  315.     
  316.     
  317.     Dim i As Integer
  318.     Dim OldFontSize As Integer
  319.     Dim Lines As Integer
  320.     Dim StartLine As Integer
  321.     On Error GoTo PrintErr
  322.     With objPrint
  323.         RowH = .TextHeight("A") * 2
  324.         OldFontSize = .FontSize
  325.         TopH = 20 * Sr
  326.         
  327.         For ForTimes = 1 To DataRows  Rows + 1
  328.             '打印标题
  329.             CurY = TopH
  330.             CurX = FixedX
  331.             Str = Trim(Me.Caption)
  332.             CurX = (.Width - .TextWidth(Str) - FixedX - 200) / 2
  333.             .CurrentX = CurX
  334.             .CurrentY = CurY
  335.             .FontSize = 16
  336.             .Font.Bold = True
  337.             objPrint.Print Str
  338.             .FontBold = False
  339.             
  340.             '打印条件
  341.             If optSel(mNOTCARD).Value Then
  342.                 Str = optSel(mNOTCARD).Caption & Space(5) & Trim(Label1(0)) & Space(1) & Trim(txtDate(0))
  343.             Else
  344.                 If optSel(mALL).Value Then
  345.                     Str = optSel(mALL).Caption
  346.                 Else
  347.                     Str = optSel(mLATE).Caption
  348.                 End If
  349.                 
  350.                 Str = Str & Space(5) & Trim(Label1(0)) & Space(1) & Trim(txtDate(0)) _
  351.                     & Space(5) & Trim(Label1(2)) & Space(1) & Trim(cboDept.Text)
  352.                 If Trim(txtEmp) <> Empty Then
  353.                     Str = Str & Space(5) & Trim(Label1(3)) & Space(1) & Trim(txtEmp)
  354.                 End If
  355.             End If
  356.             CurY = CurY + RowH + 400
  357.             CurX = FixedX
  358.             .FontItalic = True
  359.             .CurrentX = CurX
  360.             .CurrentY = CurY
  361.             .FontSize = 11
  362.             objPrint.Print Str
  363.             .FontItalic = False
  364.             
  365.              '直线
  366.             .CurrentX = FixedX
  367.             CurY = CurY + RowH - 100
  368.             .CurrentY = CurY
  369.             objPrint.Line (FixedX, CurY)-(Printer.Width - FixedX - 100, CurY), RGB(0, 0, 0)
  370.             
  371.             '打印明细栏
  372.             .FontBold = True
  373.             .FontSize = 13
  374.             .CurrentX = FixedX
  375.             CurY = CurY + RowH - 180
  376.             .CurrentY = CurY
  377.             With msfGrid
  378.                 objPrint.Print Trim(.TextMatrix(0, 0)); Tab(12) _
  379.                         ; Trim(.TextMatrix(0, 1)); Tab(23) _
  380.                         ; Trim(.TextMatrix(0, 2)); Tab(30) _
  381.                         ; Trim(.TextMatrix(0, 3)); Tab(42) _
  382.                         ; Trim(.TextMatrix(0, 4)); Tab(53) _
  383.                         ; Trim(.TextMatrix(0, 5)); Tab(70)
  384.             End With
  385.             '.Print Str
  386.             .FontSize = 12
  387.             .FontBold = False
  388.             
  389.             '打印正文
  390.             If ForTimes = DataRows  Rows + 1 Then
  391.                 Lines = DataRows Mod Rows
  392.                 StartLine = DataRows  Rows + 1
  393.             Else
  394.                 Lines = Rows
  395.                 StartLine = ForTimes
  396.             End If
  397.             
  398.             .CurrentX = FixedX
  399.             CurY = CurY + RowH
  400.             .CurrentY = CurY
  401.             For i = (StartLine - 1) * Rows + 1 To (StartLine - 1) * Rows + Lines 'StartLine To Lines
  402.                 With msfGrid
  403.                     objPrint.Print Trim(.TextMatrix(i, 0)); Tab(14) _
  404.                         ; Trim(.TextMatrix(i, 1)); Tab(27) _
  405.                         ; Trim(.TextMatrix(i, 2)); Tab(33) _
  406.                         ; Trim(.TextMatrix(i, 3)); Tab(47) _
  407.                         ; Trim(.TextMatrix(i, 4)); Tab(60) _
  408.                         ; Trim(.TextMatrix(i, 5)); Tab(80)
  409.                 End With
  410.                 .CurrentX = FixedX
  411.                 CurY = CurY + RowH - 20
  412.                 .CurrentY = CurY
  413.                 '.print Str
  414.             Next
  415.             
  416.             .FontSize = 11
  417.             .CurrentX = FixedX
  418.             CurY = 14985 - 50
  419.             .CurrentY = CurY
  420.             objPrint.Line (FixedX, CurY)-(Printer.Width - FixedX - 100, CurY), RGB(0, 0, 0)
  421.             .CurrentY = 14985
  422.             .CurrentX = FixedX
  423.             objPrint.Print Space(80) & "第" & ForTimes & "/" & DataRows  Rows + 1 & "页"
  424.             If TypeOf objPrint Is Printer Then
  425.                 .EndDoc
  426.             Else
  427.                 '.c
  428.             End If
  429.         Next
  430.         .FontSize = OldFontSize
  431.     End With
  432.     Exit Sub
  433. PrintErr:
  434.     MsgBox Err.Description, vbCritical, gTitle
  435.     Err.Clear
  436.     If TypeOf objPrint Is Printer Then
  437.         objPrint.KillDoc
  438.     Else
  439.     End If
  440. End Sub
  441. Private Sub FindFlow()
  442.     Dim StartDate As String
  443.     Dim EndDate As String
  444.     Dim intDept As Integer
  445.     Dim strDept As String
  446.     Dim strWorkNo As String
  447.     Dim Sql As String
  448.     
  449.     On Error GoTo FindErr
  450.     StartDate = Trim(txtDate(0))
  451. '    EndDate = Trim(txtDate(1))
  452.     getItemData cboDept, intDept
  453.     strDept = Trim(cboDept.Text)
  454.     strWorkNo = Trim(txtEmp)
  455.     
  456.     Dim Rst As Recordset
  457.     If optSel(mNOTCARD).Value Then
  458.         Dim Qry As QueryDef
  459.         Set Qry = gDataBase.QueryDefs("QryKG")
  460.         Qry.Parameters(0) = StartDate
  461.         Set Rst = Qry.OpenRecordset(dbOpenSnapshot)
  462.     Else
  463.         Sql = " Select * from QryKqHistory "
  464.         Sql = Sql & " where format(KqDate,'yyyy-mm-dd')='" _
  465.             & StartDate & "'"
  466.         
  467.         If optSel(mLATE).Value Then Sql = Sql & " and  format(KqTime,'hh:mm')>'" _
  468.             & gLATETIME & "' "
  469.             
  470.         If strWorkNo <> Empty Then
  471.             Sql = Sql & " and " & "InStr(1,WorkNo,'" & strWorkNo & "',0)>0 "
  472.         End If
  473.     
  474.         If intDept <> gMAXITEM Then Sql = Sql & " and DeptName='" & strDept & "'"
  475.         
  476.         Set Rst = gDataBase.OpenRecordset(Sql)
  477.     End If
  478.     
  479.     Dim strIn As String
  480.     Dim intRows As Integer
  481.     Dim intCols As Integer
  482.         
  483.     If Rst.RecordCount > 0 Then
  484.         Do While Not Rst.EOF
  485.             intRows = intRows + 1
  486.             With Rst
  487.                 'If IsKq Then
  488.                     strIn = strIn & !WorkNo & vbTab _
  489.                         & !Name & vbTab & !Sex & vbTab _
  490.                         & !DeptName & vbTab & !TitleName & vbTab _
  491.                         & !KqTime
  492.                 'End If
  493.             
  494.                 If Not .EOF Then strIn = strIn & vbCr
  495.                 .MoveNext
  496.             End With
  497.         Loop
  498.         Rst.Close
  499.         'Unload Me
  500.     Else
  501.         MsgBox "没有符合条件的记录", vbInformation, gTitle
  502.     End If
  503.     intRows = intRows
  504.     intCols = 6
  505.     
  506.     Dim i As Integer
  507.     With msfGrid
  508.         '.Rows = .FixedRows
  509.         ClipToGrid msfGrid, strIn, intRows + 1, intCols
  510.     
  511.         .MergeCells = flexMergeRestrictRows
  512.         For i = 0 To .Cols - 2
  513.             .MergeCol(i) = True
  514.         Next
  515.     End With
  516.     Exit Sub
  517. FindErr:
  518.     MsgBox "查询未成功!" & vbCrLf & Err.Description, vbExclamation, gTitle
  519.     Err.Clear
  520.     Me.Enabled = True
  521.     Me.MousePointer = 0
  522. End Sub
  523. Private Sub Command2_Click()
  524.     With frmLookMan
  525.         .Show vbModal
  526.         txtEmp = .mWorkNo
  527.     End With
  528. End Sub
  529. Private Sub Form_Load()
  530.     SetGridColor msfGrid
  531.     mFormatString = "^工号" & Space(3) & vbTab _
  532.                    & "<姓 名" & Space(6) & vbTab _
  533.                    & "^性别" & Space(3) & vbTab _
  534.                    & "<部 门" & Space(8) & vbTab _
  535.                    & "<职 务" & Space(8) & vbTab _
  536.                    & "^考勤时间" & Space(11) '6
  537.     msfGrid.FormatString = mFormatString
  538.     txtDate(0) = Format(Now, "yyyy-mm-dd")
  539.     txtDate(1) = Format(Now, "yyyy-mm-dd")
  540.     With cboDept
  541.         .Clear
  542.         FillCbo cboDept, aDepartment, 0
  543.     End With
  544.     optSel_Click mALL
  545. End Sub
  546. Private Sub optSel_Click(Index As Integer)
  547.     Dim blnTemp As Boolean
  548.     blnTemp = Not optSel(mNOTCARD).Value
  549.     Label1(2).Enabled = blnTemp
  550.     cboDept.Enabled = blnTemp
  551.     Label1(3).Enabled = blnTemp
  552.     txtEmp.Enabled = blnTemp
  553.     Command2.Enabled = blnTemp
  554.     
  555. '     Dim blnTemp As Boolean
  556. '     blnTemp = Not optSel(mALL).Value
  557. '     chkSel(0).Enabled = blnTemp
  558. '     If blnTemp Then
  559. '        chkSel(0).Value = 1
  560. '     Else
  561. '        chkSel(0).Value = 0
  562. '        chkSel(1).Value = 0
  563. '     End If
  564. '     chkSel(1).Enabled = blnTemp
  565. End Sub
  566. Private Sub txtDate_GotFocus(Index As Integer)
  567.     GotFocus txtDate(Index)
  568. End Sub
  569. Private Sub txtDate_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
  570.     If KeyCode = 13 Then
  571.         SendKeyTab KeyCode
  572.     End If
  573. End Sub