データ連携コードを記述する
データセットの内容を表示する
.NETでは、さまざまなコントロールが項目名を指定しておいてデータソースにDataTableを指定すると、指定した項目名と一致する列の値を自動的に画面に表示できます。MultiRowでも明細行に相当するRowセクションに配置したセルコントロールのDataFieldプロパティに項目名を指定しておけば、DataTableに含まれているレコードを自動的にすべて表示することが可能です。
Using _prco As New CZ0912Bound ds = _prco.GetRecords("admin", "", billNo) End Using Me.GcMultiRow1.DataSource = ds Me.GcMultiRow1.DataMember = "Bill"
ヘッダセクションやフッタセクションについてはDataFieldプロパティを指定しても自動的に表示されないので、Cellsプロパティでセル名を明示的に指定したコードを記述しなければなりません。
Me.GcMultiRow1.ColumnHeaders(0).Cells("CustomerName_Cell").Value = _ ds.Tables("Bill").Rows(0).Item("CustomerID") With ds.Tables("BillCondition").Rows(0) Me.GcMultiRow1.ColumnHeaders(0).Cells("EndDate_Cell").Value = .Item("EndDate") Me.GcMultiRow1.ColumnHeaders(0).Cells("PreInvoice_Cell").Value = .Item("PreInvoice") Me.GcMultiRow1.ColumnHeaders(0).Cells("PreIncome_Cell").Value = .Item("PreIncome") End With
データセットを更新する
画面の内容をDataSetに反映する場合も、表示するときと同様に明細部分については自動的に画面の内容がDataTableに反映されますが、ヘッダセクションやフッタセクションに配置したセルコントロールの内容は、Cellsプロパティにセル名を指定して明示的に値を転記しなければなりません。
With ds.Tables("BillCondition").Rows(0) .BeginEdit() .Item("PreInvoice") = Me.GcMultiRow1.ColumnHeaders(0).Cells("PreInvoice_Cell").Value .Item("PreIncome") = Me.GcMultiRow1.ColumnHeaders(0).Cells("PreIncome_Cell").Value .Item("CarryOver") = Me.GcMultiRow1.ColumnHeaders(0).Cells("CarryOver_Cell").Value .Item("NowConsume") = Me.GcMultiRow1.ColumnHeaders(0).Cells("NowConsume_Cell").Value .Item("NowTax") = Me.GcMultiRow1.ColumnHeaders(0).Cells("NowTax_Cell").Value .Item("NowInvoice") = Me.GcMultiRow1.ColumnHeaders(0).Cells("NowInvoice_Cell").Value .Item("EndDate") = Me.GcMultiRow1.ColumnHeaders(0).Cells("EndDate_Cell").Value .EndEdit() End With Using _prco As New CZ0912Bound If _prco.SetRecords(ds, "admin", "", billno) Then Me.Update_Button.Enabled = False Me.Print_Button.Enabled = True Me.ToolStripStatusLabel1.Text = Now.ToString("MM/dd hh:mm:ss") End If End Using
実行結果
サンプル「CZ0912_MultiRow」を実行して右上の請求番号を選択して[検索]をクリックすれば、該当する請求明細書のデータをmdbファイルから読みだして画面に表示します。画面上で値を変更したときは自動計算項目については、自動計算が行われ、変更値に連携した値になります。
[更新]をクリックすれば画面上の値でmdbファイルの内容を変更します。なお、Visual Studio上で実行した場合は、「bin\debug」フォルダなどにコピーされたmdbファイルが更新されるので、実行するたびに初期値の内容になります。注意してください。