Oppure

Loading
21/06/12 9:32
Renny
Ciao ragazzi..
VI chiedo aiuto perché mi trovo davanti a una exception che non riesco a gestire/capire.
Ho una mini applicazione winform, che pesca i dati da un db access, li elabora, crea un report con questa la libreria Migradoc pdfsharp.net/…, mostra l'anteprima del report nel controllo "documentPreview" della libreria.
Ora, quello che volevo fare era esportare il report, usando i metodi della libreria, in formato pdf o rtf. Quello funziona.
Il mio problema è che vorrei aggiungere un controllo savefiledialog, per fare tipo "salva con nome...".
Inserisco nel form il controllo, quando eseguo il metodo showdialog VS10 mi genera questa eccezione:
Prima di effettuare chiamate OLE, occorre impostare il thread corrente sulla modalità Single Thread Apartment (STA). Assicurarsi che la funzione Main sia contrassegnata con STAThreadAttribute. Eccezione generata solo se un debugger è associato al processo.

A cosa può essere imputabile? Io non ho funzioni main nel mio progetto, faccio partire direttamente l'unico form che ho, con l'evento load..
Ho 2 sub new, che userò per collegare questo pezzo di programma a un progetto più ampio, ma non credo sia quello..
Che devo fare secondo voi?
Grazie!8-|

EDIT: ho letto in giro che è il problema è il componente COM esterno che mi fa la preview del report..
Detto ciò, secondo voi come posso risolvere?
Ultima modifica effettuata da Renny 21/06/12 19:41
aaa
22/06/12 9:53
Renny
Ragazzi, c'è nessuno che ha idea di come superare questo ostacolo?
Sono abbastanza disperato.. Anche perché nello stesso progetto uso anche un'altra dialog, una PrinterSettings per predisporre la stampa del report.

E allora perché con la savefiledialog mi da questa exception?
Cercando in giro ho trovato questo codice:
'This is the thread that does all the work
Dim oThread As Threading.Thread

'Kill any previously running thread...
If Not Me.oThread Is Nothing Then
     Me.oThread.Abort()
     Me.oThread = Nothing
End If

‘Define new instance of our thread
Me.oThread = New Threading.Thread(AddressOf Me.RunEncoder)

'Change the ApartmentState to STA (Single Thread Apartment)
oThread.SetApartmentState(Threading.ApartmentState.STA)

'Start the thread...
oThread.Start()

Fonte: forums.asp.net/t/1128111.aspx/…
Ma come va utilizzato? :-o Dove va messo?:-o
aaa