วันพุธที่ 25 มิถุนายน พ.ศ. 2557

OpenERP : สร้าง Form จาก Interface

เป็นวิธีที่ง่ายที่สุดในการสร้าง Form ขึ้นมาเก็บข้อมูลการใช้งานตามที่เราต้องการ

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/

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 ! ก็จะหมดไปครับ