C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

データ合計数


(過去ログ 3 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■3555 / inTopicNo.1)  データ合計数
  
□投稿者/ JT 二等兵(12回)-(2006/05/12(Fri) 21:22:18)

分類:[VB.NET] 


分類:[VB.NET] 

どうもm(__)mいつもお世話になっております。
こちらにはいつも助けてもらっているものです。

今回も自分なりに考えてたのですが
行き詰ってしまって…。
データをprintoutする時にそのカラムの合計数を
求めて表示させたいのですが、なかなか案が
でてきません。
すみません、説明するのが難しく添付ファイルを
見ていいただければ幸いです。

それぞれのデータを入れているところの
処理方法です。

For intRow = 0 To 24
e.Graphics.DrawLine(wkPen075, 40, 174 + intRow * 28, 320, 174 + intRow * 28) '間線
e.Graphics.DrawString(CStr(intRow + 1).PadLeft(2, "0"), prtFont10, Brushes.Black, 46, 154 + 28 * intRow)
Next
e.Graphics.DrawLine(wkPen175, 40, 174 + 24 * 28, 320, 174 + 24 * 28) '間線


sqldata = "SELECT * FROM PC_TBL_実績詳細 " & _
"WHERE ロットNo = '" & strLotNo & "' " & _
"ORDER BY ロットNo"

pgobj.pg_connect() '###DB Connect
dttbl = pgobj.pg_reader(sqldata, "get").Tables("get")
pgobj.pg_disconnect() '###DB DisConnect


i = 0
imax = dttbl.Rows.Count

For intRow = 1 To 25
If i < imax Then
If dttbl.Rows(i)(1) = intRow And dttbl.Rows(i)(32) = "OK" Then
e.Graphics.DrawString(dttbl.Rows(i)(6), prtFont12, Brushes.Black, 72, 154 + 28 * intRow - 28)
e.Graphics.DrawString(dttbl.Rows(i)(7), prtFont12, Brushes.Black, 182, 154 + 28 * intRow - 28)
e.Graphics.DrawString(dttbl.Rows(i)(8), prtFont12, Brushes.Black, 252, 154 + 28 * intRow - 28)
i = i + 1
ElseIf dttbl.Rows(i)(1) = intRow And dttbl.Rows(i)(32) = "NG" Then
e.Graphics.DrawString(dttbl.Rows(i)(32), prtFont12, Brushes.Black, 72, 154 + 28 * intRow - 28)
i = i + 1
Else
rect = New Rectangle(40, 146 + 28 * intRow - 28, 30, 28)
e.Graphics.FillRectangle(Brushes.Black, rect)
End If
Else
rect = New Rectangle(40, 146 + 28 * intRow - 28, 30, 28)
e.Graphics.FillRectangle(Brushes.Black, rect)
End If

Next


0
引用返信 編集キー/
■3558 / inTopicNo.2)  Re[1]: データ合計数
□投稿者/ trapemiya 軍曹(67回)-(2006/05/12(Fri) 22:10:18)
trapemiya さんの Web サイト

分類:[VB.NET] 

2006/05/12(Fri) 22:22:19 編集(投稿者)

思いつくのは3つです。

1.Forで回しているのだから、その都度合計を加算していき、Nextで抜けた後、その合計値を使って、合計行を作成する。

2.DataTable.Computeで各列の合計値を求めておき、その値を使って、最後に合計行を作成する。

3.SQL文でsumを使って各列の合計値を求めておき、その値を使って、最後に合計行を作成する。

0
引用返信 編集キー/
■3559 / inTopicNo.3)  Re[2]: データ合計数
□投稿者/ 中博俊 神(413回)-(2006/05/12(Fri) 22:51:21)
中博俊 さんの Web サイト

分類:[VB.NET] 

おいらなら1だねーー

0
引用返信 編集キー/
■3585 / inTopicNo.4)  Re[3]: データ合計数
□投稿者/ JT 二等兵(13回)-(2006/05/15(Mon) 08:48:01)

分類:[VB.NET] 

ご返信が遅くなり申し訳ありません。
自分もこの掲示板に投稿する前にtrapemiyaさんの1の方法を
考えたんですけど書き方がわかりませんでした。
もう一度考えて行きたいと思います。



0
引用返信 編集キー/
■3586 / inTopicNo.5)  Re[4]: データ合計数
□投稿者/ JT 二等兵(14回)-(2006/05/15(Mon) 10:48:22)

分類:[VB.NET] 

出来ました!
trapemiyaさんの1の処理方法でうまくいきました。
この書き方でおかしくないのかどうかわかりませんが…
とりあえずうまくいきました。


'***** 入荷ウェハ状態 ***** 2005/07/11追加
For intRow = 0 To 24
e.Graphics.DrawLine(wkPen075, 40, 174 + intRow * 28, 320, 174 + intRow * 28) '間線
e.Graphics.DrawString(CStr(intRow + 1).PadLeft(2, "0"), prtFont10, Brushes.Black, 46, 154 + 28 * intRow)
Next
e.Graphics.DrawLine(wkPen175, 40, 174 + 24 * 28, 320, 174 + 24 * 28) '間線


sqldata = "SELECT * FROM PC_TBL_実績詳細 " & _
"WHERE ロットNo = '" & strLotNo & "' " & _
"ORDER BY ロットNo"

pgobj.pg_connect() '###DB Connect
dttbl = pgobj.pg_reader(sqldata, "get").Tables("get")
pgobj.pg_disconnect() '###DB DisConnect


i = 0
imax = dttbl.Rows.Count

For intRow = 1 To 25
If i < imax Then
If dttbl.Rows(i)(1) = intRow And dttbl.Rows(i)(32) = "OK" Then
e.Graphics.DrawString(dttbl.Rows(i)(6), prtFont12, Brushes.Black, 72, 154 + 28 * intRow - 28)
e.Graphics.DrawString(dttbl.Rows(i)(7), prtFont12, Brushes.Black, 182, 154 + 28 * intRow - 28)
e.Graphics.DrawString(dttbl.Rows(i)(8), prtFont12, Brushes.Black, 252, 154 + 28 * intRow - 28)
PassSUM += dttbl.Rows(i)(6)
DefSUM += dttbl.Rows(i)(7)
QualitySUM += dttbl.Rows(i)(8)
i = i + 1
ElseIf dttbl.Rows(i)(1) = intRow And dttbl.Rows(i)(32) = "NG" Then
e.Graphics.DrawString(dttbl.Rows(i)(32), prtFont12, Brushes.Black, 72, 154 + 28 * intRow - 28)
i = i + 1
Else
rect = New Rectangle(40, 146 + 28 * intRow - 28, 30, 28)
e.Graphics.FillRectangle(Brushes.Black, rect)
End If
Else
rect = New Rectangle(40, 146 + 28 * intRow - 28, 30, 28)
e.Graphics.FillRectangle(Brushes.Black, rect)
End If

Next
e.Graphics.DrawString(PassSUM, prtFont12, Brushes.Black, 72, 154 + 28 * 26 - 28)
e.Graphics.DrawString(DefSUM, prtFont12, Brushes.Black, 182, 154 + 28 * 26 - 28)
e.Graphics.DrawString(QualitySUM, prtFont12, Brushes.Black, 252, 154 + 28 * 26 - 28)



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -