Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

【开发】Report_Webkit 报表制作方法



  • 目录:<br />[list type=decimal]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29342]开发目标[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29343]实现步骤[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29346]总结及代码下载[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29348]关于打印条码的问题[/url][/li]<br />[/list]



  • 目录:<br />[list type=decimal]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29342]开发目标[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29343]实现步骤[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29346]总结及代码下载[/url][/li]<br />[li][url=http://shine-it.net/index.php/topic,16705.msg29343.html#msg29348]关于打印条码的问题[/url][/li]<br />[/list]



  • (1) 在系统用户(设置/用户/用户)列表界面和表单界面,可以打印用所所有的权限组及访问数据库表的权限请单(样式见附件)<br />(2)采用Webkit引擎实现



  • (1)在“addons” 目录新建一个目录,命名为:“report_webkit_demo”<br />(2)添加两个文件<br />        ----    init.py<br />        ----    openerp.py<br /><br />init.py (不添加内容)<br />openerp.py (按odoo模块要求添加)<br /> [code]{<br />    'name': 'webkit report demo',<br />    'version': '1.1',<br />    'author': '',<br />    'summary': 'webkit, report, demo',<br />    'description': """<br />webkit report demo<br />==============================================================<br />    """,<br />    'website': '',<br />    'images': [],<br />    'depends': ['report_webkit'],<br />    'category': '',<br />    'sequence': 16,<br />    'demo': [<br />    ],<br />    'data': [<br />    ],<br />    'test': [<br />    ],<br />    'installable': True,<br />    'application': True,<br />    'auto_install': False,<br />    'qweb': [],<br />}[/code]<br />(3)以上为odoo模块所要求的最基础两个文件,建立完成后可,更新“模块列表”,然后进行安装,如无问题进入下一步。



  • 步骤1的基础上<br /><br />(1)在"report_webkit_demo"目录下建立子文件夹“report”<br />(2)在“report”文件夹下建立始下代码文件:<br />init.py :  空<br /><br />webkit_report_demo.mako 报表模板文件<br /><br />[code]<br /><!DOCTYPE html><br /><html><br /><head><br />    <style type="text_css">${css}</style><br /></head><br /><body><br />    % for user in objects:<br />    <h1>${user.name} Access Informations:</h1> <br />     % for group in user.groups_id:<br /> <h2>Group Name:${group.name}</h2><br />     <table border="1" width="100%"><br />     <tr><br />     <th width="40%">Model</th><br /> <th>Read</th><br /> <th>write</th><br /> <th>Create</th><br /> <th>Delete</th><br /> </tr><br />     % for access in group.model_access:<br />     <tr><br />         <td>${access.model_id.name}</td><br /> <td>${access.perm_read}</td><br /> <td>${access.perm_write}</td><br /> <td>${access.perm_create}</td><br /> <td>${access.perm_unlink}</td> <br />     </tr><br /> % endfor<br /> </table> <br /> % endfor <br />    % endfor<br /><br />    <p>The administrator name is: ${admin_name}</p><br />    <p>If this report does not contain headers, it is because you have a badly compiled wkhtmltopdf. Consider installing<br />        the static version distributed on the official web site: <a href="https://code.google.com/p/wkhtmltopdf/">https://code.google.com/p/wkhtmltopdf/</a>.</p><br /></body><br /></html><br />[/code]<br /><br />webkit_report_demo.py :报表数据准备代码,非必须(本DEMO中只为说明如何使用,加入了个简单的例子)<br />[code]<br />from openerp.addons.report_webkit.webkit_report import webkit_report_extender<br />from openerp import SUPERUSER_ID<br /><br />@webkit_report_extender("report_webkit_demo.webkit_demo_report_users")<br />def extend_demo(pool, cr, uid, localcontext, context):<br />    admin = pool.get("res.users").browse(cr, uid, SUPERUSER_ID, context)<br />    localcontext.update({<br />        "admin_name": admin.name,<br />    })<br />[/code]<br /><br />webkit_report_demo.xml  :在“用户”增加界面菜单,并关联报表模板<br /><br />[code]<br /><?xml version="1.0" encoding="utf-8"?><br /><openerp><br />    <data><br /><br />        <report string="Report on users"<br />            id="webkit_demo_report_users"<br />            model="res.users"<br />            name="webkit.res.users.report.xml"<br />            file="report_webkit_demo/report/webkit_report_demo.mako"<br />            report_type="webkit"/><br />            <br />    </data><br /></openerp><br />[/code]<br /><br /><br />



  • 在步骤2的基础上:<br />(1)更新report_webkit_demo/report/init.py文件<br />[code]<br />import webkit_report_demo<br />[/code]<br />(2)更新report_webkit_demo/init.py文件<br />[code]<br />import report<br />[/code]<br />(3)更新report_webkit_demo/openerp.py文件  : 将 "report/webkit_report_demo.xml"文件加入,在模块安装或更新时,对该文件加载。<br />[code]{<br />    'name': 'webkit report demo',<br />    'version': '1.1',<br />    'author': 'lihaihe@hotmail.com',<br />    'summary': 'webkit, report, demo',<br />    'description': """<br />webkit report demo<br />==============================================================<br />    """,<br />    'website': '',<br />    'images': [],<br />    'depends': ['report_webkit'],<br />    'category': '',<br />    'sequence': 16,<br />    'demo': [<br />    ],<br />    'data': [<br />     "report/webkit_report_demo.xml",<br />    ],<br />    'test': [<br />    ],<br />    'installable': True,<br />    'application': True,<br />    'auto_install': False,<br />    'qweb': [],<br />}[/code]<br />(4)进入设置>本地模块,找到report_webkit_demo模块,对其更新。<br />(5)进入设置>用户>用户,选择用户进行打印,或进入表单界面进行打印。



  • (1)DEMO模块下载地址:请在附件下载测试<br />(2)在Odoo 8.0版本和master版本下测试通过<br />(3)关于mko文件中加入中文件报错的解决办法:<br />http://shine-it.net/index.php/topic,16668.msg29220.html#msg29220<br />(3)代码参考report_webkit模块的demo代码<br /><br /><br />全文完!欢迎讨论。<br />



  • 目前Report_webkit,本身没有生产条码的功能,查了一些资料,如果想打印条码有以下几种方法:<br />(1)采用条码字体的方式<br />(2)在数据库里建一个函数类型的二进制字段,将生成的条码图像存进去,然后以图片的方式在MaKO文件调用<br />(3)在做报表打印的数据准备时,生成条码图片,然后在MaKO文件调用


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待