List 6-135 Business.SlipコンポーネントのGetSlipsメソッド
  1: Public Function GetSlips(ByVal start_MADEDATE As Variant, _
                              ByVal end_MADEDATE As Variant, _
                              ByVal start_DELIVERDATE As Variant, _
                              ByVal end_DELIVERDATE As Variant, _
                              ByVal IncludeOtherMade As Boolean, _
                              ByVal filterSlip As FILTER_SLIP, _
                              ByVal IncludeDeleted As Boolean) As ADODB.Recordset
  2: 
  3:     ' 指定された条件に合致する伝票の一覧を返す
  4:     ' 【引数】
  5:     '   start_MADEDATE = 起票日による絞り込みの開始日(この日を含む)。
  6:     '                    Nullのときには絞り込みなし
  7:     '   end_MADEDATE =  起票日による絞り込みの終了日(この日を含む)。
  8:     '                    Nullのときには絞り込みなし
  9:     '   start_DELIVERDATE = 納入予定日による絞り込みの開始日(この日を含む)。
 10:     '                       Nullのときには絞り込みなし
 11:     '   end_DELIVERDATE = 納入予定日による絞り込みの終了日(この日を含む)。
 12:     '                     Nullのときには絞り込みなし
 13:     '   IncludeOtherMade = 他人が起票した伝票も含むかどうかのフラグ。
 14:     '                      Trueのときには含み,Falseのときには含まない
 15:     '   filterSlip = 伝票の状態による絞り込み。FILTER_SLIP列挙型の組み合わせ。
 16:     '                FILTER_SLIP_ALLのときにはすべての伝票
 17:     '   IncludeDeleted = 削除ずみを含むかどうかのフラグ。
 18:     '                    Trueで含む。Falseで含まない
 19:     ' 【戻り値】
 20:     '   条件に合致する伝票の一覧を含むADODB.Recordsetオブジェクト
 21:     '   戻り値となるADODB.Recordsetオブジェクトは読み取り専用の閉じたレコードセット
 22:     Dim objContext As ObjectContext
 23:     Dim objDataSlip As DataObj.Slip
 24:     
 25:     ' オブジェクトコンテキストの取得
 26:     Set objContext = GetObjectContext()
 27:     
 28:     ' エラーハンドラの設定
 29:     On Error GoTo ErrHandle
 30:     
 31:     ' ロールを調べ,いくつかの値を制限する
 32:     If Not objContext.IsSecurityEnabled() Then
 33:         ' セキュリティ設定が無効
 34:         Err.Raise ERR_NOSECURE, App.Title, "セキュリティ機構が無効です"
 35:     End If
 36:     
 37:     ' filterSlipの制限を変更
 38:     If objContext.IsCallerInRole("AllAdmin") Or _
            objContext.IsCallerInRole("SalesAdmin") Or _
            objContext.IsCallerInRole("SalesManager") Or _
            objContext.IsCallerInRole("Sales") Then
 39:         ' AllAdmin,SalesAdmin,SalesManager,Salesのときには制限なし
 40:         
 41:     Else
 42:         ' FILTER_SLIP_CREATING,
 43:         ' FILTER_SLIP_REJECTED,FILTER_SLIP_REQUESTINGCONSENTの指定は禁止
 44:         filterSlip = filterSlip And _
                            (Not (FILTER_SLIP_CREATING Or _
                                  FILTER_SLIP_REJECTED Or FILTER_SLIP_REQUESTINGCONSENT))
 45:         If Not (objContext.IsCallerInRole("Products") Or _
                objContext.IsCallerInRole("ProductsAdmin")) Then
 46:             ' FILTER_SLIP_CONSENTEDも禁止
 47:             filterSlip = filterSlip And (Not FILTER_SLIP_CONSENTED)
 48:         End If
 49:     End If
 50:     
 51:     ' IncludeDeletedの制限
 52:     If Not (objContext.IsCallerInRole("AllAdmin") Or _
                objContext.IsCallerInRole("SalesAdmin") Or _
                objContext.IsCallerInRole("ProductsAdmin") Or _
                objContext.IsCallerInRole("AccountingAdmin")) Then
 53:         ' IncludeDeletedはFalseに固定
 54:         IncludeDeleted = False
 55:     End If
 56:     
 57:     ' DataObj.Slipコンポーネントの実体化
 58:     Set objDataSlip = CreateObject("DataObj.Slip")
 59:     
 60:     ' 伝票一覧を取得し,戻り値とする
 61:     Set GetSlips = objDataSlip.GetRecords(start_MADEDATE, end_MADEDATE, _
                                               start_DELIVERDATE, end_DELIVERDATE, _
                                               IncludeOtherMade, filterSlip, _
                                               IncludeDeleted)
 62:     ' DataObj.Slipコンポーネントの解放
 63:     Set objDataSlip = Nothing
 64:     
 65:     ' トランザクションのコミット
 66:     objContext.SetComplete
 67:     
 68:     ' オブジェクトコンテキストの解放
 69:     Set objContext = Nothing
 70:     
 71:     Exit Function
 72: 
 73: ErrHandle:
 74:     ' エラーハンドラ
 75:     objContext.SetAbort
 76:     Set objContext = Nothing
 77:     Set objDataSlip = Nothing
 78:     
 79:     ' エラーの再発行
 80:     Err.Raise Err.NUMBER, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 81: End Function