Ciao a tutti. Scusate le domande banale...
Premessa
- Crystal Reports 2008.
- Codice .NET (VB.NET).
- Il report da manipolare è "connesso" ad una fonte dati DB2 (es. MIODB2) mappata via ODBC.
- Per semplicità il report riporta i campi di una sola tabella: TEST.AGENTI
- La tabella è "dotata" di schema (TEST)
- Considerando questo stralcio di codice:
For Each table In result.Database.Tables
tloinfo = table.LogOnInfo
cinfo = New ConnectionInfo()
cinfo.ServerName = data.P_ServerName
cinfo.DatabaseName = data.P_DbName
cinfo.UserID = data.P_UserId
cinfo.Password = data.P_Pwd
cinfo.IntegratedSecurity = True
tloinfo.ConnectionInfo = cinfo
table.ApplyLogOnInfo(tloinfo)
Next
Domande:
- Perché table.Name o table.Location mi riportano solamente il valore "AGENTI" e non "TEST.AGENTI"?
- C'è modo di avere tutto il nome della tabella (tabella + schema - TEST.AGENTI)?
- Ho dimenticato qualche cosa o concetto di base?
Grazie a tutti anticipatamente.
==============================
In attesa di aiuti, credo di avere individuato il punto di interesse per la risoluzione del mio problema:
result.ReportClientDocument.DatabaseController.Database.Tables.Item(0).QualifiedName
dove result è l'istanza di ReportDocument che "wrappa" il mio rpt.
In questo modo posso accedere alla proprietà (R/W) QualifiedName di un oggetto Table.
Questa proprietà mi restituisce il nome completo (di schema) della mia tabella.
Nel mio caso specifico mi serve perché lo devo cambiare "al volo".
Il seguente codice
result.Database.Tables.Item(0).Name ' (o .Location)
mi restituisce l'alias della tabella.
Faccio un po' di prove e confermo (o meno).