Lezione 4: Aggiunta di parametri di propagazione

I parametri di propagazione consentono di gestire quantità elevate di dati del report. Nei parametri di propagazione l'elenco di valori per un parametro dipende dal valore selezionato nel parametro precedente. L'ordine dei parametri di propagazione è importante, in quanto la query del set di dati relativa a un parametro successivo nell'elenco include riferimenti ai parametri precedenti.

In questa lezione verrà creato un report con una query del set di dati principale che definisce tre parametri di query per categoria, sottocategoria e prodotto. Verranno definiti tre set di dati aggiuntivi che forniscono valori disponibili per ogni parametro di propagazione.

Per aggiungere un nuovo report a un progetto server report aperto

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Report, scegliere Aggiungi e quindi fare clic su Nuovo elemento.

  2. Nel riquadro Modelli della finestra di dialogo Aggiungi nuovo elemento fare clic su Report.

  3. In Nome digitare CascadingParameters.rdl, quindi fare clic su Aggiungi.

    Verranno visualizzati Progettazione report e il nuovo file con estensione rdl nella visualizzazione Progettazione.

Per creare un riferimento a un'origine dati condivisa

  1. Nel riquadro Dati report fare clic su Nuova, quindi su Origine dati.

  2. Nella casella Nome digitare AdventureWorks_Ref.

  3. Selezionare Usa riferimento a origine dati condivisa.

  4. Selezionare AdventureWorks nell'elenco a discesa.

  5. Fare clic su OK.

Per creare il set di dati principale con una query e parametri di query

  1. Nel riquadro Dati report fare clic con il pulsante destro del mouse sull'origine dati AdventureWorks_Ref e scegliere Aggiungi set di dati.

  2. Nella casella Nome digitare SalesbyCategory.

  3. In Origine dati verificare che sia selezionato AdventureWorks_Ref.

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

  5. Sotto il riquadro Query fare clic su Progettazione query.

  6. Incollare la query seguente:

    SELECT 
       PC.Name AS Category,
       PSC.Name AS Subcategory,
       P.Name AS Product,
       SOH.[OrderDate],
       SOH.SalesOrderNumber,
       SD.OrderQty, 
       SD.LineTotal
       FROM [Sales].[SalesPerson] SP 
          INNER JOIN [Sales].[SalesOrderHeader] SOH 
          ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
          INNER JOIN Sales.SalesOrderDetail SD
          ON SD.SalesOrderID = SOH.SalesOrderID
          INNER JOIN Production.Product P
          ON SD.ProductID = P.ProductID
          INNER JOIN Production.ProductSubcategory PSC
          ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
          INNER JOIN Production.ProductCategory PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE (PC.Name = (@Category)
             AND PSC.Name = (@Subcategory)
             AND P.Name = (@Product))
    

    La query ora include i parametri di query @Category, @Subcategory e @Product.

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

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

    Nome parametro

    Valore parametro

    @Category

    Components

    @Subcategory

    Brakes

    @Product

    Front Brakes

  9. Fare clic su OK.

    Il set di risultati contiene un elenco di numeri di ordini di vendita, raggruppati per data, relativi ai freni anteriori (front brakes).

    Quando è stata eseguita la query, ogni parametro ha prodotto il parametro di report corrispondente. Fare due volte clic su OK per chiudere Progettazione query e la finestra di dialogo.

  10. (Facoltativo) Nel riquadro Dati report espandere il nodo Parametri e verificare che siano visualizzati i parametri di report seguenti: Category, Subcategory e Product.

  11. (Facoltativo) Il valore di ogni parametro di query del set di dati viene associato a un parametro di report con lo stesso nome. Per eseguire questa verifica, nel riquadro Dati report fare clic con il pulsante destro del mouse su SalesbyCategory e scegliere Proprietà set di dati.

    1. Fare clic su Parametri.

    2. Nella colonna Nome parametro verificare che i nomi siano @Category, @Subcategory e @Product.

    3. Nella colonna Valore parametro verificare che i valori siano [@Category], [@Subcategory] e [@Product].

      Queste espressioni semplici si riferiscono ai parametri di report visualizzati nel riquadro Dati report.

Successivamente verrà creato un set di dati per fornire entrambi valori per ogni parametro di report in fase di esecuzione. I valori verranno utilizzati per i valori disponibili e per fornire i valori predefiniti in modo da consentire l'esecuzione automatica del report.

Per definire un set di dati dei valori validi per un parametro di report

  1. Nel riquadro Dati report fare clic con il pulsante destro del mouse su AdventureWorks_Ref e scegliere Aggiungi set di dati.

  2. Nella casella Nome digitare CategoryValues.

  3. In Origine dati verificare che sia selezionato AdventureWorks_Ref.

  4. In Tipo di query verificare che sia impostato Testo.

  5. Sotto il riquadro Query fare clic su Progettazione query.

  6. Nel riquadro Query incollare il seguente testo della query:

    SELECT DISTINCT Name AS Category FROM Production.ProductCategory
    

    Il comando SELECT DISTINCT recupera solo valori univoci da una colonna.

  7. Fare clic su Esegui (!) per visualizzare il set di risultati. Nella colonna Category vengono visualizzati quattro valori: Accessories, Bikes, Clothing e Components.

  8. Fare clic su OK.

Successivamente si imposteranno le proprietà relative al parametro di report Category in modo che i valori di questa query vengano utilizzati sia per i valori disponibili sia per i valori predefiniti del parametro.

Per impostare i valori disponibili e i valori predefiniti per un parametro di report

  1. Nella cartella Parametri del riquadro Dati report fare clic con il pulsante destro del mouse su Category e scegliere Proprietà parametri.

  2. In Nome verificare che il nome sia Category.

  3. Fare clic su Valori disponibili.

  4. Fare clic su Ottieni valori da una query. Verranno visualizzati tre campi.

  5. In Set di dati selezionare CategoryValues nell'elenco a discesa.

  6. Nel campo Valore fare clic su Category.

  7. Nel campo Etichetta fare clic su Category.

  8. Fare clic su Valori predefiniti.

  9. Fare clic su Ottieni valori da una query.

  10. In Set di dati selezionare CategoryValues nell'elenco a discesa.

  11. Nel campo Valore selezionare Category.

  12. Fare clic su OK.

Successivamente si modificherà il parametro @Subcategory in modo che dipenda dal valore selezionato per @Category.

Per aggiungere il set di dati dei valori per il parametro di report Subcategory

  1. Nel riquadro Dati report fare clic con il pulsante destro del mouse su AdventureWorks_Ref e scegliere Aggiungi set di dati.

  2. Nella casella Nome digitare SubcategoryValues.

  3. Nel riquadro Query incollare la query seguente:

    SELECT DISTINCT PSC.Name AS Subcategory 
       FROM Production.ProductSubcategory AS PSC
          INNER JOIN Production.ProductCategory AS PC
          ON PC.ProductCategoryID = PSC.ProductCategoryID
          WHERE PC.Name = (@Category)
    
  4. Fare clic su OK.

  5. Nel riquadro Dati report viene visualizzato il set di dati SubcategoryValues. Nel campo Subcategory l'elenco dei componenti è costituito da 14 righe.

Impostare quindi le proprietà relative al parametro di report @Subcategory in modo che i valori di questa query vengano utilizzati sia per i valori disponibili sia per i valori predefiniti del parametro.

Per impostare i valori disponibili e i valori predefiniti per il parametro di report Subcategory

  1. Nella cartella Parametri del riquadro Dati report fare clic con il pulsante destro del mouse su Subcategory e scegliere Proprietà parametri.

  2. Fare clic su Valori disponibili.

  3. Fare clic su Ottieni valori da una query.

  4. In Set di dati selezionare SubcategoryValues nell'elenco a discesa.

  5. Nel campo Valore fare clic su Subcategory.

  6. Nel campo Etichetta fare clic su Subcategory.

  7. Fare clic su Valori predefiniti.

  8. Fare clic su Ottieni valori da una query.

  9. In Set di dati selezionare SubcategoryValues nell'elenco a discesa.

  10. Nel campo Valore fare clic su Subcategory.

  11. Fare clic su OK.

Creare quindi un parametro @Product che dipende sia dal valore di @Category sia dal valore di @Subcategory.

Per aggiungere il set di dati dei valori per il parametro di report Product

  1. Nel riquadro Dati report fare clic con il pulsante destro del mouse su AdventureWorks_Ref e scegliere Aggiungi set di dati.

  2. Nella casella Nome digitare ProductValues.

  3. Nel riquadro Query incollare la query seguente:

    SELECT DISTINCT P.Name AS Product
    FROM Production.Product P
       INNER JOIN Production.ProductSubcategory AS PSC
       ON P.ProductSubcategoryID = PSC.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PSC.ProductCategoryID
    WHERE (PC.Name = (@Category)
       AND PSC.Name = (@Subcategory))
    
  4. Fare clic su OK.

    Un set di dati denominato ProductValues con un campo denominato Product verrà aggiunto al riquadro Dati report.

Impostare quindi le proprietà relative al parametro @Product in modo che i valori di questa query vengano utilizzati sia per i valori disponibili sia per i valori predefiniti del parametro.

Per impostare i valori disponibili e i valori predefiniti per il parametro di report Product

  1. Nella cartella Parametri del riquadro Dati report fare clic con il pulsante destro del mouse su Product e scegliere Proprietà parametri.

  2. Fare clic su Valori disponibili.

  3. Fare clic su Ottieni valori da una query.

  4. In Set di dati selezionare ProductValues nell'elenco a discesa.

  5. Nel campo Valore fare clic su Product.

  6. Nel campo Etichetta fare clic su Product.

  7. Fare clic su Valori predefiniti.

  8. Fare clic su Ottieni valori da una query.

  9. In Set di dati selezionare ProductValues nell'elenco a discesa.

  10. Nel campo Valore fare clic su Product.

  11. Fare clic su OK.

Aggiungere quindi una tabella in modo da vedere l'effetto che si ottiene scegliendo un valore per ogni parametro di propagazione.

Per aggiungere una tabella per visualizzare i risultati

  1. Aggiungere una tabella nella visualizzazione Progettazione

  2. Nel riquadro Dati report trascinare i campi seguenti dal set di dati SalesbyCategory alle 3 celle della riga di dettaglio della tabella: SalesOrderNumber, OrderQty, LineTotal.

  3. Trascinare Category dal set di dati SalesbyCategory nel riquadro Gruppi di righe e rilasciarlo al di sopra del gruppo Dettagli.

  4. Trascinare Subcategory dal set di dati SalesbyCategory nel riquadro Gruppi di righe e rilasciarlo al di sotto di Category.

  5. Trascinare Product dal set di dati SalesbyCategory nel riquadro Gruppi di righe e rilasciarlo al di sotto di Subcategory.

  6. Trascinare OrderDate dal set di dati SalesbyCategory nel riquadro Gruppi di righe e rilasciarlo al di sotto di Product.

  7. (Facoltativo) Formattare le celle seguenti: [LineTotal] come Valuta, [OrderDate] come Data.

Per testare i parametri di propagazione

  1. Fare clic su Anteprima.

    Il report viene eseguito automaticamente, in quanto è stata specificata l'impostazione predefinita per ogni parametro di report.

  2. Selezionare Components nell'elenco a discesa Category.

  3. Selezionare Brakes nell'elenco a discesa Subcategory.

  4. Selezionare Front Brakes nell'elenco a discesa Product

    Si noti che, durante la selezione di ogni parametro, nell'elenco a discesa del parametro seguente vengono visualizzati solo i valori validi che si basano sulle selezioni precedenti.

  5. Fare clic su Visualizza report nella barra degli strumenti del visualizzatore di report.

Nel report sono visualizzati i numeri degli ordini di vendita per i quali la quantità e i totali di riga includono il prodotto "front brakes". Nella tabella sono visualizzati gli ordini di vendita organizzati per categoria, sottocategoria, prodotto e data.

Passaggi successivi

In questa lezione è stato creato un report nel quale sono visualizzati gli ordini di vendita che includono un prodotto specifico. Sono stati utilizzati parametri di propagazione per filtrare i prodotti per categoria, sottocategoria e nome. Nella lezione successiva verranno descritte le procedure per passare un parametro a un report drill-through. Vedere Lezione 5: Aggiunta di parametri da passare a un report drill-through.