Condividi tramite


Lezione 3: Aggiunta di un parametro a valore singolo con un elenco di valori disponibili

Data creazione: 17 luglio 2006

I valori disponibili o valori validi sono un elenco di valori che è possibile utilizzare per un parametro del report. In qualità di autore del report, è possibile fornire valori validi da una query appositamente progettata per recuperare un set di valori dall'origine dei dati oppure 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 il report Sales Orders per presentare un elenco a discesa dei nomi dei venditori disponibili nel database AdventureWorks. Verrà impostata una proprietà di tabella per visualizzare un messaggio quando non ci sono 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 di tale venditore.

Per aprire il report Sales Orders

  1. In SQL Server Business Intelligence Development Studio aprire il progetto Server report Tutorial creato nella lezione precedente.

  2. In Esplora soluzioni fare doppio clic sul report Sales Orders. Il report verrà aperto nella visualizzazione Layout.

  3. Fare clic sulla scheda Dati.

Per aggiungere un parametro di query alla query del set di dati AdventureWorks

  1. Nella scheda Dati selezionare AdventureWorks nell'elenco a discesa Set di dati.

  2. Aggiungere un nuovo parametro di query, @SalesPersonID, alla query. Nella query espandere la clausola WHERE per includere il confronto seguente: AND S.SalesPersonID = (@SalesPersonID).

    Sostituire la query esistente con il testo seguente:

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
        S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName, 
        C.ContactID
    FROM    HumanResources.Employee E INNER JOIN
            Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
            Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE
        (
        S.OrderDate BETWEEN (@StartDate) AND (@EndDate) 
        AND
        S.SalesPersonID = (@SalesPersonID)
        )
    

    [!NOTA] Le parentesi che racchiudono il parametro della query sono un elemento importante della sintassi della query.

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

    @StartDate

    20010101

    @EndDate

    20030101

    @SalesPersonID

    286

  4. Fare clic su OK. Verrà visualizzato il set dei risultati per il venditore Ranjit Varkey Chudakatil con SalesPersonID = 286.

  5. Verificare che il parametro della query @SalesPersonID abbia il valore =Parameters!SalesPersonID.Value (facoltativo). Fare clic sul pulsante Modifica set di dati selezionato () e selezionare la scheda Parametri.

  6. Verificare che il parametro del report SalesPersonID sia stato creato automaticamente (facoltativo). Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report. Verificare che SalesPersonID sia incluso nel riquadro Parametri. Questo parametro verrà modificato in un passaggio successivo in questo argomento.

    Nel passaggio seguente verrà creato un set di dati distinto che fornisce i valori per l'elenco a discesa dei valori disponibili per il parametro del report SalesPersonID.

Per creare il set di dati SalesPersons per i valori disponibili

  1. Selezionare <Nuovoset di dati> nell'elenco a discesa Set di dati. Verrà visualizzata la finestra di dialogo Set di dati.

  2. Specificare un nome per il nuovo set di dati. Nel campo Nome digitare SalesPersons. Questo set di dati verrà utilizzato come input per l'elenco dei valori validi.

  3. Incollare la query Transact-SQL seguente nel riquadro della query:

    SELECT SP.SalesPersonID, C.FirstName, C.LastName
    FROM   Sales.SalesPerson AS SP INNER JOIN
         HumanResources.Employee AS E ON E.EmployeeID = SP.SalesPersonID INNER JOIN
         Person.Contact AS C ON C.ContactID = E.ContactID
    
  4. Fare clic sul pulsante Esegui (!). Le colonne SalesPersonID, FirstName e LastName verranno visualizzate nel set dei risultati e come campi nel set di dati SalesPersons.

    Nonostante sia possibile aggiungere campi calcolati alla query, ad esempio aggiungendo LastName + N' ' + FirstName as Name all'istruzione SELECT come colonna aggiuntiva, Reporting Services consente di creare nuovi campi calcolati dai campi dei set di dati esistenti. È possibile utilizzare questa funzionalità quando la query utilizza stored procedure che recuperano un set di colonne predefinito. Nella procedura seguente verrà creato un nuovo campo per il set di dati che combina due campi esistenti.

Per aggiungere un nuovo campo di set di dati calcolato

  1. Nella finestra Set di dati fare clic con il pulsante destro del mouse sul set di dati SalesPersons e scegliere Aggiungi.

    Se la finestra Set di dati non è visualizzata, premere ALT+CTRL+D.

  2. Nella casella di testo Nome digitare Name.

  3. Selezionare l'opzione Campo calcolato.

  4. Incollare l'espressione seguente nella casella di testo:

    =Fields!LastName.Value + ", " + Fields!FirstName.Value
    
  5. Fare clic su OK.

    Nella barra degli strumenti dei dati fare clic su Aggiorna campi. Il nuovo campo Name verrà visualizzato nell'insieme di campi per il set di dati SalesPersons.

    Nella procedura seguente verrà impostata la proprietà area dati NoRows della tabella. Il testo di questa proprietà viene visualizzato quando i dati recuperati per il set di dati associato della tabella non contengono risultati.

Per aggiungere un messaggio NoRows alla tabella

  1. Fare clic sulla scheda Layout per passare alla visualizzazione Layout.

  2. Scegliere Finestra Proprietà dal menu Visualizza.

  3. Selezionare la tabella nell'elenco a discesa nella finestra Proprietà. Per impostazione predefinita, il nome della tabella è table1.

  4. Nella finestra Proprietà andare alla proprietà NoRows.

  5. Fare clic nella casella di testo accanto a NoRows e immettere il testo seguente:

    No results available for this combination of parameters.

    Questo messaggio verrà visualizzato quando il set di risultati di un determinato parametro di query non restituisce righe.

  6. Fare clic su Anteprima (facoltativo). Nel parametro SalesPersonID digitare 1. Il messaggio NoRows verrà visualizzato al posto dell'area dati della tabella.

    Nella procedura seguente verrà modificato il parametro del report SalesPersonID generato automaticamente. Le proprietà del report verranno impostate in modo da visualizzare il nome del venditore nell'elenco a discesa dei valori disponibili invece dell'identificatore del database.

Per impostare le proprietà del parametro del report SalesPersonID

  1. Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report. Il parametro SalesPersonID è visualizzato nel riquadro Parametri.

  2. Selezionare Integer nell'elenco a discesa Tipo di dati.

  3. Nella casella di testo Messaggio di richiesta digitare Select Sales Person:.

  4. Nella sezione Valori disponibili selezionare Da query.

  5. Nell'elenco a discesa Set di dati selezionare SalesPersons.

  6. Nel campo Valore selezionare SalesPersonID.

  7. Nel campo Etichetta selezionare Name.

    Nell'elenco a discesa dei valori validi per il parametro SalesPersonID verranno visualizzati i nomi dei venditori invece di SalesPersonID.

  8. Nella sezione Valori predefiniti selezionare Da query.

  9. Nell'elenco a discesa Set di dati selezionare SalesPersons.

  10. Nel campo Valore selezionare SalesPersonID.

  11. Fare clic su OK.

  12. Fare clic sulla scheda Anteprima. Nel report verrà visualizzato un elenco a discesa con i nomi dei venditori.

Passaggi successivi

In questo modo è stato aggiunto un parametro a valore singolo a un report esistente. Il passaggio successivo consiste nel modificare i parametri DayoftheWeek e SalesOrderID in parametri multivalore. Vedere Lezione 4: Aggiunta di un parametro multivalore con Seleziona tutto.

Vedere anche

Altre risorse

Utilizzo di parametri in Reporting Services
Utilizzo di parametri a valore singolo e multivalore
Utilizzo di parametri nelle espressioni

Guida in linea e informazioni

Assistenza su SQL Server 2005