Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi con VB 6.' e CRYSTAL REPORT XI su connessione DB Oracle

Ciao a tutti.
  Scrivo per esporvi il seguente problema.
Ho creato un report con Crystal report XI e salvato il file con
estenzione rpt. Il report usa una connessione ad Oracle.
In VB 6.0 (non .NET) sto cercando di creare un form tale che cliccando
su un bottone lanci il salvataggio del report in pdf.
Il primo problema che incontro è che non si collega al DB in quanto
manca la password ( in effetti su CR non mi fa salvare tale dato!).
Il secondo è che vorrei passare dei parametri per fagli fare le query
che ho impostato nel file rpt in maniera dinamica e non so come si fa.
Se potete darmi una mano o indicarmi un VB reference per risolvere il
problema ve ne sarò grato.
Per aprire il report uso il segunete codice:
Private Sub Command1_Click()
    Dim ApplicazioneReport As CRAXDRT.Application
    Dim Report As CRAXDRT.Report
    Dim a, FillExportOptionsObject
    Set ApplicazioneReport = CreateObject("CrystalRuntime.Application")
    Set Report = ApplicazioneReport.OpenReport("C:\Programmi\Business
Objects\Crystal Reports 11\Samples\en\Reports\My
Reports\QMX_COMPONENTS_RECEIVED_03.rpt")
    Report.ExportOptions.DestinationType = 1 'crEDTDiskFile
    Report.ExportOptions.DiskFileName = "c:\prova.pdf"
    Report.ExportOptions.FormatType = crEFTPortableDocFormat '31
    Report.ExportOptions.PDFExportAllPages = True
   Report.DisplayProgressDialog = False
    Report.Export false
    FillExportOptionsObject = True
    Set Report = Nothing
    Set ApplicazioneReport = Nothing
End Sub
Se lancio un rpt che usa ODBC su DB non ORACLE privo di autenticazione
il codice funziona.
Ho sfogliato tutta la rete internet ma non trovo nulla che risolva la
mia problematica.
Grazie a chi mi può dare una mano

daniele za ha scritto:

Per quanto riguarda la password:
  Report.Database.Tables(1).SetSessionInfo (userid,password)
Per i parametri io normalmente uso delle formule che imposto da codice
così:
'  - formule
Dim crxFFD       As CRAXDRT.FormulaFieldDefinition
Dim crxFFDs      As CRAXDRT.FormulaFieldDefinitions
  ' imposto formule
  Set crxFFDs = Report.FormulaFields
  For Each crxFFD In crxFFDs
    ' imposto formula Anno
    If crxFFD.FormulaFieldName = "ParmAnnFatt" Then
      crxFFD.Text = txtAnno
    End If
    ' imposto formula Numero Fattura
    If crxFFD.FormulaFieldName = "ParmNumFatt" Then
      crxFFD.Text = "'" & txtNumFat & "'"
    End If
  Next
Spero ti possa aiutare.
Ciao.
Nedi

Ciao Nedi,
   per la connessione ho trovato in rete il seguente codice
funzionante:
    Set ConnectionInfo = Report.Database.Tables(1).ConnectionProperties
 'Set the Connection Info to Connection Properties of the table object
    ConnectionInfo.Item("Password") = "password" 'Set the password
Ora cerco di usare il codice che mi hai spedito per sistemare i
parametri.
Grazie mille
Daniele
Nedi ha scritto:


Ciao Nedi,
         ho provato a fare come hai detto tu con le formule ma non ci
sono riuscito, però per settare i parametri ho trovato il seguente
codice:
    Report.ParameterFields.GetItemByName("NYEAR").AddCurrentValue
("2007")
    Report.ParameterFields.GetItemByName("NWEEK").AddCurrentValue
("03")
Ciao e grazie di tutto.
