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
Cambiando PC non mi funziona più il report
martedì 16 dicembre 2008 - 12.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mar 16 dic 2008 - 12:27
Ciao a tutti,
ho creato un crystal repot con Visual Studio 2008; siccome il database che sto usando è sql server 2005 express, ho utilizzato la proprietà TableLogOnInfo per passarli i parametri di connessione con il db. Tutto funziona perfettamente.
Il problema adesso è che se il database venisse spostato, dall'ip che ho inserito nella funzione TableLogOnInfo non mi funziona più il report.
Mi chiede di inserire NomeUtente e Password, ma nonostante li inserisco correttamente non mi funziona, perchè il campo database è vuoto.
Vorrei sapere se esiste una procedura da fare in questa situazioni?
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 18:03
Purtroppo scrivo non per darti una risposta ma perchè ho il tuo stesso identico problema
ed ho quindi ritenuto inutile aprire un nuovo post.
Attendiamo suggerimenti.
Io intanto faccio seguire il codice che utilizzo. Magari può suggerirti la soluzione (che io non vedo). CV è il nome del CrystalViewer.
Private myReportDocument As ReportDocument
Private Credenziali As New TableLogOnInfo
Private myReportFileName As String
Private myTitolo As String
Private mySelectionFormula As String
Private myParameters As ArrayList
Public Property Titolo() As String
Get
Return myTitolo
End Get
Set(ByVal value As String)
myTitolo = value
End Set
End Property
Public Property ReportFileName() As String
Get
Return myReportFileName
End Get
Set(ByVal value As String)
myReportFileName = value
End Set
End Property
Public Property SelectionFormula() As String
Get
Return mySelectionFormula
End Get
Set(ByVal value As String)
mySelectionFormula = value
End Set
End Property
Public Property Parameters() As ArrayList
Get
Return myParameters
End Get
Set(ByVal value As ArrayList)
myParameters = value
End Set
End Property
.....
Dim Path As String = My.Application.Info.DirectoryPath
Dim f As FormulaFieldDefinitions
Try
Me.Text = myTitolo
myReportDocument = New ReportDocument
myReportDocument.Load(Path + "\" + ReportFileName)
Credenziali = myReportDocument.Database.Tables.Item("Prodotti").LogOnInfo
Credenziali.ConnectionInfo.ServerName = "NomePC\SQLEXPRESS"
Credenziali.ConnectionInfo.DatabaseName = "NomeDB"
Credenziali.ConnectionInfo.UserID = "MiaUser"
Credenziali.ConnectionInfo.Password = "MiaPassword"
Credenziali.TableName = "Prodotti"
myReportDocument.Database.Tables(0).ApplyLogOnInfo(Credenziali)
myReportDocument.RecordSelectionFormula = mySelectionFormula
f = myReportDocument.DataDefinition.FormulaFields
MessageBox.Show(f("Data").Text)
f("Stringa").Text = f("Stringa").Text.Replace("P1", "Xxxxx")
f("Numero").Text = f("Numero").Text.Replace("5", "28")
f("Data").Text = f("Data").Text.Replace(f("Data").Text, "Date(2008,10,18)")
myReportDocument.Refresh()
'Qui se necessario gestisco i parametri da passare al report
'Setto il valore dei Parametri che devo passare al Report
Dim varformula1 As String
Dim varformula2 As Integer
Dim varformula3 As Date
varformula1 = "MioParametroStringa"
varformula2 = 28
varformula3 = CDate("18/10/2008")
'Passo i parametri varformula1 e varformula2 al Report
Dim param1Fields As New ParameterFields
Dim param1Field As New ParameterField
Dim param1Range As New ParameterDiscreteValue
Dim param1Field2 As New ParameterField
Dim param1Range2 As New ParameterDiscreteValue
Dim param1Field3 As New ParameterField
Dim param1Range3 As New ParameterDiscreteValue
param1Field.ParameterFieldName = "ParStringa"
param1Range.Value = varformula1
param1Field.CurrentValues.Add(param1Range)
param1Fields.Add(param1Field)
param1Field2.ParameterFieldName = "ParNumero"
param1Range2.Value = varformula2
param1Field2.CurrentValues.Add(param1Range2)
param1Fields.Add(param1Field2)
param1Field3.ParameterFieldName = "ParData"
param1Range3.Value = varformula3
param1Field3.CurrentValues.Add(param1Range3)
param1Fields.Add(param1Field3)
CV.ParameterFieldInfo = param1Fields
CV.ReportSource = myReportDocument
CV.Refresh()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 18:15
prova a sostituire CV.Refresh con CV.RefreshReport()
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 18:22
Provato.
Purtroppo non cambia nulla.
Tu hai trovato la soluzione ?
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 18:24
Scusami, ma il tuo problema è che quando cambi computer ti chiede le credenziali per la connessione con il db?
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 18:31
Esatto.
Sul computer di sviluppo con SQL installato nessun problema.
Se installo l'applicativo di prova sul portatile connesso in rete e apro l'anteprima del report mi propone la form dei dati di connessione dove server, user e password sono compilati e dove è vuota la casella del nome database, peraltro non editabile.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 18:37
Ti faccio una domanda stupida. Ma tramite il portatile riesci ad accedere al DB SQL Server?
In caso affermativo quindi che accetta connessioni remote, cambia la stringa di connessione del report.
Non usare NomeComputer\IstanzaSQLServer, ma usa indirizzo ip del computer, dove sql server è installato e il numero di porta (1433 se non lo hai cambiato).
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 18:43
Saresti così gentile di scrivermi una riga di esempio ?
Tu intendi qualcosa del tipo "192.168.1.20\1433" ??
Grazie
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 18:45
Se l'indirizzo IP del computer dove risiede il database e sql server 2005 express è 192.168.1.20
Credenziali.ConnectionInfo.ServerName = "192.168.1.20,1433"
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 18:53
Le cose in questo modo sono peggiorate: sulla macchina di sviluppo mi chiede la password e poi non si connette, sul portatile al solito lascia vuoto il campo database e anche quello password.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 18:55
Sei sicuro che istanza sql server accetti connessioni tcp e che il numero di porta sia 1433?
Controlla da Gestione Configurazione SQL Server.
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 19:01
TCP abilitato e porta utilizzata 1433 come dicevi tu.
Ma il tuo codice è simile al mio o hai notat differenze sostanziali ?
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 19:14
Io ho risolto cambiando quella stringa di connessione.
Se tu con la modifica che ti ho fatto fare, non ti riesci a connettere al database neanche con il pc dove esso risiede, statti cerco che ho l'ip del pc, ho il numero di Porta non sono corretti, ho la tua istanza SQL Server non accetta connessioni remote.
Che stringa di connessione usi per accedere al database?
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 19:26
Come stringa di connessione uso:
UID=MioUser;PWD=MiaPassword;DATABASE=Corso;SERVER=localhost\sqlexpress - sulla macchina di sviluppo
UID=MioUser;PWD=MiaPassword;DATABASE=Corso;SERVER=NomePC\sqlexpress - sul portatile
L'IP l'ho controllato con ipconfig.
Il numero di porta TCP predefinito controllato in SQL Server Configuration Manager è 1433.
Come controllo a questo punto se la mia istanza SQL Server non accetta connessioni remote ? Io attraverso il programma ai dati di SQL ci accedo.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 19:32
Usa questa stringa di Connessione
Server=ipdelcomputer,porta; Initial Catalog=nomedabase; User ID=numerutente; Password=password
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
mer 17 dic 2008 - 19:36
Adesso purtroppo devo scappare.
Domani pomeriggio provo e ti faccio sapere.
Per ora grazie.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
mer 17 dic 2008 - 19:39
Ti suggerisco un link del grande Lorenzo Benaglia per la configurazione dell'istanza SQL Server 2005
http://www.dotnethell.it/forum/messages.aspx?ThreadID=10971
Seguilo passo passo per la corretta configurazione.
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
gio 18 dic 2008 - 16:47
Le info sono sulla versione 2005 ed io ho installata la 2008 e sono cambiate alcune cose, in ogni caso mi sembra tutto a posto.
Ma dopo ancora innumerevoli prove non va.
Proseguo con gli esperimenti.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 18 dic 2008 - 17:15
Ma la versione 2008 che ti riferisci tu è di vb2008 o sql server 2008?
zactime
Profilo
| Newbie
45
messaggi | Data Invio:
gio 18 dic 2008 - 18:01
Li ho entrambi in versione 2008.
Adesso comunque apro un post. Non mi sembra giusto sfrutare ulteriormente il tuo.
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 !