Lezione 2: Aggiunta di parametri per la creazione di un elenco di valori disponibili

I valori disponibili, o valori validi, sono un elenco di valori che è possibile utilizzare per un parametro di report. L'autore del report può fornire valori validi restituiti da una query appositamente progettata per recuperare un set di valori dall'origine dati oppure può fornire 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 nel database possano essere selezionati nell'elenco a discesa.

In questa lezione verrà modificato un report relativo agli ordini di vendita in modo da presentare un elenco a discesa dei nomi dei venditori disponibili presenti 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 il set di dati esistente

  1. Nel riquadro Dati report fare clic con il pulsante destro del mouse sul set di dati AdventureWorksDataset e scegliere Proprietà set di dati.

    [!NOTA]

    Se non è possibile visualizzare il riquadro Dati report, scegliere Dati report dal menu Visualizza.

  2. In Origine dati verificare che sia selezionato AdventureWorks_Ref.

  3. In Tipo di query verificare che sia selezionato Testo.

  4. Fare clic su Progettazione query per aprirla.

  5. Sostituire il testo nella casella di testo con la query seguente:

    SELECT 
       soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday,
       soh.SalesOrderNumber AS [Order], 
       pps.Name AS Subcat, pp.Name as Product,  
       SUM(sd.OrderQty) AS Qty,
       SUM(sd.LineTotal) AS LineTotal
    FROM Sales.SalesPerson sp 
       INNER JOIN Sales.SalesOrderHeader AS soh 
          ON sp.BusinessEntityID = soh.SalesPersonID
       INNER JOIN Sales.SalesOrderDetail AS sd 
          ON sd.SalesOrderID = soh.SalesOrderID
       INNER JOIN Production.Product AS pp 
          ON sd.ProductID = pp.ProductID
       INNER JOIN Production.ProductSubcategory AS pps 
          ON pp.ProductSubcategoryID = pps.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS ppc 
          ON ppc.ProductCategoryID = pps.ProductCategoryID
    GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, 
       pps.Name, pp.Name,    soh.SalesPersonID
    HAVING 
    ppc.Name = 'Clothing' 
    AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    AND  soh.SalesPersonID = (@BusinessPersonID)
    

    Si tratta di una query analoga a quella precedente, con l'aggiunta di una condizione che limita il set di risultati a un unico venditore:

    AND soh.SalesPersonID = (@BusinessPersonID)

  6. Fare clic sul pulsante Esegui (!). Quando vengono richiesti i parametri della query, utilizzare la tabella seguente per immettere i valori.

    @StartDate

    20010101

    @EndDate

    20030101

    @BusinessPersonID

    290

  7. Fare clic su OK. Verrà visualizzato il set dei risultati per il venditore Ranjit Varkey Chudukatil con SalesPersonID = 290.

Per popolare un elenco dei valori validi per un parametro di report

  1. Nel riquadro Dati report fare clic su Nuovo, quindi su Set di dati. Verrà visualizzata la finestra di dialogo Proprietà set di dati.

  2. Nel campo Nome digitare BusinessPersons. Questo set di dati verrà utilizzato per popolare l'elenco dei valori validi per il parametro di report SalesPersonID.

  3. Verificare che l'origine dati sia AdventureWorks_Ref.

  4. 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. Verrà popolato un elenco di campi per il set di dati BusinessPersons. Tale set di dati verrà utilizzato per fornire valori validi per il parametro BusinessPersonID.

  5. Nel set di dati BusinessPersons sono presenti campi denominati FirstName e LastName. Questi campo verranno successivamente concatenati in un unico campo denominato Name.

Per definire un campo calcolato nel riquadro Dati report

  1. Nella barra degli strumenti del riquadro Dati report fare clic con il pulsante destro del mouse sul set di dati BusinessPersons, 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.

  2. Nell'ultima casella di testo Nome campo digitare Name.

  3. Nella casella di testo Origine campo incollare l'espressione seguente:

    =Fields!LastName.Value & ", " & Fields!FirstName.Value

  4. Fare clic su OK.

  5. Nel set di dati BusinessPersons del riquadro Dati report il nuovo campo Name viene visualizzato nella raccolta di campi relativi al set di dati.

Per popolare il parametro di report con un elenco dei valori disponibili

  1. Nel riquadro Dati report fare espandere il nodo Parametri, fare clic con il pulsante destro del mouse su BusinessPersonID e scegliere Proprietà parametri.

  2. In Messaggio di richiesta digitare Select business person.

  3. In Tipo di dati selezionare Integer.

  4. Fare clic su Valori disponibili.

  5. Selezionare l'opzione Ottieni valori da una query.

  6. Nell'elenco a discesa Set di dati selezionare BusinessPersons.

  7. Nell'elenco a discesa Campo valori selezionare BusinessEntityID.

  8. 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é i numeri dei venditori.

  9. Fare clic su Valori predefiniti.

  10. Selezionare l'opzione Ottieni valori da una query.

  11. Nell'elenco a discesa Set di dati selezionare BusinessPersons.

  12. Nell'elenco a discesa Campo valori selezionare BusinessEntityID.

  13. Fare clic su OK.

  14. Fare clic sulla scheda Anteprima. Nel report verrà visualizzato un elenco a discesa con i nomi delle persone di affari.

  15. Fare clic su Visualizza report. Selezionare gli altri valori di parametro per rivedere i risultati.

Passaggi successivi

In questo modo è stato aggiunto un elenco di valori disponibili per un parametro a un report esistente. Il passaggio successivo consiste nel modificare i parametri DayoftheWeek e SalesPersonID in parametri multivalore. Vedere Lezione 3: Aggiunta di parametri per la selezione di più valori in un elenco.