List 7-139 FormSlipフォームのg_objRec_MoveCompleteプロシージャ


  1: Private Sub g_objRec_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
                                       ByVal pError As ADODB.Error, _
                                       adStatus As ADODB.EventStatusEnum, _
                                       ByVal pRecordset As ADODB.Recordset)
  2:     ' カレントレコードの位置が変更されたときの処理
  3:     Dim enableFlag As Boolean
  4:     Dim objSlip As Business.Slip
  5:     Dim state As SlipStatus
  6:     
  7:     If pRecordset.EOF Or pRecordset.BOF Then
  8:         ' カレントレコードが空である
  9:         enableFlag = False
 10:     Else
 11:         enableFlag = True
 12:     End If
 13:     
 14:     BTN_EDIT.Enabled = enableFlag
 15:     BTN_DELETE.Enabled = enableFlag
 16:     BTN_UNDELETE.Enabled = enableFlag
 17:     BTN_DETAIL.Enabled = enableFlag
 18:     
 19:     BTN_REQUESTCONSENT.Enabled = False
 20:     BTN_CANCELREQUESTCONSENT.Enabled = False
 21:     BTN_CONSENT.Enabled = False
 22:     BTN_CANCELCONSENT.Enabled = False
 23:     BTN_REJECT.Enabled = False
 24:     BTN_CANCELREJECT.Enabled = False
 25:     BTN_SEND.Enabled = False
 26:     BTN_CANCELSEND.Enabled = False
 27:     BTN_ACCOUNTING.Enabled = False
 28:     BTN_CANCELACCOUNTING.Enabled = False
 29:     BTN_MAKEONEBILL.Enabled = False
 30:     
 31:     If enableFlag Then
 32:         On Error Resume Next
 33:         ' 現在の伝票の状態を取得する
 34:         Set objSlip = CreateObject("Business.Slip")
 35:         state = objSlip.GetSlip_Status(pRecordset.Fields("ID").Value)
 36:         Set objSlip = Nothing
 37:         
 38:         Select Case state
 39:             Case Creating
 40:                 ' 作成中
 41:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_SALES Or _
                                     ROLE_SALESMANAGER Or ROLE_SALESADMIN) Then
 42:                     BTN_REQUESTCONSENT.Enabled = True
 43:                 End If
 44:             Case RequestingConsent
 45:                 ' 承認依頼中
 46:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_SALES Or _
                                     ROLE_SALESMANAGER Or ROLE_SALESADMIN) Then
 47:                     BTN_CANCELREQUESTCONSENT.Enabled = True
 48:                 End If
 49:                 If g_uRole And (ROLE_ALLADMIN Or _
                                     ROLE_SALESMANAGER Or ROLE_SALESADMIN) Then
 50:                     BTN_CONSENT.Enabled = True
 51:                     BTN_REJECT.Enabled = True
 52:                 End If
 53:             Case Rejected
 54:                 ' 却下されている
 55:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_SALES Or _
                                     ROLE_SALESMANAGER Or ROLE_SALESADMIN) Then
 56:                     BTN_REQUESTCONSENT.Enabled = True
 57:                 End If
 58:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_SALESMANAGER Or _
                                     ROLE_SALESADMIN) Then
 59:                     BTN_CANCELREJECT.Enabled = True
 60:                 End If
 61:             Case Consented
 62:                 ' 承認ずみ
 63:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_PRODUCTS Or _
                                     ROLE_PRODUCTSADMIN) Then
 64:                     BTN_SEND.Enabled = True
 65:                 End If
 66:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_SALES Or _
                                     ROLE_SALESMANAGER Or ROLE_SALESADMIN) Then
 67:                     BTN_CANCELCONSENT.Enabled = True
 68:                 End If
 69:             Case Send
 70:                 ' 発送ずみ
 71:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_PRODUCTSADMIN) Then
 72:                     BTN_CANCELSEND.Enabled = True
 73:                 End If
 74:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_ACCOUNTING Or _
                                     ROLE_ACCOUNTINGADMIN) Then
 75:                     BTN_ACCOUNTING.Enabled = True
 76:                 End If
 77:             Case Accounted
 78:                 ' 経理処理ずみ
 79:                 If g_uRole And (ROLE_ALLADMIN Or ROLE_ACCOUNTING Or _
                                     ROLE_ACCOUNTINGADMIN) Then
 80:                     BTN_CANCELACCOUNTING.Enabled = True
 81:                     BTN_MAKEONEBILL.Enabled = True
 82:                 End If
 83:         End Select
 84:     End If
 85:     Set objSlip = Nothing
 86: End Sub