Crystal Report e Stringa SQL

martedì 31 gennaio 2006 - 08.24

sanpeinet Profilo | Newbie

ciao a tutti,

vorrei passre ad un report oltre la stringa di connessione anche una stringa SQL per recuperasre dal DB solo i record che mi interessano, ma non trovo nulla per fare ciò.
vorrei, inoltre, da codice cambiare in maniera programmatica la stringa SQL.
Ho utilizzato SelectionFOrmula, ma non fa al caso mio perchè i dati prima vengono trirati su dal DB e poi filtrati dal report, il che se ho una tabella con migliaia di record non va proprio bene.

ringrazio anticipatamente chi volesse darmi una mano

freeteo Profilo | Guru

ciao,
purtroppo questa opzione non ce per il tipo di licenza "embedded" che ha visual studio, ovvero non puoi crearti 1report da codice , e quindi nel tuo caso cambaire la stringa e agganciare nuovi campi.
L'unica cosa che puoi fare è usare selectionformula come dicevi di aver fatto, o lavorare con 1a stringa sql piu standardizzata e poi passare i dati come datasource.
Intendo qualcosa tipo:

select titolo, data, utente from messaggi

e poi tu da codice carichi:

select campo as titolo, campo2 as data, campo3 as utente from altratab

e crystal si aspetta la struttura formata da 3 campi e tu glieli passi sempre anche se i valori sono diversi...
questo è 1po 1a forzatura ma purtroppo non ha alternative che passare via ado.net tramite datatable o dataset e poi settarlo come sorgente al report....mappando i campi magari trovi 1 compromesso...

ciao

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

sanpeinet Profilo | Newbie

tengo a precisare che non voglio agganciare nuovi campi, ma solamente specificare una clausula where, in modo da selezionare i record che mi interessano stampare.

"Select ... from tabella where "qualsiasi condizione"

e questa stringa la vorrei passare da codice al report. I campi interessati sono esattamenti gli stessi che ho nel report, perchè l'ho progettato inserendo la tabella così come da DB.

Avendo progettato il report agganciando la Tabella del DB in fase di stampa il report tira su TUTTI i dati contenuti nella tabealla, e utilizzando SelectFormula questi vengono solamente filtrati.

Il report progettato in questo modo mi da il vantaggio di potere prendere i dati sia dal DB che, quando lo ritengo opportuno, da un dataset che ha la stessa struttura dei campi sul report.

Il DataSet/DataTable come datasource mi costringe, nel caso specifico, a riempire il dataset/datatble con migliaia di righe, visto il volume di dati da stampare, il che ovviamnete non è il massimo!

Quindi la mia richiesta è relativa alla possibilità di selezionare i dati a livello di DB, cosa che peraltro di poteva fare nella versione (8 usando la proprietà SQLQuery dell'ocx)

A proposito di Licenging, pensi che la versione professional o developer risolva questo "mio" problema?



freeteo Profilo | Guru

ciao,
effettivamente nn saprei se co nla versione developer e quindi usando 1viewer e 1runtime non piu integrato in vs ma direttamente incluso come ocx tu riesca a risolvere, se hai laversione 8 cmq puoi provare a vedere se usando l'ocx nell'applicazione .net il problema lo risolvi...anceh se sarebbe meglio usare assembly .net puoi cmq provare...
Ad ogni modo, sei sicuro che non riesci con il recordselectionformula a fartelo bastare? sai che puoi metterlo anche con 1 campo formula all'interno? magari con questo "giro" ce la fai...

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

sanpeinet Profilo | Newbie

...ma SelectionFormula agisce a livello di report o a livello di estrazione dei dati dal DB? nel senso prima: prima vengomo estratti TUTTI i record dal DB e poi SelectionFormula li filtra o no?
a me ha dato sempre l'impresseione che agisse a livello di report

a proposito di versione...
se acquisto la versione developer di cristal report questo si integra con visual studio o avrei due versioni distinte?

freeteo Profilo | Guru

>...estratti TUTTI i record dal DB e poi SelectionFormula li filtra o no?
si infatti se controlli le query che fa su db (tramite profiler di sql ad esempio) lui f asempre al query di tutto e poi filtra...

>a proposito di versione...se acquisto la versione developer di cristal report questo si
> integra con visual studio o avrei due versioni distinte?
non lo so se percaso ce 1modo per integrarli ma per quanto ho potutto vedere io,quando lo installi hai il suo editor di report esterno ma puoi integrarlo in vs.net via com

ma non so se cambia qualcosa nella versione XI, ad ogni modo puoi provare a cercare nella kb ufficiale crystal :http://support.businessobjects.com/

ciao

Matteo Raumer
MCAD.net - net addicted :-)
http://blogs.dotnethell.it/freeteo
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