📄 frmprojman.frm
字号:
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 + -