跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

C

chengwenge

@chengwenge
关于
帖子
137
主题
24
群组
0
粉丝
2
关注
2

帖子

最新 最佳 有争议的

  • odoo二次开发和实施服务,深圳创新联合科技有限公司
    C chengwenge

    odoo二次开发和实施服务,深圳创新联合科技有限公司(http://www.innovunion.com),有需求或项目欢迎来聊。


  • 邀请合作二次开发管理系统
    C chengwenge

    @balanta 此人是骗子,大家不要上当


  • 招odoo+iot开发人员合作
    C chengwenge

    @leren1a

    我们是 深圳创新联合科技有限公司(www.innovunion.com), 做 odoo二次开发和实施,如果有需要请联系:18603036679(微信同号)。


  • 邀请合作二次开发管理系统
    C chengwenge

    @balanta

    我们是 深圳创新联合科技有限公司(www.innovunion.com), 做 odoo二次开发和实施,如果有需要请联系:18603036679(微信同号)。


  • 招聘odoo开发人员
    C chengwenge

    @风吹过

    我们有odoo开发团队,如果有意向合作,深圳创新联合科技有限公司(www.innovunion.com), 请联系:18603036679(微信同号)。


  • Odoo 服务商招标
    C chengwenge

    我们有兴趣,是否有联系方式?


  • 公司内部项目管理系统开发
    C chengwenge

    QQ:26868578,深圳公司


  • 是否有和实现好的,符合中国会计政策的 资产负债表、损益表及现金流量表
    C chengwenge

    我是这样想,如果有现成的,我可以购买,如果没有,那就自己开发。


  • 是否有和实现好的,符合中国会计政策的 资产负债表、损益表及现金流量表
    C chengwenge

    问题如题,希望是在6.1下可用,如果有实现的,请和我联系,QQ:26868578,注明:OpenERP


  • Web端增加 addons的方法分享
    C chengwenge

    继承report我开始就是这么想,但是比较复杂,就没有用这个办法,report有很多处理rml的方法和替换render


  • Web端增加 addons的方法分享
    C chengwenge

    原有报表的 xmlrpc 数据接口没有用,我现在直接用新的接口返回报表(mako文件)需要的数据,

    其实现在只是用到了原来报表的名称定义,以便模块的 报表部分有链接,让后我把连接调跳转到我需要处理的 controllers上


  • Web端增加 addons的方法分享
    C chengwenge

    本人最近通过 web实现打印功能,先整理我的处理办法,供需要的人参考。

    一.抓包分析 report调用的数据:

    _terp_selection:[68]
    _terp_action:400
    terp_id:68
    terp_model:sale.order
    datas:{'groups_id': [], 'multi': False, 'report_xsl': False, 'name': u'\u62a5\u4ef7\u5355/\u8ba2\u5355',
    'string': u'\u62a5\u4ef7\u5355/\u8ba2\u5355', 'auto': False, 'report_name': u'sale.order',
    'header': True, 'attachment_use': False, 'report_type': u'html',
    'usage': False, 'model': u'sale.order', 'type': u'ir.actions.report.xml',
    'id': 400, 'report_xml': False, 'attachment': False}




    二.处理方法:

    1.拦截actions,修改 openerp/controllers/actions,如果报表是 type='ir.actions.report.xml' and report_type='html' 调转到 xxx controllers 
    2.新增加 xxx web addons
      1) openerp/controllers/增加具体的controller代码 ,增加文件 xxx.py,下控制代码,代码通过xmlrpc访问 server,返回数据在xxx.mako中使用
      2) 在openerp/controllers/templates 增加 xxx 对应的 templates ,xxx.mako文件
      3) openerp/controllers/root  增加      xxx = controllers.xxx.Xxx()
      4) openerp/controllers 下的__init
    .py 增加 对 xxx 的 import

    3.如果需要,在 server addons下增加 可以供 xmlrpc调用的代码,比如产生报表数据。


    三.中文处理注意事项:
    1).controller 的py 用utf-8编码
    文件第一行
    # -- encoding: utf-8 --

    2).mako用utf-8编码
    文件第一行
    ## -- coding: utf-8 --

    四.方法作用
      调用或跳转到自己controllers如果用其它通用的办法,比如菜单,那么这样的模式可以增加自己想增加的任何 web 端的功能,数据源还是访问 oe server.


  • 为有计划的人喝彩!
    C chengwenge

    学习了


  • 为什么要坚持做不赚钱的云团队而不是去开一家赚钱的咨询公司?
    C chengwenge

    [quote author=wjfonhand link=topic=2548.msg8467#msg8467 date=1313162564]
    中国有句古话叫作“秀才造反,三年不成。”。为什么会“三年不成”呢?有人归结为胆小,有人归结为背景不足。其实,关键是“秀才”往往思考太多、太复杂。比如一个秀才,他要造反了,那么他可能要考虑以下几个方便:

      1、“造反”开始如何筹备?谁出钱谁出力?兵器打造多少?粮食准备多少?先攻打哪里?再攻打哪里?如果攻不下来怎么办?如果事先被官军发现了怎么办?如果家属受到牵连怎么办?

      2、“造反”小胜后如何巩固根基?如何安排家属随军?如何安抚民心?如果被官军围剿该怎么办?打不过怎么办?被抓了该怎么办?如何分配谁负责哪一块?打到一半粮草不济怎么办?有人叛变怎么办?

      3、“造反”成功后成果该如何分配?推举谁为首领?每个人担任何种职务?以后加入的人如何分配成果?推行怎样的政策?如何处置抓住的官员贵族?在什么地方定都?去哪里找美女?要找几个美女?美女有主了怎么办?美女不依怎么办?

      秀才们满脑袋的“怎么办”,八字还没有一撇,就恨不得把后面所有的事情都计划周详,这样永远也迈不出行动的第一步。

      季文子三思而后行。子闻之,曰:“再,斯可矣。”。孔子也认为季文子的“三思”过了点,小心谨慎是必要的,但考虑得太多就可能犹豫不决,然后就放弃了。做企业也是这样,总希望每走一步都能考虑周全,总希望每走一步都不会有任何风险,那么永远都不会进步。
    [/quote]

    赞同,我个人前面一年多可能就是这个状态,通过一年多的摸索已经在改变自己的创业思路。
    创业是很难的,只要不断思考,坚持一定可以成功的。


  • 一个个人网上零售店的OpenERP非专业实施记录
    C chengwenge

    我已经整合好了 zencart和OpenERP,供在线零售客户使用,希望有需要的和我联系。由于没有解决php接口和OpenERP的中文问题,zencart端重新开发的接口。

    www.incsaas.com




  • Report report error,help
    C chengwenge

    mrshelly 二楼回答是正解。

    我在 report/init.py  不正确,需要 import report目录下的所有 py文件。
    靠,确实走了弯路,谢谢大家。


  • Report report error,help
    C chengwenge

    我做成功过好几个报表,不过都是单据。
    我这次实行的是对报表的打印,报表的模型不是自动建立,通过视图实现的模式。

    跟踪了下,还是不知道如何解决。我看了代码,系统会自动增加 report.object

    web_service.py

            def go(id, uid, ids, datas, context):
                cr = pooler.get_db(db).cursor()
                import traceback
                import sys
                try:
                    obj = netsvc.LocalService('report.'+object)



  • Report report error,help
    C chengwenge

    http://www.openerp.com/forum/topic21552.html

    I need to print a report,below is the code,but Run Error
    error(debug_rpc):
    [2010-12-27 22:51:03,375][?] Level 9:service:'report'
    [2010-12-27 22:51:03,375][?] Level 9:method:'report'
    [2010-12-27 22:51:03,375][?] Level 9:params:[01]: ('retail_demo',
    [2010-12-27 22:51:03,375][?] Level 9:params:[02]: 1,
    [2010-12-27 22:51:03,375][?] Level 9:params:[03]: 'admin',
    [2010-12-27 22:51:03,375][?] Level 9:params:[04]: u'report.sale.order.product.2',
    [2010-12-27 22:51:03,390][?] Level 9:params:[05]: [1, 2, 3, 4, 99999999],
    [2010-12-27 22:51:03,390][?] Level 9:params:[06]: {'context': {},
    [2010-12-27 22:51:03,390][?] Level 9:params:[07]: 'id': 1,
    [2010-12-27 22:51:03,390][?] Level 9:params:[08]: 'model': 'report.sale.order.product.2',
    [2010-12-27 22:51:03,390][?] Level 9:params:[09]: 'report_type': 'pdf'},
    [2010-12-27 22:51:03,390][?] Level 9:params:[10]: {'client': 'web', 'lang': u'zh_CN', 'tz': False})
    [2010-12-27 22:51:03,390][?] Level 9:result:2
    [2010-12-27 22:51:03,390][?] Level 9:service:'report'
    [2010-12-27 22:51:03,390][?] Level 9:method:'report_get'
    [2010-12-27 22:51:03,390][?] Level 9:params:('retail_demo', 1, 'admin', 2)
    [2010-12-27 22:51:03,390][?] Level 9:result:{'state': False}
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[01]:
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[02]: Environment Information :
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[03]: System : Windows-XP-5.1.2600-SP3
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[04]: OS Name : nt
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[05]: Operating System Release : XP
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[06]: Operating System Version : 5.1.2600
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[07]: Operating System Architecture : 32bit
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[08]: Operating System Locale : zh_CN.cp936
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[09]: Python Version : 2.5.2
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[10]: OpenERP-Server Version : 5.0.15
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[11]: Last revision No. & ID :
    [2010-12-27 22:51:03,562][retail_demo] ERROR:module:[12]: This service does not exists: u'report.report.sale.order.product.2'
    [2010-12-27 22:51:03,703][retail_demo] ERROR:web-services:[01]:
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[02]: Environment Information :
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[03]: System : Windows-XP-5.1.2600-SP3
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[04]: OS Name : nt
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[05]: Operating System Release : XP
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[06]: Operating System Version : 5.1.2600
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[07]: Operating System Architecture : 32bit
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[08]: Operating System Locale : zh_CN.cp936
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[09]: Python Version : 2.5.2
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[10]: OpenERP-Server Version : 5.0.15
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[11]: Last revision No. & ID :
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[12]: Exception: u'report.report.sale.order.product.2'
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[13]: Traceback (most recent call last):
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[14]: File "service\web_services.pyo", line 682, in go
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[15]: File "netsvc.pyo", line 70, in init
    [2010-12-27 22:51:03,717][retail_demo] ERROR:web-services:[16]: KeyError: u'report.report.sale.order.product.2'

    error code web_service.py

    def go(id, uid, ids, datas, context):
    cr = pooler.get_db(db).cursor()
    import traceback
    import sys
    try:
    obj = netsvc.LocalService('report.'+object)


    code:
    model,

    import string
    import sys
    import netsvc

    from osv import fields,osv

    class report_report_sale_order_product_2(osv.osv):
    _name = "report.report.sale.order.product.2"
    _description = "Sales Orders by Products"
    _auto = True
    _columns = {
    'memo': fields.char(u'说明', size=64,readonly=True),
    'month': fields.date('月份', readonly=True),
    'product_name':fields.char(u'产品名称',size=128, readonly=True),
    'quantity': fields.float('销售数量', readonly=True),
    'price_total': fields.float('销售金额', readonly=True),
    'price_average': fields.float('平均售价', readonly=True)
    }
    report_report_sale_order_product_2()

    class report_sale_order_product_2(osv.osv):
    _name = "report.sale.order.product.2"
    _description = "Sales Orders by Products"
    _auto = False
    _columns = {
    'memo': fields.char(u'说明', size=64,readonly=True),
    'month': fields.date('月份', readonly=True),
    'product_name':fields.char(u'产品名称',size=128, readonly=True),
    'quantity': fields.float('销售数量', readonly=True),
    'price_total': fields.float('销售金额', readonly=True),
    'price_average': fields.float('平均售价', readonly=True)
    }
    _order = 'id,month desc,product_name'
    def init(self, cr):
    cr.execute("""
    create or replace view report_sale_order_product_2 as (
    select
    min(b.id) as id,
    ' ' as memo,
    to_char(a.date_order, 'YYYY-MM-01') as month,
    e.name as product_name,
    sum(b.product_uom_qtyu.factor) as quantity,
    sum(b.product_uom_qty
    b.price_unit) as price_total,
    (sum(b.product_uom_qtyb.price_unit)/sum(b.product_uom_qtyu.factor))::decimal(16,2) as price_average
    from sale_order a right join sale_order_line b on (a.id=b.order_id)
    left join product_uom u on (u.id=b.product_uom)
    left join product_product d on (b.product_id=d.id)
    left join product_template e on (d.product_tmpl_id=e.id)
    group by to_char(a.date_order, 'YYYY-MM-01'),product_name ) """
    )

    def search(self, cr, user, args, offset=0, limit=None, order=None,
    context=None, count=False):
    if not context:
    context = {}

    filter=""
    logger = netsvc.Logger()
    logger.notifyChannel('app', netsvc.LOG_ERROR, args)
    firstflag=True
    for arg in args:
    afield=arg[0]
    if arg[0]=="product_name":
    afield="e.name"
    if arg[0]=="month":
    afield="to_char(a.date_order, 'YYYY-MM-01')"

    if firstflag:
    filter+=afield+" "+arg[1]+" '"+str(arg[2])+"' "
    firstflag=False
    else:
    filter+=" and "+afield+" "+arg[1]+" '"+str(arg[2])+"' "
    if len(filter)>0:
    wherestr=" where "
    else:
    wherestr=" "
    try:
    cr.execute("""drop view report_sale_order_product_2 """)
    except TypeError :
    pass

    sql="create or replace view report_sale_order_product_2 as ( <br />select <br />min(b.id) as id, <br />' ' as memo, <br />to_char(a.date_order, 'YYYY-MM-01') as month,<br />e.name as product_name,<br />sum(b.product_uom_qtyu.factor) as quantity, <br />sum(b.product_uom_qtyb.price_unit) as price_total, <br />(sum(b.product_uom_qtyb.price_unit)/sum(b.product_uom_qtyu.factor))::decimal(16,2) as price_average <br />from sale_order a right join sale_order_line b on (a.id=b.order_id) <br />left join product_uom u on (u.id=b.product_uom) <br />left join product_product d on (b.product_id=d.id) <br />left join product_template e on (d.product_tmpl_id=e.id) "<br />+wherestr+filter +" group by to_char(a.date_order, 'YYYY-MM-01'),product_name <br />union all <br />select <br />99999999 as id, <br />'合计' as memo,<br />min(to_char(a.date_order, 'YYYY-MM-01')) as month,<br />' ' as product_name,<br />sum(b.product_uom_qtyu.factor) as quantity, <br />sum(b.product_uom_qtyb.price_unit) as price_total, <br />(sum(b.product_uom_qtyb.price_unit)/sum(b.product_uom_qtyu.factor))::decimal(16,2) as price_average <br />from sale_order a right join sale_order_line b on (a.id=b.order_id) <br />left join product_uom u on (u.id=b.product_uom) <br />left join product_product d on (b.product_id=d.id) <br />left join product_template e on (d.product_tmpl_id=e.id) "<br />+wherestr + filter + " ) "


    logger.notifyChannel('app', netsvc.LOG_ERROR, sql)
    print sql
    cr.execute(sql)

    cr.execute("""
    select * from report_sale_order_product_2 order by id,month desc,product_name
    """)

    res = cr.fetchall()

    return [x[0] for x in res]

    report_sale_order_product_2()

    report:

    import pooler
    import time
    from report import report_sxw


    class glass_saleorder_product_2(report_sxw.rml_parse):

    def init(self, cr, uid, name, context):
    super(glass_saleorder_product_2, self).init(cr, uid, name, context)
    self.ret_list = []

    self.localcontext.update({
    'time': time,
    'rpt_datas':self.create_sum_data
    })

    def create_sum_data(self):

    cr=pooler.get_db(self.cr.dbname).cursor()
    cr.execute(
    "select * from report_sale_order_product_2 " )

    sum_lines = cr.dictfetchall()

    for line in sum_lines:
    ret_dict={
    'memo':line['memo'],
    'month':line['month'],
    'product_name':line['product_name'],
    'quantity':line['quantity'],
    'price_total':line['price_total'],
    'price_average':line['price_average']
    }
    self.ret_list.append(ret_dict)

    return self.ret_list


    report_sxw.report_sxw('report.report.sale.order.product.2', 'report.sale.order.product.2',
    'addons/report_sale_xlscan/report/rpt_sale_product_2.rml',
    parser=glass_saleorder_product_2, header=False)


    report xml:

    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
    <data>
    <report auto="False" id="report_report_sale_order_product_2" model="report.sale.order.product.2" name="report.sale.order.product.2" rml="report_sale_xlscan/report/rpt_sale_product_2.rml" string="打印报表" header="False"/>
    </data>
    </openerp


    Please Help me.


  • 发现 web客户端一个严重错误
    C chengwenge

    没有仔细研究,我原来的 web是 5.0.6版本,
    现在升级到 web 5.0.14版本,就没有这个问题。

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组