従属選択リストの作成

IBM Rational ClearQuest では、あるフィールド (従属フィールド) の値が別のフィールド (親フィールド) の値に依存することを指定できます。これは、親フィールドの値に基づいて選択リストを設定する従属フィールドに Choice_List フックを定義して実現されます。

この例では、プラットフォームバージョンの 2 つのフィールドがあります。プラットフォーム は親フィールドで、定数 (列挙型) 選択リストがあります。バージョンは従属フィールドで、プラットフォームの値に基づいて該当する選択リストを計算します。

[選択リストを再計算] オプションが設定されているので、プラットフォームが変更されるたびに、バージョンの選択リスト フックで再計算 されます。

フィールドの変更によって、再実行するフックがトリガされます。

一般的に、選択リストを再計算は、選択リスト フックが定義されているフィールドにのみ設定して、定義されていないフィールドには設定しません。

この選択リスト フック コードで、親フィールド (プラットフォーム) の値に基づいて選択リストの列挙された内容を判別します。

以下の例では、次のようになっています。

VBScript

' Add field choices for platforms
Dim platform

platform = GetFieldValue("platform").GetValue ()

select case platform

   case "Windows 2000"

      choices.AddItem ("Professional")

      choices.AddItem ("Professional SP1")

      choices.AddItem ("Server")

      choices.AddItem ("Server SP1")

   case "Windows NT Server"

      choices.AddItem ("4.0")

      choices.AddItem ("4.0 SP6A")

   case "Windows 98"

      choices.AddItem ("Win98")

end select 

Perl

my $platform;

$platform = ($entity->GetFieldValue("platform"))->GetValue();

if ($platform eq "Windows NT Workstation") {

   push(@choices, "3.51", "4.0", "4.0 SP2", "4.0 SP3");

} else {

   if ($platform eq "Windows NT Server") {

               push(@choices, "4.0", "4.0 SP3");

   } else {

        if ($platform eq "Windows 95") {

               push(@choices, "Win95");

        } else {

               push(@choices, " ");

      }

 }

} 

フィードバック