Come creare un elenco di selezioni dipendente

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.

Nei seguenti esempi:

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, " ");

      }

 }

} 


Feedback