Richiamare un report crystal utilizzando BO XI unified web service SD...

lunedì 23 gennaio 2006 - 18.46

mandys Profilo | Newbie

Salve a tutti!
Stiamo sviluppando un'applicazione con le seguenti caratteristiche:
client (consumer side): VB.NET, Crystal Reports XI, unified web service SDK
server: red hat AS 3.0, Business Objects XI, unified web services deployed in J2EE environment.

I nostri report si basano su un universo BO (ma abbiamo provato anche a connetterci direttamente al db). Per richiamarli utilizziamo la BusinessObjects Unified Web Service SDK, che fornisce alcuni web services che permettono di accedere al repository ed al catalogo dei report.
Detto questo, abbiamo 2 problemi:

Problema n° 1

Se provo a richiamare un report semplice da vb.net tutto ok. Quando invece tento di richiamare un report che contiene dei prompts, non vengono generate eccezioni, ma non funziona. Per farvi capire meglio la problematica vi riporto di seguito un estratto del codice:

Dim lNavigate As BusinessObjects.DSWS.ReportEngine.NavigateToFirstPage
lNavigate = New BusinessObjects.DSWS.ReportEngine.NavigateToFirstPage

Dim lMustFillInfo As BusinessObjects.DSWS.ReportEngine.RetrieveMustFillInfo
lMustFillInfo = New BusinessObjects.DSWS.ReportEngine.RetrieveMustFillInfo

Dim lRetrievePromptInfo As BusinessObjects.DSWS.ReportEngine.RetrievePromptsInfo
lRetrievePromptInfo = New BusinessObjects.DSWS.ReportEngine.RetrievePromptsInfo
lMustFillInfo.RetrievePromptsInfo = lRetrievePromptInfo

Dim lFillPrompt(0) As BusinessObjects.DSWS.ReportEngine.FillPrompt
lFillPrompt(0) = New BusinessObjects.DSWS.ReportEngine.FillPrompt
lFillPrompt(0).ID = "prompt1"

Dim values1(0) As BusinessObjects.DSWS.ReportEngine.DiscretePromptValue
values1(0) = New BusinessObjects.DSWS.ReportEngine.DiscretePromptValue
values1(0).Value = 1
lFillPrompt(0).Values = values1

Dim lFillPrompts As BusinessObjects.DSWS.ReportEngine.FillPrompts
lFillPrompts = New BusinessObjects.DSWS.ReportEngine.FillPrompts
lFillPrompts.FillPromptList = lFillPrompt

Dim lActions(0) As BusinessObjects.DSWS.ReportEngine.Action
lActions(0) = lFillPrompts

Dim lRetrieveData As BusinessObjects.DSWS.ReportEngine.RetrieveData
lRetrieveData = New BusinessObjects.DSWS.ReportEngine.RetrieveData
lRetrieveData.RetrieveCurrentReportState = New BusinessObjects.DSWS.ReportEngine.RetrieveCurrentReportState
lRetrieveData.RetrieveDataProvidersInfo = New BusinessObjects.DSWS.ReportEngine.RetrieveDataProvidersInfo
lRetrieveData.RetrieveNavigationMap = New BusinessObjects.DSWS.ReportEngine.RetrieveNavigationMap
lRetrieveData.RetrieveReportList = New BusinessObjects.DSWS.ReportEngine.RetrieveReportList
lRetrieveData.RetrieveViewSupport = New BusinessObjects.DSWS.ReportEngine.RetrieveViewSupport
lRetrieveData.RetrieveView = New BusinessObjects.DSWS.ReportEngine.RetrieveView

Dim lDocumentInformation As BusinessObjects.DSWS.ReportEngine.DocumentInformation
lDocumentInformation = lRepEng.GetDocumentInformation(lDocumentReference, lMustFillInfo, lActions, lNavigate, lRetrieveData)

Questa chiamata mi torna lDocumentInformation.view = nothing, ma non ricevo nessuna eccezione, e non riesco a capire dov'è il problema.
Il report di per sè non ha problemi, perchè se lo richiamo da Info View mi chiede il prompt e poi lo visualizza che è una meraviglia...
Qualche idea???

Problema n° 2:

Una volta ottenuto il contenuto del report (che viene ricavato dalla proprietà content dell'oggetto View del DocumentInformation), l'unica idea che ho avuto per visualizzarlo in una form vb.net è stata di salvarlo nel body di una pagina html e visualizzarlo tramite un web browser. Ora, io non credo che questo sia l'unico modo per visualizzare un report, perchè in effetti è una mezza porcata...Nessuno sa se per caso c'è un modo per convertire il risultato del servizio in un ReportDocument che possa essere visualizzato nel CrystalReportViewer?

Grazie Mille!

freeteo Profilo | Guru

ciao,
sinceramente la cosa in questi modi non l'ho mai affrontata (universo di BO,DocumentInformation etc..) sono rimasto piu "ancorato" a visual studio e crystal report da integrare in applicazioni .net ...ma ti chiedo 1a cosa, non riesci tramite il reportEngine ad avere 1 oggetto ReportDocument? magari ce qualche salvataggio o qualche modo tramite CrystalApplication per farti tornare 1oggetto di questo tipo...se si poi lo agganci senza problemi al visualizzatore di .net classico e non hai problemi...
Pero' ti ripeto non sono molto esperto si queste strutture :-) adogni modo se riuscissi ad avere 1oggetto di quel tipo non avresti problema alcuno a visualizzarlo, sia che arrivi da "design time" sia che il report te lo costruisci tu da codice...

ciao

Matteo Raumer - .net addicted :-)
http://blogs.dotnethell.it/freeteo
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