9 messaggi dal 05 luglio 2012
Ciao a tutti, sono nuovo del mondo asp.net ed è la prima volta che scrivo sul forum.Ho bisogno di fare un report tipo stampa unione; cioè ho un modello di word, il quale lo devo compilare con dei campi della tabella del mio DB, così che lo possano stampare direttamente.
Il problema è che non saprei da dove partire per automatizzare il processo.AIUTO!!!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao e benvenuto!
Puoi affrontare il problema in più di un modo ma la scelta dipende da come i tuoi utenti lavorano con i file Word e con la tua applicazione.

Se gli utenti desiderano continuare a lavorare su Word allora è preferibile che sia tu a fornire loro una sorgente dati per la stampa unione. Ti ringrazieranno perché non introdurrai complicazioni al loro modo di lavorare e tutti manterranno la libertà di effettuare modifiche al documento da Word, se lo desiderano.

Word può attingere dati da un database e quindi, se il tuo server fosse nella loro rete locale, potresti consentirgli l'accesso ad una vista che restituisce i dati così come sono necessari al documento.
In alternativa, Word può leggere i dati da un file di testo, quindi potresti crearti un pagina web asp.net (o, meglio, un HttpHandler) che stampi i dati nel formato testuale CSV.

Nell'uno o nell'altro caso, l'utente dovrà semplicemente selezionare la sorgente dati da usare per la stampa unione.

Se invece volessi far fare questa unione alla tua applicazione web, allora dovrai scaricarti qualche libreria che ti consenta di manipolare i file word per produrre un nuovo documento frutto dell'unione, che l'utente poi potrà stampare.
Oppure puoi abbandonare il file Word e ricreare il tuo modello con uno strumento che ti permetta di generare reports, tipo Crystal Reports, oppure rifarlo in HTML e usare la funzionalità di stampa del browser. In questi casi, a meno che tu non lo consenta, l'utente non potrà più apportare seppur piccole modifiche al documento.

ciao
Modificato da BrightSoul il 11 novembre 2012 16.48 -

Enjoy learning and just keep making
9 messaggi dal 05 luglio 2012
Ti ringrazio tantissimo, sei stato molto gentile e chiaro, ma avrei da chiederti ancora una cosa: siccome non mi interessa che lo possano modificare, anzi non lo devono assolutamente modificare, mi verrebbe da prendere la strada del crystal report ma, non ho buona dimestichezza e sto avendo problemi nel farlo.
Avresti percaso delle indicazioni da darmi del modo in cui farlo?
Io ho creato il report andandolo ad aggiungere da "aggiungi nuovo elemento" ---> "crystal report.rpt" , ma poi non riesco ad andare avanti.
Grazie in anticipo
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, prego :) Prova a seguire questo articolo che usa i report di Visual Studio.
http://weblogs.asp.net/rajbk/archive/2010/05/09/creating-an-asp-net-report-using-visual-studio-2010-part-1.aspx
E' un articolo in tre parti che ti guida passo-passo alla creazione del report. In fondo al terzo articolo trovi anche un progetto di esempio che puoi modificare secondo le tue esigenze.
Ci sono alcune cose da notare:
  • L'esempio usa il database Northwind, che devi aggiungere alla tua istanza di Sql Server (anche versione express o LocalDb). Il database lo trovi qui: http://www.microsoft.com/en-us/download/details.aspx?id=23654 (E' un db stravecchio ma funzionerà anche con le versioni recenti di Sql Server).
  • Nell'esempio usano una lista di elementi mentre tu, avendo parlato di stampa unione, immagino che voglia visualizzare un record per pagina. In questo caso, apri il report .rdlc, elimina la tabella che trovi all'interno, e dal pannello degli Strumenti inserisci invece una Lista. Si tratta di un riquadro all'interno del quale potrai disporre testo e campi, similmente a quanto faresti con Word.
  • Quando visualizzi il report nel browser, il tasto stampa non apparirà se usi Firefox o Chrome. Apparentemente qualcuno ha trovato una soluzione.
    http://www.codeproject.com/Tips/419076/Report-Viewer-Print-Problem-in-Chrome-Mozilla-Brow


ciao!
Modificato da BrightSoul il 12 novembre 2012 20.42 -

Enjoy learning and just keep making
9 messaggi dal 05 luglio 2012
Ciao BrightSoul,
sei veramente gentilissimo, se non mi avessi aiutato, starei ancora vagando alla ricerca di una strada da prendere,ma siccome ho poca esperienza(ma tanta voglia di imparare) avrei bisogno nuovamente di te.
Ho provato con il link che mi hai inviato, e tutto sommato è andato bene, anche se mi ero dimenticato di dirti che io al report volevo dargli in pasto una query già filtrata.....ma pacioccando ho capito che basta settargliela col comando sqldatasource.selectcommand="mia query" .
Fino qua grazie a te ho fatto un passo importantissimo e, lo trovo più semplice di Crystal.
Adesso ho un altro problema,e cioè che quando vado a crearmi il mio elenco, finchè gli metto valori del report tutto ok, ma quando vado a mettergli una casella di test incomincia a darmi questi errori :
" Errore durante l'elaborazione locale del rapporto.
La definizione del rapporto 'RDLC\StampaUnione.rdlc' non è valida.
Il valore della proprietà RightIndent per l'oggetto ‘Textbox35.Paragraphs[1]’ di tipo paragrafo è negativo. Non sono consentiti valori negativi per le dimensioni. "

Io ho un documento di 10 pagine in word con 90 campi da sostituire e prenderli dal record del mio DB, percui ogni singolo report dovrà avere 10 pagine compilate con un singolo record del DB.
Avresti qualche idea?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, benissimo, sono contento che tu stia risolvendo il problema :)
A proposito dell'errore, sembra proprio che sia dovuto ad un valore incorretto della proprietà RightIndent di una Textbox.

Fai così: seleziona la textbox che ti dà il problema e poi vai a guardare nel pannello delle Proprietà: là potrai modificare i valori dell'indentazione, si trovano nella sottosezione "Allineamento", come vedi in questa immagine.
https://skydrive.live.com/redir?resid=2B0F0F6D27852B8E!275

Ma se non riuscissi a trovare quella Textbox (perché inavvertitamente è finita chissà dove), allora la puoi selezionare direttamente dal pannello Proprietà. Sempre facendo riferimento all'immagine qui sopra, clicca lì dove vedi "Textbox24" e apparirà il menu a tendina di tutti i controlli presenti nel report. Selezionare la "Textbox35", che sembra sia quella che ti dà il problema, e cambia il suo RightIndent.

ciao

Enjoy learning and just keep making
9 messaggi dal 05 luglio 2012
Ciao, grazie....trovata la proprietà.
Domanda: ma come faccio a dirgli al report che deve essere lungo 10 pagine?
E ancora: posso mettere dentro la casella testo un campo del mio DB?
grazie ancora per il tuo aiuto.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
aggiungi nel corpo del report tanti riquadri quanti vuoi che siano le pagine e poi, per ognuno, imposta un'interruzione di pagina.
Qui è scritto come impostare le interruzioni:
http://msdn.microsoft.com/it-it/library/ms251733%28v=vs.80%29.aspx

fedcata ha scritto:

posso mettere dentro la casella testo un campo del mio DB?

Sì, immagino che in una sola textbox tu possa mischiare del testo al valore di uno o più campi, ma ora non ho modo di verificarlo.
Qui ci sono esempi che però non mostrano quel caso specifico.
http://msdn.microsoft.com/it-it/library/ms251779%28v=vs.80%29.aspx
Sono simili alle espressioni di Excel, quindi ad esempio prova:
="testo prima del campo" & Fields!NomeCampo.Value & " testo dopo il campo"


ciao

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.