Afficher un état crystal report en PDF avec PHP
Bonjour a tous
j'ai conçu un état sous crystal report , j'utilise comme langage le PHP et Apache comme serveur web, j'arrive à exporter le document l'enregistrement sur disque dur, avec la méthode : $rpt_obj->Export(True);
j'arrive à le sortir directement sur imprimante, avec la fonction : $rpt_obj->PrintOut();
je veux savoir si je peut exporter l'etat directement en pdf et l'afficher , et es que je peut ouvrir l'etat dans ma page php ?
voila , j'espère trouver une solution dans ce forum. merci et bonne journnée a tous.
Résolution de l'affichage du pdf sur IE
Pour tous ceux qui ont lu ce sujet et ne savent tjrs pas cmt afficher le pdf sour Internet Explorer, c'est simple.
Placer les headers en début du code php.
Pour ceux qui seront ennuyés par le fait qu'il en existe dans le code de Sabrina qui font appel à la variable $my_pdf, Sachez que vous pouvez omettre ces headers (du moins ça a marché chez moi)
Et vous laissez juste la fonction readfile($my_pdf) en fin de fichier.
Et voilà vous pouvez consulter vos états générés en format pdf, sous Internet Explorer également.
je vous donne la solution
voila le code qui marchera sans posé de probleme sur IE
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
?php
//Ouverture du rapport
#######################################
//merci futurist LOL
#########################################
//pour mis a jour de la base depuis crystal report
//il faut mettre cela
$db = 'intranet'; //nom de la base de données
$host = 'localhost'; // nom de la machine hôte
$user = 'root'; // nom de l'utilisateur
$pwd = '';// mot de passe
$dsn = "mysql:dbname=$db;host=$host";
$app_obj = new PDO($dsn, $user, $pwd);
##################################
$app_obj = new COM("CrystalRuntime.Application") or Die ("Did not open");
$etat="C:\\wamp\\www\\requete\\utilisateur.rpt"; // donner le chemain du rapport
$rpt_obj=$app_obj->OpenReport($etat);
$rpt_obj->RecordSelectionFormula = "{nom_table.nom_du_champ1} =$varnum and {nom_table.nom_du_champ2}="."'". $var_string."'"....;
$rpt_obj->ExportOptions->DiskFileName="C:\\wamp\\www\\requete\\nomFichier.pdf"; // chemain ou mettre le fichier pdf
$rpt_obj->ExportOptions->PDFExportAllPages=true;
$rpt_obj->ExportOptions->DestinationType=1; // Export to File
$rpt_obj->ExportOptions->FormatType=31; // Type: PDF
$rpt_obj->Export(false);
?>
<?php /*
header('Location:\requete\pdf.html');
exit();*/
// la fonction de redirection ------------
function redir($url){
echo "<script language=\"javascript\">";
echo "window.location='$url';";
//echo "window.open('$url','menuchd','toolbar=1, location=1, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=1, width=700, height=600, left=200, top=50');";
echo "</script>";
}
// Utiliser la redirection ---------------
redir("requete/\pdf2.html");
?> |
et dans la psge pdf2.html vous mettez
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<html>
<body>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL= http://localhost/requete/nomFichier.pdf">
</body>
</html> |
en fin trouvé lol
Une question complémentaire sur le runtime
Bonjour,
J'essaye également de lancer des rerports via PHP et bute dès le début.
Que faut il installer sur la machine serveur Apache/Php, dans mon cas, easyphp ?
Est que je dois installer Crystal Report Designer ou juste le Runtime ?
J'ai installé un Runtime depuis cette adresse http://scn.sap.com/docs/DOC-7824/
Mais j'ai le message d'erreur dans mon php suivant
Uncaught exception 'com_exception' with message 'Failed to create COM object `CrystalRuntime.Application':
J'ai oublié un composant ou je n'ai pas pris le bon runtime ?