Bonjour,
J'utilise ce bout de code pour générer un état, selon l'id spécifié en paramètre.
Code :
- <?php
- set_time_limit(0);
- if(isset($_GET['id']))
- $id = $_GET['id'];
- else
- die("ID facture non spécifié" );
- $chemin = "c:\\wamp\\www\\facture\\reports";
- $fichier = $chemin."\\Facture_".$id.".pdf";
- $app_obj = new COM("CrystalRuntime.Application" ) or Die ("Did not open" );
- $etat= $chemin."\\facture.rpt";
- $rpt_obj= $app_obj->OpenReport($etat,1);
- $app_obj->LogOnServer("p2ssql.dll","host","bdd","userbd","passwordbd" );
- $rpt_obj->EnableParameterPrompting = FALSE;
- $rpt_obj->RecordSelectionFormula = "{F_DOCLIGNE.DO_Piece}='$id'";
- $rpt_obj->ExportOptions->DiskFileName = $fichier;
- $rpt_obj->ExportOptions->PDFExportAllPages = true;
- $rpt_obj->ExportOptions->DestinationType = 1;
- $rpt_obj->ExportOptions->FormatType = 31;
- $rpt_obj->Export(false);
- header("Content-Type: application/pdf" );
- readfile($fichier);
- ?>
|
Mais voilà, quand j'ouvre la page via le navigateur (via apache), j'ai cette exception :
Spoiler :
com_exception: Source: Crystal Reports ActiveX Designer
Description: Échec de la connexion. Détails : IM002:[Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié in C:\wamp\www\facture\report.php on line 25 |
Par contre, si je donne directement la page à l'interpréteur PHP (en ligne de commande), en enlevant la condition sur le paramètre bien sur, je fini par retrouver l'état généré.
Je me demande comment je pourrais remédier à ce type de problèmes, c'est assez bizarre je dois l'avouer.
Des idées ? Merci d'avance.
Cordialement,
---------------
God is one, not 2 nor 3!