Condividi tramite


Lezione 2: Aggiunta di parametri di propagazione a un report

Data creazione: 17 luglio 2006

I parametri di propagazione consentono di filtrare i valori disponibili per ogni parametro di un set di parametri con relazione naturale. Nel database AdventureWorks ogni rivenditore ha ad esempio un indirizzo in un luogo specifico di una determinata città (campo City). Le città sono raggruppate in stati o province (campo StateProvince). Gli stati e le province sono raggruppati in paesi o regioni (campo CountryRegion). I paesi e le regioni sono raggruppati in territori di vendita (campo TerritoryGroup). Per questi campi è possibile creare quattro parametri di propagazione con ordine dipendente partendo dalla categoria più ampia, TerritoryGroup, per arrivare alla categoria più specifica, City.

Quando i parametri di propagazione sono visualizzati nella barra degli strumenti del report, si seleziona un valore dal primo parametro, che determina i valori disponibili per il parametro seguente, e così via. In questo modo è possibile filtrare migliaia di scelte possibili fino ad arrivare a un numero gestibile per ogni parametro di propagazione.

I parametri di propagazione hanno un ordine implicito. Quando si visualizzano i parametri del report in Progettazione report, questi vengono visualizzati in ordine nel riquadro corrispondente. Il primo parametro dell'elenco non dipende da nessun altro parametro. Se utilizzato come parametro di propagazione, il parametro seguente dell'elenco dipende dal parametro immediatamente precedente. È possibile riordinare i parametri con i pulsanti freccia in su e freccia in giù disponibili nella finestra di dialogo dei parametri del report.

In questa lezione verranno aggiunti quattro parametri di propagazione (TerritoryGroup, CountryRegion, StateProvince e City) al report Sales Orders creato nell'esercitazione precedente. Verrà creato un set di dati per ogni parametro per popolare l'elenco dei valori disponibili corrispondente. Quando si crea una query con un parametro di query per un set di dati di valori validi, viene creato automaticamente un parametro del report. Poiché si creano set di dati per gli elenchi di valori validi dalla categoria più generale (TerritoryGroup) a quella più specifica (Cities), verranno creati parametri del report nell'ordine corretto per le dipendenze. Per il set di dati di valori validi finale (Cities) verrà creato manualmente un parametro del report che verrà quindi associato al parametro di query corrispondente.

Dopo aver creato tutti i set di dati, si modificheranno le proprietà predefinite per ogni parametro del report e si imposteranno le proprietà dei valori predefiniti e dei valori validi in modo che puntino al campo e al set di dati appropriati.

Verrà infine modificata la query del set di dati originale per includere parametri di query per ogni parametro del report. Quando si esegue il report, verranno selezionati i valori per ogni singolo parametro di propagazione e nell'elenco dei valori disponibili del parametro seguente verranno visualizzati solo i valori che sono validi dopo aver selezionato il primo.

Procedura

Per aprire il report ResellersWorldwide

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

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

  3. Fare clic sulla scheda Dati.

Per aggiungere un set di dati per i valori disponibili per il parametro TerritoryGroup

  1. Nell'elenco a discesa Set di dati selezionare <Nuovo set di dati>. Verrà visualizzata la finestra di dialogo Set di dati.

  2. Nella scheda Query digitare ValidValuesforTerritoryGroup nella casella di testo Nome.

  3. Verificare che Origine dati sia Resellers.

  4. Verificare che Tipo di comando sia Text.

  5. Nel riquadro delle query incollare la query seguente:

    SELECT distinct [Group] as SalesTerritory
       FROM [AdventureWorks].[Sales].[SalesTerritory]
    
  6. Fare clic su Esegui (!) per visualizzare il set dei risultati. Verrà visualizzata la colonna SalesTerritory con tre righe: Europe, North America e Pacific.

Per aggiungere un set di dati per i valori disponibili per il parametro CountryRegion

  1. Nell'elenco a discesa Set di dati selezionare <Nuovo set di dati>. Verrà visualizzata la finestra di dialogo Set di dati.

  2. Nella scheda Query digitare ValidValuesforCountryRegion nella casella di testo Nome.

  3. Verificare che Origine dati sia Resellers.

  4. Verificare che Tipo di comando sia Text.

  5. Nel riquadro delle query incollare la query seguente:

    SELECT Distinct CR.Name AS CountryRegion
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (T.[Group] = (@TerritoryGroup))
    Order by CR.Name
    
  6. Fare clic su Esegui (!). Verrà visualizzata la finestra di dialogo Definisci parametri query.

  7. Digitare Pacific.

    Verrà visualizzato il set dei risultati con la colonna CountryRegion e una riga con il valore Australia.

    Quando si definisce un parametro di query denominato @TerritoryGroup, verrà creato un nuovo parametro del report denominato TerritoryGroup.

  8. Accanto all'elenco a discesa Set di dati fare clic sul pulsante Modifica set di dati selezionato () e quindi sulla scheda Parametri (facoltativo). Verificare che il parametro di query @TerritoryGroup sia associato al valore del parametro del report TerritoryGroup (=Parameters!TerritoryGroup.Value).

Per aggiungere un set di dati per i valori disponibili per il parametro StateProvince

  1. Nell'elenco a discesa Set di dati selezionare <Nuovo set di dati>. Verrà visualizzata la finestra di dialogo Set di dati.

  2. Nella scheda Query digitare ValidValuesforStateProvince nel campo Nome.

  3. Verificare che Origine dati sia Resellers.

  4. Verificare che Tipo di comando sia Text.

  5. Nel riquadro delle query incollare la query seguente:

    SELECT Distinct SP.Name AS StateProvince
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
    WHERE (CR.Name = @CountryRegion)
    Order by SP.Name
    
  6. Fare clic su Esegui (!) per visualizzare il set dei risultati. Verrà visualizzata la finestra di dialogo Definisci parametri query.

  7. Nella casella di testo Valore parametro digitare Australia. Fare clic su OK.

    Verrà visualizzata la colonna StateProvince con quattro righe: New South Wales, Queensland, South Australia e Victoria.

Per aggiungere un set di dati per i valori disponibili per il parametro City

  1. Nell'elenco a discesa Set di dati selezionare <Nuovo set di dati>. Verrà visualizzata la finestra di dialogo Set di dati.

  2. Nella scheda Query digitare ValidValuesforCity nel campo Nome.

  3. Verificare che Origine dati sia Resellers.

  4. Verificare che Tipo di comando sia Text.

  5. Nel riquadro delle query incollare la query seguente:

    SELECT Distinct A.City 
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (
        T.[Group] = (@TerritoryGroup) AND
        CR.[Name] = (@CountryRegion) AND
        SP.[Name] = (@StateProvince)
        )
    Order by A.City
    
  6. Fare clic su Esegui (!) per visualizzare il set dei risultati. Verrà visualizzata la finestra di dialogo Definisci parametri query.

  7. Nella casella di testo Valore parametro digitare un valore per ogni parametro di query utilizzando la tabella seguente.

Nome parametro Valore parametro

@TerritoryGroup

Pacific

@CountryRegion

Australia

@StateProvince

Victoria

  1. Fare clic su OK.
    Verrà visualizzata la colonna City con tre righe: Melbourne, Seaford e South Melbourne.

In questo modo sono stati creati quattro parametri di propagazione. La procedura seguente consiste nel modificare le proprietà dei parametri del report create che corrispondono ai parametri di query. Ogni parametro verrà impostato per utilizzare il set di dati appropriato per recuperare il set di valori disponibili.

Per impostare i valori disponibili per il parametro del report TerritoryGroup

  1. Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report con TerritoryGroup selezionato nel riquadro Parametri.

  2. Verificare che Tipo di dati sia String.

  3. Nella casella di testo Messaggio di richiesta digitare Select a Territory Group:.

  4. Verificare che tutte le caselle di controllo siano deselezionate.

  5. Nella sezione Valori disponibili selezionare Da query.

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

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

  8. Nell'elenco a discesa Campo etichette selezionare SalesTerritory.

  9. Nella sezione Valori predefiniti selezionare Non da query.

  10. Nella casella di testo digitare North America.

    È possibile impostare un valore predefinito su un valore specifico o su valori predefiniti di un campo di set di dati. Poiché questo parametro è di tipo String, è possibile immettere il valore direttamente nella casella di testo. Per gli altri tipi di dati è necessario digitare un'espressione che inizia con il segno di uguale (=).

  11. Fare clic su OK.

  12. Fare clic sulla scheda Anteprima (facoltativo). Il parametro TerritoryGroup verrà visualizzato con il valore predefinito Europe e i valori validi del campo SalesTerritory e del set di dati ValidValuesforTerritoryGroup.

    Le modifiche apportate ai dati del report non sono disponibili finché non si modifica la query del set di dati Resellers nell'ultima procedura di questa lezione.

Per impostare i valori disponibili per il parametro del report CountryRegion

  1. Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report.

  2. Nel riquadro Parametri selezionare CountryRegion.

  3. Verificare che Tipo di dati sia String.

  4. Nella casella di testo Messaggio di richiesta digitare Select a Country/Region:.

  5. Verificare che tutte le caselle di controllo siano deselezionate.

  6. Nella sezione Valori disponibili selezionare Da query.

  7. Nell'elenco a discesa Set di dati selezionare ValidValuesforCountryRegion.

  8. Nell'elenco a discesa Campo valori selezionare CountryRegion.

  9. Nell'elenco a discesa Campo etichette selezionare CountryRegion.

  10. Nella sezione Valori predefiniti selezionare Da query.

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

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

  13. Fare clic su OK.

  14. Fare clic sulla scheda Anteprima (facoltativo). Selezionare un valore per TerritoryGroup. Selezionare un valore per il parametro CountryRegion. Verificare che i valori visualizzati per CountryRegion siano validi per il gruppo di territorio selezionato.

Per impostare i valori disponibili per il parametro del report StateProvince

  1. Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report.

  2. Nel riquadro Parametri selezionare StateProvince.

  3. Verificare che Tipo di dati sia String.

  4. Nella casella di testo Messaggio di richiesta digitare Select a State/Province:.

  5. Verificare che tutte le caselle di controllo siano deselezionate.

  6. Nella sezione Valori disponibili selezionare Da query.

  7. Nell'elenco a discesa Set di dati selezionare ValidValuesforStateProvince.

  8. Nell'elenco a discesa Campo valori selezionare StateProvince.

  9. Nell'elenco a discesa Campo etichette selezionare StateProvince.

  10. Nella sezione Valori predefiniti selezionare Da query.

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

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

  13. Fare clic su OK.

  14. Fare clic sulla scheda Anteprima (facoltativo). Selezionare un valore per TerritoryGroup. Selezionare un valore per il parametro CountryRegion. Selezionare un valore per il parametro StateProvince. Verificare che i valori visualizzati per StateProvince siano validi per i parametri TerritoryGroup e CountryRegion selezionati.

Per creare un parametro del report City e impostarne le proprietà

  1. Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report.

  2. Si noti come nel riquadro Parametri non sia visualizzato alcun parametro denominato City.

    I parametri del report vengono creati automaticamente quando si definisce una query con parametri per un set di dati. In nessuna delle query di set di dati create è incluso un parametro di query @City. È possibile creare un parametro del report denominato City e quando si definisce una query contenente un parametro di query @City, il parametro di query verrà associato automaticamente a un parametro del report, se ha un nome corrispondente (il nome senza la designazione di parametro di query "@").

  3. Fare clic su Aggiungi. Verrà creato un parametro del report con proprietà predefinite.

  4. Nella sezione Proprietà digitare City nella casella di testo Nome.

  5. Verificare che Tipo di dati sia String.

  6. Nella casella di testo Messaggio di richiesta digitare Select a City:.

  7. Verificare che tutte le caselle di controllo siano deselezionate.

  8. Nella sezione Valori disponibili selezionare Da query.

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

  10. Nell'elenco a discesa Campo valori selezionare City.

  11. Nell'elenco a discesa Campo etichette selezionare City.

  12. Nella sezione Valori predefiniti selezionare Da query.

  13. Nell'elenco a discesa Set di dati selezionare ValidValuesforCity.

  14. Nell'elenco a discesa Campo valori selezionare City.

  15. Fare clic su OK.

  16. Fare clic sulla scheda Anteprima (facoltativo). Selezionare i valori per i parametri TerritoryGroup, CountryRegion e StateProvince. Verificare che i valori visualizzati per il parametro City siano validi per le selezioni eseguite.

In questo modo sono stati creati i valori per i parametri di propagazione. Questi valori verranno ora inclusi nella query del set di dati per l'area dati tabella in modo che i parametri selezionati vengano inclusi nella query che recupera i dati della tabella.

Per modificare la query per il set di dati degli ordini di vendita dei rivenditori in modo che includa i parametri di query esistenti

  1. Nella visualizzazione Dati selezionare Resellers nell'elenco a discesa Set di dati. Nel riquadro delle query verrà visualizzata la stringa di query originale creata nella lezione precedente.

  2. Sostituire il testo nel riquadro con la query seguente:

    SELECT S.CustomerID, SO.SalesOrderNumber, SO.OrderDate, SO.TotalDue,
        S.Name AS Store, A.City, SP.Name AS State, CR.Name
        AS CountryRegion, 
        SC.ContactID As StoreContactID, T.[Group] As TerritoryGroup
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.SalesOrderHeader AS SO ON 
        S.CustomerID = SO.CustomerID
        JOIN Sales.StoreContact SC ON  S.CustomerID = SC.CustomerID
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE(
        (T.[Group] = (@TerritoryGroup))
        AND
        (CR.Name = (@CountryRegion))
         AND
         (SP.Name = (@StateProvince))
        AND
        (A.City = (@City))
       )
    ORDER BY S.CustomerID 
    

    La query include ora parametri di query che utilizzano i valori dei parametri del report.

  3. Fare clic su Esegui (!) per visualizzare il set dei risultati. Verrà visualizzata la finestra di dialogo Definisci parametri query.

  4. Nella colonna Valore parametro digitare un valore per ogni parametro di query utilizzando la tabella seguente.

Nome parametro Valore parametro

@TerritoryGroup

Pacific

@CountryRegion

Australia

@StateProvince

Victoria

@City

Melbourne

  1. Fare clic su OK.
    Nel set dei risultati verranno visualizzate le vendite per i rivenditori della città di Melbourne.
    Quando i parametri di query sono stati aggiunti alla definizione della query per il set di dati Resellers, sono stati automaticamente impostati per ottenerne i valori dai valori dei parametri del report corrispondenti.
  2. Accanto all'elenco a discesa Set di dati fare clic sul pulsante Modifica set di dati selezionato () e quindi sulla scheda Parametri (facoltativo). Verificare che i parametri di query @TerritoryGroup, @CountryRegion, @StateProvince e @City siano associati ai valori dei parametri del report corrispondenti.

Per impostare il valore NoRows

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

  2. Fare clic all'interno della tabella per visualizzarne i quadratini di ridimensionamento. Fare clic sul selettore nell'angolo della tabella per selezionarla. La tabella verrà visualizzata con un contorno di colore grigio.

  3. Nella finestra Proprietà individuare la proprietà NoRows. Incollare il testo seguente nella casella di testo adiacente:

    There are no resellers in this area.

Per creare le caselle di testo del titolo e dei valori dei parametri del report principale

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

  2. Fare clic con il pulsante destro del mouse sulla casella di testo che contiene il timestamp di elaborazione del report e scegliere Espressione.

  3. Fare clic sul pulsante Espressione (Fx) accanto alla casella di testo Valore. Verrà visualizzata la finestra di dialogo Modifica espressione. Sostituire l'espressione del timestamp con il testo seguente:

    ="Report Processed Date: " & 
      Globals!ExecutionTime.ToShortDateString() & " " & 
      Globals!ExecutionTime.ToShortTimeString() & vbCrLf & 
      "Sales Territory for: " 
    & Parameters!TerritoryGroup.Value & ", " 
    & Parameters!CountryRegion.Value & ", "
    & Parameters!StateProvince.Value & ", "
    & Parameters!City.Value
    
  4. Fare clic su Anteprima. Provare a selezionare diversi valori di parametro. Si noti che mentre si seleziona ogni parametro, nell'elenco a discesa del parametro seguente vengono visualizzati solo i valori disponibili in base alla selezione eseguita. I dati del report non vengono modificati anche se si selezionano nuovi parametri. Per rielaborare il report con i parametri selezionati, fare clic su Visualizza report.

Passaggi successivi

In questo modo è stato creato un report con parametri di propagazione in cui sono visualizzate le vendite dei rivenditori per territorio. Nella lezione successiva verranno descritte le procedure per utilizzare i parametri per modificare la modalità di ordinamento delle righe di dettaglio e dei gruppi della tabella. Vedere Lezione 3: Modifica dell'ordinamento iniziale e dell'ordinamento interattivo mediante parametri.

Vedere anche

Altre risorse

Utilizzo di parametri in Reporting Services
Utilizzo dei parametri per controllare i dati del report

Guida in linea e informazioni

Assistenza su SQL Server 2005