最近のアクセス:
変数の自動定義

コードに変数を直接記述すると、可能な場合は、GeneXus によって自動的に定義されます。変数のタイプは次のように決められます:
  • 基準にするタイプ: たとえば「Name」というドメイン (または項目属性) があり、ソースコードに &CountryName と記述すると、CountryName 変数は「Name」ドメイン (または項目属性) に基づいて定義されます。  「CountryName」という項目属性が存在する場合は、代わりにこの項目属性に基づいて定義されます。
  • ブール値: 変数の接頭語が「&is」、「&Is」、「&has」、「&Has」で、その次に大文字が続く場合は、ブール値として定義されます。
  • コレクション: 変数がこの形式の場合: 「&xx [ <項目属性名>|<ドメイン名>|<SDT 名> ] Collection」という形式 (「xx」は任意の文字) で変数を記述した場合は、この名前と同じ項目属性、ドメイン、または SDT が存在しない限り、指定した項目属性|ドメイン|SDT のコレクションとして定義されます。たとえば、「Customer」という SDT がある場合を考えてみます。&MyCustomerCollection と記述すると、この変数は Customer データタイプのコレクションとして定義されます。
  • ブール値のコレクション: 次の形式で変数を記述すると、自動的にブール値のコレクションとして定義されます: 「&is」+ <大文字で始まるテキスト> +「Collection」例: &isAvailableCollection


仕様検証時に変数が定義されていない場合

変数が手動または前述の基準に従って自動的に定義されていない場合は、仕様検証時に、次のようにタイプが割り当てられます:
  • 変数が項目属性に割り当てられている場合は、その項目属性のタイプと長さを使用して定義されます。
    たとえば、&ClientName = ClientName の場合は、変数のタイプと長さは ClientName 項目属性のものと同じであると見なされます。変数に複数の項目属性が割り当てられている場合は、最初の項目属性に基づいて変数のタイプが推定されます。
  • 関数が変数に割り当てられている場合は、変数のタイプは、その戻り値のタイプと同じであると見なされます。この場合は、長さを自動的に推定できないので、Numeric タイプの変数の長さは (10,2)、Character タイプの変数の長さは (40) であると見なされます。
    たとえば、&Variable1 = val(Attribute) の場合、&Variable1 のタイプは Numeric(10,2) になります。
    &Variable2 = Attribute.ToString() の場合、&Variable2 のタイプは Character(40) になります。
  • それ以外の場合は、未定義の変数は Numeric タイプで長さが (10,2) であると見なされます。
いずれの場合も、分析時に変数のタイプが推定されると、ナビゲーションレポートに次の警告が表示されます: 分析コード: spc0047: 変数 Variable2 が定義されていません。N(10.2) とみなします。


サブページ
Created: 14/09/18 03:06 by Admin Last update: 21/10/28 23:28 by Admin
カテゴリ
Powered by GXwiki 3.0