Openerp/histest3
รุ่นแก้ไขเมื่อ 08:28, 17 เมษายน 2557 โดย Chaiporn (คุย | มีส่วนร่วม)
หน้านี้รวมข้อมูลสำหรับการทดสอบการพัฒนาระบบด้วย OpenERP
เนื้อหา
การสร้างรายงาน
- สร้างไดเรคตอรี่ชื่อ
report
และสร้างไฟล์__init__.py
ไว้ภายในนั้น - ดาวน์โหลด ไฟล์:Histest patient.odt เพื่อใช้เตรียมเทมเพลทสำหรับรายงาน เซฟไฟล์นี้ไว้ในไดเรคตอรี
report
- ใช้คำสั่ง
openerp_sxw2rml.py
แปลงไฟล์ของ OpenOffice ให้เป็นไฟล์ RML (Report Markup Language) เพื่อนำไปใช้กับระบบสร้างรายงานของ OpenERP ต่อไป (หมายเหตุ:<openerp-path>
หมายถึงพาธที่ติดตั้ง OpenERP)
python <openerp-path>/openerp/addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py histest_patient.odt > histest_patient.rml
ไฟล์ histest.py
เพิ่มโมเดล HISAppointment และแก้ไขโมเดล HISPatient ให้เชื่อมโยงถึงกัน
from osv import osv, fields
class HISPatient(osv.Model):
_name='histest.patient'
def get_full_name(self, cr, uid, ids, field_name, arg, context):
patients = self.browse(cr, uid, ids)
result = {}
for p in patients:
result[p.id] = (u'%s %s %s' % (p.title,
p.first_name,
p.last_name))
return result
_rec_name='full_name'
_columns={
'title': fields.char(size=50,
string=u'คำนำหน้าชื่อ',
required=True),
'first_name': fields.char(size=256,
string=u'ชื่อ',
required=True),
'last_name': fields.char(size=256,
string=u'นามสกุล',
required=True),
'sex': fields.selection([('M',u'ชาย'),('F',u'หญิง'),],
string=u'เพศ',
required=True),
'id_number': fields.char(size=20,
string=u'เลขบัตรประชาชน',
required=True),
'full_name': fields.function(get_full_name,
type='char'),
'appointment_ids': fields.one2many('histest.appointment',
'patient_id',
'Appointments'),
}
:
class HISAppointment(osv.Model):
_name = 'histest.appointment'
_columns = {
'date': fields.date(string=u'วันนัดหมาย', required=True),
'patient_id': fields.many2one('histest.patient', 'Patient'),
}
ไฟล์ histest_view.xml
เพิ่มการแสดงผลฟิลด์ appointment_ids ในฟอร์มของโมเดล HISPatient
<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 cols="2">
<group colspan="1">
<field name="title"/>
<field name="first_name" widget="firstname" />
<field name="last_name" widget="lastname" />
</group>
<group colspan="1">
<field name="sex"/>
<field name="id_number" widget="person_id" />
<field name="appointment_ids" />
</group>
</group>
</form>
</field>
</record>
ไฟล์ histest_report.xml
ใช้ไฟล์นี้ระบุองค์ประกอบของรายงานการนัดหมายผู้ป่วย
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
auto="True"
id="report_histest_patient"
model="histest.patient"
name="histest.patient"
rml="histest/report/histest_patient.rml"
string="Print Appointments"
header="False"
menu="True"
/>
</data>
</openerp>
ไฟล์ __openerp__.py
ระบุให้ใช้ไฟล์ histest_report.xml
เป็น data
{
:
'data': [
'histest_view.xml',
'histest_report.xml',
],
:
}
เอกสารครั้งก่อน ๆ
- โค้ดสำหรับการทดสอบครั้งที่ 1 วันที่ 27 มี.ค. 2557 - เกี่ยวกับ web module และการเรียก message
- โค้ดสำหรับการทดสอบครั้งที่ 2 วันที่ 3 เม.ย. 2557 - การทำ responsive css และ asynchronous request