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

其他数据库

开发平台:

Visual Basic

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