- PR -

リレーションを組んだ親子フォームの処理について

1
投稿者投稿内容
Lem
会議室デビュー日: 2004/10/19
投稿数: 10
投稿日時: 2006-06-08 10:41
お世話になります。

一つのフォームにテキストボックスとdataGridを配置し、
テキストボックスにヘッダー情報(Table_A)、
dataGridに明細情報(Table_B)を表示・入力する伝票のようなフォームを作っています。
(Table_A)<--- [ID]がKey
[ID] [fA] [fB]
001 AAA1 BBB1
002 AAA2 BBB2
・・・

(Table_B) <--- [B_ID]がKey
[B_ID] [A_ID] [fC]
001 001 1
002 001 2
003 001 3
004 002 1
005 002 2
Table_AとTable_Bは[ID]-[A_ID]でリレーションを組んでいます。


他のフォームから、T_AのIDを指定する変数を受取り、それをdataViewのfindで探し、
テキストボックスにバインドしています。
そこで、dataGridのデータソースに「dataView」をデータメンバに「relation名」としています。

これで一枚の伝票データを表示できるのですが、
明細側(Table_B)にデータを追加するために現在のdataGridに表示されている件数を取得しようと、
int Pos = dataGrid.BindingContext[dataSet, "リレーション名"].Count;
というコードを走らせると、明細側データが何件でも必ずPosが「1」となってしまいます。


上記例でTable_Aの[001]のデータを表示させている時ならば、
リレーションされているTable_Bのデータは3件表示されていますので、
Posは「3」となるようにしたいのです。

現在のdataGridの件数を取得するには、どのように書いたら良いのでしょうか?
どなたかアドバイスを頂けたら助かります。
1

スキルアップ/キャリアアップ(JOB@IT)