Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6317|回复: 0
打印 上一主题 下一主题

Openerp开发进销存系统完毕总结

[复制链接]

8

主题

8

帖子

26

积分

新手上路

Rank: 1

积分
26
跳转到指定楼层
楼主
发表于 2015-9-8 19:51:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



差不多用了2个星期的闲余事件,对于openerp v7.0进行了学习和应用开发。细节总结如下


安装Openoffice
在openoffice中安装openerp report designer插件(openerp 7.0中自带)


OpenErp学习


安装Openoffice
在openoffice中安装openerp report designer插件(openerp 7.0中自带)


1.保存openoffice文件在英文路径下。如果不保存,send to server的时候会没有反应


2. 主要类
osv openerp/osv/osv.py
在文件中 osv = Model
所以osv.osv和osv.Model其实是一样的
osv.Model定义在orm.py中

report_sxw openerp/report/report_sxw.py
logging python库自带
import logging
_logger = logging.getLogger(__name__)
_logger.error("IntegrityError", exc_info=True)


raise osv.except_osv('xinquanda_product', "_modify_quantity0"%(record[0]['quantity']))

3.使用openerp report design + openoffice 3.4 + openerp 7.0
在send to server的时候会提示UnicodeDecodeError: 'ascii' codec can'tdecode byte
通过在addons\base_report_designer\base_report_designer.py添加如下三行代码解决
注意默认使用空格缩进。如果增加的代码使用tab缩进会产生unexpected indent错误
import sys


def upload_report(self, cr, uid, report_id, file_sxw,file_type, context=None):
'''
Untested function
'''
reload(sys)
sys.setdefaultencoding('utf8')

4.python 一个 *.py就是一个package
osv.osv就是osv.py文件内的osv对象

5.使用parent_id的时候,使用toolbar产生问题


6.selection里面使用中文内容,需要在前面增加u, 比如u'供货商'。否则插入的时候会判断出错


7.使用7.0 form如果没有sheet和group,会不显示filed string


8.使用openerp reportdesigner自动生成rml会使用in作为object名。会导致在7.0下面无法解析。提示 cannot eval'xxxx'之类的。修改名字解决问题


9.Win7的字体安装直接拖进去是不行的。文件名会变成xxx_1xxx_2这样(用cmd查看)。所以需要使用cmd的xcopy命令进行放置。否则会安装了新字体,但是还是乱码。使用xcopy进去以后,虽然图形界面看不到该字体安装成功了。但是重启oe之后可以解决乱码问题。如果还不行尝试重启一下系统吧。


10.一个工程中存在相同的view_id导致了显示不出来同名menu


11.
View生成的时候调用的初始化函数
def view_init(self, cr, uid, fields_list, context=None):

使用菜单栏的导出功能,导出Field数据时调用
def export_data(self, cr, uid, ids, fields_to_export,context=None):
   
加载数据时调用,返回一个id list.代表需要加载的数据
def load(self, cr, uid, fields, data, context=None):
       """
       Attempts to load the data matrix, and returns alist of ids (or
       ``False`` if there was an error and no id couldbe generated) and a
       list of messages.


       The ids are those of the records created andsaved (in database), in
       the same order they were extracted from thefile. They can be passed
       directly to :meth:`~read`


    #
    # Overload this methodif you need a window title which depends on the context
    #
    defview_header_get(self, cr, user, view_id=None, view_type='form',context=None):
       return False


// 获取名字,返回名字列表
def name_get(self, cr, user, ids, context=None):

// 根据参数进行名字查找.返回 (id,name)的tuple列表.相当于先用search进行搜索,然后再用name_get获取名字列表
def name_search(self, cr, user, name='', args=None,operator='ilike', context=None, limit=100):


// 仅仅使用name创建record
def name_create(self, cr, uid, name, context=None):

create
read
返回的是dict组成的list

write
unlink

def search(cr, user, args, offset=0, limit=None, order=None,context=None, count=False):

cr.execute
cr.fetchall

// 定义了
def func_search(self, cr, uid, obj, name field, args,context):

12. pgsql的备份与恢复
pg_dump.exe -f d:/backup/1234.backup -F t -h 127.0.0.1 -p 5432-U openerp -b Erp
pg_restore.exe -F t -h 127.0.0.1 -p 5432 -U openerp -d ttd:/backup/1234.backup


13.
c:\>for /f "tokens=1-3 delims=- " %1 in("�te%") do @echo %1%2%3
c:\>for /f "tokens=1-3 delims=.: " %1 in("%time%") do @echo %1%2%3
http://www.jb51.net/article/30539.htm

14.
report name一样导致了report对应的model调用错误

15.
select 'cp' || right(cast(pow(10, 10) as varchar) || id, 10)as sn, customer_id as name, '付款' as operation, pay_value as value,date, note from xinquanda_customer_payment
union
select 'co' || right(cast(pow(10, 10) as varchar) || id, 10)as sn, customer_id as name, '退货' as operation, price_totle asvalue, date , '' as note from xinquanda_product_customer_out
union
select 'ci' || right(cast(pow(10, 10) as varchar) || id, 10)as sn, customer_id as name, '供货' as operation, price_totle asvalue, date , '' as note from xinquanda_product_customer_in;


16.有关于view视图的创建与显示
1.在.py的对象创建里面定义_auto = False
2.所有_column都需要有readonly=True的属性
3._sql设定视图创建sql语句或者在__init__(self, cr)函数里面创建具体视图

如果调用视图的action使用了tree type进行显示,可能会在报错

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-5-9 07:26 , Processed in 0.012615 second(s), 13 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表