IBM Rational ClearQuest consente di specificare che i valori di un campo (campo dipendente) dipendono dai valori di un altro campo (campo principale). Questa operazione viene effettuata tramite la definizione di un hook Choice_List nel campo dipendente che imposta l'elenco di selezioni in base ai valori del campo principale.
In questo esempio si dispone di due campi: Platform e Version. Platform è il campo principale e dispone di un elenco di selezioni relativo a costanti. Version è il campo dipendente che calcola l'elenco di selezioni appropriato in base ai valori di Platform.
L'hook Choice List di Version viene ricalcolato ogni volta che si apportano modifiche a Platform perché viene impostata l'opzione Recalculate Choice List correlata.
Si noti che qualsiasi modifica apportata al campo avvia la riesecuzione dell'hook.
Di norma, l'opzione Recalculate Choice List dovrebbe essere impostata solo per campi che dispongono di un Choice List Hook definito e non per quelli che ne sono privi.
Questo codice Choice List Hook determina il contenuto riportato nell'elenco di selezioni in base al valore del campo principale Platform.
' 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
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, " ");
}
}
}