?? 設備運行_設備故障編輯.frm
字號:
'刪除單據后重置狀態
'1.顯示下一張單據
Call Sub_Next
'2.如果無下一張單據則搜索上一張單據
If Val(Lab_BillId.Caption) = 0 Then
Call Sub_Prev
End If
'3.如無單據則置單據為空狀態
If Val(Lab_BillId.Caption) = 0 Then
'清除錄入文本框
For jsqte = Max_Text_Index To 0 Step -1
LrText(jsqte).Tag = ""
LrText(jsqte).Text = ""
Next jsqte
'設置操作狀態為瀏覽
Lab_OperStatus = "1"
Call Sub_OperStatus("10")
End If
Rec_Query.Requery
Rec_Query.Find "MalfunctionID=" & Val(Lab_BillId.Caption)
Exit Sub
Swcwcl: '單據刪除時出現錯誤
Cw_DataEnvi.DataConnect.RollbackTrans
Tsxx = "單據刪除過程中出現未知錯誤,程序自動恢復保存前狀態!"
Call Xtxxts(Tsxx, 0, 1)
Exit Sub
End Sub
Private Sub Sub_AbandonBill() '放棄對當前單據的操作
Dim jsqte As Long '臨時使用計數器
'如果單據有效則重新顯示當前單據,置單據為空狀態
If Not Rec_Query.EOF Then
Lab_BillId.Caption = Rec_Query.Fields("MalfunctionID")
Call Sub_ShowBill
Else
'單據ID置為0
Lab_BillId.Caption = 0
'清除錄入文本框
For jsqte = Max_Text_Index To 0 Step -1
LrText(jsqte).Tag = ""
LrText(jsqte).Text = ""
Next jsqte
End If
'設置操作狀態為瀏覽
Lab_OperStatus = "1"
Call Sub_OperStatus("10")
End Sub
Private Function Sub_SaveBill() As Boolean '保 存 單 據
Dim RecTemp As New ADODB.Recordset '臨時使用動態集
Dim Rec_Bill As New ADODB.Recordset '單據表動態集
Dim jsqte As Integer '臨時計數器
Sub_SaveBill = False
'一.============先對單據內容進行有效性判斷==============='
'先進行字段不能為空或不能為零有效性判斷(Fixed)
For jsqte = 0 To Max_Text_Index
If Textint(jsqte, 8) = 1 Then '字段不能為空
If Len(Trim(LrText(jsqte).Text)) = 0 Then
Tsxx = Textstr(jsqte, 7) & "不能為空!"
Call Xtxxts(Tsxx, 0, 1)
LrText(jsqte).SetFocus
Exit Function
End If
Else
If Textint(jsqte, 8) = 2 Then '字段不能為零
If Val(Trim(LrText(jsqte).Text)) = 0 Then
Tsxx = Textstr(jsqte, 7) & "不能為零!"
Call Xtxxts(Tsxx, 0, 1)
LrText(jsqte).SetFocus
Exit Function
End If
End If
End If
Next jsqte
'對需要進行事后判斷的文本框錄入內容進行有效性判斷 (Fixed)
For jsqte = 0 To Max_Text_Index
If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
If Not TextYxxpd(jsqte) Then
Exit Function
End If
End If
Next jsqte
'[>>
'可在此區域寫入其他對單據表頭內容的有效性判斷,具體格式參照如下
'<<]
'二.=============如果以上有效性檢查均順利通過,則執行存盤動作============'
'對存盤進行事務處理(Fixed)
On Error GoTo Swcwcl
Cw_DataEnvi.DataConnect.BeginTrans
'判斷單據狀態以進行不同處理
'1.先對單據主表進行處理
If Trim(Lab_OperStatus) = "2" Then
'新增單據
'1.對于某些單據號自動生成的單據則可在此處自動生成
LrText(0).Text = CreatBillCode(BillCode, True)
'2.開始存盤
'打開單據表動態集
If Rec_Bill.State = 1 Then Rec_Bill.Close
Rec_Bill.Open "Select * From Dev_Malfunction Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
With Rec_Bill
.AddNew
.Fields("MalfunctionID") = CreatBillID(BillCode) '故障ID
.Fields("MalfunCode") = Trim(LrText(0).Text) '故障單號
.Fields("DEVID") = Trim(LrText(1).Text) '設備編號
.Fields("ConkPheno") = Trim(LrText(5).Text) '故障現象
.Fields("RepairSort") = Trim(LrText(6).Tag) '維修類別
.Fields("RprPosition") = Trim(LrText(7).Text)
.Fields("RepairUnit") = Trim(LrText(8).Text) '維修單位
.Fields("WorkHour") = Val(LrText(9).Text) '工時
.Fields("ConkOutCause") = Trim(LrText(10).Text) '故障原因
.Fields("DealResult") = Trim(LrText(11).Text) '處理結果
.Fields("ArisesDate") = CDate(LrText(12).Text) '發生日期
.Fields("StopTime") = Val(LrText(13).Text) '停機臺時
.Fields("ConkType") = Trim(LrText(14).Tag) '故障類型
.Fields("Operation") = Trim(LrText(15).Tag)
.Fields("Remark") = Trim(LrText(16).Text) '備注
.Fields("Maker") = Xtczy '制表人
.Fields("MakerDate") = Xtrq '制表日期
.Fields("Checker") = "" '審核人
.Update
'系統讀出單據ID寫入Lab_BillID
Lab_BillId.Caption = .Fields("MalfunctionID")
End With
Else
'修改單據
'打開單據表動態集
If Rec_Bill.State = 1 Then Rec_Bill.Close
Rec_Bill.Open "Select * From Dev_Malfunction Where MalfunctionID=" & Val(Lab_BillId.Caption), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
With Rec_Bill
.Fields("MalfunCode") = Trim(LrText(0).Text) '故障單號
.Fields("DEVID") = Trim(LrText(1).Text) '設備編號
.Fields("ConkPheno") = Trim(LrText(5).Text) '故障現象
.Fields("RepairSort") = Trim(LrText(6).Tag) '維修類別
.Fields("RprPosition") = Trim(LrText(7).Text)
.Fields("RepairUnit") = Trim(LrText(8).Text) '維修單位
.Fields("WorkHour") = Val(LrText(9).Text) '工時
.Fields("ConkOutCause") = Trim(LrText(10).Text) '故障原因
.Fields("DealResult") = Trim(LrText(11).Text) '處理結果
.Fields("ArisesDate") = CDate(LrText(12).Text) '發生日期
.Fields("StopTime") = Val(LrText(13).Text) '停機臺時
.Fields("ConkType") = Trim(LrText(14).Tag) '故障類型
.Fields("Operation") = Trim(LrText(15).Tag)
.Fields("Remark") = Trim(LrText(16).Text) '備注
.Fields("Maker") = Xtczy '制表人
.Fields("MakerDate") = Xtrq '制表日期
.Fields("Checker") = "" '審核人
.Update
End With
End If
Cw_DataEnvi.DataConnect.CommitTrans
Sub_SaveBill = True
Tsxx = "單據存盤完畢! 單據號:" & Trim(LrText(0).Text)
Call Xtxxts(Tsxx, 0, 4)
'標識單據發生改動
Bln_BillChange = True
'設置單據改變后的狀態
Lab_OperStatus = "1"
Call Sub_OperStatus("10")
Rec_Query.Requery
Rec_Query.Find "MalfunctionID=" & Val(Lab_BillId.Caption)
Exit Function
Swcwcl: '數據存盤時出現錯誤
Cw_DataEnvi.DataConnect.RollbackTrans
Tsxx = "存盤過程中出現未知錯誤,程序自動恢復保存前狀態!"
Call Xtxxts(Tsxx, 0, 1)
Exit Function
End Function
'選擇首張,上張,下張,末張(此4個過程只需用您的單據ID字段名替換"MalfunctionID"即可)
Private Sub Sub_First() '首 張
With Rec_Query
If .RecordCount = 0 Then
Exit Sub
End If
.MoveFirst
Lab_BillId.Caption = .Fields("MalfunctionID")
Call Sub_ShowBill
End With
End Sub
Private Sub Sub_Prev() '上 張
With Rec_Query
If .RecordCount = 0 Then
Exit Sub
End If
If Not .BOF Then
.MovePrevious
End If
If Not .BOF Then
Lab_BillId.Caption = .Fields("MalfunctionID")
Else
.MoveNext
End If
Call Sub_ShowBill
End With
End Sub
Private Sub Sub_Next() '下 張
With Rec_Query
If .RecordCount = 0 Then
Exit Sub
End If
If Not .EOF Then
.MoveNext
End If
If Not .EOF Then
Lab_BillId.Caption = .Fields("MalfunctionID")
Else
.MovePrevious
End If
Call Sub_ShowBill
End With
End Sub
Private Sub Sub_Last() '末 張
With Rec_Query
If .RecordCount = 0 Then
Exit Sub
End If
.MoveLast
Lab_BillId.Caption = .Fields("MalfunctionID")
Call Sub_ShowBill
End With
End Sub
'[>>===================以下為根據實際業務需要自定義過程區域=============================<<]
'審核,棄審
Private Sub Sub_CheckBill() '審 核
'[>>
'此處可以寫入禁止單據審核的理由
'<<]
If Not Security_Log("Dev_MalfunctionCheck", Xtczybm, 1, True) Then
Exit Sub
End If
'將單據寫入審核標識
Cw_DataEnvi.DataConnect.Execute ("Update Dev_Malfunction Set Checker='" & Xtczy & "' Where MalfunctionID=" & Val(Lab_BillId.Caption))
'寫入系統操作員
LrText(19).Text = Xtczy
'設置審核棄審按鈕狀態
Call Sub_CheckStatus
'標識單據發生變化
Bln_BillChange = True
End Sub
Private Sub Sub_AbandonCheck() '棄 審
'[>>
'此處可以寫入禁止單據棄審的理由
'<<]
If Not Security_Log("Dev_MalfunctionCheck", Xtczybm, 1, True) Then
Exit Sub
End If
'將單據清除審核標識
Cw_DataEnvi.DataConnect.Execute ("Update Dev_Malfunction Set Checker='' Where MalfunctionID=" & Val(Lab_BillId.Caption))
'清空單據審核人
LrText(19).Text = ""
'設置審核棄審按鈕狀態
Call Sub_CheckStatus
'標識單據發生變化
Bln_BillChange = True
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -