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

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

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

Re[2]: DataGridをブレーク処理する方法ご教授ください。


(過去ログ 13 を表示中)

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

■3682 / inTopicNo.1)  DataGridをブレーク処理する方法ご教授ください。
  
□投稿者/ .NET初心者 (1回)-(2007/05/18(Fri) 23:21:16)

分類:[VB.NET (Windows)] 

開発環境:VB.NET 2005 

.NET 初心者です。

やりたいことを簡単に説明しますと、
複数テーブルから取得したテーブルをDataGridに初期表示しています。
そのデータから、重複分だけを絞り込み(管理コードで重複分を絞込み)表示させ,ブレイク処理で先頭データだけ色分け
ということをやりたいのですが、プログラム初心者なので、どなたかご教授願いたいです。

@テーブルから、あるコード(管理コード)をキーにして重複分のデータを取得

ADataGrid.RowFilterに検索用として設定しDataGrid表示

BDataGridに表示された結果のデータを読込んでブレイク処理
↓
管理コードブレイク時、1件目のデータのDataGridの行のBackcolorを変えて(例えばグレーなど)
再度、DataGridに表示したいです。

イメージはこちらです。
**************************************        
管理CD 列B  列C 
A001   \500   ・・・・グレー
A001   \300
A001   \200
A002   \100     ・・・・グレー
A002   \200
A003   \150     ・・・グレー
A003   \250
**************************************   管理CDでソートをして、管理CDの先頭のデータの行だけ色を変えたいです。


<ソースコード>(変数宣言等省略)
@管理コードが重複しているデータを取得

            stbSql.Append("select 管理コード from テーブル ")
            stbSql.Append("where 管理コード in (select 管理コード from テーブル group by 管理コード having count(*) > 1) ")
 
            cmd.CommandText = stbSql.ToString
            cmd.Connection = Conn

            Try
                Conn.Open()
                rdr = cmd.ExecuteReader()

                While rdr.Read()
                    stbDataResult.Append("," & rdr.Item(0))
                    intDataCount = intDataCount + 1
                End While
            Catch ex As Exception
                MsgBox(ex.ToString)
                Exit Sub
            Finally
                Conn.Close()
                Conn = Nothing
            End Try

            If intDataCount > 0 Then
                If stbDataResult.Length >= 2 Then stbDataResult.Remove(0, 1)
                txtFilter1.Text = "管理コード in (" & stbDataResult.ToString & ")"
            Else
                txtFilter1.Text = "1=0"
            End If
        Else
            txtFilter1.Text = ""
        End If
        FilterOn()
    End Sub

Aフィルタ処理して、@で取得した結果をDataGridの検索用に設定

    Public Sub FilterOn()
        Dim iCount As Integer = 0
        Dim stbFilterCondition As New StringBuilder("")

        'フィルタ条件の設定
        If Not txtFilter1.Text = "" Then stbFilterCondition.Append(" and " & txtFilter1.Text)
        If stbFilterCondition.Length >= 4 Then stbFilterCondition.Remove(0, 4) '最初のandを削除

        'フィルタ処理
        dvSalesMng.RowFilter = stbFilterCondition.ToString

BDataGridに表示された結果のデータを読込んでブレイク処理
出来れば初心者なので、どういう書き方で出来るかソースをご教授していただけたらありがたい限りです。

また、他の方法があれば、ご教授ください。
よろしくお願い致します。

引用返信 編集キー/
■3687 / inTopicNo.2)  Re[1]: DataGridをブレーク処理する方法ご教授ください。
□投稿者/ (報告) (5回)-(2007/05/19(Sat) 09:09:47)
情報共有。

http://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx01/index.cgi?m=look&bnum=3645
引用返信 編集キー/
■3732 / inTopicNo.3)  Re[2]: DataGridをブレーク処理する方法ご教授ください。
□投稿者/ こぐま (1回)-(2007/05/21(Mon) 13:15:29)
http://www.atmarkit.co.jp/fdotnet/dotnettips/092joincells/joincells.html
↑この例ではセル結合ですが、アイデアとしては使えるのでは?
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -