Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

演習

演習 1 : 連絡先ごとに関連付けられた電話番号が表示されるように DisplayTreeView を変更します。ツリーには、連絡先に関連した一連の電話番号が、その連絡先の一連のサブノードとして表示される必要があります。ヒント :

  • ContactsDataTable に関連付けられている各 DataRow は、GetChildRows メソッドをサポートします。このメソッドは、PhoneNumbers データ・テーブルの行から、Contacts テーブルの行に対応する外部キーを持つ行のコレクションを返します。つまり、このメソッドは、現在の Contacts 行の子を返します。

演習 2DisplayPhoneNumber メソッドを作成します。このメソッドは、[電話番号情報の編集] パネルのフィールドに、DisplayPhoneNumber に引数として渡された DataRow のデータを入力します。ツリーの電話番号がクリックされたときに DisplayPhoneNumber メソッドを呼び出し、適切な DataRow をそのメソッドに渡すイベント処理コードが用意されています。ヒントは次のとおりです。

  • [電話番号情報の編集] パネルの GUI 要素の名前は、txtPhoneIdtxtNumber、および comboBox2 です。

演習 3AddPhoneNumber メソッドを作成します。このメソッドを使用して、データベースに新しい Provider.PhoneNumber 行を作成します。Contact フィールドに格納される外部キーの値は、[連絡先情報の編集] パネルの txtConId 要素から得られます。残りのフィールドの値は、[電話番号情報の編集] の要素から得られます。このメソッド、[作成] ボタンのイベント処理コードから呼び出されます。このコードは用意されています。以下に、重要なヒントを説明します。

  • PhoneNumbers DataTableID 列には、何らかの値を割り当てる必要があります。この行の値は、NVARCHAR 型であるため、列は AutoIncrement になりません。そのため、Contacts ID で使用した方法は使用できません。ただし、そのテクニックを模倣することはできます。int 型のクラス変数 phoneNumberID を初期値 0 で作成します。その値をデクリメントし、列に割り当てる前に ToString を使用して string 型に変換します。このコードは次のように記述します。

    
    ...
    newRow["ID"] = (--phoneNumberID).ToString();
    ...
     
    

演習 4UpdatePhoneNumber メソッドを作成します。このメソッドは、[電話番号情報の編集] に表示されるデータを使用して、選択された電話番号を変更し、その変更をデータベースに格納します。UpdatePhoneNumber は、[更新] ボタンのイベント・ハンドラによって呼び出されます。イベント処理コードは、PhoneForm.cs に用意されています。

演習 5DeletePhoneNumber メソッドを作成します。このメソッドは、データベースから選択された電話番号を削除します。このメソッドは、[削除] ボタンのイベント処理コードによって呼び出されます。イベント処理コードは、PhoneForm.cs に用意されています。

FeedbackOpens in a new tab