List 7-203 FormBillDetailフォームのRefreshDataプロシージャ


  1: Private Sub RefreshData()
  2:     ' データグリッドに表示されているデータを最新の情報に更新する
  3:     Dim objBill As Business.Bill
  4:     Dim crow As Long
  5:     Dim objRec As ADODB.Recordset
  6:     
  7:     ' データベースに接続して最新の情報を取得し,
  8:     ' データグリッドに表示する
  9:     On Error GoTo ErrHandle
 10:     
 11:     Set objBill = CreateObject("Business.Bill")
 12:     
 13:     Set objRec = objBill.GetBillDetails(BillID)
 14:     
 15:     ' 6列,0行に設定
 16:     FLXGrid_SlipDetail.Cols = 6
 17:     FLXGrid_SlipDetail.Rows = 0
 18:     FLXGrid_SlipDetail.FixedCols = 0
 19:     FLXGrid_SlipDetail.FixedRows = 0
 20:     
 21:     ' 内容をすべて消去
 22:     FLXGrid_SlipDetail.Clear
 23:     
 24:     If Not objRec.EOF Then
 25:         ' 日付順に並び替える
 26:         objRec.Sort = "LASTDATE"
 27:         objRec.MoveFirst
 28:     End If
 29:     
 30:     ' 列見出しを入れる
 31:     FLXGrid_SlipDetail.AddItem "日付" & vbTab & "製品名" & vbTab & _
                                    "数量" & vbTab & "単価" & vbTab & _
                                    "価格" & vbTab & "摘要"
 32: 
 33:     FLXGrid_SlipDetail.ColAlignment(0) = flexAlignRightCenter
 34:     FLXGrid_SlipDetail.ColAlignment(1) = flexAlignLeftCenter
 35:     FLXGrid_SlipDetail.ColAlignment(2) = flexAlignRightCenter
 36:     FLXGrid_SlipDetail.ColAlignment(3) = flexAlignRightCenter
 37:     FLXGrid_SlipDetail.ColAlignment(4) = flexAlignRightCenter
 38:     FLXGrid_SlipDetail.ColAlignment(5) = flexAlignLeftCenter
 39: 
 40:     ' 各列を入れる
 41:     crow = 1
 42:     While Not objRec.EOF
 43:         FLXGrid_SlipDetail.AddItem Format(objRec.Fields("LASTDATE").Value, "m/d") & vbTab & _
                                        objRec.Fields("PRODUCTNAME").Value & vbTab & _
                                        Format(objRec.Fields("NUMBER").Value, "#,##0") & vbTab & _
                                        Format(objRec.Fields("UNITPRICE").Value, """\""#,##0") & vbTab & _
                                        Format(objRec.Fields("PRICE").Value, """\""#,##0") & vbTab & _
 44:                                    objRec.Fields("MEMO").Value & vbTab
 45:         If objRec.Fields("DELETEDFLAG").Value Then
 46:             ' 削除ずみのときには,取り消し線を表示する
 47:             FLXGrid_SlipDetail.col = 0
 48:             FLXGrid_SlipDetail.row = crow
 49:             FLXGrid_SlipDetail.ColSel = 5
 50:             FLXGrid_SlipDetail.RowSel = crow
 51:             FLXGrid_SlipDetail.FillStyle = flexFillRepeat
 52:             FLXGrid_SlipDetail.CellFontStrikeThrough = True
 53:         End If
 54:         objRec.MoveNext
 55:         crow = crow + 1
 56:     Wend
 57:     Set objRec = Nothing
 58:     
 59:     ' 小計,消費税,合計を格納する
 60:     FLXGrid_SlipDetail.AddItem vbTab & vbTab & "小計" & vbTab & _
                                   Format(g_SUBTOTAL, """\""#,##0")
 61:     FLXGrid_SlipDetail.AddItem vbTab & vbTab & "消費税" & vbTab & _
                                   Format(g_TAX, """\""#,##0")
 62:     FLXGrid_SlipDetail.AddItem vbTab & vbTab & "合計" & vbTab & _
                                   Format(g_TOTAL, """\""#,##0")
 63:     
 64:     ' 列見出しを固定する
 65:     FLXGrid_SlipDetail.FixedRows = 1
 66:     
 67:     Set objBill = Nothing
 68:     
 69:     Exit Sub
 70: ErrHandle:
 71:     ' エラーハンドラ
 72:     MsgBox Err.Description, vbOKOnly, "サーバーとの接続に失敗"
 73:     Set objBill = Nothing
 74:     Set objRec = Nothing
 75: End Sub