List 6-186 Business.BillコンポーネントのGetBillsメソッド
  1: Public Function GetBills(ByVal CustomerID As Variant, _
                              ByVal Status As FILTER_BILL, _
                              ByVal start_MADEDATE As Variant, _
                              ByVal end_MADEDATE As Variant, _
                              ByVal start_SUBMITDATE As Variant, _
                              ByVal end_SUBMITDATE As Variant) _
                              As ADODB.Recordset
  2:     ' 指定された条件に合致する請求書の一覧を返す
  3:     ' 【引数】
  4:     '  CustomerID
  5:     '        顧客による絞り込みをするときの顧客番号。
  6:     '        Nullが指定されたときには顧客による絞り込みなし。
  7:     '  Status
  8:     '        請求書の情報による絞り込み。FILTER_BILL列挙型の組み合わせ。
  9:     '        FILTER_BILL_ALLのときにはすべての請求書。
 10:     '  start_MADEDATE
 11:     '        請求書作成日による絞り込みの開始日(この日を含む)。
 12:     '        Nullのときには絞り込みなし。
 13:     '  end_MADEDATE
 14:     '        請求書作成日による絞り込みの終了日(この日を含む)。
 15:     '        Nullのときには絞り込みなし。
 16:     '  start_SUBMITDATE
 17:     '        入金確認日による絞り込みの開始日(この日を含む)。
 18:     '        Nullのときには絞り込みなし。
 19:     '  end_SUBMITDATE
 20:     '        入金管理日による絞り込みの終了日(この日を含む)。
 21:     '        Nullのときには絞り込みなし。
 22:     ' 【戻り値】
 23:     '   条件に合致する請求書一覧を含むADODB.Recordsetオブジェクト
 24:     '   戻り値となるADODB.Recordsetオブジェクトは読み取り専用の閉じたRecordset
 25:     Dim objContext As ObjectContext
 26:     Dim objDataBill As DataObj.Bill
 27:     
 28:     ' オブジェクトコンテキストの取得
 29:     Set objContext = GetObjectContext()
 30:     
 31:     ' エラーハンドラの設定
 32:     On Error GoTo ErrHandle
 33:     
 34:     ' ロールを調べ,AccountingAdminロールやAllAdminロールに属していなければ
 35:     ' 削除ずみの請求書は参照させない
 36:     If Not objContext.IsSecurityEnabled() Then
 37:         ' セキュリティ設定が無効
 38:         Err.Raise Err_NOSECURE, App.Title, _
                      "セキュリティ機構が無効です"
 39:     End If
 40:     
 41:     If Not (objContext.IsCallerInRole("AllAdmin") Or _
                 objContext.IsCallerInRole("AccountingAdmin")) Then
 42:         ' Accountingロールに属していなければ操作させない
 43:         If Not objContext.IsCallerInRole("Accounting") Then
 44:             Err.Raise Err_NOSECURE, App.Title, _
                           "参照権限がありません"
 45:         End If
 46:         ' 削除ずみの請求書は参照させない
 47:         Status = Status And (Not FILTER_BILL_DELETED)
 48:     End If
 49:     
 50:     ' DataObj.Billコンポーネントの実体化
 51:     Set objDataBill = CreateObject("DataObj.Bill")
 52:     
 53:     ' 請求書一覧を取得し,戻り値とする
 54:     Set GetBills = objDataBill.GetRecords(CustomerID, Status, _
                                               start_MADEDATE, end_MADEDATE, _
                                               start_SUBMITDATE, end_SUBMITDATE)
 55:     
 56:     ' DataObj.Billコンポーネントの解放
 57:     Set objDataBill = Nothing
 58:     
 59:     ' トランザクションのコミット
 60:     objContext.SetComplete
 61:     
 62:     ' オブジェクトコンテキストの解放
 63:     Set objContext = Nothing
 64:     
 65:     Exit Function
 66:     
 67: ErrHandle:
 68:     ' エラーハンドラ
 69:     objContext.SetAbort
 70:     Set objContext = Nothing
 71:     Set objDataBill = Nothing
 72:     
 73:     ' エラーの再発行
 74:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 75: End Function