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

其他数据库

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
  3. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
  4. Begin VB.Form frmPlan 
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "日常排班"
  7.    ClientHeight    =   8625
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   11910
  11.    BeginProperty Font 
  12.       Name            =   "宋体"
  13.       Size            =   10.5
  14.       Charset         =   134
  15.       Weight          =   400
  16.       Underline       =   0   'False
  17.       Italic          =   0   'False
  18.       Strikethrough   =   0   'False
  19.    EndProperty
  20.    Icon            =   "frmPlan.frx":0000
  21.    LinkTopic       =   "Form1"
  22.    MaxButton       =   0   'False
  23.    MinButton       =   0   'False
  24.    ScaleHeight     =   8625
  25.    ScaleWidth      =   11910
  26.    ShowInTaskbar   =   0   'False
  27.    StartUpPosition =   3  '窗口缺省
  28.    Begin ComctlLib.TreeView tvwPlan 
  29.       Height          =   6360
  30.       Left            =   135
  31.       TabIndex        =   0
  32.       Top             =   450
  33.       Width           =   1665
  34.       _ExtentX        =   2937
  35.       _ExtentY        =   11218
  36.       _Version        =   327682
  37.       LabelEdit       =   1
  38.       Style           =   6
  39.       Appearance      =   1
  40.    End
  41.    Begin VB.Frame Frame1 
  42.       Height          =   1140
  43.       Left            =   195
  44.       TabIndex        =   2
  45.       Top             =   7020
  46.       Width           =   11460
  47.       Begin VB.CommandButton cmdPlan 
  48.          Caption         =   "返回(&R)"
  49.          Height          =   555
  50.          Index           =   5
  51.          Left            =   9630
  52.          TabIndex        =   8
  53.          Top             =   375
  54.          Width           =   1530
  55.       End
  56.       Begin VB.CommandButton cmdPlan 
  57.          Caption         =   "打印排班表(&P)"
  58.          Enabled         =   0   'False
  59.          Height          =   555
  60.          Index           =   4
  61.          Left            =   7767
  62.          TabIndex        =   7
  63.          Top             =   375
  64.          Width           =   1530
  65.       End
  66.       Begin VB.CommandButton cmdPlan 
  67.          Caption         =   "查看排班(&L)"
  68.          Enabled         =   0   'False
  69.          Height          =   555
  70.          Index           =   0
  71.          Left            =   315
  72.          TabIndex        =   6
  73.          Top             =   375
  74.          Width           =   1530
  75.       End
  76.       Begin VB.CommandButton cmdPlan 
  77.          Caption         =   "集体排班(&G)"
  78.          Enabled         =   0   'False
  79.          Height          =   555
  80.          Index           =   1
  81.          Left            =   2178
  82.          TabIndex        =   5
  83.          Top             =   375
  84.          Width           =   1530
  85.       End
  86.       Begin VB.CommandButton cmdPlan 
  87.          Caption         =   "单个排班(&S)"
  88.          Enabled         =   0   'False
  89.          Height          =   555
  90.          Index           =   2
  91.          Left            =   4041
  92.          TabIndex        =   4
  93.          Top             =   375
  94.          Width           =   1530
  95.       End
  96.       Begin VB.CommandButton cmdPlan 
  97.          Caption         =   "查找员工(&Y)"
  98.          Enabled         =   0   'False
  99.          Height          =   555
  100.          Index           =   3
  101.          Left            =   5904
  102.          TabIndex        =   3
  103.          Top             =   375
  104.          Width           =   1530
  105.       End
  106.    End
  107.    Begin MSFlexGridLib.MSFlexGrid msfGrid 
  108.       Bindings        =   "frmPlan.frx":000C
  109.       Height          =   6375
  110.       Left            =   1815
  111.       TabIndex        =   1
  112.       Top             =   450
  113.       Width           =   9915
  114.       _ExtentX        =   17489
  115.       _ExtentY        =   11245
  116.       _Version        =   393216
  117.       FixedCols       =   0
  118.       AllowBigSelection=   0   'False
  119.       HighLight       =   0
  120.    End
  121.    Begin VB.Label lblPlan 
  122.       AutoSize        =   -1  'True
  123.       BeginProperty Font 
  124.          Name            =   "宋体"
  125.          Size            =   12
  126.          Charset         =   134
  127.          Weight          =   400
  128.          Underline       =   0   'False
  129.          Italic          =   0   'False
  130.          Strikethrough   =   0   'False
  131.       EndProperty
  132.       ForeColor       =   &H000040C0&
  133.       Height          =   240
  134.       Left            =   4950
  135.       TabIndex        =   9
  136.       Top             =   105
  137.       Width           =   120
  138.    End
  139. End
  140. Attribute VB_Name = "frmPlan"
  141. Attribute VB_GlobalNameSpace = False
  142. Attribute VB_Creatable = False
  143. Attribute VB_PredeclaredId = True
  144. Attribute VB_Exposed = False
  145. Option Explicit
  146. Dim mNode As Node
  147. Dim mFormatString As String
  148. Dim mAllowGroup As Boolean
  149. Dim mDeptID As Integer
  150. Dim mDeptName As String
  151. Const mLog = "R"
  152. Const mYEAR = "年"
  153. Const mMONTH = "月"
  154. Const mPlanStr = "的排班情况"
  155. Const mMsg1 = "抱歉,初始化表不成功,您不能进入排班!!"
  156. '********
  157. Const mLookPlan = 0
  158. Const mGroupPlan = 1
  159. Const mSinglePlan = 2
  160. Const mLookEmp = 3
  161. Const mPrintPlan = 4
  162. Const mClosePlan = 5
  163. '*****msfGrid
  164. Const mGridWorkNo = 1
  165. Const mGridName = 0
  166. '***frmdetail.mtitle
  167. Const mstrDui = "对"
  168. Const mstrEmployee = "的员工"
  169. Const mstrDoPlan = "进行排班"
  170. Const mstrLook = "查看"
  171. Const mstrPlan = "的排班"
  172. Private Sub cmdPlan_Click(Index As Integer)
  173.     Select Case Index
  174.         Case mGroupPlan, mSinglePlan, mLookPlan
  175.             If msfGrid.Rows <= msfGrid.FixedRows Then Exit Sub
  176.             DoPlan Index
  177.         Case mLookEmp
  178.             DoLookEmp
  179.         Case mPrintPlan
  180.             Dim tmpStr As String
  181.             tmpStr = gOwnName & "-" & Me.Caption
  182.             PrintGridNormal tmpStr, _
  183.                 msfGrid, 1, "", True
  184.         Case mClosePlan
  185.             Unload Me
  186.     End Select
  187. End Sub
  188. Private Sub DoLookEmp()
  189.     Dim MyfrmLookMan As frmLookMan
  190.     Dim Sql As String
  191.     Dim strWorkNo As String
  192.     Dim DeptName  As String
  193.     Dim i As Integer
  194.     Dim NodX As Node
  195.     Dim H As Integer
  196.     Set MyfrmLookMan = New frmLookMan
  197.     With MyfrmLookMan
  198.         .Show vbModal
  199.         strWorkNo = Trim(.mWorkNo)
  200.         DeptName = Trim(.mDept)
  201.     End With
  202.     If strWorkNo <> Empty Then
  203.         If DeptName <> Trim(mNode.Text) Then
  204.             For i = 0 To tvwPlan.Nodes.Count - 1
  205.                 If Trim(tvwPlan.Nodes(i).Text) = DeptName Then
  206.                     Set NodX = tvwPlan.Nodes(i)
  207.                     tvwPlan_NodeClick NodX
  208.                     Exit For
  209.                 End If
  210.             Next
  211.         End If
  212.         With msfGrid
  213.             CloseColor msfGrid
  214.             If .Redraw Then .Redraw = False
  215.             For i = .FixedRows To .Rows - 1
  216.                 If Trim(.TextMatrix(i, mGridWorkNo)) = strWorkNo Then
  217.                      For H = 0 To .Cols - 1
  218.                         .row = i
  219.                         .col = H
  220.                         .CellBackColor = gCellSelBackColor
  221.                         .CellForeColor = gCellSelForeColor
  222.                     Next
  223.                     Exit For
  224.                 End If
  225.             Next
  226.             .Redraw = True
  227.         End With
  228.     End If
  229.     
  230.     Unload MyfrmLookMan
  231. End Sub
  232. Private Sub DoPlan(Index As Integer)
  233.     Dim MyfrmDetail As frmDetail
  234.     Set MyfrmDetail = New frmDetail
  235.     Dim strName As String
  236.     Dim strTemp As String
  237.     With MyfrmDetail
  238.         If Index = mGroupPlan Then
  239.             If Not mAllowGroup Then Exit Sub
  240.             .mDeptID = mDeptID
  241.             .mWorkNo = Trim(msfGrid.TextMatrix _
  242.                 (msfGrid.FixedRows, mGridWorkNo))
  243.             .mTitle = mstrDui & "[" & mDeptName & "]" & mstrDoPlan
  244.             .mIsToLook = False
  245.         Else
  246.             .mDeptID = Empty
  247.             .mWorkNo = Trim(msfGrid.TextMatrix _
  248.                 (msfGrid.row, mGridWorkNo))
  249.             strName = Trim(msfGrid.TextMatrix(msfGrid.row, mGridName))
  250.             If Index = mSinglePlan Then
  251.                 strTemp = mstrDui
  252.             Else
  253.                 strTemp = mstrLook
  254.             End If
  255.             strTemp = strTemp & "[" & mDeptName & "]" & mstrEmployee _
  256.                      & "[" & strName & "]"
  257.             If Index = mSinglePlan Then
  258.                 .mTitle = strTemp & mstrDoPlan
  259.                 .mIsToLook = False
  260.             Else
  261.                 .mTitle = strTemp & mstrPlan
  262.                 .mIsToLook = True
  263.             End If
  264.         End If
  265.         '.mTableName = Trim(mTableName)
  266.         '.mQryName = Trim(gCMDQUERY)
  267.         .Show vbModal
  268.         If .mNeedToRefresh Then tvwPlan_NodeClick mNode
  269.         Unload MyfrmDetail
  270.     End With
  271. End Sub
  272. Private Sub Form_Load()
  273.     mAllowGroup = True
  274.     
  275.     If Not CreatePlanTable Then
  276.         MsgBox mMsg1, vbCritical, gTitle
  277.         End '若用unload me 会造成循环显示上面的提示
  278.     End If
  279.     Me.Caption = Format(Year(Date), "0000") & mYEAR _
  280.         & Format(Month(Date), "00") & mMONTH _
  281.         & Space(2) & Me.Caption
  282.     mFormatString = "<姓名   " & vbTab _
  283.         & "^卡号 " & vbTab
  284.     IniMyGrid
  285.      
  286.     AddDataToTreeView
  287. End Sub
  288. Private Sub IniMyGrid()
  289.     Dim i As Integer
  290.     
  291.     For i = 1 To gMaxDay
  292.         mFormatString = mFormatString & CStr(i)
  293.         If i <> gMaxDay Then mFormatString = mFormatString & vbTab
  294.     Next
  295.     SetGridColor msfGrid
  296.     msfGrid.FormatString = mFormatString
  297. End Sub
  298. Private Sub AddDataToTreeView()
  299.     Dim i As Integer
  300.     Dim NodX As Node
  301.     With tvwPlan
  302.         If UBound(aDepartment) < 1 Then Exit Sub
  303.         For i = 1 To UBound(aDepartment)
  304.             .Nodes.Add , , mLog & aDepartment(i).ID, _
  305.                 aDepartment(i).Name
  306.         Next
  307.     End With
  308.     Set NodX = tvwPlan.Nodes(1)
  309.     tvwPlan_NodeClick NodX
  310. End Sub
  311. Private Sub msfGrid_DblClick()
  312.     cmdPlan_Click mLookPlan
  313. End Sub
  314. Private Sub tvwPlan_NodeClick(ByVal Node As ComctlLib.Node)
  315. '    Dim DeptID As Integer
  316. '    Dim QD As QueryDef
  317. '    Dim DeptRst As Recordset
  318.     Dim EmpRst As Recordset
  319.     Dim ShiftRst As Recordset
  320.     Dim Sql As String
  321.     Dim strWorkNo As String
  322.     Dim strName As String
  323.     Dim strShift As String
  324.     Dim Str As String
  325.     Dim intRows As Integer
  326.     Dim intCols As Integer
  327.     
  328.     Set mNode = Node
  329.     'mNodeIndex=tvwplan.Nodes
  330.     mAllowGroup = True
  331.     mDeptID = CInt(Val(Mid(Node.Key, Len(mLog) + 1)))
  332.     mDeptName = Trim(Node.Text)
  333. '    Set QD = gDataBase.QueryDefs(mQuery)
  334.     'QD.Parameters("DeptID") = DeptID
  335.     'Set DeptRst = QD.OpenRecordset(dbOpenSnapshot)
  336.     Sql = "select distinct Name,WorkNo from " & gPlanQryName _
  337.         & " where DeptID=" & mDeptID _
  338.         & " order by WorkNo"
  339.     Set EmpRst = gDataBase.OpenRecordset(Sql, dbOpenSnapshot)
  340.     While Not EmpRst.EOF
  341.         intRows = intRows + 1
  342.         strName = Trim(EmpRst!Name)
  343.         strWorkNo = Trim(EmpRst!WorkNo)
  344.         Str = Str & strName & vbTab & strWorkNo & vbTab
  345.         Sql = "select ShiftName from " & gPlanQryName _
  346.             & " where WorkNo='" & strWorkNo _
  347.             & "' order by F_Day"
  348.         Set ShiftRst = gDataBase.OpenRecordset(Sql, dbOpenSnapshot)
  349.         While Not ShiftRst.EOF
  350.             strShift = IIf(IsNull(ShiftRst!ShiftName), "", Trim(ShiftRst!ShiftName))
  351.             If mAllowGroup Then
  352.                 If strShift <> Empty Then mAllowGroup = False
  353.             End If
  354.             Str = Str & strShift & vbTab
  355.             ShiftRst.MoveNext
  356.         Wend
  357.         ShiftRst.Close
  358.         Set ShiftRst = Nothing
  359.         If Not EmpRst.EOF Then Str = Str & vbCr
  360.         EmpRst.MoveNext
  361.     Wend
  362.     EmpRst.Close
  363.     Set EmpRst = Nothing
  364.     
  365.     intRows = intRows + 1
  366.     intCols = gMaxDay + 2 'col name and workno
  367.     ClipToGrid msfGrid, Str, intRows, intCols
  368.     
  369.     ChangeTolblPlan Trim(Node.Text)
  370.     ChangeToCmdPlan
  371. End Sub
  372. Private Sub ChangeToCmdPlan()
  373.     Dim i As Integer
  374.     Dim IsAllowChange As Boolean
  375.     IsAllowChange = (msfGrid.Rows > msfGrid.FixedRows)
  376.     For i = 0 To cmdPlan.Count - 2
  377.         cmdPlan(i).Enabled = IsAllowChange
  378.         If IsAllowChange Then
  379.             If i = mGroupPlan Then
  380.                 cmdPlan(i).Enabled = mAllowGroup
  381.             End If
  382.         End If
  383.     Next
  384. End Sub
  385. Private Sub ChangeTolblPlan(Str As String)
  386.     Dim intLeft As Integer
  387.     lblPlan = Str & mPlanStr
  388.     intLeft = CInt((Me.Width - Me.TextWidth(lblPlan.Caption)) / 2)
  389.     lblPlan.Left = intLeft
  390. End Sub