|
|
小計 を 使った ソースコードを紹介する表示色の説明:ASP VBScriptは <% 〜 %> キーワードは小計 です。
<%@LANGUAGE=VBScript%>
<html>
<head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>小計(グループ)を計算・表示してみる</title>
</head>
<body>
<h2>小計(グループ)を計算・表示してみる</h2>
<hr>
<%
'ADO DB Connection オブジェクトを作成する、英文そのままじゃん
Set db=Server.CreateObject("ADODB.Connection")
'.Provider?プロバイダー?通信会社?じゃなくって
'データアクセスにはJet.OLEDB.4.0を使うことを設定
db.Provider = "Microsoft.Jet.OLEDB.4.0"
'次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す
db.ConnectionString = Server.MapPath("db072.mdb")
'やっとデータベースを開ける
db.open
'お約束のレコードセットの作成
'T_月別売上から全項目(*)を指定、Order Byで商品コード順にする
Set rs = db.Execute("Select * From T_月別売上 Order By 商品CD")
'データの表示をテーブルで行う
Response.Write "<TABLE Border='1'>"
'見出しを表示する
Response.Write "<TR bgcolor=#E0FFFF>"
Response.Write "<TH>商品名</TH>"
For n = 4 To 9 '4月から9月と見出しを表示したいので
Response.Write "<TH>" & n & "月</TH>"
Next
Response.Write "<TH>上期計</TH>"
Response.Write "</TR>"
'月別の小計・総合計を保存する配列を作成する
Dim sum_group(12) 'グループ合計
Dim sum_all(12) '総合計
Dim sum_code 'グループ化のコード
'総合計エリア、グループ合計を初期化する
For n = 1 To 12
sum_group(n) = 0
sum_all(n) = 0
Next
'グループ化のコードを初期化する
sum_code = Left(rs("商品CD").Value , 1) '先頭レコードの商品コード1桁目
'お約束のEOFまでループは(データが無くなるまでループ)、
Do While rs.EOF = False 'レコードセットの.EOFがFalseの間
'グループコードが変わったかチェックする
If sum_code <> Left(rs("商品CD").Value , 1) Then
'小計を表示する
Response.Write "<TR bgcolor=#FFE0FF>" '行を表示する
Response.Write "<TD>小計</TD>"
g_kamiki = 0 '小計の上期集計用の変数を初期化する
For n = 4 To 9 '4〜9月
Response.Write "<TD>" & sum_group(n) & "</TD>" 'n月の値を表示
g_kamiki = g_kamiki + sum_group(n) '小計の上期のタメに計算
Next
Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示
Response.Write "</TR>" '行の終わり
'次のグループになるので、配列とCODEを初期化する
sum_code = Left(rs("商品CD").Value , 1) '次のコードを代入
For n = 4 To 9 '小計値を初期化する
sum_group(n) = 0
Next
End If
Response.Write "<TR>" '行を表示する
Response.Write "<TD>" & rs("商品CD").Value & "</TD>" 'とりあえずコード
g_kamiki = 0 '集計用の変数を初期化する
For n = 4 To 9 'フィールドにフィールド名でアクセスする
Response.Write "<TD>" & rs("売上" & n).Value & "</TD>"
'↑"売上" & nでフィールド名売上4..売上9を作成してアクセス
'自分で上期を集計する
g_kamiki = g_kamiki + rs("売上" & n).Value
'月別、グループ、総合計を計算する
sum_group(n) = sum_group(n) + rs("売上" & n).Value 'グループ
sum_all(n) = sum_all(n) + rs("売上" & n).Value '総合計
Next
'上期の合計を表示する
Response.Write "<TD>" & g_kamiki & "</TD>"
Response.Write "</TR>"
'次のレコードにポインタを移動する
rs.MoveNext 'これを忘れると悲惨なことに、、、
Loop
'ループを抜けたら、最後の小計を表示する
'小計を表示する
Response.Write "<TR bgcolor=#FFE0FF>" '行を表示する
Response.Write "<TD>小計</TD>"
g_kamiki = 0 '小計の上期集計用の変数を初期化する
For n = 4 To 9 '4〜9月
Response.Write "<TD>" & sum_group(n) & "</TD>" 'n月の値を表示
g_kamiki = g_kamiki + sum_group(n) '小計の上期のタメに計算
Next
Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示
Response.Write "</TR>" '行の終わり
'総合計の表示(計算した総合計を表示する)
Response.Write "<TR bgcolor=#FFFFE0>" '行を表示する
Response.Write "<TD>総合計</TD>"
g_kamiki = 0 '総合計の上期集計用の変数を初期化する
For n = 4 To 9 '4〜9月の値を表示する
Response.Write "<TD>" & sum_all(n) & "</TD>" 'n月の値を表示
g_kamiki = g_kamiki + sum_all(n) '総合計の上期のタメに計算
Next
Response.Write "<TD>" & g_kamiki & "</TD>" '小計の上期計を表示
Response.Write "</TR>" '行の終わり
Response.Write "</TABLE>" 'テーブルは終わりです
'開いていたレコードセットを閉じる
rs.Close
'データベースも閉じようよ
db.Close
'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど)
Set db = Nothing
%>
<hr>
終了です。<br>
</body>
</html>
| 商品:来月の予約関係を紹介(広告)
3月の人気
-
ワンピース ONE PIECE アラーム クロック 置時計 OP-002 2/1人気が上昇中
-
空間除菌 ウィルスブロッカー CL-40(ストラップ有り1個、ストラップ 2/1新作や予約商品
-
25日 ぴくりる! 初音ミク-Project DIVA- トレーディングストラップ Track04(BOX) - おもちゃ ほか
-
24日 GUNDAMWAR NEX-A エキスパンションブースターパック 「ACCEL OF NEXT AGE」 [EX01] (BOX) - おもちゃ ほか
-
23日 テイルズ オブ ザ ヒーローズ ツインブレイヴ 初回生産限定プレミアムエディション 特典 オリジナルアニメ「ているず おぶ 劇場」プロダクトコード・ダウンロードカード付き - GAME ほか
-
22日 積みヴィネ 仮面ライダー 1BOX (食玩) - おもちゃ ほか
-
21日 Outdoors Unlimited(輸入版) - GAME ほか
-
17日 プリズムコネクト 劇場版魔法先生ネギま! ANIME FINAL ブースターパック BOX - おもちゃ ほか
続き(一覧)を見る
|