Lezione 3: Modifica dell'ordinamento iniziale e dell'ordinamento interattivo mediante parametri
Data creazione: 17 luglio 2006
È possibile definire report che consentono di modificare in modo interattivo l'ordinamento di una o più colonne dei dati del report in un gruppo o un'area dati. Questa operazione può essere eseguita mediante l'ordinamento interattivo o l'ordinamento con parametri.
Con l'ordinamento interattivo si impostano le proprietà UserSort di una colonna o una casella di testo di intestazione di gruppo. Quando viene eseguito il rendering del report, nell'intestazione della colonna viene visualizzato il pulsante del controllo di ordinamento su cui è possibile fare clic per ordinare i dati. Inizialmente i dati non sono ordinati. La prima volta che si fa clic sul pulsante i dati vengono disposti in ordine crescente. Le volte successive si alterna l'ordinamento crescente con l'ordinamento decrescente.
Con l'ordinamento con parametri si crea un parametro per impostare l'ordinamento e si include un'espressione con tale parametro nell'espressione di ordinamento per un set di dati, un'area dati o un gruppo.
In questa lezione verranno aggiunti entrambi i tipi di ordinamento. Verrà aggiunto un parametro denominato InitialSort e verrà impostata un'espressione di ordinamento nella colonna TotalDue della tabella per ordinare inizialmente i gruppi della tabella in base all'importo totale aggregato. Verrà creato un parametro SortBy che consente di eseguire l'ordinamento per nome di negozio o per numero di ordini di vendita per negozio nella colonna Store della tabella. Verrà aggiunto un pulsante di ordinamento interattivo alla colonna Store e ne verrà impostata l'espressione di ordinamento in modo che dipenda dal valore di SortBy.
Per aprire il progetto Server report Advanced Parameters Tutorial
In SQL Server Business Intelligence Development Studio aprire il progetto Server report Advanced Parameters Tutorial, se non è ancora aperto.
In Esplora soluzioni fare doppio clic sul report Resellers Worldwide. Il report verrà aperto nella visualizzazione Layout.
Nella procedura seguente verrà modificata l'intestazione di gruppo della tabella affinché visualizzi sia il nome del negozio sia il numero di vendite per negozio. Verrà creato un parametro del report che consente di scegliere la modalità di ordinamento del gruppo di tabella, per nome di negozio o per numero di vendite per negozio.
Per aggiungere il valore di conteggio di gruppo all'intestazione di gruppo
Selezionare la casella di testo Store nella prima riga di intestazione del gruppo di tabella.
Sostituire l'espressione
=Fields!Store.Value
con il testo seguente:=Fields!Store.Value & vbCrLf & vbTab & "(" & Count(Fields!SalesOrderNumber.Value, "table1_Store") & ")"
Fare clic su Anteprima per visualizzare il nome del negozio e il numero di vendite per negozio su righe distinte nella prima riga dell'intestazione di gruppo (facoltativo).
Nella procedura seguente verrà creato un parametro del report che consente di selezionare la modalità di ordinamento del gruppo di tabella, per nome di negozio o per numero di vendite.
Per aggiungere un nuovo parametro del report
Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report.
Fare clic su Aggiungi. Verrà creato un nuovo parametro con valori predefiniti.
Nella sezione Proprietà digitare UserSortBy nella casella di testo Nome. Verificare che il tipo di dati sia String.
In Messaggio di richiesta digitare How do you want to sort the table group?.
Deselezionare la casella di controllo Consenti nessun valore.
Nella sezione Valori disponibili selezionare Non da query. Utilizzare la tabella seguente per immettere i valori.
Etichetta Valore Name of store
Name
Number of sales per store
Number
Nella sezione Valori predefiniti selezionare Non da query. Nella casella di testo digitare Name.
Scegliere OK.
Nella procedura seguente verrà aggiunto un controllo UserSort (noto anche come ordinamento interattivo) alla casella di testo dell'intestazione di gruppo in cui sono visualizzati il nome del negozio e il numero di vendite. Verrà impostata l'espressione per il controllo per l'utilizzo del valore del parametro del report UserSortBy. Quando si visualizza l'anteprima del report, in tale colonna verrà visualizzato un pulsante di ordinamento che consente di organizzare i valori in ordine crescente o decrescente per il campo definito da questo parametro.
Per aggiungere un pulsante di ordinamento interattivo a un gruppo
Nella riga dell'intestazione della tabella fare clic con il pulsante destro del mouse sulla prima casella di testo denominata textbox2 e scegliere Proprietà. Il contenuto di questa casella di testo è la stringa "Store". Verrà visualizzata la finestra di dialogo Proprietà casella di testo.
Fare clic sulla scheda Ordinamento interattivo.
L'impostazione delle proprietà nella scheda Ordinamento interattivo ha lo stesso effetto dell'impostazione delle proprietà per UserSort in una casella di testo.
Selezionare l'opzione Aggiungi un'azione di ordinamento interattivo a questa casella di testo.
Fare clic sul pulsante Espressione (Fx). Verrà visualizzata la finestra di dialogo Modifica espressione.
Incollare l'espressione seguente nel riquadro dell'espressione:
=IIF(Parameters!UserSortBy.Value="Name",Fields!Store.Value, Count(Fields!SalesOrderNumber.Value, "table1_Store"))
Se si incolla questa espressione direttamente nella casella di testo, si otterrà solo la prima riga dell'espressione.
Fare clic su OK.
Nella sezione Area dati o raggruppamento da ordinare selezionare Scegliere l'area dati o il raggruppamento. Nell'elenco a discesa selezionare table1, ovvero l'area dati della tabella.
Nella sezione Valuta l'espressione di ordinamento in questo ambito selezionare Scegliere l'area dati o il raggruppamento. Nell'elenco a discesa selezionare table1_Store, ovvero il raggruppamento dei negozi all'interno della tabella.
Se il parametro UserSortBy è impostato su Name, questa espressione valuterà
Fields!Store.Value
e i gruppi della tabella verranno ordinati così com'erano nella lezione precedente, ovvero alfabeticamente per nome di negozio. Se il parametro UserSortBy non è impostato su Name, i gruppi della tabella verranno ordinati in base al numero di vendite nel gruppo in ordine crescente.Fare clic su Anteprima.
Nella colonna Store della tabella verrà visualizzato un pulsante di ordinamento interattivo. L'ordinamento iniziale è il valore predefinito per l'ordinamento di gruppo della tabella. La prima volta che si fa clic sul pulsante di ordinamento interattivo la colonna verrà ordinata in base al valore del parametro UserSortBy. In seguito, quando si fa clic sul pulsante, si passerà dall'ordinamento crescente a quello decrescente e viceversa.
Nell'elenco a discesa selezionare il valore Number of sales per store per UserSortBy. Fare clic su Visualizza report.
Nella colonna da ordinare non viene visualizzata alcuna modifica finché non si elabora di nuovo il report in modo che l'espressione per il parametro venga rivalutata per questa nuova impostazione. La colonna viene quindi ordinata in base al numero di vendite invece che in base al nome del negozio.
Nella procedura seguente verrà aggiunto un parametro che consente di scegliere la modalità di ordinamento delle righe di dettaglio della tabella.
Per aggiungere un nuovo parametro del report per l'ordinamento con parametri
Scegliere Parametri report dal menu Report. Verrà visualizzata la finestra di dialogo Parametri report.
Fare clic su Aggiungi. Verrà creato un nuovo parametro con valori predefiniti.
Nella sezione Proprietà digitare InitialSort nella casella di testo Nome. Verificare che il tipo di dati sia String.
In Messaggio di richiesta digitare How do you want to sort the table detail rows?.
Deselezionare la casella di controllo Consenti nessun valore.
Nella sezione Valori disponibili selezionare Non da query. Utilizzare la tabella seguente per immettere i valori.
Etichetta Valore Total due
TotalDue
Sales order date
OrderDate
Nella sezione Valori predefiniti selezionare Non da query. Nella casella di testo digitare TotalDue.
Scegliere OK.
Nella procedura seguente verrà definita un'espressione di ordinamento che utilizza il parametro del report InitialSort in modo che le righe di dettaglio della tabella vengano ordinate in base al valore selezionato.
Per aggiungere un'espressione di ordinamento alla riga di dettaglio della tabella
Selezionare la tabella. Fare clic con il pulsante destro del mouse sul bordo della tabella e scegliere Proprietà. Verrà visualizzata la finestra di dialogo Proprietà tabella.
Fare clic sulla scheda Ordinamento.
Nell'elenco a discesa della casella di testo Espressione selezionare <Espressione>. Verrà visualizzata la finestra di dialogo Modifica espressione.
Sostituire il segno di uguale (=) con il testo seguente:
=IIF(InStr(Parameters!InitialSort.Value,"TotalDue")>0,Fields!TotalDue.Value,Fields!OrderDate.Value)
In questo modo verrà verificato il parametro per il valore stringa "TotalDue". Se viene trovato, il campo TotalDue verrà utilizzato per l'ordinamento. In caso contrario, verrà utilizzato il campo OrderDate. La direzione di ordinamento, ovvero Ascending o Descending, non si basa sull'espressione. Il valore impostato nella scheda Ordinamento verrà pertanto applicato al campo specificato nell'espressione valutata.
Fare clic su OK.
Modificare il valore del parametro per InitialSort e fare clic su Visualizza report (facoltativo). Espandere il nodo del negozio Efficient Cycling. Verificare che le righe di dettaglio siano ordinate in base all'impostazione di InitialSort.
Passaggi successivi
In questo modo sono stati aggiunti due parametri per controllare se l'ordinamento dei dati mediante il pulsante di ordinamento interattivo nella colonna Store viene eseguito per nome di negozio o numero di vendite e se le righe di dettaglio di una tabella vengono ordinate in base alla data dell'ordine o all'importo totale dovuto. Nella lezione successiva verranno descritte le procedure per controllare lo stato di drill-down iniziale di questo report con un parametro booleano nascosto. Vedere Lezione 4: Aggiunta di un parametro booleano per controllare lo stato di drill-down iniziale.
Vedere anche
Altre risorse
Utilizzo di parametri in Reporting Services
Ordinamento dei dati in un report