Lezione 2: Aggiunta di parametri per la creazione di un elenco di valori disponibili (Generatore report 2.0)
I valori disponibili, o valori validi, sono un elenco di valori che è possibile utilizzare per un parametro di report. È possibile fornire valori validi restituiti da una query appositamente progettata per recuperare un set di valori dall'origine dati oppure un set di valori predefinito. Attraverso l'associazione di un set di valori disponibili a una query di set di dati eseguita durante l'elaborazione del report si fa in modo che solo i valori esistenti nell'origine dati sottostante possano essere selezionati dall'utente.
In questa lezione verrà modificato il report Sales Order per presentare un elenco a discesa dei nomi dei venditori disponibili nel database AdventureWorks2008. Verrà impostata una proprietà di tabella in modo che venga visualizzato un messaggio quando non sono presenti righe nel set di risultati per il valore di parametro selezionato. Quando si seleziona un nome e si visualizza il report, nel report verranno visualizzate solo le vendite del venditore corrispondente.
Per sostituire la query del set di dati esistente
Nel riquadro Dati report fare clic con il pulsante destro del mouse su DataSet1 e scegliere Query. Verrà visualizzata la finestra Progettazione query.
Nel riquadro delle query sostituire il testo della query esistente con la query seguente:
SELECT SH.OrderDate ,DATENAME(weekday, SH.OrderDate) as Weekday ,SH.SalesOrderNumber ,SD.OrderQty ,SD.LineTotal ,P.Name AS [Product] ,PS.Name AS [Subcategory] FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader AS SH ON SP.BusinessEntityID = SH.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS SD ON SH.SalesOrderID = SD.SalesOrderID INNER JOIN Production.Product AS P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory AS PS ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PS.ProductCategoryID WHERE PC.Name = 'Clothing' AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND SH.SalesPersonID = (@BusinessPersonID)
Questa query include un parametro di query per il venditore responsabile dell'ordine di vendita:
AND SH.SalesPersonID = (@BusinessPersonID)
Fare clic sul pulsante Esegui (!). Quando vengono richiesti i parametri di query, utilizzare la tabella seguente per immettere i valori.
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
Fare clic su OK. Verrà visualizzato il set dei risultati per il venditore Ranjit Varkey Chudukatil con SalesPersonID = 290.
A questo punto, si potrà creare un nuovo set di dati che elenca i nomi dei commessi.
Per popolare un elenco dei valori validi per un parametro di report
Nella barra degli strumenti del riquadro Dati report, fare clic su Nuovo, quindi su Set di dati. Verrà visualizzata la finestra di dialogo Proprietà set di dati.
Nel campo Nome digitare SalesPersons. Questo set di dati verrà utilizzato per popolare l'elenco dei valori validi per il parametro di report SalesPersonID.
Verificare che l'origine dati sia AdventureWorks2008.
Fare clic su Progettazione query, quindi scegliere Modifica come testo.
Nel riquadro delle query incollare la query Transact-SQL seguente:
SELECT SP.BusinessEntityID, C.FirstName, C.LastName FROM Sales.SalesPerson AS SP INNER JOIN HumanResources.Employee AS E ON E.BusinessEntityID = SP.BusinessEntityID INNER JOIN Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID ORDER BY SP.BusinessEntityID
Fare due volte clic su OK. Nel riquadro Dati report nel nuovo set di dati vengono visualizzati tre campi: BusinessEntityID, FirstName e LastName. Tale set di dati verrà utilizzato per fornire valori validi per il parametro BusinessPersonID.
A questo punto verrà creato un campo del set di dati aggiuntivo per concatenare FirstName e LastName in un unico campo denominato Name. I campi definiti sono denominati campi calcolati.
Per definire un campo calcolato nel riquadro Dati report
Nella barra degli strumenti del riquadro Dati report fare clic con il pulsante destro del mouse sul set di dati SalesPersons, quindi scegliere Aggiungi campo calcolato. Verrà visualizzata la pagina Campi della finestra di dialogo Proprietà set di dati con una nuova riga aggiunta alla griglia.
Nell'ultima casella di testo Nome campo digitare Name.
Nella casella di testo Origine campo incollare l'espressione seguente:
=Fields!LastName.Value & ", " & Fields!FirstName.Value
Fare clic su OK.
Nel set di dati SalesPersons del riquadro Dati report il nuovo campo Name viene visualizzato nella raccolta di campi relativi al set di dati.
A questo punto, si potrà puntare il parametro di report BusinessPersonID per utilizzare i valori validi di questo set di dati.
Per popolare il parametro di report con un elenco dei valori disponibili
Nel riquadro Dati report fare espandere il nodo Parametri, fare clic con il pulsante destro del mouse su BusinessPersonID e scegliere Proprietà parametri.
In Messaggio di richiesta digitare Select sales person:.
In Tipo di dati selezionare Integer.
Fare clic su Valori disponibili.
Selezionare l'opzione Ottieni valori da una query.
Nell'elenco a discesa Set di dati selezionare BusinessPersons.
Nell'elenco a discesa Campo valori selezionare BusinessEntityID.
Nell'elenco a discesa Campo etichette selezionare Name.
Selezionando Name per l'etichetta, nell'elenco a discesa dei valori validi per il parametro BusinessEntityID verranno visualizzati i nomi anziché l'identificatore aziendale.
Fare clic su Valori predefiniti.
Selezionare l'opzione Ottieni valori da una query.
Nell'elenco a discesa Set di dati selezionare BusinessPersons.
Nell'elenco a discesa Campo valori selezionare BusinessEntityID.
Fare clic su OK.
Fare clic su Esegui. Nel report verrà visualizzato un elenco a discesa con i nomi delle persone di affari.
Fare clic su Visualizza report.
Nel report vengono visualizzati gli ordini di vendita per il venditore selezionato che corrispondono ai limiti specificati dai parametri del report. Alcune combinazioni di date, giorni della settimana e venditore potrebbero non restituire risultati.
Passaggi successivi
In questo modo è stato aggiunto un elenco di valori disponibili per un parametro a un report esistente. A questo punto si potranno modificare i parametri DayoftheWeek e BusinessPersonID per accettare più valori. Vedere Lezione 3: Aggiunta di parametri per la selezione di più valori in un elenco (Generatore report 2.0).