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
Erore setdatasource crystal report
martedì 28 agosto 2007 - 10.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
misto
Profilo
| Newbie
6
messaggi | Data Invio:
mar 28 ago 2007 - 10:25
ciao a tutti!
sto creando una piccola applicazione che prevede,ovviamente,la stampa di report vari
praticamente carico i dati da una query in un datagrid,ci faccio sopra qualche modifica (vado cioè a cancellare delle righe che reputo inutili) e quindi stampo il datatable così modificato
peccato che non funziona
al momento di caricare crystalviewer per avere l'anteprima ottengo un errore "nel motore della query : impossibile accedere alle informazioni sulla riga eliminata tramite la riga.impossibile accedere al gruppo di righe"
ho provato a dare un occhiata aqualche vecchia discussione ma niente da fare,niente che possa essermi utile
ora non so proprio come risolvere,qualcuno ha qualche idea?
grazie in anticipo :)
un po' di codice:
codice pulsante stampa
With FormPrint
.Activate()
.CrystalReport1.SetDataSource(Me.DataSet.ricerca_previsioni.Copy)
.Visible = True
.Focus()
End With
in fase di esecuzione eseguo :
for i=0 to DataGridView.RowCount
if condizioni then
Me.DataSet.ricerca_previsioni.Rows(i).Delete()
end if
next i
il report è stato modellato a partire dalla query base
grazie ancora
EDIT:
risolto in maniera molto arruffata ma funziona per adesso quindi lo scrivo,magari è utile a qualcuno
ho creato una tabella vuota con la struttura simile alla mia datagrid ed ho modellato il report su questa nuova tabella
alla pressione del tasto stampa popolo la tabella col contenuto della datagrid modificata e stampo il report semplicemente
alla chisura della form elimino tutto dalla tabella
macchinoso senza dubbio (per fortuna le tuple non sono tantissime,nell ordine di qualche decina massimo) ma tant'è :)
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 28 ago 2007 - 13:48
Io farei così:
- Crei un DataSet con il wizard da Visual Studio
- Crei il report facendolo puntare a tale DataSet
- A runtime poi crei un DataSet contentente i DataTable da passare al Report ed effettui il binding alla DataGridView
- Apporti tutte le modifiche che vuoi al DataTable attraverso la DataGridView o via codice
- Quanto lanci la stampa, a runtime poi modifichi i riferimenti del report al DataSet (dovrai puntare al dataset creato a runtime al posto del dataset creato con il wizard) in questo modo (l'esempio è in VB ma non dovresti aver problemi a convertirlo in C#):
Dim IntCont As Integer
Dim Stampa As New ReportDocument
Dim Tabella As Table
Dim StrReport as String=".\... percorso report"
Stampa.Load(StrReport)
For Each Tabella In Stampa.Database.Tables
Tabella.SetDataSource(TuoDataSet)
Next Tabella
- Poi avvii il report
N.B.: Il Dataset creato con il Wizard serve solo per la creazione del report, quando hai creato il report puoi anche escluderlo dal progetto tanto a runtime ci abbini il nuovo dataset.
Sicuramente è un modo più elegante e ti assicuro che funziona!
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
misto
Profilo
| Newbie
6
messaggi | Data Invio:
mar 28 ago 2007 - 14:24
ciao!
innanzi tutto grazie dell'attenzione
mmhhh devo dire metodo interessante e sicuramente molto più elegante del mio
appena ho tempo provo ad implementarlo e vediamo come va!
grazie ancora!
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 !