Come utilizzare la funzione hook per la creazione di un elenco dipendente

Nel seguente esempio si presume che i valori del sistema operativo client siano diversi a seconda dei valori che l'utente seleziona per il sistema operativo server.

  1. Nel campo server_os, creare una funzione hook Choice List con l'elenco definito di valori impostati in Windows NT e UNIX:
    • VBScript
      choices.AddItem("NT")
      choices.AddItem("Unix")
    • Perl
      push(@choices,"NT","Unix");
      return @choices; #Questa riga di codice viene fornita da Rational ClearQuest Designer
  2. Per evitare che utenti aggiungano nuovi membri all'elenco, selezionare la casella di spunta Limit to list.
  3. Per annullare il vecchio valore in client_os, una volta selezionato un nuovo valore in server_os, aggiungere la seguente riga nella funzione hook Value Changed del server_os:
    • VBScript
      SetFieldValue "client_os", ""
    • Perl
      $entity->SetFieldValue("client_os", "");
  4. Nel campo client_os, creare un hook Choice List:
    • VBScript
      dim server_os_choice 
      
      set server_os_choice = GetFieldValue("server_os") 
      
      select case server_os_choice.GetValue() 
      
      case "NT" 
      
         choices.AddItem ("Win95") 
      
         choices.AddItem ("NT") 
      
         choices.AddItem ("Web") 
      
      case "Unix" 
      
         choices.AddItem ("Web") 
      
      end select
    • Perl
      $server_os_choice = $entity->GetFieldValue("server_os"); 
      
      $svalue = $server_os_choice->GetValue();
      
      if ($svalue eq "NT") { 
      
        push(@choices, "Win95","NT","Web");
      
      } elsif ($svalue eq "Unix") {
      
        push(@choices,"CQWeb");
      
      }
      
      return @choices; 
      
      #Questa riga di codice viene fornita da Rational ClearQuest Designer
  5. Nelle proprietà della funzione hook client_os, selezionare Recalculate Choice list, così ogni volta che si modifica il campo server_os, i valori vengono ricalcolati.
  6. Aggiungere nel modulo i campi client_os e server_os utilizzando i controlli delle caselle di elenco.


Feedback