Requisito Utente
Richiesto un pulsante per estrazione lista utenti di progetto. Le informazioni richieste sono:
Soluzione Proposta
Inserimento pulsante nella sezione Requisiti che estrae in formato EXCEL le informazioni richieste.
Se utente ha più profili le informazioni generali non verranno ripetute e verranno lasciate celle in bianco ad eccezione del profilo.
________________________________________________________________________________
Implementazione sul Prodotto
Come sempre si rimanda alle informazioni sulla creazione di un nuovo pulsante alla sezione WorkFlow Script Editor (Toolbar Button Editor).
Supponiamo che l'azione richiamata dal pulsante sia actUsersList.
Passi:
1. Gestione della ActionCanExecute per il richiamo della Sub iniziale
Function ActionCanExecute(ActionName)
On Error Resume Next
Dim Res
Res = True
if ActionName = "actUsersList" then
'Richiamo della sub sotto modulo Requirements
Req_UsersList
end if
ActionCanExecute = Res
'Si noti che in questo esempio, come in quello precedente, non viene gestito
'il ritorno in quanto impostato all'inizio della sub a True perché non è lo scopo
'dell'esempio.
On Error Goto 0
End Function
2. Modulo Requisiti. Sub principale
Sub Req_UsersList
On Error Resume Next
Dim ListaUtenti, i
Dim objXLS, objWkb, objWks
'creo oggetto contenente la lista degli utenti del progetto
set ListaUtenti = TDConnection.Customization.Users.Users
'3. Creazione e gestione oggetti Excel
set objXLS = CreateObject("Excel.Application")
objXLS.Visible = False
Set objWkb = objXLS.Workbooks.Add
Set objWks = objWkb.Worksheets(1)
'Rinomino il foglio 1 del file excel
objWks.Name = "Utenti Progetto"
'Scrivo la testata
objWks.Cells(1,1).Value = "Utente"
objWks.Cells(1,2).Value = "Nominativo"
objWks.Cells(1,3).Value = "Num Tel"
objWks.Cells(1,4).Value = "e-Mail"
objWks.Cells(1,5).Value = "Profilo"
'i è il numero di riga
i=2
'4. Ciclo per tutti gli utenti del progetto
For Each Utente In ListaUtenti
objWorksheet.Cells(i, 1).Value = Utente.Name
objWorksheet.Cells(i, 2).Value = Utente.FullName
objWorksheet.Cells(i, 3).Value = Utente.Phone
objWorksheet.Cells(i, 4).Value = Utente.Email
'Ciclo per tutti i gruppi a cui l'utente appartiene
For Each Gruppo In Utente.GroupsList
'scrivo info sul file excel.
objWks.Cells(i, 5).Value = Gruppo.Name
i = i + 1
Next
Next
'salvataggio file excel.
'Non inserisco qui i controlli di esistenza file.
'Andrebbe strutturato in modo differente.
objWkb.SaveAs "c:\temp\ListaUtenti_" & split(date,"/")(2) & split(date,"/")(1) & split(date,"/")(0)
objWkb.Close
objXLS.quit
set objWks = Nothing
set objWkb = Nothing
set objXLS = Nothing
msgbox "Estrazione Lista Utenti Effettuata", vbSystemModal + vbInformation, "Quality Center - Lista Utenti Progetto"
On Error Goto 0
End Sub