描述
写道
创建一个新的模块,该模块主要是用来调用icgoo的报价接口,来获取数据;同时能从该处将数据直接进入到openerp的报价单中,进行下一步处理.
扩展:1.可以批量查询;2.纪录一段时间的信息,先本地查询,如果有就不需要调用接口;
扩展:1.可以批量查询;2.纪录一段时间的信息,先本地查询,如果有就不需要调用接口;
需求
写道
模块名: prequote.py
1.输入型号,数量及供应商获取相关信息;
2.型号及数量是必填信息;
1.输入型号,数量及供应商获取相关信息;
2.型号及数量是必填信息;
创建模块及基本文件
写道
1.去创建一个名为prequote的模块,其实就是新建一个文件夹
2.进入到prequote的文件夹中.创建如下四个文件;
__init__.py
__openerp__.py
quote.py
quote_view.xml
2.进入到prequote的文件夹中.创建如下四个文件;
__init__.py
__openerp__.py
quote.py
quote_view.xml
__init__.py
__init__.py文件是Python 的模块描述,因为OpenERP模块也是一个普通的Python模块。 # -*- encoding: utf-8 -*- import quote #导入包含Python代码的所有文件和目录
__openerp__.py
__openerp__.py文件(在6.0之前的版本也叫__terp__.py)它包含一个Python的字典声明这个模块的相关信息:模块名字,依赖关系,说明和组成。 { "name" : "prequote", #模块名 "version" : "1.0", #模块版本 "description" : 'prepare quote Demo', #模块说明 "author" : "xiaofei", #作者 "website" : "erp.icgoo.net", #网址 "depends" : [], #依赖的模块 "update_xml" : ["quote_view.xml"], #模块更新的时候会读入的文件 "installable" : True, #可否安装 "category":'Generic Modules/Others' #模块类型 }
在这里的时候我怎么都不能导入这个新的模块
按照<<OpenERP应用和开发基础>>第六章学习一下
写道
但基于 OpenERP 的开发,不一定要写代码。
OpenERP 有两种开发方式,一种不要写代码,直接在界面上操作就能完成功能开发。另外一种就是通过编写代码完成功能开发。
实际上,几乎所有功能都能够通过前一种方式来完成,即无需写代码就能完成几乎所有功能。
OpenERP 有两种开发方式,一种不要写代码,直接在界面上操作就能完成功能开发。另外一种就是通过编写代码完成功能开发。
实际上,几乎所有功能都能够通过前一种方式来完成,即无需写代码就能完成几乎所有功能。
基本概念
写道
当我们操作 OpenERP 的菜单时,通常是点击菜单(如合作伙伴->合作伙伴),跳出对象选择画面,当选择一条记录时,跳出对象编辑画面。
1.对象选择画面、对象编辑画面,在 OpenERP 里称为视图(View).选择画面是列表视图(Tree View),编辑画面是表单视图(Form View)
2.OpenERP 里的对象(Object),也叫 Model,相当于我们一般说的类(Class),对象总是对应到数据库里的数据表
3.例如业务伙伴对象,其对象名是“res.partner”,对应表名是“res_partner”。表里的一条记录,也就是对象的一个实例,叫资源( Resource )
4.当点击菜单时,系统怎么知道应该跳出哪个画面,以及应该显示哪个对象的记录呢?把菜单和对应的对象、视图关联起来的是 ( Action )
1.对象选择画面、对象编辑画面,在 OpenERP 里称为视图(View).选择画面是列表视图(Tree View),编辑画面是表单视图(Form View)
2.OpenERP 里的对象(Object),也叫 Model,相当于我们一般说的类(Class),对象总是对应到数据库里的数据表
3.例如业务伙伴对象,其对象名是“res.partner”,对应表名是“res_partner”。表里的一条记录,也就是对象的一个实例,叫资源( Resource )
4.当点击菜单时,系统怎么知道应该跳出哪个画面,以及应该显示哪个对象的记录呢?把菜单和对应的对象、视图关联起来的是 ( Action )
重要概念
写道
1.对象或模型(Object or Model):是一个 Python 的 Class,也对应到数据库的一张数据表,负责存取数据记录(Record),有 Search、Read、Write 等方法。
OpenERP 在模块加载时,初始化模块中的所有对象,放入对象池。因此,数据库操作时,通常是先从对象池中取得对象,再调用对象的方法。
2.视图(View):负责显示数据,最常见的视图是列表视图和表单视图。此外,还有日历、甘特图、图形、流程图等几种视图,不同的视图以不同的方式展示数据。
3.菜单(Menu):这个很直观,不用介绍了。
4.动作(Action):用户操作系统时(如点击菜单、点击画面右边的工具条上的按钮等),系统的响应动作。一个 Action 包含一个对象,包含若干个视图,通常每个 Action 都包含列表和表单两个视图。
当Action 被触发时,相应的视图被调出,展示相应的对象的数据。Action 有多种类型,最常见的是Act_Window(窗口类型),窗口类型跳出一个窗口以显示数据。此外还有 Report(报表)、Wizard(向导)等类型。
OpenERP 在模块加载时,初始化模块中的所有对象,放入对象池。因此,数据库操作时,通常是先从对象池中取得对象,再调用对象的方法。
2.视图(View):负责显示数据,最常见的视图是列表视图和表单视图。此外,还有日历、甘特图、图形、流程图等几种视图,不同的视图以不同的方式展示数据。
3.菜单(Menu):这个很直观,不用介绍了。
4.动作(Action):用户操作系统时(如点击菜单、点击画面右边的工具条上的按钮等),系统的响应动作。一个 Action 包含一个对象,包含若干个视图,通常每个 Action 都包含列表和表单两个视图。
当Action 被触发时,相应的视图被调出,展示相应的对象的数据。Action 有多种类型,最常见的是Act_Window(窗口类型),窗口类型跳出一个窗口以显示数据。此外还有 Report(报表)、Wizard(向导)等类型。
基本流程
写道
用户 -> 点击菜单(Menu) -> 触发动作(Action) -> 搜索对象(Object) -> 创建视图(View) -> 展示数据(Data)
让我们重新来过
写道
本来我们这个功能是不需要往openerp是存取数据的,因为我们只是调用一个接口去获取数据并显示它;这里为了做一个完整的测试,同时我们也保留这些数据还是有用的.这样在短时间内同样的数据搜索就可以不用去调用接口了.
说明
写道
icgoo询价包括如下信息:
型号:产品型号,必填;
数量:询价数量,必填;
供应商:供选择的下拉列表,默认未选中,即所以供应商;
用户:何人进行的操作,自动
时间:搜索时间,供今后使用,自动
---------------------------------
需要开发下述对象:
icgoo询价对象:将icgoo询价信息保存到数据库,以及从数据库查找询价信息。
icgoo询价视图:查找icgoo询价的画面,包括列表和表单两个视图。
菜单:准备开发两级菜单,icgoo询价 -> icgoo询价。点击“icgoo询价”时,进入icgoo询价列表视图,可以查找icgoo询价。
动作(Action):请icgoo询价动作把对象、视图、菜单关联到一起。
型号:产品型号,必填;
数量:询价数量,必填;
供应商:供选择的下拉列表,默认未选中,即所以供应商;
用户:何人进行的操作,自动
时间:搜索时间,供今后使用,自动
---------------------------------
需要开发下述对象:
icgoo询价对象:将icgoo询价信息保存到数据库,以及从数据库查找询价信息。
icgoo询价视图:查找icgoo询价的画面,包括列表和表单两个视图。
菜单:准备开发两级菜单,icgoo询价 -> icgoo询价。点击“icgoo询价”时,进入icgoo询价列表视图,可以查找icgoo询价。
动作(Action):请icgoo询价动作把对象、视图、菜单关联到一起。
创建对象
写道
设置 -> 自定义 -> 数据库结构 -> 模型 -> 新建
** 从界面上创建对象时,对象及字段标识符必须是 x_开头,
** 从界面上创建对象时,对象及字段标识符必须是 x_开头,
创建视图
写道
设置 -> 自定义 -> 用户界面 -> 视图 -> 新建
这里需要创建二张视图:1.询价历史列表视图;2.询价表单视图;
这里需要创建二张视图:1.询价历史列表视图;2.询价表单视图;
创建菜单和系统动作(Action)
写道
自定义 -> 数据库结构 -> 模型 进去,查找刚才创建的“ICGOO询价”对象,点击打开,在表单的下方有个“创建菜单”的按钮,点击进去
如下图,我是打算把这个菜单就放在'销售'->'销售'的下面
如下图,我是打算把这个菜单就放在'销售'->'销售'的下面
写道
接下来我们来创建动作(Action)
设置 -> 自定义 -> 底层对象-> 动作 -> 窗口动作 找到你创建的 'ICGOO询价'
设置 -> 自定义 -> 底层对象-> 动作 -> 窗口动作 找到你创建的 'ICGOO询价'
看效果
重启服务并登陆。
开始解决问题及扩展
写道
试着存个数据保存.
Server Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/openerp/addons/web/common/http.py", line 593, in send
return openerp.netsvc.dispatch_rpc(service_name, method, args)
File "/usr/lib/pymodules/python2.6/openerp/netsvc.py", line 360, in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File "/usr/lib/pymodules/python2.6/openerp/service/web_services.py", line 586, in dispatch
res = fn(db, uid, *params)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 167, in execute_kw
return self.execute(db, uid, obj, method, *args, **kw or {})
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 121, in wrapper
return f(self, dbname, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 176, in execute
res = self.execute_cr(cr, uid, obj, method, *args, **kw)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 164, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/usr/lib/pymodules/python2.6/openerp/osv/orm.py", line 4194, in create
cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
File "/usr/lib/pymodules/python2.6/openerp/sql_db.py", line 152, in wrapper
return f(self, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/openerp/sql_db.py", line 212, in execute
res = self._obj.execute(query, params)
ProgrammingError: 错误: 关系 "x_icgoo_quote" 的 "x_user" 字段不存在
第1行 insert into "x_icgoo_quote" (id,"x_user","x_partno","x_quant...
-------------------
我原先x_user是用的char创建的,现在改为many2one,对象关联:res.users,就好了.
Server Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/openerp/addons/web/common/http.py", line 593, in send
return openerp.netsvc.dispatch_rpc(service_name, method, args)
File "/usr/lib/pymodules/python2.6/openerp/netsvc.py", line 360, in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File "/usr/lib/pymodules/python2.6/openerp/service/web_services.py", line 586, in dispatch
res = fn(db, uid, *params)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 167, in execute_kw
return self.execute(db, uid, obj, method, *args, **kw or {})
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 121, in wrapper
return f(self, dbname, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 176, in execute
res = self.execute_cr(cr, uid, obj, method, *args, **kw)
File "/usr/lib/pymodules/python2.6/openerp/osv/osv.py", line 164, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/usr/lib/pymodules/python2.6/openerp/osv/orm.py", line 4194, in create
cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
File "/usr/lib/pymodules/python2.6/openerp/sql_db.py", line 152, in wrapper
return f(self, *args, **kwargs)
File "/usr/lib/pymodules/python2.6/openerp/sql_db.py", line 212, in execute
res = self._obj.execute(query, params)
ProgrammingError: 错误: 关系 "x_icgoo_quote" 的 "x_user" 字段不存在
第1行 insert into "x_icgoo_quote" (id,"x_user","x_partno","x_quant...
-------------------
我原先x_user是用的char创建的,现在改为many2one,对象关联:res.users,就好了.
写道
接着,继续填加价格字段,交货期字段,包装字段,批号字段,封装字段,供应商字段改成列表选择,
同时所有的这些信息,都要与产品关联起来,所有的东西都是需要做创建,再进行选择,这样我们做一件事就可以保存住所有的信息了.
比如:包装是REEL,应该是有选择并创建功能,这样下次就可以直接搜索这个包装进行填充,同时也做了信息收集...
另外如何用默认值填充,如时间,用户
同时所有的这些信息,都要与产品关联起来,所有的东西都是需要做创建,再进行选择,这样我们做一件事就可以保存住所有的信息了.
比如:包装是REEL,应该是有选择并创建功能,这样下次就可以直接搜索这个包装进行填充,同时也做了信息收集...
另外如何用默认值填充,如时间,用户
改数据类型
写道
1.如何将supplier将成下列列表,只能选择?
-- 修改字段类型为'selection',选择项目做内容填充'[('0','hot'),('1','mouser'),('2','roch'),('3','am2'),('4','future'),('5','digikey'),('6','overstock'),
('7','chip1stop'),('8','wpi'),('9','avnet'),('10','wpi-p'),('11','wpi-b'),('12','online'),('14','element14'),('99','oem')]'
-- 可这个字段只支持128个字符.....
-- 经测试这个方法是可行的,但是怎么解决字段长段过短的问题??
2.如何为时间,用户取当前默认时间,登录用户?
-- 就我观察,用上面定义字段的方法应该是不行的,应该是在action动作的时候操作.
-- 修改字段类型为'selection',选择项目做内容填充'[('0','hot'),('1','mouser'),('2','roch'),('3','am2'),('4','future'),('5','digikey'),('6','overstock'),
('7','chip1stop'),('8','wpi'),('9','avnet'),('10','wpi-p'),('11','wpi-b'),('12','online'),('14','element14'),('99','oem')]'
-- 可这个字段只支持128个字符.....
-- 经测试这个方法是可行的,但是怎么解决字段长段过短的问题??
2.如何为时间,用户取当前默认时间,登录用户?
-- 就我观察,用上面定义字段的方法应该是不行的,应该是在action动作的时候操作.
为这个页加加一个搜索框
还是只去创建视图就行了. 设置 -> 自定义 -> 用户界面 -> 视图 -> 新建 在创建搜索的时候总是出错,最后发现是xml的写法错误.当你新建一个视图的时候,系统默认都是给的下面这段代码: <?xml version="1.0"?> <tree string="My view"> <field name="name"/> </tree> 做为一个基础的xml结构是没有问题的,我先前创建的列表视图和表单视图,都可以这么写,但搜索视图这么写不行了,其实这个默认的是列表视图的结构 表单结构是 <?xml version="1.0"?> <form string="My Form"> <field name="name"/> </form> 同样搜索视图就是 <?xml version="1.0"?> <search string="My Search"> <field name="name"/> </search>
写道
上面是一个基本的最简单的创建一个功能的例子,该例子还可以有很多的扩展,只要你想,你就可以做得很强大.这里就不能一一去试了。
我现在需要去完成先前的任务,即我们输入型号,数量,供应商之后怎么去连接icgoo返回数据并显示...
我现在需要去完成先前的任务,即我们输入型号,数量,供应商之后怎么去连接icgoo返回数据并显示...
相关推荐
在CAN二次开发中,接口函数是至关重要的部分,因为它们允许开发者通过编程来控制CAN总线设备,实现数据的发送、接收以及与其他CAN节点的交互。 在标题中提到的"canopen二次开发接口函数",指的是基于CANopen协议的...
shsh6.1.31111
OE-Mail Recovery还支持批量恢复功能,对于有多个.dbx文件的用户来说,可以一次性处理多个文件,大大提高了效率。此外,它还具有友好的用户界面,使得非专业用户也能轻松上手。 在数据安全方面,OE-Mail Recovery...
Outlook Express(OE)是微软开发的一款电子邮件客户端,它在早期Windows系统中广泛使用。然而,随着技术的发展,OE逐渐被更现代的邮件客户端如Outlook所取代。尽管如此,仍有很多用户依赖于OE来管理他们的邮件。"OE...
在IT领域,尤其是在数据库管理与应用开发中,Oracle数据库是一个不可或缺的工具。Oracle数据库11g Release 1(11.1)版本提供了多种样例模式(schema),其中hr、sh、oe、pm用户是其中最为知名的几个,它们各自拥有...
Outlook Express是一款经典的电子邮件客户端,由微软开发,用于在Windows操作系统上管理电子邮件。"OE快速设置工具"是为了优化和简化Outlook Express的使用体验而设计的一款小程序。它主要解决了两个核心问题:一是...
**OE6590-10P语音模块详解** OE6590-10P是一款集成化的语音模块,主要用于实现语音合成与播放功能。它在各种应用中扮演着重要的角色,例如智能家居、安防系统、玩具、教育设备等。这款模块通常会提供简单易用的接口...
OE-Mail Recovery是一款专门针对Windows XP操作系统中Outlook Express邮件客户端的修复与恢复工具。这款软件设计的目的是帮助用户在遇到意外情况,如系统崩溃、病毒攻击或者错误操作导致的邮件丢失时,能够尽可能地...
【OE-Mail Recovery】是一款专为恢复Outlook Express(OE)邮件设计的专业软件。这款工具以其易用性和高效性,成为了用户在数据丢失情况下找回重要电子邮件的首选解决方案。 1. **OE-Mail Recovery的基本功能**: ...
【OE-Mail Recovery】是一款专业的电子邮件修复工具,专为解决Outlook Express中的.dbx文件问题而设计。这款软件的版本号是1.7.20.45,它提供了一个绿色的英文特别版,这意味着它无需安装,用户可以直接运行程序文件...
OE-Mail Recovery是一款专业的电子邮件恢复工具,专为处理Outlook Express(OE)的邮件数据丢失问题而设计。在深入了解这款软件之前,我们先来了解一下Outlook Express。Outlook Express是Microsoft公司开发的一款...
综合以上信息,这个"OE_3.rar"文件可能是一个针对IT学习者的资源包,特别是对于那些对编程、网络技术或者网站开发有兴趣的人。用户需要下载这个压缩文件,然后解压到本地,根据提供的指导文件或者网站上的说明来操作...
用于OE拼写检查无法使用时安装,只要安装后OE重启就可以了
在"oe-1.1.0.rar_oe-1.1.0_oe.h"这个压缩包中,包含了该框架的最新版本1.1.0及其核心组件"oe.h"。这个版本不仅提供了源代码,还附带了详细的文档,使得开发者和研究人员能够深入理解和应用OpenEvidence。 首先,"oe...
《OE内存修改器:解锁网游新体验》 在IT领域,内存修改器是一种技术性工具,主要用于游戏优化或个性化设置,让玩家能够调整游戏参数,获得更好的游戏体验。"OE内存修改器"就是这样一款专为部分网络游戏设计的实用...
例如,通过给出的二次函数与x轴的交点,构建正方形,并寻找点P在线段OB上移动时,OE的最大值。这里涉及到的是二次函数的截距式以及最值的计算,同时也考察了学生的几何直觉和分析能力。 考向3涉及二次函数与等腰...
标题 "OE-Mail Recovery v1.7.20.45有注册码" 指的是一款专门用于恢复和修复Outlook Express(OE)DBX文件的软件工具。这个版本号1.7.20.45表明了软件的更新状态,而"有注册码"意味着用户可以使用提供的注册码来激活...
oe7源码编译所需要的模块包,希望可以帮助大家
输出误差模型(OE)的最小二乘迭代算法(LSI),系统辨识参数