2009-09-18 13 views
5

Ho due rapporti. Il primo report seleziona un tipo di report da un dropdownbox e accetta da/a date e quando si fa clic sul report della vista - elenca i nomi dei clienti per questo tipo di report.Passing Date come parametro per un sottoreport/un altro report da utilizzare come parametro

Quando si fa clic sul customername, la seconda relazione si chiama (azione) passando 3 parametri - customername, datefrom e dateto come parametri da utilizzare nella seconda relazione.

Quando eseguo ciascun report singolarmente, entrambi funzionano correttamente. Quando eseguo il primo rapporto (selezionare il tipo di rapporto, selezionare datefrom/dateto), questo rapporto elenca tutti i nomi dei clienti per questo tipo di rapporto. Quando clicco sul customername, sto ottenendo un errore:

'The value provided for the report parameter 'reportdatefrom' is not valid for its type' (rsReportParameterTypeMismatch)

prega di aiuto.

risposta

1

Utilizzare qualcosa come il formato (Parametri! Reportdatefrom.Value, "AAAAMMGG") per forzare il valore in una stringa canonica prima di passarlo al sottoreport.

SSRS ha talvolta problemi con data e ora. L'indirizzabilità degli URL significa che tutti i valori dei parametri vengono comunque convertiti in stringhe, ma le regole di conversione predefinite possono essere diverse a seconda dei componenti. Un componente genererà un valore letterale di data e ora che un altro componente non può leggere. Di solito ciò è dovuto a impostazioni regionali non statunitensi.

In ogni caso, per ovviare a ciò, è sufficiente convertire le date in string letterali in formato canonico ODBC prima di passarle in giro.

+2

L'espressione della stringa deve essere nel formato corretto: formato (Parametri! Reportdatefrom.Value, "aaaaMMgg") (informazioni minuscole per anno e giorno).Problemi analoghi e l'espressione seguente hanno funzionato nel mio rapporto: = Formato (Parametri! Reportdatefrom.Value, "gg/MM/aaaa") –

0

Dipende anche da come si passa l'URL nel sottoreport.

Se stai passando attraverso l'oggetto sottoreport nel report principale, e la proprietà di azione tramite l'opzione URL:

enter image description here

Vi suggerisco di creare la stringa URL e aggiungere ad esso il Campo riferimenti necessari per soddisfare i requisiti dei parametri del sottoreport.

cioè

="http://serverXXXX/ReportServer?/FernandoReports/rptTET&rs:Command=Render&rc:toolbar=false&wsTETID=" + Fields!TETID.Value.ToString() 

In questo modo il gioco è costringere SSRS per rendere l'intero valore del campo come una stringa con il valore corretto dalla tabella Campi.

0

check tipo di parametro in rapporto 2 ° entrambi i parametri! Da e parametri! Per sono Datetime Tipo ma non so quale metodo si chiama rapporto di 2 °, ma nel mio caso ho voi in questo modo

clic destro del mouse su Casella di testo> Proprietà> selezionare Azione sul pannello di sinistra> scegliere Go to Report un'opzione come questa immagine di seguito

enter image description here

Quindi aggiungere il parametro di inviare il rapporto di 2 °.

Verificare che i parametri! Da e A (entrambi i report) siano di tipo Datetime.