📄 proj.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Proj"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'1 ProjId Int 项目编号
'2 ProjName Varchar 50 项目名称
'3 Status Tinyint 项目状态(1 - 申请立项,2 - 批准立项,3 - 实施项目,4 - 中止项目,5 - 申请验收,6 - 完成项目)
'4 Client Varchar 50 客户单位
'5 Contact Varchar 50 联系人姓名
'6 Ctel Varchar 50 联系人电话
'7 ApplyDate Varchar 10 申请立项日期
'8 ApplyEmp Varchar 50 申请人
'9 StartDate Varchar 10 启动日期
'10 Softmanager Varchar 50 负责项目的软件开发主管
'11 Amount0 Decimal 15,2 预算项目总金额
'12 Benefit0 Decimal 15,2 预算项目利润
'13 FinishDate0 Varchar 10 预计完成项目日期
'14 Amount0 Decimal 15,2 实际项目金额
'15 Benefit Decmial 15,2 实际项目利润
'16 FinishDate Varchar 10 实际完成日期
'17 TesterSign Varchar 50 测试工程师签字
'18 SQASign Varchar 50 质量控制工程师签字
'19 ApplyerSign Varchar 50 业务主管签字
Public ProjId As Long
Public ProjName As String
Public Status As Integer
Public Client As String
Public Contact As String
Public Ctel As String
Public ApplyDate As String
Public ApplyEmp As String
Public StartDate As String
Public Softmanager As String
Public Amount0 As Single
Public Benefit0 As Single
Public FinishDate0 As String
Public Amount As Single
Public Benefit As Single
Public FinishDate As String
Public TesterSign As String
Public SQASign As String
Public ApplyerSign As String
Public Sub Init()
ProjId = 0
ProjName = ""
Status = 0
Client = ""
Contact = ""
Ctel = ""
ApplyDate = ""
ApplyEmp = ""
StartDate = ""
Softmanager = ""
Amount0 = 0
Benefit0 = 0
FinishDate0 = ""
Amount = 0
Benefit = 0
FinishDate = ""
TesterSign = ""
SQASign = ""
ApplyerSign = ""
End Sub
Public Function CountProj(ByVal TmpStatus As Integer, _
ByVal TmpUser As String, _
ByVal TmpUserType As Integer) As Integer
DB_Connect
Select Case TmpUserType
Case 2
SqlStmt = "SELECT Count(ProjId) FROM Proj WHERE Status=" _
+ Trim(TmpStatus)
Case 3
SqlStmt = "SELECT Count(ProjId) FROM Proj WHERE Status=" _
+ Trim(TmpStatus) + " And ApplyEmp='" + Trim(TmpUser) + "'"
Case 4
SqlStmt = "SELECT Count(ProjId) FROM Proj WHERE Status=" _
+ Trim(TmpStatus) + " And Softmanager='" + Trim(TmpUser) + "'"
Case 5, 6, 7
SqlStmt = "SELECT Count(p.ProjId) FROM Proj p, Team t WHERE p.Status=" _
+ Trim(TmpStatus) + " And p.ProjId=t.ProjId And t.Ename='" + Trim(TmpUser) + "'"
End Select
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
CountProj = Val(ColVal)
Else
CountProj = 0
End If
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'删除
Public Sub Delete(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "DELETE FROM Proj WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
Public Sub GetInfo(ByVal TmpProjId As Long)
ProjId = TmpProjId
If TmpProjId <= 0 Then
Init
Exit Sub
End If
DB_Connect
SqlStmt = "SELECT * FROM Proj WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 2, 1, ColVal, Len(ColVal), pcblen)
ProjName = TrimStr(ColVal)
ColVal = String(4, 0)
Rc = SQLGetData(Hstmt, 3, 1, ColVal, Len(ColVal), pcblen)
Status = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 4, 1, ColVal, Len(ColVal), pcblen)
Client = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 5, 1, ColVal, Len(ColVal), pcblen)
Contact = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 6, 1, ColVal, Len(ColVal), pcblen)
Ctel = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 7, 1, ColVal, Len(ColVal), pcblen)
ApplyDate = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 8, 1, ColVal, Len(ColVal), pcblen)
ApplyEmp = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 9, 1, ColVal, Len(ColVal), pcblen)
StartDate = TrimStr(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 10, 1, ColVal, Len(ColVal), pcblen)
Softmanager = TrimStr(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 11, 1, ColVal, Len(ColVal), pcblen)
Amount0 = Val(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 12, 1, ColVal, Len(ColVal), pcblen)
Benefit0 = Val(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 13, 1, ColVal, Len(ColVal), pcblen)
FinishDate0 = TrimStr(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 14, 1, ColVal, Len(ColVal), pcblen)
Amount = Val(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 15, 1, ColVal, Len(ColVal), pcblen)
Benefit = Val(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 16, 1, ColVal, Len(ColVal), pcblen)
FinishDate = TrimStr(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 17, 1, ColVal, Len(ColVal), pcblen)
TesterSign = TrimStr(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 18, 1, ColVal, Len(ColVal), pcblen)
SQASign = TrimStr(ColVal)
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 19, 1, ColVal, Len(ColVal), pcblen)
ApplyerSign = TrimStr(ColVal)
Else
Init
End If
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
Public Sub Insert()
DB_Connect
SqlStmt = "INSERT INTO Proj (ProjName, Status, Client, Contact, Ctel," _
+ " ApplyDate, ApplyEmp, StartDate, Softmanager, Amount0, Benefit0," _
+ " FinishDate0, Amount, Benefit, FinishDate, TesterSign, SQASign, ApplyerSign)" _
+ " VALUES('" + Trim(ProjName) + "',1,'" + Trim(Client) + "','" _
+ Trim(Contact) + "','" + Trim(Ctel) + "','" + Trim(ApplyDate) _
+ "','" + Trim(ApplyEmp) + "','" + Trim(StartDate) + "','" + Trim(Softmanager) + "'," _
+ Trim(Amount0) + "," + Trim(Benefit0) + ",'" + Trim(FinishDate0) + "'," _
+ Trim(Amount) + "," + Trim(Benefit) + ",'" + Trim(FinishDate) + "','" _
+ Trim(TesterSign) + "','" + Trim(SQASign) + "','" + Trim(ApplyerSign) + "')"
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'读取当前用户的项目信息到Arr_ProjId()和Arr_ProjName数组中
Public Function Loadproj(ByVal TmpUser As String, _
ByVal TmpUserType As Integer) As Integer
Dim i As Integer
'初始化数组
Erase Arr_ProjId
Erase Arr_ProjName
ReDim Arr_ProjId(0)
ReDim Arr_ProjName(0)
'连接数据库
DB_Connect
'根据用户类型的不同,设置SQL语句
Select Case TmpUserType
Case 2 '项目主管可以查看所有项目
SqlStmt = "SELECT ProjId, ProjName FROM Proj WHERE Status>1"
Case 3 '业务主管可以查看自己申请的项目
SqlStmt = "SELECT ProjId, ProjName FROM Proj WHERE Status>1" _
+ " And ApplyEmp='" + Trim(TmpUser) + "'"
Case 4 '软件开发主管可以查看自己负责的项目
SqlStmt = "SELECT ProjId, ProjName FROM Proj WHERE Status>1" _
+ " And Softmanager='" + Trim(TmpUser) + "'"
Case 5, 6, 7 '其他用户只能查看自己参与的项目
SqlStmt = "SELECT p.ProjId, p.ProjName FROM Proj p, Team t WHERE p.Status>1" _
+ " And p.ProjId=t.ProjId And t.Ename='" + Trim(TmpUser) + "'"
End Select
'执行SQL语句
OdbcExt (SqlStmt)
'依次从结果集中读取项目编号和项目名称数据
i = 0
Do While SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND
ColVal = String(40, 0)
Rc = SQLGetData(Hstmt, 1, 1, ColVal, Lench(ColVal), pcblen)
ReDim Preserve Arr_ProjId(i + 1)
Arr_ProjId(i) = Val(ColVal)
ColVal = String(400, 0)
Rc = SQLGetData(Hstmt, 2, 1, ColVal, Lench(ColVal), pcblen)
ReDim Preserve Arr_ProjName(i + 1)
Arr_ProjName(i) = TrimStr(ColVal)
i = i + 1
Loop
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
'断开与数据库的连接
DB_Disconnect
End Function
'更新数据
Public Sub Update(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET ProjName='" + Trim(ProjName) _
+ "',Client='" + Trim(Client) + "',Contact='" + Trim(Contact) _
+ "',Ctel='" + Trim(Ctel) + "',ApplyDate='" + Trim(ApplyDate) _
+ "',ApplyEmp='" + Trim(ApplyEmp) + "',Amount0=" + Trim(Amount0) _
+ ",Benefit0=" + Trim(Benefit0) + ",FinishDate0='" + Trim(FinishDate0) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新软件主管
Public Sub UpdateSoft(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET Softmanager='" + Trim(Softmanager) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新状态
Public Sub UpdateStatus(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET Status=" + Trim(Status) _
+ " WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新启动日期
Public Sub UpdateStart(ByVal TmpProjId As Long)
DB_Connect
CreateDate = Format(Now, "yyyy-mm-dd")
SqlStmt = "UPDATE Proj SET StartDate='" + Trim(StartDate) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新结果
Public Sub UpdateResult(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET Amount=" + Trim(Amount) + ", Benefit=" _
+ Trim(Benefit) + ", FinishDate='" + Trim(FinishDate) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新测试工程师签字
Public Sub UpdateTester(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET TesterSign='" + Trim(TesterSign) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新质量工程师签字
Public Sub UpdateSQA(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET SQASign='" + Trim(SQASign) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新业务主管签字
Public Sub UpdateApplyer(ByVal TmpProjId As Long)
DB_Connect
SqlStmt = "UPDATE Proj SET ApplyerSign='" + Trim(ApplyerSign) _
+ "' WHERE ProjId=" + Trim(Str(TmpProjId))
OdbcExt (SqlStmt)
Rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -