Crystal Report e Login

martedì 02 settembre 2008 - 14.48

BillyRay Profilo | Newbie

Salve a tt ho un problema con la visualizzazione del mio Report da VB.net il report si va a visualizzare quando mi chiede una user ed una password cosa che nel report e nel database access non è stata settata e quindi non so come evitare questo login...
Se qualcuno mi può aiutare, grazie in anticipo Billy

CODICE IN USO:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Assegno il datasource e setto la proprietà del Report viewer
Dim rptDocument As New CrystalDecisions.CrystalReports.Engine.ReportDocument
'Carico il Report
rptDocument.Load(GetPath() & "\DATABASE\Report.rpt")
'Effettuo il Login (anche se inserisco questa riga di codice continua a chiedermi la user e la pass)
'rptDocument.SetDatabaseLogon("user", "pass", "Database.mdb", "Database.mdb")

CrystalReportViewer1.ShowRefreshButton = False
CrystalReportViewer1.ShowCloseButton = False
CrystalReportViewer1.ShowGroupTreeButton = False

'Setto il valore dei Parametri che devo passare al Report
Dim varformula1 As String
Dim varformula2 As String
varformula1 = "SI"
varformula2 = "SI"

'Passo i parametri varformula1 e varformula2 al Report
Dim param1Fields As New CrystalDecisions.Shared.ParameterFields
Dim param1Field As New CrystalDecisions.Shared.ParameterField
Dim param1Range As New CrystalDecisions.Shared.ParameterDiscreteValue
Dim param1Field2 As New CrystalDecisions.Shared.ParameterField
Dim param1Range2 As New CrystalDecisions.Shared.ParameterDiscreteValue

param1Field.ParameterFieldName = "FlgQuadro"
param1Range.Value = varformula1
param1Field.CurrentValues.Add(param1Range)
param1Fields.Add(param1Field)

param1Field2.ParameterFieldName = "FlgOpenClose"
param1Range2.Value = varformula2
param1Field2.CurrentValues.Add(param1Range2)
param1Fields.Add(param1Field2)

CrystalReportViewer1.ParameterFieldInfo = param1Fields
'Richiamo il Report
CrystalReportViewer1.ReportSource = rptDocument

End Sub

SSUPERPIPPO Profilo | Guru

>Salve a tt ho un problema con la visualizzazione del mio Report
>da VB.net il report si va a visualizzare quando mi chiede una
>user ed una password cosa che nel report e nel database access
>non è stata settata e quindi non so come evitare questo login...
>Se qualcuno mi può aiutare, grazie in anticipo Billy

Ciao, un consiglio che ti posso dare per evitare ogni sorta di problema di accesso al database da parte di CR, è quello di creare un DataSet contenente i DataTable necessari per il report e passarli allo stesso report.
I sostanza devi:

- Creare un DataSet (di comodo) con il Wizard con le tabelle che ti servono per il Report
- Creare il tuo report collegandolo al DataSet generato (in questo modo crei la struttura del report)
- Via codice crei il tuo DataSet con relative DataTable (che dovranno avere lo stesso nome di quelle presenti nel DataSet di comodo) filtrate a tuo piacimento
- Ora quando istanzi il report gli passi il DataSet creato in questo modo:

' Considerando DS il DataSet da passare

Dim Stampa As New ReportDocument
Dim table As Table

Stampa.Load("TuoReport.rpt")

' Con un ciclo imposti come DataSource delle tabelle del report il tuo DataSet
For Each table In Stampa.Database.Tables
table.SetDataSource(DS)
Next table

Spero di essere stato sufficientemente chiaro. Se hai bisogno di aiuto ulteriore fammi sapere.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

BillyRay Profilo | Newbie

grazie x la risposta

da quello che ho capito quello che mi hai scritto è valido e l'ho trovato anche in giro per internet ma quello che non ti ho detto io è che in realtà io sto migrando il mio prodotto da VB 6 a VB.net e ho già creato una trentina di report complicatissimi con sottoriport e di tutto e di +
se ora mi vieni a dire che non posso fare nulla per utilizzare i vecchi report e devo ricominciare mi dovrai scusare perchè devo salire all'ultimo piano de sto palazzo per buttarmi giù!
I report che ho creato hanno i loro collegamenti al DB e alle tabelle a loro necessari con riferimento per il path "stessa cartella del report" quindi da VB 6 non gli passavo praticamente nulla li richiamavo solamente e loro si caricavano quello che si trovavano nelle tabbelle del DB...
comunque grazie per la risposta e se non ho capito... lol

SSUPERPIPPO Profilo | Guru

Il Database è identico a quello utilizzato nella versione VB 6 ?
I Report hanno subito delle modifiche e se si quali?

Per capire il tuo problema e cercare di risolverlo non sarebbe male se riuscissi a postare il Database, un report e il codice che utilizzi per lanciare il report.

Ciao, Ale

http://blogs.dotnethell.it/alebadalin

BillyRay Profilo | Newbie

Ciao Ale grazie mille ma purtroppo non posso passare in allegato nulla... mi si inchiappettano se lo scoprono è per la privacy e per altri motivi e qui è tutto "sotto controllo" quindi è meglio evitare...
però il Database è sempre lo stesso un DB.mdb fatto in Access e caricato da programma con query semplici... e il report pure... quello che faccio è:

1. leggo un txt che contiene un flusso di dati (nome, cognome, CodiceFiscale....)
2. carico il DB tramite n. query quante sono le righe del txt
3. lancio il report tramite codice VB6

stessa cosa faccio in VB.NET però mi chiede la user e password...

prima lanciavo il report...
il report stesso aveva il riferimento al DB
aveva il riferimento alle tabelle del DB
e le paggine del report contenevano i dati ciclandosi per gruppo (as. codice fiscale)...
ed io avevo n pagine per n cristiani

per farla corta il mio report fa tutto da se... ti dico solo che se lancio il report senza aver lanciato il programma VB comunque se ci sono dati nel DB funziona...

quindi io dovevo solo richiamare il report da VB.NET forse sto toppando io perchè ho in testa il modo di agire precedente mentre con VB.Net è diverso... se sapete come posso fare sarebbe eccezionale...
comunque ripeto grazie per la risposta

SSUPERPIPPO Profilo | Guru

In sostanza il tuo Database è invariato, il tuo Report è rimasto invariato ed è collegato direttamente al Database che si trova nella stessa cartella del report.

mmm... provengo anch'io da VB6 ma non mi è mai capitato di usare i report 'vecchi' in VB.NET, li ho sempre ricreati in VB.NET ...

faccio una prova e ti faccio sapere

Ciao

Ale

http://blogs.dotnethell.it/alebadalin

BillyRay Profilo | Newbie

grazie mille... intanto salgo all'ultimo piano...

BillyRay Profilo | Newbie

Intanto ho provato come dici tu... e mi funziona...
ma è un'amara consolazione qui si tratta di un'anno di lavoro da rifare... è allucinante
aspetto tue notizie Ale grazie

freeteo Profilo | Guru

ciao,
prima di buttarti giù ragioniamoci ancora 1po'

Innanzitutto se sei in .net, hai la possibilità di debuggare il programma, quindi prima di passare il report al viewer metti un punto di interruzione e verifica nella finestra di "Watch" di visual studio, le proprietà relative alla connessione al db del report che hai in memoria.

In particolare guarda la proprietà "tuoReport.Database.Tables(0)" che contiene i vari parametri di connessione al db, sicuramente vedrai che li dentro c'è qualcosa che riguarda la posizione/database a cui erano agganciati in fase di design, a questo punto ti basta solo impostarli correttamente da codice nel tuo applicativo, mediante le "LogonInfo".

Guardati questo articolo, in particolare il listato 3 e cmq guardati il progetto allegato che mostra tutte e 3 le possibilità di passaggio dati al report:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx

e questo thread e vedi se riesci ad applicarlo alla tua situazione, io sono fiducioso che risolviamo il problema:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=21962
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

BillyRay Profilo | Newbie

Grazie della risposta Matteo, mi sono già messo a lavoro su quello che mi hai passato... ti farò sapere al più presto... incrocia le dita per me perchè se lo faccio io ed inciampo vado de sotto lol

BillyRay Profilo | Newbie

Allora ragazzi ho risolto la cosa...

in pratica ho inserito nel progetto il report incriminato e lo ho associato al CrystalReportViewer1

fino a quà la situazione non era cambiata... mi continuava a chiedere user e password

poi ho cliccato due volte sul report nella finestra "Solution Explore" e mi è entrato in un "editolr di crystal" ho cliccato col tasto destro del mouse sul report e mi è apparsa una tendina al cui interno ci stava verify database e li mi si è aperta una form con un ceck secure logon... l'ho tolto e non mi chiede più nulla siiiiiii

grazie a tt per la disponibilità grazie

ciao Billy
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