IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Afficher un état crystal report en PDF avec PHP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut 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.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut
    bonjour,

    es-tu en train de dire que tu as réussir à concevoir un état avec Crystal Reports (quelle version d'ailleurs), que tu l'as enregistrer et mis en ligne et que tu peux le vor via un site web ?

    je pensais que Crystal Reports avait abandonné le PHP au profit du .net ...

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Bonjour USA Mike,

    je voulais dire que j'ai conçu un état en crystal reports j'ai reussit à l'aide de la fonction COM d'imprimer le rapport et aussi de l'enregistrer sur le disk mais sans afficher mon rapport.

    ce que je cherche maintenant c'est es possible d'afficher un etat dans une page web avec php ? ou es possible d'afficher l'etat en pdf a partir d'un code php toujours.?

    j'espère que c'est un peu claire, tu a dis que crystal a abondoné php pour .Net peut tu me donner plus de précisions sur ça.

    merci et bonne journnée .

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Bonjour a tous,

    voila je voulez vous transmettre ce qui a été trouvé pour régler mon problème.
    le principe est de créer un etat en crystal reports , on l'enregistre puis on fait un passage de paramètre du php a crystal. enfin on creer le fichier pdf a partie de cet etat et on l'ouvre dans la page web.

    1. Ouverture du rapport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $app_obj = new COM("CrystalRuntime.Application") or Die ("Did not open");
    $etat="C:\...\nomEtat.rpt"; // donner le chemain du rapport
    $rpt_obj=$app_obj->OpenReport($etat);
    2. passage des paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rpt_obj->RecordSelectionFormula = "{nom_table.nom_du_champ1} =$varnum and {nom_table.nom_du_champ2}="."'". $var_string."'"....;
    3. Generer le fichier en pdf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $rpt_obj->ExportOptions->DiskFileName="C:\...\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);
    $my_pdf="C:\...\nomFichier.pdf";
    3. ouverture du fichier pdf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    header('Content-type: application/pdf');
    header('Content-Length: $len');
    //header('Content-Disposition: inline; filename="'.$my_pdf.'"');
    header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: pre-check=0, post-check=0, max-age=0');
    header('Pragma: anytextexeptno-cache', true);
    header('Cache-control: private');
    header('Expires: 0');
    header('Content-Disposition: inline; filename="'.$my_pdf.'"');
     
    readfile($my_pdf);
    ce code marche tres bien sur fire fox(je l'est testé) mais il y a un problème sur internet explorer. le ficher pdf ne s'affiche pas sur la page internet explorer ???!!! c'est comme si il n'arrive pas a lancer acrobat redaer .
    j'ai essayer de voir si dans acrobat reader l'option "display pdf in browser" elle est cochée ??!!!

    alors si une personne a une explication sur ça j'aimerai bien la connaitre .

    autre chose j'aimerai savoir comment faire un data grid en php ?

    bonne journée a tous.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Par défaut ok
    bonjour,

    Merci de ta réponse détaillée Sabrina ! c'est clair et rare.
    J'avais entendu parlé ya longtemps de cette solution en utilisant les objets COM comme tu fais
    $app_obj = new COM("CrystalRuntime.Application") or Die ("Did not open");
    .

    C'estle même principe que de réaliser un document avec Word, d'attaché de variable dedans pour le publipostage et de le faire ouvrir via ce procédé. Dans ce cas on peut que Word est aussi un outil dereporting :-)

    Par contre si je ne me trompe pas, ta soluition ne fonctionnera si le visiteur est sous Linux ou Mac. Car l'appel a COM est dédié à un nivaguateur fonctionnant sous windows (IE, FF, Opera). Je peux me tromper...
    En plus, peut-être qu'il faut avoir Crystal Report sur sa machine pour que ça fonctionne bien. as-tu essayé à partir de d'un poste où Crystal Reports n'est pas installé ?

    Pour ton problème sous IE je pense que ça marche pas à cause d'un truc de sécurité. Fouille dans les paramétres avancés (menu outils/option internet/onglet avancés) ou dans la gestions des plugins (outils/gérer les modules complémentaires).

    bonne continuation

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Par défaut
    Bonjour ,

    Merci pour ta réponse USA Mike, d'après ce que j'a lu sur ce lien http://www.php.net/manual/fr/intro.com.php je pense que tu a raison en disant que ça ne marchera pas peut etre pas sur des machine linux ou MAC... J'aimerais bien savoir quelle est la solution dans ce cas là ? encore une recherche .....

    pour ce qui est de crystal , ce n'est pas nécessaire de l'installer dans le poste client , j'ai testé ça.

    enfin il me reste toujours le problème de l'IE et du datagrid.......

    bonne journée.

Discussions similaires

  1. [CR XI] Afficher un état crystal report dans une page ASP sur windows 7
    Par regisyves dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 29/01/2012, 12h03
  2. Réponses: 0
    Dernier message: 22/02/2011, 14h18
  3. Protéger un pdf créé depuis un état Crystal Report
    Par ikritt2 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/12/2007, 10h34
  4. Réponses: 16
    Dernier message: 10/11/2006, 14h09
  5. Réponses: 1
    Dernier message: 31/10/2006, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo