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