Wednesday 10 October 2007

ADF Search Forms ตอนที่ 1 สร้างด้วยวิธี Named Bind Variables

ระหว่างที่รอคุณ Tangy เขียนเรื่อง BC4J ตอนที่ 3
ผมขอคั่นจังหวะ ด้วยการสร้าง ADF Search Forms ด้วย Technology BC4J กับ ADF Faces
บน Oracle JDeveloper 10g ก่อนนะครับ

เพื่อน ๆ จะได้เห็นภาพกว้างมากขึ้น ว่า ADF ทั้งหมด สามารถทำอะไรได้ขนาดไหน
เมื่อย้อนกลับไปอ่านเรื่อง BC4J ตอนที่ 1 และตอนที่ 2 จะยิ่งเข้าใจมากขึ้นครับ

Search form ใน ADF มีวิธีสร้างได้หลายแบบด้วยกัน
แต่ที่ผมใช้อยู่หลักๆ มีอยู่ 2 วิธี คือ

  1. EnterQuery/ExecuteQuery อันนี้ง่ายสุด สร้าง View Object เสร็จปุ๊บ ลากวางปั๊บ เสร็จเลย ( ... ง่ายขนาดนั้นเลยเหรอ ไว้มาเขียนในตอนต่อไป)
  2. Named Bind Variables วิธนี้สร้าง parameter ที่ต้องการใช้ search รอรับใน Querey SQL แล้วเราส่งค่า parameter จากหน้า form search ไปให้ ข้อดีของวิธีนี้ คือมีความยืดหยุ่นในการทำงานสูง ความสา เช่น เราสามารถเขียน query sql ให้ search เอาข้อมูลเฉพาะช่วงเวลาที่เราต้องการ
ในตอนนี้ ผมจะแสดงตัวอย่างการ Search แบบ Named Bind Variables เป็น ตัวอย่าง form search ในการหาข้อมูลพนักงาน

เริ่มกันเลย
มี table ชื่อ EMPLOYEE_TABLE ใน DB มีข้อมูล ดังนี้

ขั้นแรก
ผมทำการสร้าง view object (Read-only View เพราะเราใช้ในการ view ดูข้อมูลอย่างเดียว ไม่ได้ manage ข้อมูลใน DB จริงๆ) ชื่อ EmpolyeeView


View Object มี SQL querey ดังนี้

SELECT FIRST_NAME, LAST_NAME, EMAIL_ADDRESS
FROM
employee_table
WHERE FIRST_NAME LIKE DECODE(
:PfirstName,'',FIRST_NAME, :PfirstName)
AND LAST_NAME LIKE DECODE(
:PlastName,'',LAST_NAME, :PlastName)
AND EMAIL_ADDRESS LIKE DECODE(
:Pemail,'',EMAIL_ADDRESS, :Pemail)

ใน SQL query มี parameter ชื่อ PfirstName, PlastName และ Pemail รอรับค่าจากหน้า form search เพื่อเอาไปใช้ search ใน database
parameter จะมีเครื่องหมาย colon นำหน้า ในที่นี้ให้ถ้าไม่มีค่าอะไรส่งให้ parameter ก็ให้ search ให้เจอให้หมด โดยใช้ความสามารถของ sql querey => decode


นำ View Object ที่ได้มาใส่ใน AppModule เสร็จสิ้นขั้นตอนการสร้างชั้น Business


ขั้นต่อไปก็สร้างส่วนของชั้นหน้าจอ โดยวิธีการลากวาง
  1. ลาก View EmployeeView เลือกเป็น ADF Read-only table เป็นส่วนแสดงผลข้อมูลที่ search เจอ
  2. ลาก action ExecutewithParam ของ view EmployeeView ตัวเดิม เลือกเป็น from search


เสร็จแล้ว ลองเล่นดู

search ไม่ใส่ parameter อะไรจะเป็นการ search ข้อมูลทั้งหมด


search ข้อมููลโดยนามสกุลพนักงาน


Search ข้อมูล โดยเลือกชื่อพนักงานที่ขึ้นต้นด้วยอักษร 'ก'


เป็นอันเรียบร้อยครับ ไวดีมั้ยครับ?
ยังไงรอดูตอนถัดไปของผมนะครับ เด็ดดวง!

3 comments:

@chaowapat said...

นามสกุลพนักงานแปลกดีนะจิ :P

Unknown said...

มันง่ายขนาดนี้เลยรึ
ดีจังเลย

Kim said...

ยังมีทีเด็ดกว่านี้ครับ
ต้องคอยติดตาม post ของคุณ ji และคุณ Tangy ครับ
2 คนนี้เค้าเชี่ยวด้านนี้จริง ๆ
เคย implement project ใหญ่ ๆ ด้วย ADF มาแล้ว

แต่ถ้าคอยไม่ไหว ตามไปดูที่นี่ก่อนได้ครับ
http://www.oracle.com/technology/products/jdev/index.html
http://www.oracle.com/technology/products/adf/index.html

เนื้อหา ครบถ้วน หนักแน่น