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

Odoo (ex-OpenERP) Discussion :

création de rapport pdf


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut création de rapport pdf
    Bonjour,

    Je reviens vers vous suite à des problèmes de création de rapport.
    En fait, cela fait deux semaines que je passe à essayer de créer un rapport pdf... en vain.

    L'ajout du bouton pour imprimer est bon, le lancement du pdf se fait, par contre les champs qui sont censés se complétés restent désespérément vides...

    Affichage du bouton impression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    <page string="Souhaits du collaborateur">
    <button name="print_ordre_mission" string="Imprimer l'ordre de mission" type="object" />
     <group>
    ...
    définition de "print_ordre_mission" (à l'intérieur du fichier python)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def print_ordre_mission(self, cr, uid, ids, context=None):
            if context is None:
                    context={}
            data = self.read(cr, uid, ids)
            datas = {'model':'project.project',
                     'form': data,
                     'report_type': 'pdf',
                    }
            return {'type': 'ir.actions.report.xml', 'report_name': 'ordre_mission', 'datas':datas, 'nodestroy': True,}
    Définition du fichier xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0"?>
    <openerp>
            <data>
                    <report
                            id="print_ordre_mission"
                            string="Imprimer l'ordre de mission"
                            model="project.project"
                            name="ordre_mission"
                            rml="project/report/ordre_mission.rml"
                            auto="False"/>
             </data>
    </openerp>
    définition du fichier python dans le répertoire report/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import time
    
    from osv import osv
    from report import report_sxw
    from datetime import datetime
    
    report_sxw.report_sxw('report.ordre_mission', 'project.project', 'addons/project/report/ordre_mission.rml')
    exemple de code qui reste vide dans le fichier rml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <para style="Standard">Description de la mission*: [[motif_demande_renfort_description]][[o.motif_demande_renfort_description]][[project.motif_demande_renfort_description]][[project.project.motif_demande_renfort_description]]</para>
    je sais... j'y ai mis tout ce que j'ai pu voir ou tenté de déduire en lisant les docs officielles, les autres modules... et pourtant rien ne se complète...

    Etant donné que le fichier pdf sort mais que les champs ne sont pas remplacés, je pensais que cela venait du parseur (mais j'utilise celui par défaut) ou de la définition des champs, mais vu que là j'ai tout tenté...

    j'ai aussi essayé de générer le rapport via open office, mais même combat, sauf qu'en plus je ne sais même pas ce qu'il fait...

    une idée de ce que j'ai oublié de faire ou que j'ai mal fait?

    merci,
    Nath

    ps: erreur de log du serveur lors de la création du pdf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    2013-08-27 15:37:13,926 18811 ERROR Exirys openerp.tools.safe_eval: Cannot eval u'motif_demande_renfort_description'
    Traceback (most recent call last):
      File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval
        return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
      File "", line 1, in <module>
    NameError: name 'motif_demande_renfort_description' is not defined
    2013-08-27 15:37:13,926 18811 ERROR Exirys openerp.tools.safe_eval: Cannot eval u'o.motif_demande_renfort_description'
    Traceback (most recent call last):
      File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval
        return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
      File "", line 1, in <module>
    NameError: name 'o' is not defined
    2013-08-27 15:37:13,926 18811 ERROR Exirys openerp.tools.safe_eval: Cannot eval u'project.motif_demande_renfort_description'
    Traceback (most recent call last):
      File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval
        return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
      File "", line 1, in <module>
    NameError: name 'project' is not defined
    2013-08-27 15:37:13,927 18811 ERROR Exirys openerp.tools.safe_eval: Cannot eval u'project.project.motif_demande_renfort_description'

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    bon, avancée de la chise...

    je n'ai pas de repeatIn dans mon fichier rml, ce qui peut re la cause de mes soucis...
    Donc si je comprends bien, mêe si l'object 'project.project' est défini dans l'ensemble des fichiers, il me faut ajouter cela quelque part dans le fichier rml?

    [[ repeatIn(objects,'project.project') ]]


    les champs restent vide mais bon, on avance... je l'espère...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 97
    Points
    97
    Par défaut
    Vous devriez utiliser un fichier .sxw pour dessiner le rapport et positionner le repeatIn(objet,'aliasobjuseinrapport').

    Puis vous pouvez transformer le sxw en rml à partir du menu OpenERP Report Designer -> Export RML dans OpenOffice. Ceci aprés installation de l'extension base_report_designer.zip pour openoffice.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par benoxy Voir le message
    Vous devriez utiliser un fichier .sxw pour dessiner le rapport et positionner le repeatIn(objet,'aliasobjuseinrapport').

    Puis vous pouvez transformer le sxw en rml à partir du menu OpenERP Report Designer -> Export RML dans OpenOffice. Ceci aprés installation de l'extension base_report_designer.zip pour openoffice.
    Merci, c'est ce que j'avais précédemment fait, malheureusement le repeatIn avait disparu.
    Par ailleurs le plugin ne me permettait pas de récupérer certains champs que je devais tout de même rajouter à la main (champs introuvable dans les menus de sélection)...
    De même, une grande partie de lamise en page avait disparu (soulignement, gras, italique...)
    J'ai repris le codage du fichier rml à la mano ce matin, ce qui m'a effectivement permis de corriger la source du problème.

    Concernant le "repeatIn" (au cas ou quelqu'un tombe sur ce fil de discussion), il suffit de le rajouter dans la partie corps du document, sa syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [[ repeatIn(objects, 'o') ]]
    => o est l'alias de l'objet (mettez ce que vous désirez, mais ne vous compliquez pas la vie si ce n'est pas nécessaire...)

    Pour appeler un champs (ex: )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [[o.motif_demande_renfort_description]]
    =>o.'champs que l'on désire appelé'

    si champs de type liaison sur une autre table (ex: )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [[o.site_demande_renfort.name]]
    => o.'champs que l'on désire appelé'.'pointeur du champs appelé'

    j'essaierai de faire un tuto simple pour des rapports pdf ne demandant pas grand chose (typiquement mon cas)

    Merci pour le coup de main!
    Cordialement,
    Nath

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Merci pour l'astuce

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Fcihier sxw
    Bonjour,
    SVP comment faire pour le fichier .sxw?

    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création des rapports (format PDF) sous Android
    Par iliass001 dans le forum Android
    Réponses: 2
    Dernier message: 11/11/2014, 12h39
  2. Réponses: 7
    Dernier message: 12/06/2012, 14h43
  3. Création d'un rapport PDF en SQL
    Par lucazzo dans le forum Développement
    Réponses: 4
    Dernier message: 19/05/2011, 05h00
  4. [WD15] création d'un pdf par rapport à un état
    Par Trusty823 dans le forum WinDev
    Réponses: 6
    Dernier message: 22/09/2010, 15h26
  5. Création d'un rapport PDF
    Par amminou dans le forum Seam
    Réponses: 5
    Dernier message: 25/08/2009, 02h33

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