2017-01-10 10 views
1

私は2つのテーブルを有する:簡易表示方法

Table: country1 - fields: CountryId ,CountryName 
Table: City1 - fields: CityId, CityName, CountryId 

CountryId介して2つのテーブル間の関係があり、各都市は、Country idを有しており、フォームフィールドCityId,CityName, CountryIdCity1 とグリッドは、単一のデータソースであります私はdesign-designs-grid-methods-new方法

display CountryName method1(City1 cit) 
{ 
    Country1 c1; 
    select CountryName from c1 
     where c1.CountryId == cit.CountryId; 
    return c1.CountryName; 
} 
で新しいメソッドを作成し、グリッド内の CountryNameの代わり CountryId
を表示する必要がありますフォームは、IDを開いたときに

はまだCountryName

答えて

0
は、フォームのデータソースにあなたの表示方法を移動

ないIDとして表示されます。また、グリッドからcountryidフィールドを削除し、グリッドフィールドとして表示メソッドをドラッグします。 推奨されるアプローチは、表City1に表示方法を追加することです。そのためには、既存の表示方法を変更してテーブルバッファを使用する必要があります。

+0

フォーム上に表示メソッドを作成することを推奨してはいけません。コンテキストを使わずにフォームを作成することはお勧めしません。再利用は不可能で、パフォーマンスはひどいです。 –

1

可能な場合には、この場合City1には、それが属するテーブルにdisplay methodsを追加するために努力:

display CountryName contryName() 
{ 
    return (select firstOnly CountryName from Country1 
       where Country1.CountryId == this.CountryId).CountryName; 
} 

テーブル上の表示方法には、代わりにthisキーワードを使用し、引数を取りません。
重複する変数を避けるにははインラインselect expressionを使用してください。
表示メソッドをテーブルからフォームコンテナコントロールにドラッグした後、結果のコントロールにDatasource属性を設定することを忘れないでください。