親テーブルと子テーブルを DataSet 上で連携し、作業ウィンドウとシートの表示を連動させる方法 C# 版
Tech-ED 2008 ですが、私が担当予定のセッション ”Visual Studio 2008 を使った Office 開発の道標” が、な、な、なんと、聞きたいセッションの第2位らしいです。(41セッション中。汗)
私の師匠である奥主さんに教えていただきました。
もちろん、Tech-ED の神であるジニアス平井さんが1位なのですが、Tech-ED 初体験でしかも、むム無名の私が2位なんて、、、
本当に本当にすみません。
しかも、1位だと、だいたい3千人部屋(そんなのあんのか?)らしいのですが、2位では、千人部屋(うっそーん)らしいです。
師匠の奥主さんを差し置き、私の VSTO の神である松崎さん、こだかさん には本当に申し訳ないです。
これで失敗した暁(表現正しいですかね。これ。)には、かなり、えらい目に合わされます。。。
失敗は許されません。がんばります!
で、本題なのですが、前回、ご紹介したネタの C# 版をご紹介いたします。
ユーザーコントロール系のデザインの手順は一緒です。コードのみ編集していただければと思います。
まず、ユーザーコントロール上のコードは以下です。
public partial class OrderData : UserControl
{
public BindingSource connector
{
get
{
return this.受注BindingSource;
}
}
public OrderData()
{
InitializeComponent();
}
private void 受注BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.受注BindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.northwindDataSet);
}
private void OrderData_Load(object sender, EventArgs e)
{
受注TableAdapter.Fill(northwindDataSet.受注);
受注明細TableAdapter1.Fill(northwindDataSet.受注明細);
}
}
次に ThisWorkBook.cs は以下になります。
public partial class ThisWorkbook
{
private OrderData uc = new OrderData();
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
Globals.ThisWorkbook.ActionsPane.Controls.Add(uc);
Globals.Sheet1.list1.AutoSetDataBoundColumnHeaders = true;
Globals.Sheet1.list1.SetDataBinding(uc.connector, "受注受注明細");
}
}
動き的には前回、ご紹介した内容と一緒です。
ただ、やはり、VBA に似ているオブジェクトモデルである VB.NET を利用したコーディングのほうがしやすいかなと思います。
一応、サンプルもつけておきますので、ご確認ください。
Comments
Anonymous
June 29, 2008
あはは。相変わらずはやとちりだなぁ 参加者の投票でセッション名だけでみんなが興味あるって言っているだけでsaikikだからじゃないよ。。。 今週あたりに公開されてそれでも上位ならこういうこと書いていいけどさ。。。ちなみにセッションは80以上あるんですけど。。。Anonymous
June 29, 2008
師匠! コメントいただきありがとうございます。 >saikikだからじゃないよ。。。 ですよねー。(笑) セッションは80以上ですかー! 本当に早とちりですみませーん。 また、訪問してください。 ありがとうございました! ※ちょっとホッとしました。 師匠の背中がまだまだ見えない弟子より。