Query SQL nel Formula Worksheet

lunedì 06 marzo 2006 - 17.21

bpuglia Profilo | Newbie

Salve a tutti

Sono nuovo del Forum.

Ho necessità di mettere nel Formula worksheet una query SQL, più o meno vorrei fare questo:

if {PROGETTO.COD_AREA_PROGETTO} <> 1
then
select des_progetto from progetto_storico where {TRANSAZIONI.DATA_ORA_MOVIMENTO} between data_inizio_validita and data_fine_validita


Vorrei quindi che fosse visualizzato il contenuto del campo DES_PROGETTO.
Purtroppo non posso prenderlo da una tabella o command, perchè il valore dipende dal campo visualizzato del dettaglio.

E' possibile fare ciò in CRXI???

Grazie a tutti

freeteo Profilo | Guru

ciao,
allora mi sembra che anche la XI di Crystal non dia la possibilita' di cambiare la query a runtime (almeno nelle versioni con royalty free) pero' puoi giocare con 1trucchetto da query, ovvero caricare da codice 1 alias del campo a 2a (seconda) della scelta:

select data as miocampo form tabella

ti carichi 1a datatable e poi la setti come sorgente del report.
Quando devi scegliere 1altro campo (il tuo "PROGETTO.COD_AREA_PROGETTO <> 1") la stessa datatable la setti con:

select altrocampo as miocampo form tabella

cosi il report si aspetta sempre 1campo di nome "miocampo" e tu glielo cambi sotto il naso.
Qualcosa di simile lo puoi raggiungere altrimenti caricando entrambi i campi e poi usare 1a formula che switchi tra i due campi, ovvero 1a formula con dentro:

if (PROGETTO.COD_AREA_PROGETTO <> 1)
{campo1}
else
{campo2}


Quindi la formula prende il campo (che pero' devi aver caricato entrambi da query ) a 2a della scelta,e lo metti ovviamente nella sezione dettagli metti...
potrebbe andare bene come "compromesso"?

ciao
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bpuglia Profilo | Newbie

Grazie per la risposta

Però il mio problema nn è la prima parte della formula quanto la possibilità di fare una query, a prescindere dalla condizione.

Praticamente il valore di un campo formula deve assumere il risultato di una query fatta sul db, la query quindi viene eseguita per ogni riga di dettaglio.

Spero di essermi spiegato meglio.

Grazie,
Ben

freeteo Profilo | Guru

ciao,
ho capito allora forse puoi lavorare con i campi sqlexpression "campi espressione sql" e dentro ci scrivi in sintassi sql la quesry che deve ritornarti 1valore (mi raccomando 1 valore solo altrimenti la formula ti da errore) ad esempio:

select count(id) from tabella

questa sintassi la scrivi dentro al campo espressione sql e vedrai che nel report ti restituisce 1campo con 1 valore (in questo esempio 1 numero)

era questo che cercavi?
grazie, ciao
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

bpuglia Profilo | Newbie

Grazie per la risposta.

Ho risolto in modo diverso mettendo tutti i campi che mi servivano nella SELECT che mi restituisce tutti i dettagli.

Ciao,
Ben
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