crystal reports 9 et PHP

crystal reports 9 et PHP - PHP - Programmation

Marsh Posté le 09-05-2011 à 16:17:30    

Bonjour,
 
J'utilise ce bout de code pour générer un état, selon l'id spécifié en paramètre.
 

Code :
  1. <?php
  2. set_time_limit(0);
  3. if(isset($_GET['id']))
  4. $id = $_GET['id'];
  5. else
  6. die("ID facture non spécifié" );
  7. $chemin = "c:\\wamp\\www\\facture\\reports";
  8. $fichier = $chemin."\\Facture_".$id.".pdf";
  9. $app_obj = new COM("CrystalRuntime.Application" ) or Die ("Did not open" );
  10. $etat= $chemin."\\facture.rpt";
  11. $rpt_obj= $app_obj->OpenReport($etat,1);
  12. $app_obj->LogOnServer("p2ssql.dll","host","bdd","userbd","passwordbd" );
  13. $rpt_obj->EnableParameterPrompting = FALSE;
  14. $rpt_obj->RecordSelectionFormula = "{F_DOCLIGNE.DO_Piece}='$id'";
  15. $rpt_obj->ExportOptions->DiskFileName =  $fichier;
  16. $rpt_obj->ExportOptions->PDFExportAllPages = true;
  17. $rpt_obj->ExportOptions->DestinationType = 1;
  18. $rpt_obj->ExportOptions->FormatType = 31;
  19. $rpt_obj->Export(false);
  20. header("Content-Type: application/pdf" );
  21. readfile($fichier);
  22. ?>


 
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!
Reply

Marsh Posté le 09-05-2011 à 16:17:30   

Reply

Marsh Posté le 09-05-2011 à 17:03:39    

Le chemin est habituellement différent selon que le programme est lancé en batch ou en interactif.
Donc essayer, par exemple avec la ligne 9 qui serait :

$chemin = "./facture/reports";

Reply

Marsh Posté le 09-05-2011 à 17:11:00    

Merci de ta réponse olivthill,
 
De toute façon c'est un chemin absolu, et je n'ai pas de problèmes dans ce sens là.


---------------
God is one, not 2 nor 3!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed