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

其他数据库

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  3. Begin VB.Form frmPrn 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "考勤明细报表"
  6.    ClientHeight    =   8625
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   11910
  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            =   "frmPrn.frx":0000
  20.    LinkTopic       =   "Form1"
  21.    LockControls    =   -1  'True
  22.    MaxButton       =   0   'False
  23.    MinButton       =   0   'False
  24.    ScaleHeight     =   8625
  25.    ScaleWidth      =   11910
  26.    ShowInTaskbar   =   0   'False
  27.    StartUpPosition =   2  '屏幕中心
  28.    WindowState     =   2  'Maximized
  29.    Begin VB.CommandButton Command1 
  30.       Cancel          =   -1  'True
  31.       Height          =   435
  32.       Index           =   2
  33.       Left            =   10365
  34.       Picture         =   "frmPrn.frx":000C
  35.       Style           =   1  'Graphical
  36.       TabIndex        =   22
  37.       Top             =   1350
  38.       Width           =   1230
  39.    End
  40.    Begin VB.CommandButton Command1 
  41.       Height          =   435
  42.       Index           =   1
  43.       Left            =   10365
  44.       Picture         =   "frmPrn.frx":1E7D
  45.       Style           =   1  'Graphical
  46.       TabIndex        =   21
  47.       Top             =   765
  48.       Width           =   1230
  49.    End
  50.    Begin VB.CommandButton Command1 
  51.       Height          =   435
  52.       Index           =   0
  53.       Left            =   10365
  54.       Picture         =   "frmPrn.frx":3DE8
  55.       Style           =   1  'Graphical
  56.       TabIndex        =   20
  57.       Top             =   180
  58.       Width           =   1230
  59.    End
  60.    Begin VB.Frame Frame2 
  61.       Height          =   1740
  62.       Left            =   240
  63.       TabIndex        =   13
  64.       Top             =   90
  65.       Width           =   3120
  66.       Begin VB.OptionButton optKq 
  67.          Caption         =   "薪假"
  68.          Height          =   240
  69.          Index           =   5
  70.          Left            =   1650
  71.          TabIndex        =   19
  72.          Top             =   795
  73.          Width           =   780
  74.       End
  75.       Begin VB.OptionButton optKq 
  76.          Caption         =   "出差"
  77.          Height          =   240
  78.          Index           =   4
  79.          Left            =   1650
  80.          TabIndex        =   18
  81.          Top             =   285
  82.          Width           =   780
  83.       End
  84.       Begin VB.OptionButton optKq 
  85.          Caption         =   "请假"
  86.          Height          =   240
  87.          Index           =   3
  88.          Left            =   345
  89.          TabIndex        =   17
  90.          Top             =   1305
  91.          Width           =   780
  92.       End
  93.       Begin VB.OptionButton optKq 
  94.          Caption         =   "旷工"
  95.          Height          =   240
  96.          Index           =   2
  97.          Left            =   345
  98.          TabIndex        =   16
  99.          Top             =   1305
  100.          Visible         =   0   'False
  101.          Width           =   780
  102.       End
  103.       Begin VB.OptionButton optKq 
  104.          Caption         =   "迟到"
  105.          Height          =   240
  106.          Index           =   1
  107.          Left            =   345
  108.          TabIndex        =   15
  109.          Top             =   795
  110.          Width           =   780
  111.       End
  112.       Begin VB.OptionButton optKq 
  113.          Caption         =   "正常"
  114.          Height          =   240
  115.          Index           =   0
  116.          Left            =   345
  117.          TabIndex        =   14
  118.          Top             =   285
  119.          Value           =   -1  'True
  120.          Width           =   780
  121.       End
  122.    End
  123.    Begin VB.Frame Frame1 
  124.       Height          =   1740
  125.       Left            =   3660
  126.       TabIndex        =   6
  127.       Top             =   90
  128.       Width           =   6345
  129.       Begin VB.CommandButton Command2 
  130.          Caption         =   "…"
  131.          Height          =   330
  132.          Left            =   5730
  133.          TabIndex        =   12
  134.          Top             =   1080
  135.          Width           =   330
  136.       End
  137.       Begin VB.TextBox txtEmp 
  138.          Height          =   330
  139.          Left            =   4380
  140.          TabIndex        =   11
  141.          Top             =   1080
  142.          Width           =   1350
  143.       End
  144.       Begin VB.CommandButton cmdSel 
  145.          Caption         =   "…"
  146.          BeginProperty Font 
  147.             Name            =   "宋体"
  148.             Size            =   9
  149.             Charset         =   134
  150.             Weight          =   400
  151.             Underline       =   0   'False
  152.             Italic          =   0   'False
  153.             Strikethrough   =   0   'False
  154.          EndProperty
  155.          Height          =   330
  156.          Index           =   0
  157.          Left            =   3030
  158.          TabIndex        =   1
  159.          TabStop         =   0   'False
  160.          Top             =   420
  161.          Width           =   330
  162.       End
  163.       Begin VB.TextBox txtDate 
  164.          Height          =   330
  165.          Index           =   0
  166.          Left            =   1725
  167.          Locked          =   -1  'True
  168.          TabIndex        =   0
  169.          Top             =   420
  170.          Width           =   1320
  171.       End
  172.       Begin VB.ComboBox cboDept 
  173.          Height          =   330
  174.          Left            =   4380
  175.          Style           =   2  'Dropdown List
  176.          TabIndex        =   4
  177.          Top             =   420
  178.          Width           =   1665
  179.       End
  180.       Begin VB.CommandButton cmdSel 
  181.          Caption         =   "…"
  182.          BeginProperty Font 
  183.             Name            =   "宋体"
  184.             Size            =   9
  185.             Charset         =   134
  186.             Weight          =   400
  187.             Underline       =   0   'False
  188.             Italic          =   0   'False
  189.             Strikethrough   =   0   'False
  190.          EndProperty
  191.          Height          =   330
  192.          Index           =   1
  193.          Left            =   3030
  194.          TabIndex        =   3
  195.          TabStop         =   0   'False
  196.          Top             =   1080
  197.          Width           =   330
  198.       End
  199.       Begin VB.TextBox txtDate 
  200.          Height          =   330
  201.          Index           =   1
  202.          Left            =   1725
  203.          Locked          =   -1  'True
  204.          TabIndex        =   2
  205.          Top             =   1080
  206.          Width           =   1320
  207.       End
  208.       Begin VB.Label Label1 
  209.          AutoSize        =   -1  'True
  210.          Caption         =   "员工:"
  211.          Height          =   210
  212.          Index           =   3
  213.          Left            =   3810
  214.          TabIndex        =   10
  215.          Top             =   1140
  216.          Width           =   525
  217.       End
  218.       Begin VB.Label Label1 
  219.          AutoSize        =   -1  'True
  220.          Caption         =   "部门:"
  221.          Height          =   210
  222.          Index           =   2
  223.          Left            =   3810
  224.          TabIndex        =   9
  225.          Top             =   480
  226.          Width           =   525
  227.       End
  228.       Begin VB.Label Label1 
  229.          AutoSize        =   -1  'True
  230.          Caption         =   "统计起始日期:"
  231.          Height          =   210
  232.          Index           =   0
  233.          Left            =   315
  234.          TabIndex        =   8
  235.          Top             =   480
  236.          Width           =   1365
  237.       End
  238.       Begin VB.Label Label1 
  239.          AutoSize        =   -1  'True
  240.          Caption         =   "统计截至日期:"
  241.          Height          =   210
  242.          Index           =   1
  243.          Left            =   315
  244.          TabIndex        =   7
  245.          Top             =   1140
  246.          Width           =   1365
  247.       End
  248.    End
  249.    Begin MSFlexGridLib.MSFlexGrid msfGrid 
  250.       Height          =   6300
  251.       Left            =   255
  252.       TabIndex        =   5
  253.       Top             =   2115
  254.       Width           =   11400
  255.       _ExtentX        =   20108
  256.       _ExtentY        =   11113
  257.       _Version        =   393216
  258.       FixedCols       =   0
  259.       ScrollBars      =   2
  260.    End
  261. End
  262. Attribute VB_Name = "frmPrn"
  263. Attribute VB_GlobalNameSpace = False
  264. Attribute VB_Creatable = False
  265. Attribute VB_PredeclaredId = True
  266. Attribute VB_Exposed = False
  267. Option Explicit
  268. Const mFRSKQ = "^工  号       |<姓  名           |" _
  269.         & "<部  门           |^考 勤 日 期                |" _
  270.         & "^考 勤 时 间               " '5
  271. Const mKQCOLS = 5
  272. Const mFRSLEAVE = "^工号  |<姓名   |" _
  273.         & "<部 门   |^起始日期     |" _
  274.         & "^起始时间  |^截至日期     |" _
  275.         & "^截止时间  |<请假类型 |" _
  276.         & "<批准人   |<事由       "
  277. Const mLEAVECOLS = 10
  278. Const mFRSABSENT = "^工号  |<姓名       |" _
  279.         & "<部 门       |^起始日期       |" _
  280.         & "^起始时间    |^截止日期       |" _
  281.         & "^截止时间    |<批准人         "
  282. Const mABSENTCOLS = 8
  283. Const mFRSNOTINWORK = "^工号                 |<姓名                  |" _
  284.         & "<部 门                   |" _
  285.         & "^日 期                             "
  286. Const mNOTINWORKCOLS = 4
  287. Dim mGridCols As Integer
  288. '************OPTKQ
  289. Const mNORMAL = 0
  290. Const mLATE = 1
  291. Const mNOTINWORK = 2
  292. Const mLEAVE = 3
  293. Const mEVECTION = 4
  294. Const mMONEY = 5
  295. Private Sub cboDept_KeyDown(KeyCode As Integer, Shift As Integer)
  296.     If KeyCode = 13 Then
  297.         SendKeyTab KeyCode
  298.     End If
  299. End Sub
  300. '
  301. Private Sub cmdSel_Click(Index As Integer)
  302.     frmRiLi.Show vbModal
  303.     If frmRiLi.mRetDate <> Empty Then
  304.         txtDate(Index) = frmRiLi.mRetDate
  305.     End If
  306. End Sub
  307. '
  308. Private Sub Command1_Click(Index As Integer)
  309.     Select Case Index
  310.         Case 0
  311.             If Trim(txtDate(0)) > Trim(txtDate(1)) Then
  312.                 MsgBox Trim(Label1(0)) & "不能大于" & Trim(Label1(1)), vbInformation, gTitle
  313.                 txtDate(0).SetFocus
  314.                 Exit Sub
  315.             End If
  316.             FindDetail
  317.             Command1(1).Enabled = msfGrid.Rows > msfGrid.FixedRows
  318.         Case 1
  319.             Dim tmpStr As String
  320.             If Trim(cboDept.Text) <> gALLDEPTNAME Then
  321.                 tmpStr = Trim(cboDept.Text)
  322.             End If
  323.             If Trim(txtEmp) <> Empty Then
  324.                 If tmpStr <> Empty Then
  325.                     tmpStr = tmpStr & "的员工"
  326.                 End If
  327.                 tmpStr = tmpStr & Trim(txtEmp)
  328.             End If
  329.             
  330.             If Trim(txtDate(0)) <> Trim(txtDate(1)) Then
  331.                 tmpStr = tmpStr & "在" & Trim(txtDate(0)) _
  332.                     & "至" & Trim(txtDate(1)) & "期间"
  333.             Else
  334.                 tmpStr = tmpStr & "在" & Trim(txtDate(0))
  335.             End If
  336.             
  337.             Dim I As Integer
  338.             For I = 0 To optKq.Count - 1
  339.                 If optKq(I).Value Then
  340.                     tmpStr = tmpStr & Trim(optKq(I).Caption)
  341.                     If I = mNORMAL Then tmpStr = tmpStr & "考勤" '正常两个自晦涩不清
  342.                 End If
  343.             Next
  344.             
  345.             tmpStr = tmpStr & "记录"
  346.             
  347.             PrintGridNormal gOwnName & "-" & Me.Caption, _
  348.                 msfGrid, 1, tmpStr, True
  349.         Case 2
  350.             Unload Me
  351.     End Select
  352. End Sub
  353. '
  354. Private Sub FindDetail()
  355.     Dim StartDate As String
  356.     Dim EndDate As String
  357.     Dim intDept As Integer
  358.     Dim strDept As String
  359.     Dim strWorkNo As String
  360.     Dim Sql As String
  361.     Dim IsKq As Boolean
  362.     Dim isLeave As Boolean
  363.     Dim IsAbsent As Boolean
  364.     If optKq(mNORMAL).Value Or optKq(mLATE).Value Then IsKq = True
  365.     If optKq(mLEAVE).Value Then isLeave = True
  366.     If optKq(mEVECTION).Value Or optKq(mMONEY).Value Then IsAbsent = True
  367.     
  368.     On Error GoTo FindErr
  369.     StartDate = Trim(txtDate(0))
  370.     EndDate = Trim(txtDate(1))
  371.     getItemData cboDept, intDept
  372.     strDept = Trim(cboDept.Text)
  373.     strWorkNo = Trim(txtEmp)
  374.     
  375.     Sql = " Select * from  "
  376.     If IsKq Then
  377.         Sql = Sql & "QryKqHistory "
  378.     End If
  379.     
  380.     If isLeave Then
  381.         Sql = Sql & "QryLeave"
  382.     End If
  383.     
  384.     If IsAbsent Then
  385.         Sql = Sql & "QryAbsent"
  386.     End If
  387.     
  388.     
  389.     If IsKq Then
  390.         Sql = Sql & " where KqDate between '" & StartDate & "' and '" _
  391.              & EndDate & "'"
  392.         If optKq(mNORMAL).Value Then
  393.             Sql = Sql & " and KqTime<='" & gLATETIME & "'"
  394.         Else
  395.             Sql = Sql & " and KqTime>'" & gLATETIME & "'"
  396.         End If
  397.     End If
  398.     
  399.     If isLeave Or IsAbsent Then
  400.         Sql = Sql & " Where StartDate>='" & StartDate & "' and " _
  401.             & " EndDate<='" & EndDate & "'"
  402.         If IsAbsent Then
  403.             If optKq(mEVECTION).Value Then
  404.                 Sql = Sql & " and IsEvection=" & gTRUE
  405.             Else
  406.                 Sql = Sql & " and IsEvection=" & gFALSE
  407.             End If
  408.         Else
  409.         End If
  410.     End If
  411.          
  412.     If strWorkNo <> Empty Then
  413.         Sql = Sql & " and " & "InStr(1,WorkNo,'" & strWorkNo & "',0)>0 "
  414.     End If
  415.     If intDept <> gMAXITEM Then Sql = Sql & " and DeptName='" & strDept & "'"
  416.     
  417.     Sql = Sql & " and F_DelFlag=" & gFALSE
  418.     Sql = Sql & " order by Workno,DeptName"
  419.     
  420.     Dim Rst As Recordset
  421.     Dim strIn As String
  422.     Dim intRows As Integer
  423.     Dim intCols As Integer
  424.     Set Rst = gDataBase.OpenRecordset(Sql)
  425.     If Rst.RecordCount > 0 Then
  426.         Do While Not Rst.EOF
  427.             intRows = intRows + 1
  428.             With Rst
  429.                 If IsKq Then
  430.                     strIn = strIn & !WorkNo & vbTab _
  431.                         & !Name & vbTab _
  432.                         & !DeptName & vbTab _
  433.                         & !KqDate & vbTab & !KqTime
  434.                 End If
  435.                 If isLeave Then
  436.                     strIn = strIn & !WorkNo & vbTab _
  437.                         & !Name & vbTab _
  438.                         & !DeptName & vbTab _
  439.                         & !StartDate & vbTab _
  440.                         & !StartTime & vbTab _
  441.                         & !EndDate & vbTab _
  442.                         & !EndTime & vbTab _
  443.                         & !TypeName & vbTab _
  444.                         & !AllowMan & vbTab _
  445.                         & !Reason
  446.                 End If
  447.                 
  448.                 If IsAbsent Then
  449.                     strIn = strIn & !WorkNo & vbTab _
  450.                         & !Name & vbTab _
  451.                         & !DeptName & vbTab _
  452.                         & !StartDate & vbTab _
  453.                         & !StartTime & vbTab _
  454.                         & !EndDate & vbTab _
  455.                         & !EndTime & vbTab _
  456.                         & !AllowMan
  457.                 End If
  458.                 If Not .EOF Then strIn = strIn & vbCr
  459.                 .MoveNext
  460.             End With
  461.         Loop
  462.         Rst.Close
  463.     Else
  464.         MsgBox "没有符合条件的记录", vbInformation, gTitle
  465.     End If
  466.     intRows = intRows + 1
  467.     If IsKq Then intCols = mKQCOLS
  468.     If isLeave Then intCols = mLEAVECOLS
  469.     If IsAbsent Then intCols = mABSENTCOLS
  470.     Dim I As Integer
  471.     With msfGrid
  472.         ClipToGrid msfGrid, strIn, intRows, intCols
  473.         .MergeCells = flexMergeRestrictRows
  474.         For I = 0 To 2
  475.             .MergeCol(I) = True
  476.         Next
  477.     End With
  478.     Exit Sub
  479. FindErr:
  480.     MsgBox Err.Description, vbInformation, gTitle
  481.     Err.Clear
  482. End Sub
  483. Private Sub Command2_Click()
  484.     With frmLookMan
  485.         .Show vbModal
  486.         txtEmp = .mWorkNo
  487.     End With
  488. End Sub
  489. '
  490. Private Sub Form_Load()
  491.     SetGridColor msfGrid
  492.     
  493.     msfGrid.FormatString = mFRSKQ
  494.     txtDate(0) = Format(Now, "yyyy-mm-dd")
  495.     txtDate(1) = Format(Now, "yyyy-mm-dd")
  496.     With cboDept
  497.         .Clear
  498.         FillCbo cboDept, aDepartment, 0
  499.     End With
  500.     optKq(mNORMAL).Value = True
  501. End Sub
  502. Private Sub optKq_Click(Index As Integer)
  503.     With msfGrid
  504.         .Rows = .FixedRows
  505.         .Cols = 1
  506.         Select Case Index
  507.             Case mNORMAL, mLATE
  508.                 .FormatString = mFRSKQ
  509.                 mGridCols = mKQCOLS
  510.             Case mNOTINWORK
  511.                 .FormatString = mFRSNOTINWORK
  512.                 mGridCols = mNOTINWORKCOLS
  513.             Case mLEAVE
  514.                 .FormatString = mFRSLEAVE
  515.                 mGridCols = mLEAVECOLS
  516.             Case mEVECTION, mMONEY
  517.                 .FormatString = mFRSABSENT
  518.                 mGridCols = mABSENTCOLS
  519.         End Select
  520.     End With
  521. End Sub
  522. '
  523. '
  524. Private Sub txtDate_GotFocus(Index As Integer)
  525.     GotFocus txtDate(Index)
  526. End Sub
  527. Private Sub txtDate_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
  528.     If KeyCode = 13 Then
  529.         SendKeyTab KeyCode
  530.     End If
  531. End Sub