⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmprojman.frm

📁 用vb编的一个软件项目开发系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      Connect         =   "DSN=SoftSys"
      OLEDBString     =   ""
      OLEDBFile       =   ""
      DataSourceName  =   "SoftSys"
      OtherAttributes =   ""
      UserName        =   "sa"
      Password        =   "sa"
      RecordSource    =   "SELECT * FROM Proj"
      Caption         =   "Adodc1"
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      _Version        =   393216
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "项目状态:"
      Height          =   180
      Left            =   360
      TabIndex        =   6
      Top             =   240
      Width           =   900
   End
End
Attribute VB_Name = "FrmProjMan"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub Refresh_Proj()
  Dim TmpSource, TmpSource1 As String
  '项目主管、业务主管、软件开发主管的SELECT语句是TmpSource
  TmpSource = "SELECT ProjId As 项目编号, ProjName As 项目名称," _
        + " Client As 客户单位, Contact As 联系人, Ctel As 联系电话, ApplyEmp As 申请人," _
        + " ApplyDate As 申请日期, StartDate As 启动日期, Softmanager As 软件开发主管," _
        + " Amount0 As 预算项目金额, Benefit0 As 预算项目利润, FinishDate0 As 计划完成日期," _
        + " Amount As 实际项目金额, Benefit As 实际项目利润, FinishDate As 实际完成日期," _
        + " TesterSign As 测试工程师签字, SQASign As 质量控制工程师签字, ApplyerSign As 业务主管签字" _
        + " FROM Proj WHERE Status=" + Trim(ComboStatus.ListIndex + 1)
  '开发工程师、测试工程师、质量控制工程师的SELECT语句是TmpSource1
  TmpSource1 = "SELECT p.ProjId As 项目编号, p.ProjName As 项目名称," _
        + " p.Client As 客户单位, p.Contact As 联系人, p.Ctel As 联系电话, ApplyEmp As 申请人," _
        + " p.ApplyDate As 申请日期, p.StartDate As 启动日期, p.Softmanager As 软件开发主管," _
        + " p.Amount0 As 预算项目金额, p.Benefit0 As 预算项目利润, p.FinishDate0 As 计划完成日期," _
        + " p.Amount As 实际项目金额, p.Benefit As 实际项目利润, p.FinishDate As 实际完成日期," _
        + " p.TesterSign As 测试工程师签字, p.SQASign As 质量控制工程师签字, p.ApplyerSign As 业务主管签字" _
        + " FROM Proj p, Team t WHERE p.Status=" + Trim(ComboStatus.ListIndex + 1)
  '根据用户类型设置Adodc1的数据源
  Select Case CurUser.UserType
    Case 2 '项目主管
      Adodc1.RecordSource = TmpSource + " ORDER BY ProjId DESC"
    Case 3 '业务主管
      Adodc1.RecordSource = TmpSource + " And ApplyEmp='" + CurUser.Ename + "' ORDER BY ProjId DESC"
    Case 4 '软件开发主管
      Adodc1.RecordSource = TmpSource + " And Softmanager='" + CurUser.Ename + "' ORDER BY ProjId DESC"
    Case 5, 6, 7 '开发工程师、测试工程师、质量控制工程师
      Adodc1.RecordSource = TmpSource1 + " And p.ProjId=t.ProjId And t.Ename='" + CurUser.Ename + "' ORDER BY p.ProjId DESC"
  End Select
  Adodc1.Refresh
  '调用MyProj.CountProj()函数,计算各种状态项目的数量
  lblnum1 = MyProj.CountProj(1, CurUser.Ename, CurUser.UserType)
  lblnum2 = MyProj.CountProj(2, CurUser.Ename, CurUser.UserType)
  lblnum3 = MyProj.CountProj(3, CurUser.Ename, CurUser.UserType)
  lblnum4 = MyProj.CountProj(4, CurUser.Ename, CurUser.UserType)
  lblnum5 = MyProj.CountProj(5, CurUser.Ename, CurUser.UserType)
  lblnum6 = MyProj.CountProj(6, CurUser.Ename, CurUser.UserType)
End Sub

Private Sub Cmd_Add_Click()
  '只有项目主管和业务主管才能添加项目
  Select Case CurUser.UserType
    Case 2    '项目主管批准验收
      If Adodc1.Recordset.BOF = True Then
        MsgBox "请选择记录"
        Exit Sub
      End If
      If Trim(Adodc1.Recordset.Fields(15)) = "" Then
        MsgBox "测试工程师尚未签字"
        Exit Sub
      End If
      If Trim(Adodc1.Recordset.Fields(16)) = "" Then
        MsgBox "质量工程师尚未签字"
        Exit Sub
      End If
      If Trim(Adodc1.Recordset.Fields(17)) = "" Then
        MsgBox "业务主管尚未签字"
        Exit Sub
      End If
      If MsgBox("是否批准验收此项目?", vbYesNo, "请确认") = vbYes Then
        MyProj.Status = 6
        MyProj.UpdateStatus (Adodc1.Recordset.Fields(0))
      End If
    Case 3    '业务主管添加项目
      FrmProjEdit.Modify = False
      FrmProjEdit.lblFilldate = Format(Now, "yyyy-mm-dd")
      FrmProjEdit.lblFillin = CurUser.Ename
      FrmProjEdit.Show 1
  End Select
  Refresh_Proj
End Sub

Private Sub Cmd_Back_Click()
  Unload Me
End Sub

Private Sub Cmd_Del_Click()
  '判断是否删除了选择的记录
  If Adodc1.Recordset.BOF = True Then
    MsgBox "请选择记录"
    Exit Sub
  End If
  '根据用户的类型决定当前的动作
  Select Case CurUser.UserType
    Case 2  '项目主管中止或恢复项目
      If Cmd_Del.Caption = "中止项目" Then
        If MsgBox("是否中止当前项目?", vbYesNo, "请确认") = vbYes Then
          MyProj.Status = 4
          MyProj.UpdateStatus (Adodc1.Recordset.Fields(0))
          Refresh_Proj
        End If
      Else
        If MsgBox("是否恢复当前项目?", vbYesNo, "请确认") = vbYes Then
          MyProj.Status = 3
          MyProj.UpdateStatus (Adodc1.Recordset.Fields(0))
          Refresh_Proj
        End If
      End If
    Case 3  '业务主管可以删除项目
      If MsgBox("是否删除当前项目?", vbYesNo, "请确认") = vbYes Then
        MyProj.Delete (Adodc1.Recordset.Fields(0))
        Refresh_Proj
      End If
  End Select
End Sub

Private Sub Cmd_Modi_Click()
  '判断是否选择了用户
  If Adodc1.Recordset.BOF = True Then
    MsgBox "请选择记录"
    Exit Sub
  End If
  '根据用户类型的不同,功能也不相同
  Select Case CurUser.UserType
    Case 2    '项目主管批准立项
      FrmProjDes.txtProj = Adodc1.Recordset.Fields(1)
      FrmProjDes.OriId = Adodc1.Recordset.Fields(0)
      FrmProjDes.Show 1
    Case 3    '业务主管修改项目(根据项目的当前状态,可以是修改项目,也可以是验收项目)
      If Cmd_Modi.Caption = "修改项目" Then '修改项目
        '读取当前记录的各列数据
        FrmProjEdit.OriId = Adodc1.Recordset.Fields(0)
        FrmProjEdit.txtProj = Trim(Adodc1.Recordset.Fields(1))
        FrmProjEdit.txtClient = Trim(Adodc1.Recordset.Fields(2))
        FrmProjEdit.txtContact = Trim(Adodc1.Recordset.Fields(3))
        FrmProjEdit.txtTel = Trim(Adodc1.Recordset.Fields(4))
        FrmProjEdit.lblFillin = Trim(Adodc1.Recordset.Fields(5))
        FrmProjEdit.lblFilldate = Trim(Adodc1.Recordset.Fields(6))
        FrmProjEdit.txtAmount = Adodc1.Recordset.Fields(9)
        FrmProjEdit.txtBenefit = Adodc1.Recordset.Fields(10)
        FrmProjEdit.txtFinishDate = Adodc1.Recordset.Fields(11)
        FrmProjEdit.Modify = True
        FrmProjEdit.Show 1
      Else  '验收项目
        If Trim(Adodc1.Recordset.Fields(15)) = "" And Trim(Adodc1.Recordset.Fields(16)) = "" Then
          MsgBox "只有测试工程师和质量工程师都批准验收,业务主管才能批准验收"
        Else
          If MsgBox("是否批准此项目通过验收?", vbYesNo, "请确认") = vbYes Then
            MyProj.ApplyerSign = CurUser.Ename
            MyProj.UpdateApplyer (Adodc1.Recordset.Fields(0))
          End If
        End If
      End If
    Case 4    '软件开发主管申请验收
      If MsgBox("是否将此项目申请验收?", vbYesNo, "请确认") = vbYes Then
        MyProj.Status = 5
        MyProj.UpdateStatus (Adodc1.Recordset.Fields(0))
      End If
    Case 6  '测试工程师验收项目
      If MsgBox("是否批准此项目通过验收?", vbYesNo, "请确认") = vbYes Then
        MyProj.TesterSign = CurUser.Ename
        MyProj.UpdateTester (Adodc1.Recordset.Fields(0))
      End If
    Case 7  '质量工程师验收项目
      If MsgBox("是否批准此项目通过验收?", vbYesNo, "请确认") = vbYes Then
        MyProj.SQASign = CurUser.Ename
        MyProj.UpdateSQA (Adodc1.Recordset.Fields(0))
      End If
  End Select
  Refresh_Proj
End Sub

Private Sub ComboStatus_Click()
  Refresh_Proj
  Select Case CurUser.UserType
    Case 2  '项目主管
      If ComboStatus.ListIndex = 0 Then
        Cmd_Modi.Enabled = True
      Else
        Cmd_Modi.Enabled = False
      End If
      If ComboStatus.ListIndex = 4 Then
        Cmd_Add.Enabled = True
      Else
        Cmd_Add.Enabled = False
      End If
      If ComboStatus.ListIndex = 3 Or ComboStatus.ListIndex = 2 Then
        Cmd_Del.Enabled = True
      Else
        Cmd_Del.Enabled = False
      End If
      If ComboStatus.ListIndex = 3 Then
        Cmd_Del.Caption = "恢复项目"
      Else
        Cmd_Del.Caption = "中止项目"
      End If
    Case 3  '业务主管
      If ComboStatus.ListIndex > 0 Then
        Cmd_Add.Enabled = False
        Cmd_Modi.Enabled = False
        '对于申请验收的项目,可以批准验收
        If ComboStatus.ListIndex = 4 Then
          Cmd_Modi.Caption = "批准验收"
          Cmd_Modi.Enabled = True
        End If
        Cmd_Del.Enabled = False
      Else
        Cmd_Add.Enabled = True
        Cmd_Modi.Enabled = True
        Cmd_Del.Enabled = True
      End If
    Case 4  '软件开发主管
      '对于正在实施的项目,申请验收
      If ComboStatus.ListIndex = 2 Then
        Cmd_Modi.Enabled = True
      Else
        Cmd_Modi.Enabled = False
      End If
    Case 6, 7 '测试工程师、质量工程师
      '对于申请验收的项目,可以批准验收
      If ComboStatus.ListIndex = 4 Then
        Cmd_Modi.Enabled = True
      Else
        Cmd_Modi.Enabled = False
      End If
  End Select
End Sub

Private Sub Form_Load()
  ComboStatus.ListIndex = 0
  '根据用户类型设置按钮的属性
  Select Case CurUser.UserType
    Case 2 '项目主管
      Cmd_Add.Caption = "批准验收"
      Cmd_Modi.Caption = "批准立项"
      Cmd_Del.Caption = "中止项目"
    Case 3 '业务主管
      Cmd_Add.Caption = "添加项目"
      Cmd_Modi.Caption = "修改项目"
      Cmd_Del.Caption = "删除项目"
    Case 4 '软件开发主管
      Cmd_Add.Visible = False
      Cmd_Modi.Caption = "申请验收"
      Cmd_Modi.Enabled = False
      Cmd_Del.Visible = False
      Cmd_Back.Left = 4587
    Case 5 '软件开发工程师
      Cmd_Add.Visible = False
      Cmd_Modi.Visible = False
      Cmd_Del.Visible = False
      Cmd_Back.Left = 3500
    Case 6, 7 '测试工程师、质量工程师
      Cmd_Add.Visible = False
      Cmd_Modi.Caption = "批准验收"
      Cmd_Modi.Enabled = False
      Cmd_Del.Visible = False
      Cmd_Back.Left = 4587
  End Select
  '刷新显示
  Refresh_Proj
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -