Crystal e problemi collegamento a SQL sul client

giovedì 18 dicembre 2008 - 18.30

zactime Profilo | Newbie

Un saluto a tutti.

Con il codice allegato visualizzo il report attraverso un CrystaViewer.

Sul computer di sviluppo dove uso VB 2008 standard, SQL Express 2008 e Crystal Reports 2008 (quindi non integrato in Visual Studio) il tutto funziona.

Creato l'applicativo e fatto girare sul portatile connesso in rete iniziano i problemi. Mi compare una form con titolo "Collgamento al database" dove ci sono 4 caselle:
1 Nome server - compilata correttamente e disabilitata
2 Database - VUOTA e disabilitata
3 ID collegamento - compilata correttamente con il mio UserID e abilitata
4 Password - compilata correttamente (presumo visto che è asteriscata) e abilitata
Il campo Utilizza protezione integrata è senza check

Logicamente se clicco su fine non va, visto che il campo database è vuoto.

Come potete vedere dal codice io questi dati li passo. Quindi perchè non se li tiene tutti e me li richiede sul client ?????

Non so più dove sbattere a testa.

Aggiungo che sul portatile non ho gli strumenti di sviluppo elencati sopra ed ho installato il pacchetto Redist di Business Object.

Grazie a chi vorrà aiutarmi.

luxsor Profilo | Guru

Il problema dovrebbe essere legato all'istanza credenziali.
Qui tu dichiarri la tabella PRODOTTI
>Credenziali = myReportDocument.Database.Tables.Item("Prodotti").LogOnInfo

Al passaggio successivo quando vai ad applicare le credenziali alla tabella, selezioni la tabella con indice 0, ma chi ti assicura realmete che la tabella prodotti ha l'indice 0?
> myReportDocument.Database.Tables(0).ApplyLogOnInfo(Credenziali)

Modifica il codice così:
Credenziali = myReportDocument.Database.Tables.Item(0).LogOnInfo
...
myReportDocument.Database.Tables(0).ApplyLogOnInfo(Credenziali)

Fammi Sapere
Ciao


zactime Profilo | Newbie

Avevo già fatto la prova. L'ho rifatta ma ... nulla purtroppo.

Altre idee?

luxsor Profilo | Guru

Scusami, ma la query al Report come la passi?

zactime Profilo | Newbie

Se per query intendi la SelectionFormula ... All'inizio del codice vedrai delle proprietà.
La SelectionFormula la costruisco in un'altra form, valorizzo la suddetta proprietà (di tipo String) e poi uso la seguente riga di codice:
myReportDocument.RecordSelectionFormula = mySelectionFormula

In ogni caso al momento, per le prove fatte fin qui, non ho mai valorizzato la proprietà e di conseguenza la SelectionFormula che quindi è "".

Perchè mi fai la domanda ?

luxsor Profilo | Guru

Fai una prova.
Creati un COMANDO da Esperto Database e nelle credenziali inserisci come nome tabella, il nome assegnato al comando.

zactime Profilo | Newbie

Scusa la mia profonda ignoranza ma ... dov'è l'Esperto Database ?
Io uso VB 2008 e non lo trovo.

luxsor Profilo | Guru

Apri il report.
- nel menu in alto c'è: CRYSTAL REPORT / DATABASE / ESPERTO DATABASE
- Creati la connessione al database
- una volta creata ti comparira Crea Comando (che sarebbe la query da far eseguire al report)
- Inserisci la query
- Posizionati nel report i campi

freeteo Profilo | Guru

Ciao,
vi consiglio questi link, trattano l'argomento:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=21962
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
in particolare quest'ultimo ti spiega passo passo, compreso un esempio scaricabile (a destra)

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

zactime Profilo | Newbie

Si, si, si !!!!!

Apparte il fatto che a furia di prove ero talmente fuso che pensavo mi chiedessi di usare l'Esperto Database in VB, ORA FUNZIONA !

Ho seguito le tue indiczioni ed ora va. Però ... sei così gentile da spiegarmi perchè ?

Io creavo la connessione e poi invece di fare un comando sceglievo la tabella del database. Questa mi sembra l'unica differenza.

Inoltre adesso mi sorge un nuovo problema. Prima usavo come segue la SelectionFormula:

myReportDocument.RecordSelectionFormula = "{Prodotti.Prodotto} = 'USCITA'"

Ora non filtra più i dati. Ho provato anche a cambiare Prodotti in Comando (nome del comando che avevo creato) ma non cambia nulla. Come faccio adesso a filtrare i dati ?

Ti ringrazio ancora per il tuo aiuto e per la tua pazienza.

zactime Profilo | Newbie

Matteo, ti ringrazio per i link.

Avevo già letto e riletto i due post diverse volte.
Il secondo link è ben fatto ma io purtroppo non ho Crystal integrato ma a se stante e quindi non riesco a riprodurre completamente l'esempio.

Ti ringrazio comunque.

Se leggi quanto ho scritto appena sopra magari mi sai aiutare anche tu.

luxsor Profilo | Guru

Ciao, sono contento che "in parte" hai risolto.
Per applicare dei paramenti alla query da passare al report, sempre dal Esperto Database del Report, quando vari a creare il "Comando" a destra troverai CREA PARAMETRO. Creati i parametri che ti servono e importali nella comando a sinistra.

Spero di essere stato abbastanza chiaro.
Fammi sapere.

Ciao

zactime Profilo | Newbie

Provato ed è OK.

Ho poi provato nuovamente partendo da una nuova connessione e collegandomi direttamente alla tabella e non ad un comando e funziona anche così.

A questo punto, fin dall'inizio, il problema era sulla connessione. A me sembra che l'avevo fatta nello stesso identico modo ma evidentemente qualcosa di diverso doveva esserci per dare tutti quei problemi.
BAH !!!!!

Ti ringrazio per l'aiuto che mi hai dato.

BUONE FESTE !
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5