Mailinglisten-Archive |
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