|datadirectory|

giovedì 20 dicembre 2007 - 14.48

gennyfor Profilo | Junior Member

Salve a tutti, sono riuscito a risolvere il problema che avevo prima importando una tabella di articoli in un crystal report da un database.......

Adesso la domanda sorge spontanea, come faccio a cambiare la connection string se quando seleziono "esperto Database" crystal vuole impostare una connessione su un database gia esistente??? mi spiego......

Per aprire il mio db col mio programma ho una bella connectionstring che imposta il percorso da |datadirectory| mentre crystal report vuole un percorso FISSO e non accetta |datadirectory|......

Quindi, sul mio pc l'applicazione funziona, ma quando lal distribuisco su un altro pc, crystal vuole il database impostato dal percorso predefinito(che si trova solo sul mio PC!!!) Aiutooooooooooooooooooooo come faccio??????

Uso il Vb.net....grazie

SSUPERPIPPO Profilo | Guru

Ciao,

io normalmente creo un DataSet via codice (deve avere la stessa struttura del database collegato a designtime) e lo passo al report prima di avviarne la stampa. Ecco un esempio del codice che utilizzo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

freeteo Profilo | Guru

ciao,
allora il procedimento classico è creare un report puntando al tuo database raggiungibile, per dare al report lo schema che poi gli arrivera' a Runtime.
Ma il path in questo caso sara' cambiato a runtime, il report se lo porta dietro solo come "schema", perche' a runtime il tuo applicativo gli potra' settargli la sorgente dati in 2 modi:

- impostare le proprieta' di connessione tramite le LogonInfo:
... Dim mioreport as new ReportDocument() mioreport .load(server.Mappath("....")) Dim logOnInfo As New TableLogOnInfo logOnInfo = mioreport.Database.Tables.Item("Tabella").LogOnInfo logOnInfo.ConnectionInfo.ServerName = "SERVER" logOnInfo.ConnectionInfo.DatabaseName = "miodb" logOnInfo.ConnectionInfo.UserID = "User" logOnInfo.ConnectionInfo.Password = "pwd" logOnInfo.TableName = Tabella" mioreport.Database.Tables[0].ApplyLogOnInfo(logOnInfo) CrystalReportViewer1.ReportSource = mioreport CrystalReportViewer1.DataBind(); ...


- caricare i dati in 1 datatable/dataset/Collection e poi passarlo al report con il metodo "setDataSource":
Dim miods = new Dataset(); ... Dim mioreport as new ReportDocument() mioreport.load("....miofile") mioreport .SetDataSource (miods ); ...

ciao.

Matteo Raumer
[MCAD .net]
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