Funzione Like in Crystal Reports

martedì 11 marzo 2008 - 18.08

lullone Profilo | Newbie

Scusate, ma com'è la sintassi nel formula editor di Crystal Reports 8.5 per filtrare un parametro di tipo stringa con il Like.
supponiamo che io voglia filtrare tutti quei records che abbiano un campo che contiele la parola addestramento ed io gli passo il parametro: addestr
Come comporre la giusta sintassi per filtrare i suddetti records?
Grazie

SSUPERPIPPO Profilo | Guru

>Scusate, ma com'è la sintassi nel formula editor di Crystal Reports
>8.5 per filtrare un parametro di tipo stringa con il Like.
>supponiamo che io voglia filtrare tutti quei records che abbiano
>un campo che contiele la parola addestramento ed io gli passo
>il parametro: addestr
>Come comporre la giusta sintassi per filtrare i suddetti records?
>Grazie

Hai provato così?

{NomeTabella.NomeCampo} like "addestr*"

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

lullone Profilo | Newbie

Innanzitutto grazie per la risposta.
Cmq ovviamente è la prima cosa che ho provato.
Ho provato sia ({NomeTabella.NomeCampo} Like 'addestr')
che ({NomeTabella.NomeCampo} in 'addestram').
Grazie ancora e ciao

SSUPERPIPPO Profilo | Guru

>Innanzitutto grazie per la risposta.
>Cmq ovviamente è la prima cosa che ho provato.
>Ho provato sia ({NomeTabella.NomeCampo} Like 'addestr')
>che ({NomeTabella.NomeCampo} in 'addestram').
>Grazie ancora e ciao

Da quello che mi scrivi manca il carattere jolly *

l'istruzione dovrebbe essere, come ti ho scritto prima: {NomeTabella.NomeCampo} Like 'addestr*' <==

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

lullone Profilo | Newbie

Si, ovviamente carattere jolly compreso.
Sfortunatamente se eseguo la query su access usando (like *addestr*),
funziona perfettamente e mi estrae oltre 400 records
che contengono le parole (addestramento o addestramenti).
Se, invece la stessa query la eseguo su Crystal Reports succede questo:
usando (like *addestr*) non mi estrae nessun record,
usando (in *addestr*) mi estrae 6 records che contengono
la parola (addestramento) e nessuno che contiene la parola (addestramenti).
MISTERO DELLA FEDE.
Grazie Superpippo per la tua disponibilità.

SSUPERPIPPO Profilo | Guru

Mi pare davvero strano, faccio qualche prova e ti faccio sapere.

Ciao

Ale

http://blogs.dotnethell.it/alebadalin

freeteo Profilo | Guru

ciao a tutti,
io ricordo di aver usato questa sintassi, 1po strana ma che faceva la funzionalita' del Like:

'valore' in {db.campo}

ovvero l'operatore "in"...non so se possa essere utile, cmq da me funziona correttamente.

ciao.

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

lullone Profilo | Newbie

Grazie freeteo, ma purtroppo non funge nemmeno così.
Ho provato usando (parametro in *addestr*) ed anche
(*addestr* in parametro) ed in entrambe i casi, mi estrae
soltanto 6 records anzichè gli oltre 400 che dovrebbe estrarre.

Cmq ho risolto in modo empirico.
1) Ho omogeneizzato i dati nel campo testuale interessato,
2) Ho creato una tabella di appoggio con un id ed una descrizione
uguale a quelle del campo testuale
3) Ho aggiunto un campo numerico alla prima tabella collegandolo
1 a 1 con l'id della tabella creata
4) Ho eseguito una query di aggiornamento inserendo nella prima tabella
gli id della nuova tabella linkandola per il campo testuale "descrizione".
Certo non si può dire che sia una soluzione elegante, ma così facendo
ho la possibilità di usare l'id (numerico) come filtro anzichè la descrizione
testuale.
5) Su Crystal Reports Ho passato il parametro numerico in questo modo:
if Not Isnull ({@DTin}) then {Q_OreInterventi.DataInt}>=({@DTin}) and
if Not Isnull ({@DTfin}) then {Q_OreInterventi.DataInt}<=({@DTfin}) and
if Not Isnull ({?s_Tecnico}) then {Q_OreInterventi.Id_Tecnici}=val({?s_Tecnico}) and
if Not Isnull ({?s_Comune}) then {Q_OreInterventi.Id_comune}=val({?s_Comune}) and
if Not Isnull ({?s_Id_DescrizFase}) then ({Q_OreInterventi.Id_DescrizFase})= val({?s_Id_DescrizFase})
e come per incanto tutto ha funzionato.

Grazie a tutti.
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5