Sessione = null

martedì 12 febbraio 2008 - 12.15

lullone Profilo | Newbie

Scusate, ho preparato un report con Crystal Reports versione 8.5. Il report viene lanciato da una pag. asp v3.0. Il parametro di sessione che viene passato è la risultante di un form di tipo search con listbox. Questo listbox passa un valore numerico da 1 a 7. Il mio problema è che se si lancia il report senza eseguire la selezione attraverso il listbox, il parametro passato (giustamente) è = a null ed è cosi' che deve essere. Io vorrei ottenere che, nel report, nel caso in cui il parametro fosse = a null, non venga eseguita alcuna selezione cioè il report dovrebbe estrarmi tutti i records della tabella, ma non ci riesco. Nell'eventualità che il parametro sia = a null il report mi esce vuoto senza nemmeno un record.

Spero di essere stato abbastanza chiaro.

Sapreste dirmi qual'è la sintassi corretta?

Vi invio un paio di prove che non funzionano:

1)

if not isnull({?Tipo})then({Q_CommesseXtipo.Tipologia})=val({?Tipo})else({Q_CommesseXtipo.Tipologia})<>val({?Tipo})

2)

if not isnull({?Tipo})then({Q_CommesseXtipo.Tipologia})=val({?Tipo})else({?Tipo})in Cstr({Q_CommesseXtipo.Tipologia})

Che devo fà?
Grazie

Manlio

freeteo Profilo | Guru

ciao,
come prima cosa mi viene in mente di provare ad usare un campo formula anziche un parametro, infatti sono gestiti in maniera "non obbligatoria" per l'esecuzione del report...quindi prova a passare il valore in uno di quelli, e fare i controlli che fai, che se non ho capito male, sono fatti a livello di "RecordSelectionFormula" del report, giusto? (se si, è ok anche come concetto)

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

lullone Profilo | Newbie

Ti ringrazio per la risposta, oggi pomeriggio lo provo e poi ti faccio sapere.


Allora sembra che il problema sia risolto.
questa è la sintassi funzionante:

if({?Tipo})<>""then{Q_CommesseXtipo.Tipologia}=val({?Tipo})else{Q_CommesseXtipo.Tipologia}<>val({?Tipo})

Adesso però sorge un altro problema:
I parametri da passare diventano 2, sempre con la stessa fattispecie e cioè: if, then, ed else.
In pratica se io passo nell'ordine:

({?Tipo})=""
e
({?IDComune})=285

Il report dovrebbe estrarre tutti i records con qualsiasi tipologia
e soltanto i records con IDComune=285

Purtroppo però dei 2 parametri passati, il report riconosce solo il primo, a prescindere dall'ordine con il quale essi siano passati.

Ad esempio in questa fattispecie:

({?Tipo})=""
e
({?IDComune})=575

Il report estrae giustamente tutti records con qualsiasi ({?Tipo}) e con ({?IDComune})=575.

Se invece passo come parametro anche ({?Tipo}),
ad esempio:

({?Tipo})=4
e
({?IDComune})=575

Il report estrae tutti i records filtrati per ({?Tipo})=4, ma se ne frega di filtrare quelli con ({?IDComune})=575,
in pratica non riconosce il secondo parametro.
Mi rendo conto che la cosa si complica abbastanza.
Sapreste aiutarmi?
Grazie
Manlio

Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5