เราสามารถใช้ template เพื่อให้ง่ายต่อการเขียน code โดยสามารถ download ไฟล์ได้จาก link ด้านล่าง
http://openerp-eclipse-template.googlecode.com/svn/trunk/
วิธีการ import ไฟล์ template เข้ามาใช้งานตามด้านล่างครับ
Python
http://www.youtube.com/watch?v=kfMk31VKxrY
XML
http://www.youtube.com/watch?v=LCxYpofncKs
วันเสาร์ที่ 27 กันยายน พ.ศ. 2557
วันเสาร์ที่ 5 กรกฎาคม พ.ศ. 2557
OpenERP : การ Import Data เข้าไปใน Form
เริ่มต้นด้วยการไปตั้งค่าใน General Setting --> Import/Export-->เลือก Allow users to import data from CSV files
จากนั้นมาเตรียมไฟล์ CSV ดังรูป
ไปที่ Attendance --> Import-->Browse
จากนั้นให้ทำการเลือกไฟล์ แล้วจะได้หน้าจอดังรูปกด Validate เพื่อเป็นการตรวจสอบข้อมูล
จากนั้นกด Import
จากนั้นมาเตรียมไฟล์ CSV ดังรูป
ไปที่ Attendance --> Import-->Browse
จากนั้นให้ทำการเลือกไฟล์ แล้วจะได้หน้าจอดังรูปกด Validate เพื่อเป็นการตรวจสอบข้อมูล
จากนั้นกด Import
วันพุธที่ 25 มิถุนายน พ.ศ. 2557
OpenERP : สร้าง Form จาก Interface
1.Setting--> Database Structure --> Models --> Create
ในช่อง Model Description : nptech_info
Model : x_nptech
จากนั้นไปที่ Tab : Fileds --> Add an item
ในช่อง Name : x_name
Field Label : name
Field Type : char
เลือก Required
Size : 64
จากนั้นกด Save & Close
หลังจากนั้นให้กด Save
ขั้นตอนต่อไปให้เรากด Create a Menu
ในช่อง Menu Name : nptech_infoในช่อง Parent Menu ให้คลิกที่ลูกศร แล้วไปที่ Create and Edit
ในช่อง Menu : nptech_info
Action : ir.actions_act_window
ในช่องที่สองให้คลิก Create and Edit
ในช่อง Action Name : nptech_info_action
Object : x_nptech
จากนั้นให้กด Save จนกลับมาที่หน้า models
จากนั้นให้เรา Refresh หน้าจอ แล้วเราจะพบว่า form ที่เราสร้างปรากฏดังรูปด้านล่าง
หลังจากนั้นให้ไปที่ Setting --> User Interface --> View --> Create
View Name : nptech_info
Object : x_nptech
ใน Tab : Architecture ตรง
จากนั้นกด Save
เมื่อทำตามขั้นตอนด้านบนครบแล้วขั้นต่อไปเราจะทำการเพิ่ม Field เข้าไปอีก Field หนึ่งโดยไปที่
Model ที่เราสร้างไว้ คือ nptech_info จากนั้นกด Edit
ไปที่ Tab : Fields --> Add an item
พิมพ์รายละเอียดตามรูปด้านล่าง แล้วกด Save
เสร็จแล้วให้ไปที่ View -->แล้วไปเพิ่ม field name ใน Architecture
Refresh หน้าจอ field ที่เราเพิ่มเข้าไปจะปรากฏดังรูปด้านล่าง
วันพุธที่ 18 มิถุนายน พ.ศ. 2557
OpenERP : ProgrammingError: column X does not exist
error ตัวที่สามของคืนนี้
ProgrammingError: column res_partner.last_reconciliation_date does not exist
LINE 1: ..."parent_id",res_partner."notification_email_send",res_partne...
หลังจากที่ผมทำการ uninstall module แล้วเกิดเหตุทำให้ไม่สามารถ login เข้าใช้งานได้ แล้วมี error ดังกล่าว ซึ้งมันฟ้องว่าหา field ที่ชื่อ last_reconciliation ใน table : res_partner ไม่เจอ ผมก็ทำการแก้ไขโดยวิธีง่ายๆคือ ทำการ add column ที่เกิด error เหล่านี้เข้าไปใน table โดยตรง ส่วน data type ผมก็เข้าไปหาใน module ที่อยู่ใน addon ว่ามันเก็บ data type เป็นอะไร
ตัวอย่างนะครับ
หลังจากนั้นก็เข้าไปใน pgAdmin ทำการ connect database แล้วใช้คำสั่ง add columns ต่อไปนี้ครับ
alter table res_partner add column last_reconciliation_date date;
add column ;
หลังจากนั้นเราก็สามารถ login เข้าใช้งานได้ตามปกติ
สำหรับผมเจอฟ้อง error เข้าไป 3 column กว่าจะหาว่า data type เป็นอะไรบ้างเล่นเอาตาลายกันทีเดียว การหาเราควรสังเกตุว่า inherit class ชื่อที่ใกล้เคียงกับ error ที่ฟ้อง
มันก็จะมี field ที่ฟ้องประมาณนี้ครับ
โอเคครับ ขอตัวดูบอลโลก 2014 ก่อนนะครับ
ref :https://answers.launchpad.net/openobject-server/+question/241239
https://bugs.launchpad.net/openobject-server/+bug/1155102
http://forum.openerp.com/forum/topic32504.html
https://doc.openerp.com/v6.1/developer/03_modules_2.html/
ProgrammingError: column res_partner.last_reconciliation_date does not exist
LINE 1: ..."parent_id",res_partner."notification_email_send",res_partne...
หลังจากที่ผมทำการ uninstall module แล้วเกิดเหตุทำให้ไม่สามารถ login เข้าใช้งานได้ แล้วมี error ดังกล่าว ซึ้งมันฟ้องว่าหา field ที่ชื่อ last_reconciliation ใน table : res_partner ไม่เจอ ผมก็ทำการแก้ไขโดยวิธีง่ายๆคือ ทำการ add column ที่เกิด error เหล่านี้เข้าไปใน table โดยตรง ส่วน data type ผมก็เข้าไปหาใน module ที่อยู่ใน addon ว่ามันเก็บ data type เป็นอะไร
ตัวอย่างนะครับ
หลังจากนั้นก็เข้าไปใน pgAdmin ทำการ connect database แล้วใช้คำสั่ง add columns ต่อไปนี้ครับ
alter table res_partner add column last_reconciliation_date date;
หลังจากนั้นเราก็สามารถ login เข้าใช้งานได้ตามปกติ
สำหรับผมเจอฟ้อง error เข้าไป 3 column กว่าจะหาว่า data type เป็นอะไรบ้างเล่นเอาตาลายกันทีเดียว การหาเราควรสังเกตุว่า inherit class ชื่อที่ใกล้เคียงกับ error ที่ฟ้อง
มันก็จะมี field ที่ฟ้องประมาณนี้ครับ
โอเคครับ ขอตัวดูบอลโลก 2014 ก่อนนะครับ
ref :https://answers.launchpad.net/openobject-server/+question/241239
https://bugs.launchpad.net/openobject-server/+bug/1155102
http://forum.openerp.com/forum/topic32504.html
https://doc.openerp.com/v6.1/developer/03_modules_2.html/
OpenERP : Constraint Error You can not have two users with the same login !
หลังจาก Uninstall Module ก็เจอหลายเหตุการณ์จริงๆ แก้ไขเรื่อง ClientWidget is null ไปแล้วก็มาเจอว่าไม่สามารถ Install บาง Module กลับไปได้ มันจะฟ้องเราว่า มี User 2 คน login อยู่ในเวลาเดียวกัน
วิธีแก้ไข : ให้เข้าไปที่ pgAdmin จากนั้น connect ไปที่ database ของเรา
ใช้ sql : select * from res_user;
จากนั้นกด F5
ให้ทำการลบ user ที่ระบบสร้างขึ้นเองครับ
delete from res_users
where login = 'portaltemplate';
จากนั้นให้ทำการ login เข้าใช้งาน OpenERP ใหม่ แล้วทำการไปแก้ไขการ Re-Install ใน Setting อีกที เท่านี้ Error : Constraint Error You can not have two users with the same login ! ก็จะหมดไปครับ
วิธีแก้ไข : ให้เข้าไปที่ pgAdmin จากนั้น connect ไปที่ database ของเรา
ใช้ sql : select * from res_user;
จากนั้นกด F5
ให้ทำการลบ user ที่ระบบสร้างขึ้นเองครับ
delete from res_users
where login = 'portaltemplate';
จากนั้นให้ทำการ login เข้าใช้งาน OpenERP ใหม่ แล้วทำการไปแก้ไขการ Re-Install ใน Setting อีกที เท่านี้ Error : Constraint Error You can not have two users with the same login ! ก็จะหมดไปครับ
OpenERP : TypeError: ClientWidget is null
สำหรับใครที่เจอเหตุการณ์ TypeError: ClientWidget is null ก็ไม่ต้องตกใจนะครับ
ให้เราคลิกขวาแล้ว Open New Tab เพื่อไป Re-Install Module ใหม่ แค่นี้เราก็สามารถเข้าใช้งาน OpenERP ได้ตามปกติครับ
ปล.ผมเจอบ่อยมาเวลาผม Uninstall Module
Ref:http://stackoverflow.com/questions/18122538/openerp-facing-typeerror-clientwidget-is-null
วันศุกร์ที่ 13 มิถุนายน พ.ศ. 2557
OpenERP : การสร้าง New Module ใน OpenERP ตอนที่ 1
จากการอ่านบทความทั้งสองผมว่าค่อนข้างชัดเจนในวิธีการสร้าง New Module ผมจะพยายาม capture รูปมาเพื่ออธิบายให้เห็นชัดเจนอีกทีหนึ่ง
http://openerpdev.wordpress.com/2012/01/31/minimal-openerp-module-example/
http://acespritechblog.wordpress.com/2012/05/22/how-to-create-a-module-in-openerp/
ขั้นตอนที่ 1 : โครงสร้างของ Module
เราต้องสร้าง ชื่อ module ของเราใน addone/ชื่อ module ที่เราต้องการสร้าง
ในที่นี้เราสร้าง ชื่อว่า dev ตามลิงค์ด้านบน
โครงสร้างในการสร้าง module จะต้องมีดังต่อไปนี้
1. __openerp__.py
2. __init__.py
3. Python files
4. XML Files
1. Actions
2. Menu Entries
3. Reports
4. Wizards
ขั้นตอนที่ 2 : Code
1. __init__.py
import dev
2. __openerp__.py
# -*- coding: utf-8 -*-
{
"name" : "Dev module",
"version" : "0.1",
"author" : "Dev",
'complexity': "easy",
"description" : """
""",
"website" : "http://www.openerp.com",
"depends" : [],
"category" : "Dev",
"sequence": 16,
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["dev_view.xml",],
'test': [],
'installable': True,
'application': True,
'active': False,
}
3. Python Files (dev.py)
# -*- coding: utf-8 -*-
from osv import fields, osv
class dev_person(osv.osv):
_name = "dev.person"
_description = "Person"
_columns = {
'person_name': fields.char('Name', size=128, required=True, help=""),
}
dev_person()
4. XML Files (dev_view.xml)
dev_person
dev.person
**** ระวังเรื่อง Permission ของไฟล์ด้วยนะครับ ****
หลังจากที่เราสร้างไฟล์ต่างๆเสร็จแล้ว ให้เราไปที่ OpenERP Application ของเรา
Module-->Update Modules List-->Update (ถ้าเราไม่มี ลิงค์ Update Modules List ให้เราไปที่ User-->เลือก Administrator-->Edit-->Access Right-->ตรง Technical Features หลังจากนั้นให้ทำการ Restart Application ใหม่)
หลังจากนั้นในกล่อง Search ให้คลิก installed ออก เราจะเจอ module ที่ยังไม่ได้ install ต่างๆ
เราจะเห็น module : Dev module ที่เราสร้าง จากนั้นให้เรา install เราจะเห็นว่า module ที่เราสร้างมี menu ชื่อว่า person แสดงขึ้นมา
การสร้าง module ใหม่อย่างง่ายก็จบเพียงเท่านี้ครับบบบบบบบ
http://openerpdev.wordpress.com/2012/01/31/minimal-openerp-module-example/
http://acespritechblog.wordpress.com/2012/05/22/how-to-create-a-module-in-openerp/
ขั้นตอนที่ 1 : โครงสร้างของ Module
เราต้องสร้าง ชื่อ module ของเราใน addone/ชื่อ module ที่เราต้องการสร้าง
ในที่นี้เราสร้าง ชื่อว่า dev ตามลิงค์ด้านบน
โครงสร้างในการสร้าง module จะต้องมีดังต่อไปนี้
1. __openerp__.py
2. __init__.py
3. Python files
4. XML Files
1. Actions
2. Menu Entries
3. Reports
4. Wizards
ขั้นตอนที่ 2 : Code
1. __init__.py
import dev
2. __openerp__.py
# -*- coding: utf-8 -*-
{
"name" : "Dev module",
"version" : "0.1",
"author" : "Dev",
'complexity': "easy",
"description" : """
""",
"website" : "http://www.openerp.com",
"depends" : [],
"category" : "Dev",
"sequence": 16,
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["dev_view.xml",],
'test': [],
'installable': True,
'application': True,
'active': False,
}
3. Python Files (dev.py)
# -*- coding: utf-8 -*-
from osv import fields, osv
class dev_person(osv.osv):
_name = "dev.person"
_description = "Person"
_columns = {
'person_name': fields.char('Name', size=128, required=True, help=""),
}
dev_person()
4. XML Files (dev_view.xml)
**** ระวังเรื่อง Permission ของไฟล์ด้วยนะครับ ****
หลังจากที่เราสร้างไฟล์ต่างๆเสร็จแล้ว ให้เราไปที่ OpenERP Application ของเรา
Module-->Update Modules List-->Update (ถ้าเราไม่มี ลิงค์ Update Modules List ให้เราไปที่ User-->เลือก Administrator-->Edit-->Access Right-->ตรง Technical Features หลังจากนั้นให้ทำการ Restart Application ใหม่)
หลังจากนั้นในกล่อง Search ให้คลิก installed ออก เราจะเจอ module ที่ยังไม่ได้ install ต่างๆ
เราจะเห็น module : Dev module ที่เราสร้าง จากนั้นให้เรา install เราจะเห็นว่า module ที่เราสร้างมี menu ชื่อว่า person แสดงขึ้นมา
การสร้าง module ใหม่อย่างง่ายก็จบเพียงเท่านี้ครับบบบบบบบ
วันจันทร์ที่ 9 มิถุนายน พ.ศ. 2557
OpenERP : การสร้าง Report ใน OpenERP ตอนที่ 2 (สร้าง New Report)
ขั้นตอนในการสร้าง report ใน OpenERP อย่างง่ายมีอยู่ 3 ขั้นตอนดังนี้ครับ
1.สร้างไฟล์ RML (ใช้ OpenERP Plugin ชื่อว่า bass report designer + Open Office)
2.สร้างไฟล์ .py
3.Config OpenERP
ขั้นตอนที่ 1 : สร้างไฟล์ RML
1.เปิด Open Office แล้ว ไปที่ OpenERP Report Designer แล้ว connect เข้าไปที่ OpenERP Server
2.ไปที่ OpenERP Report Designer-->Open a new report
3.ทำการเลือก Module ที่ต้องการทำ Report ในที่นี้ผมเลือก Account
4.พิมพ์ ABC ลงไปแล้วทำการ Save ไฟล์เป็น .sxw

5. ไปที่ OpenERP Report Designer --> Send to server
6. ทำการ Generate ไฟล์ RML โดยไปที่ OpenERP Report Designer--> Export to RML
10. เมื่อได้ไฟล์ .sxw และ .rml แล้วให้นำไปวางใน module : account ตาม path ที่ติดตั้ง
ขั้นตอนที่ 2 : สร้าง .py
1. สร้างไฟล์ account_print_invoice_example.py ขึ้นมา แล้ว copy code ไปวาง
import time
from openerp.report import report_sxw
class account_invoice(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(account_invoice, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
})
report_sxw.report_sxw(
'report.account.invoice_example',
'account.invoice_example',
'addons/account/report/account_print_invoice_example.rml',
parser=account_invoice
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
การสร้าง report_sxw.report_sxw('attribute1','attribute2','attribute3','attribute')
attribute1 = report name
attribute2 = object name
attribute3 = path name
attribute4 = optional
ref::
https://www.odoo.com/forum/Help-1/question/what-attributes-should-be-put-in-report_sxwreport_sxw-36741
2. เพิ่ม report เข้าไปในไฟล์ __iniy__.py (*** เราไม่ต้องเพิ่มตรงนี้ก็ได้ครับ เป็นการเพิ่มชื่อ module เข้าไป ในที่นี้เราจะทดลองสร้างแค่ report เพราะหลังจากที่เรา restart แล้วจะทำให้ไม่สามารถเข้ามาใช้งาน OpenERP ได้ เพราะว่ามันหา module : account_print_invoice_example ไม่เจอ ***)
ขั้นตอนที่ 3 : Config OpenERP
1.ไปที่ Setting-->Technical-->Action-->reports
ทดสอบการเข้าใช้งาน
1.สร้างไฟล์ RML (ใช้ OpenERP Plugin ชื่อว่า bass report designer + Open Office)
2.สร้างไฟล์ .py
3.Config OpenERP
ขั้นตอนที่ 1 : สร้างไฟล์ RML
1.เปิด Open Office แล้ว ไปที่ OpenERP Report Designer แล้ว connect เข้าไปที่ OpenERP Server
2.ไปที่ OpenERP Report Designer-->Open a new report
3.ทำการเลือก Module ที่ต้องการทำ Report ในที่นี้ผมเลือก Account
4.พิมพ์ ABC ลงไปแล้วทำการ Save ไฟล์เป็น .sxw

5. ไปที่ OpenERP Report Designer --> Send to server
6. ทำการ Generate ไฟล์ RML โดยไปที่ OpenERP Report Designer--> Export to RML
10. เมื่อได้ไฟล์ .sxw และ .rml แล้วให้นำไปวางใน module : account ตาม path ที่ติดตั้ง
ขั้นตอนที่ 2 : สร้าง .py
1. สร้างไฟล์ account_print_invoice_example.py ขึ้นมา แล้ว copy code ไปวาง
import time
from openerp.report import report_sxw
class account_invoice(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(account_invoice, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
})
report_sxw.report_sxw(
'report.account.invoice_example',
'account.invoice_example',
'addons/account/report/account_print_invoice_example.rml',
parser=account_invoice
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
การสร้าง report_sxw.report_sxw('attribute1','attribute2','attribute3','attribute')
attribute1 = report name
attribute2 = object name
attribute3 = path name
attribute4 = optional
ref::
https://www.odoo.com/forum/Help-1/question/what-attributes-should-be-put-in-report_sxwreport_sxw-36741
2. เพิ่ม report เข้าไปในไฟล์ __iniy__.py (*** เราไม่ต้องเพิ่มตรงนี้ก็ได้ครับ เป็นการเพิ่มชื่อ module เข้าไป ในที่นี้เราจะทดลองสร้างแค่ report เพราะหลังจากที่เรา restart แล้วจะทำให้ไม่สามารถเข้ามาใช้งาน OpenERP ได้ เพราะว่ามันหา module : account_print_invoice_example ไม่เจอ ***)
ขั้นตอนที่ 3 : Config OpenERP
1.ไปที่ Setting-->Technical-->Action-->reports
ทดสอบการเข้าใช้งาน
สมัครสมาชิก:
ความคิดเห็น (Atom)
















































