phpbar.de logo

Mailinglisten-Archive

[php] z.T.OT: Crystal Reports + PHP via COM + Parameteruebergabe

[php] z.T.OT: Crystal Reports + PHP via COM + Parameteruebergabe

Andreas Stagl a.stagl at gmx.at
Mon Jan 26 17:58:30 CET 2004


Hi an alle
... und aufgrund der Thematik ein spezielles Hallo an Holger!

Habs nun endlich geschafft, in PHP über COM mit Crystal Reports zu 
kommunizieren, was (auf der Kommdaozeile!!!) soweit auch ganz gut 
funktioniert. Stehe jetzt aber vor dem Problem, dass ich einen Parameter an 
den Report übergeben muss, was irgendwie nicht funktionieren will ;-(

Nachfolgendes Skript sollte theoretisch einen Crystal Reports Report 
öffnen, den Parameter "pMyPara" befüllen und anschliessend den Report als 
PDF speichern... klappt aber nicht, weil die Zeile... 
$rpt_obj->SetReportVariableValue("{?pMyPara}","der Wert"); ... mit 
folgender Fehlermeldung quitiert wird:
   PHP Warning:  (null)(): Invoke() failed: Ausnahmefehler aufgetreten.
   Source:  Description: This value is write-only. in 
C:\Programme\PHP\samples\cr-test.php on line xx

Eigenartig... "write-only"... wollte doch eigentlich eh den Wert "schreiben".

Lass ich hingegen besagte Zeile komplett weg, setz dafür aber 
EnableParameterPrompting auf TRUE, bekomm ich ein PopUp-Fenster, wo ich den 
Parameter dann eintippen kann... brauch aber eine automatische Lösung ohne 
UserInteraktion.

Kann mir hier vielleicht jemand helfen?

Besten Dank im Voraus & liebe Grüße aus Wien,
Andy


<?php
   $crlf = "\r\n";
   $app_obj = new COM("CrystalRuntime.Application") or Die ("Did not open");
   $app_obj->LogOnServer ("crdb_oracle.dll", 
"dbserver","dbname","dbuser","dbpass");
   $rpt_obj = $app_obj->OpenReport(dirname(__FILE__)."\MyReport.rpt",1);
   echo "Version: ".dechex($app_obj->GetVersion()).$crlf;
   echo "ApplicationName: ".$rpt_obj->ApplicationName.$crlf;
   echo "ReportAuthor: ".$rpt_obj->ReportAuthor.$crlf;
   echo "ReportComments: ".$rpt_obj->ReportComments.$crlf;
   echo "ReportSubject: ".$rpt_obj->ReportSubject.$crlf;
   echo "ReportTitle: ".$rpt_obj->ReportTitle.$crlf;

   $rpt_obj->EnableParameterPrompting=FALSE;
   $rpt_obj->DiscardSavedData();
   $rpt_obj->SetReportVariableValue("{?pMyPara}","der Wert");

   $crystalExportOptions = $rpt_obj->ExportOptions;
   $crystalExportOptions->DiskFileName = 
(dirname(__FILE__))."\\".time().".pdf";
   $crystalExportOptions->FormatType = 31;
   $crystalExportOptions->DestinationType = 1;
   $rpt_obj->Export(FALSE);
?>





php::bar PHP Wiki   -   Listenarchive