ผลต่างระหว่างรุ่นของ "Openerp/histest1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 78: แถว 78:
 
สร้างไฟล์ชื่อ <code>histest_view.xml</code> โดยมีโค้ดดังนี้
 
สร้างไฟล์ชื่อ <code>histest_view.xml</code> โดยมีโค้ดดังนี้
  
<?xml version="1.0" encoding="utf-8"?>
+
<syntaxhighlight lang="xml">
<openerp>
+
<?xml version="1.0" encoding="utf-8"?>
  <data>
+
<openerp>
+
  <data>
    <record model="ir.ui.view" id="view_histest_patient_tree">
+
 
      <field name="name">histest.patient.tree</field>
+
    <record model="ir.ui.view" id="view_histest_patient_tree">
      <field name="model">histest.patient</field>
+
      <field name="name">histest.patient.tree</field>
      <field name="arch" type="xml">
+
      <field name="model">histest.patient</field>
        <tree string="Patient">
+
      <field name="arch" type="xml">
          <field name="title"/>
+
        <tree string="Patient">
          <field name="first_name"/>
+
          <field name="title"/>
          <field name="last_name"/>
+
          <field name="first_name"/>
        </tree>
+
          <field name="last_name"/>
      </field>
+
        </tree>
    </record>
+
      </field>
+
    </record>
    <record model="ir.ui.view" id="view_histest_patient_form">
+
 
      <field name="name">histest.patient.form</field>
+
    <record model="ir.ui.view" id="view_histest_patient_form">
      <field name="model">histest.patient</field>
+
      <field name="name">histest.patient.form</field>
      <field name="arch" type="xml">
+
      <field name="model">histest.patient</field>
        <form string="Patient" version="7.0">
+
      <field name="arch" type="xml">
          <group>
+
        <form string="Patient" version="7.0">
            <field name="title"/>
+
          <group>
            <field name="first_name"/>
+
            <field name="title"/>
            <field name="last_name"/>
+
            <field name="first_name"/>
          </group>
+
            <field name="last_name"/>
        </form>
+
          </group>
      </field>
+
        </form>
    </record>
+
      </field>
+
    </record>
    <record model="ir.actions.act_window" id="action_histest_patient">
+
 
      <field name="name">Patient</field>
+
    <record model="ir.actions.act_window" id="action_histest_patient">
      <field name="res_model">histest.patient</field>
+
      <field name="name">Patient</field>
      <field name="view_type">form</field>
+
      <field name="res_model">histest.patient</field>
      <field name="view_mode">form,tree</field>
+
      <field name="view_type">form</field>
    </record>
+
      <field name="view_mode">form,tree</field>
+
    </record>
    <menuitem name="HIS" id="menu_histest_top"  
+
 
      parent="" sequence="1"  
+
    <menuitem name="HIS" id="menu_histest_top"  
      action="histest.action_histest_patient" />
+
      parent="" sequence="1"  
+
      action="histest.action_histest_patient" />
  </data>
+
 
</openerp>
+
  </data>
 +
</openerp>
 +
</syntaxhighlight>

รุ่นแก้ไขเมื่อ 03:10, 27 มีนาคม 2557

สร้างมอดูล histest

ในไดเรคตอรี openerp/addons/ สร้างไดเรคตอรีชื่อ histest

mkdir histest
cd histest

จากนั้นสร้างไฟล์ชื่อ __openerp__.py ขึ้นมาเพื่อระบุ meta-data ของมอดูลในรูปดิคชันนารีของไพทอนดังนี้

{
    'name': 'HIS Test',
    'version': '0.1',
    'category': 'Tools',
    'description': """
This is a training module for new HIS
=====================================
 
""",
    'author': 'Chaiporn',
    'website': 'http://openerp.com',
    'summary': 'HIS Test',
    'sequence': 9,
    'depends': [],
    'data': [
        'histest_view.xml',
    ],
    'demo': [],
    'test': [],
    'css': [],
    'images': [],
    'installable': True,
    'application': True,
    'auto_install': False,
}

อย่างไรก็ตาม มอดูล histest จะถูกมองเป็นแพกเก็จของไพทอน ซึ่งจำเป็นต้องมีไฟล์ __init__.py อยู่ในไดเรคตอรีเดียวกันด้วย บนระบบยูนิกซ์สามารถใช้คำสั่ง touch ได้ดังนี้

touch __init__.py

หรือใช้เอดิเตอร์สร้างและบันทึกไฟล์เปล่าชื่อ __init__.py ขึ้นมาก็ได้เช่นกัน

สร้างโมเดลเก็บข้อมูล

สร้างไฟล์ชื่อ histest.py เพื่อประกาศโมเดลสำหรับเก็บข้อมูลดังนี้

# encoding=utf-8

from osv import osv, fields

class HISPatient(osv.Model):
    _name = "histest.patient"

    _columns = {
            'title' : fields.char(
                size=50,
                string=u'คำนำหน้าชื่อ',
                required=True),

            'first_name' : fields.char(
                size=50,
                string=u'ชื่อ',
                required=True
                ),

            'last_name' : fields.char(
                size=50,
                string=u'นามสกุล',
                required=True
                ),
            }

เตรียมหน้าจอแสดงผล (view)

สร้างไฟล์ชื่อ histest_view.xml โดยมีโค้ดดังนี้

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>

    <record model="ir.ui.view" id="view_histest_patient_tree">
      <field name="name">histest.patient.tree</field>
      <field name="model">histest.patient</field>
      <field name="arch" type="xml">
        <tree string="Patient">
          <field name="title"/>
          <field name="first_name"/>
          <field name="last_name"/>
        </tree>
      </field>
    </record>

    <record model="ir.ui.view" id="view_histest_patient_form">
      <field name="name">histest.patient.form</field>
      <field name="model">histest.patient</field>
      <field name="arch" type="xml">
        <form string="Patient" version="7.0">
          <group>
            <field name="title"/>
            <field name="first_name"/>
            <field name="last_name"/>
          </group>
        </form>
      </field>
    </record>

    <record model="ir.actions.act_window" id="action_histest_patient">
      <field name="name">Patient</field>
      <field name="res_model">histest.patient</field>
      <field name="view_type">form</field>
      <field name="view_mode">form,tree</field>
    </record>

    <menuitem name="HIS" id="menu_histest_top" 
      parent="" sequence="1" 
      action="histest.action_histest_patient" />

  </data>
</openerp>