Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Mi consigliate Crystal per il mio scopo?
giovedì 08 aprile 2010 - 22.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
alsatan
Profilo
| Newbie
32
messaggi | Data Invio:
gio 8 apr 2010 - 22:44
Ciao a tutti!
Allora vi spiego, ho quasi terminato la mia applicazione in vb.net e ora una delle funzionalità è stampare alcuni dati su dei moduli come se fossero prestampanti.
Prima di addentrarmi con Crystal ho cercato di fare tutto in VB , mettevo il modulo come immagine di sfondo, poi varie label o textbox che prendevano i valori da un DB.
Il problema si è presentato quando mi sono trovato davanti a moduli in formato orizzontale e altri in formato verticale. Le funzioni per il form print sono davvero scarse, per cui mi è stato consigliato di lavorare con Crystal, e in effetti sono riuscito tramite un viewer a far vedere tutti i moduli da stampare, ogni modulo è un report di Crystal e gestisco tranquillamente la stampa.
Il problema è la raccolta dati dal DB...
Io non devo solo fare delle query e ripetere dei dati, anzi in ogni modulo mi serve 1 solo risultato della mia query, tipo SELECT * FROM CLIENTI WHERE ID_CLIENTE LIKE...etc etc
Il problema consiste che in base ai valori che leggo dal DB devo compilare il modulo diversamente, esempio:
Nel modulo (che è un immagine in BG) c'e' "INTESTAZIONE", nel db ho un campo che si chiama Tipo_Azienda se questa è uguale a DITTA INDIVIDUALE, dovrò scrivere i campi del DB COGNOME & NOME, se invece è SRL, SNC etc etc in "INTESTAZIONE" dovrò scrivere il campo del DB RAGIONE SOCIALE.
E cosi via...se in SESSO c'e' M dovrò fare una "X" in un certo punto, se è F in un altro..
Prima di perdere ore e ore magari inutilmente, credete che sia possibile farlo?
Ovvero nella sezione formule di CR è possibile fare qualcosa del tipo:
IF {comando.Sesso_Cliente} = "M" then
text5="X"
text6=""
else
text5=""
text6=X"
end if
Spero di essermi fatto capire..
Grazie in anticipo :)
Ah dimenticavo, oltre a questo dovrei poter anche inserire formule per adattare il testo in una textbox in base alla lunghezza della stringa da inserire, ovvero modificare la dimensione del carattere in base alla lunghezza del testo da inserire, è possibile?
carloalberto
Profilo
| Junior Member
166
messaggi | Data Invio:
gio 8 apr 2010 - 23:19
>
>Il problema è la raccolta dati dal DB...
>
>Io non devo solo fare delle query e ripetere dei dati, anzi in
>ogni modulo mi serve 1 solo risultato della mia query, tipo SELECT
>* FROM CLIENTI WHERE ID_CLIENTE LIKE...etc etc
e questo non è un problema, il fatto che hai una sola riga non è un problema , puoi mettere l'informazione nella 'testata' o nel 'dettaglio' come meglio credi
>
>Il problema consiste che in base ai valori che leggo dal DB devo
>compilare il modulo diversamente, esempio:
>
>Nel modulo (che è un immagine in BG) c'e' "INTESTAZIONE", nel
>db ho un campo che si chiama Tipo_Azienda se questa è uguale
>a DITTA INDIVIDUALE, dovrò scrivere i campi del DB COGNOME &
>NOME, se invece è SRL, SNC etc etc in "INTESTAZIONE" dovrò scrivere
>il campo del DB RAGIONE SOCIALE.
qui con le formule di crystal ci vai a nozze. in sintesi devi crearti una funzione, nel suo corpo fai una if con la condizione che dici e stampi un campo piuttosto che un'altro
puoi usare adirittura una sintassi 'amichevole' , cioè simile a quella di VB
>
>E cosi via...se in SESSO c'e' M dovrò fare una "X" in un certo
>punto, se è F in un altro..
come sopra
>Prima di perdere ore e ore magari inutilmente, credete che sia
>possibile farlo?
qualche ora la devi cmq perdere per crearti il report :-)
>Ovvero nella sezione formule di CR è possibile fare qualcosa
>del tipo:
>
>IF {comando.Sesso_Cliente} = "M" then
>text5="X"
>text6=""
>else
>text5=""
>text6=X"
>end if
ovvero:
IF {comando.Sesso_Cliente} = "M" then
"X"
creandoti tante formule quante sono i campi che devi stampare
oppure sposti tutto su SQL e ti fai una vista che ti ritorna tutti i dati (o parte) gia filtrati
>
>Spero di essermi fatto capire..
>
>Grazie in anticipo :)
prego
>Ah dimenticavo, oltre a questo dovrei poter anche inserire formule
>per adattare il testo in una textbox in base alla lunghezza della
>stringa da inserire, ovvero modificare la dimensione del carattere
>in base alla lunghezza del testo da inserire, è possibile?
si ...non puoi immaginare cosa puoi fare con crystal (a parte il caffè) :-)
ciao
alsatan
Profilo
| Newbie
32
messaggi | Data Invio:
ven 9 apr 2010 - 00:48
eheh mi sa che le ore da ora aumenteranno eccome :)
Sono appena riuscito a fare qualcosina con tanti IF :)
Dimmi se il metodo è sbagliato...
In pratica per ogni campo da scrivere nel mio modulo invece che draggare direttamente i campi che trova nella query, creo dei campi formula quindi nell esempio che ho fatto prima ho fatto qualcosa tipo questo
Tradotto in "italianesco"
CAMPO FORMULA : "SESSOF"
------------------------------
variabile sesso := commando.sesso;
variabile scrivisessog := "";
SE sesso = "F" ALLORA
(
scrivisessof := "P" (che in carattere Wingdings2 sarebbe la "V" che spunta i checkbox)
);
ALTRIMENTI
(
scrivisessof :=""
);
scrivisessof;
In pratica per ogni campo faccio la stessa procedura, creo il suo campo formula e faccio i dovuti controlli.
Speravo ci fosse qualcosa dove scrivere tutto un codice di controllo e poter prendere più variabili in una volta piuttosto che farne una ad una..
Cmq il risultatò cosi lo otterrò! Grazie!
Per quanto riguarda l'adattamento del testo ridimensionando il carattere hai qualche articololo da linkarmi?
Ho trovato solo argomenti che parlano di come non troncare il testo, fare più righe etc etc, ma qualcosa come serve a me no. :-(
carloalberto
Profilo
| Junior Member
166
messaggi | Data Invio:
ven 9 apr 2010 - 01:04
>eheh mi sa che le ore da ora aumenteranno eccome :)
:-)
>
>CAMPO FORMULA : "SESSOF"
>------------------------------
>variabile sesso := commando.sesso;
>variabile scrivisessog := "";
>SE sesso = "F" ALLORA
>(
>scrivisessof := "P" (che in carattere Wingdings2 sarebbe la "V"
>che spunta i checkbox)
>);
>ALTRIMENTI
>(
>scrivisessof :=""
>);
>scrivisessof;
si vabbene
>Speravo ci fosse qualcosa dove scrivere tutto un codice di controllo
>e poter prendere più variabili in una volta piuttosto che farne
>una ad una..
Se 'prepari' prima i dati e poi li dai in pasto a crystal, costruendoti una vista od addirittura con una stored popoli una tabella temporane su cui poi basi il report
nei vari campi ci metti quello che vuoi.
>Cmq il risultatò cosi lo otterrò! Grazie!
:-) prego
>Per quanto riguarda l'adattamento del testo ridimensionando il
>carattere hai qualche articololo da linkarmi?
no , che crystal usi?
alsatan
Profilo
| Newbie
32
messaggi | Data Invio:
ven 9 apr 2010 - 01:40
Ci avevo pensato a creare un DataTable e usarlo come source per il Crystal... intendevi questo?
Per il resto uso Crystal integrato in VB2008... -_-'' per quello di cui necessito ora credo sia sufficente anche senza repository etc etc...
Nelle altre versioni ci sono opzioni per il ridimensionamento del testo in automatico?
Torna su
Stanze Forum
Elenco Threads
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 !