List 7-148 FormSlipDetailフォームのRefreshDataプロシージャ
1: Private WithEvents g_objRec As ADODB.Recordset
2:
3: Private Sub RefreshData()
4: ' データグリッドに表示されているデータを最新の情報に更新する
5: Dim objSlip As Business.Slip
6: Dim crow As Long
7: Dim CustomerID As Variant, SUBTOTAL As Variant
8: Dim TAX As Variant, TOTAL As Variant
9: Dim MADEDATE As Variant, MADEUSER As Variant
10: Dim LASTDATE As Variant, LASTUSER As Variant
11:
12: ' データベースに接続して最新の情報を取得し,
13: ' データグリッドに表示する
14: On Error GoTo ErrHandle
15:
16: Set objSlip = CreateObject("Business.Slip")
17:
18: Set g_objRec = objSlip.GetSlipDetails(SlipID)
19:
20: ' 5列,0行に設定
21: FLXGrid_SlipDetail.Cols = 5
22: FLXGrid_SlipDetail.Rows = 0
23: FLXGrid_SlipDetail.FixedCols = 0
24: FLXGrid_SlipDetail.FixedRows = 0
25:
26: ' 内容をすべて消去
27: FLXGrid_SlipDetail.Clear
28:
29: If Not g_objRec.EOF Then
30: g_objRec.Sort = "ID"
31: g_objRec.MoveFirst
32: End If
33:
34: ' 列見出しを入れる
35: FLXGrid_SlipDetail.AddItem "製品名" & vbTab & "数量" & vbTab & _
"単価" & vbTab & "価格" & vbTab & "摘要"
36:
37: FLXGrid_SlipDetail.ColAlignment(0) = flexAlignLeftCenter
38: FLXGrid_SlipDetail.ColAlignment(1) = flexAlignRightCenter
39: FLXGrid_SlipDetail.ColAlignment(2) = flexAlignRightCenter
40: FLXGrid_SlipDetail.ColAlignment(3) = flexAlignRightCenter
41: FLXGrid_SlipDetail.ColAlignment(4) = flexAlignLeftCenter
42:
43: ' 各列を入れる
44: crow = 1
45:
46: While Not g_objRec.EOF
47: FLXGrid_SlipDetail.AddItem g_objRec.Fields("PRODUCTNAME").Value & vbTab & _
Format(g_objRec.Fields("NUMBER").Value, "#,##0") &vbTab & _
Format(g_objRec.Fields("UNITPRICE").Value, """\""#,##0") & vbTab & _
Format(g_objRec.Fields("PRICE").Value, """\""#,##0") & vbTab & _
g_objRec.Fields("MEMO").Value & vbTab
48: FLXGrid_SlipDetail.RowData(crow) = g_objRec.Fields("ID").Value
49: If g_objRec.Fields("DELETEDFLAG").Value Then
50: ' 削除ずみのときには,取り消し線を表示する
51: FLXGrid_SlipDetail.col = 0
52: FLXGrid_SlipDetail.row = crow
53: FLXGrid_SlipDetail.ColSel = 4
54: FLXGrid_SlipDetail.RowSel = crow
55: FLXGrid_SlipDetail.FillStyle = flexFillRepeat
56: FLXGrid_SlipDetail.CellFontStrikeThrough = True
57: End If
58: g_objRec.MoveNext
59: crow = crow + 1
60: Wend
61:
62: ' 小計,消費税,合計を格納する
63: objSlip.GetSlip SlipID, CustomerID, SUBTOTAL, TAX, TOTAL, _
MADEDATE, MADEUSER, LASTDATE, LASTUSER
64: FLXGrid_SlipDetail.AddItem vbTab & vbTab & "小計" & vbTab & _
Format(SUBTOTAL, """\""#,##0")
65: FLXGrid_SlipDetail.AddItem vbTab & vbTab & "消費税" & vbTab & _
Format(TAX, """\""#,##0")
66: FLXGrid_SlipDetail.AddItem vbTab & vbTab & "合計" & vbTab & _
Format(TOTAL, """\""#,##0")
67:
68: ' 列見出しを固定する
69: FLXGrid_SlipDetail.FixedRows = 1
70:
71: ' カレント行を一番うえに移動する
72: If Not g_objRec.EOF Then
73: g_objRec.MoveFirst
74: End If
75:
76: Set objSlip = Nothing
77:
78: Exit Sub
79: ErrHandle:
80: ' エラーハンドラ
81: MsgBox Err.Description, vbOKOnly, "サーバーとの接続に失敗"
82: Set objSlip = Nothing
83: Set g_objRec = Nothing
84: End Sub