วันพุธที่ 28 กรกฎาคม พ.ศ. 2553

การส่ง parameter จาก field เป็น hidden field ไปให้ form และ screen

กรณีศึกษา
ในการค้นหาโครงการของโมดูล project management จะมี lookup เพื่อให้ผู้ใช้สามารถเลือก project ที่ต้องการค้นหาได้ แต่เมื่อกด search แล้ว การค้นหาเจอทั้งข้อมูลที่มี workEffortTypeId เป็น PROJECT, TASK, EVENT, PHASE และอื่นๆ ด้วย ทำให้มีข้อมูลมาแสดงเยอะมาก ดังนั้นจึงต้องการกรองเฉพาะข้อมูลที่มี workEffortTypeId เป็น PROJECT เท่านั้น สามารถทำได้ดังนี้

1. ที่ screen ในส่วนของ actions ให้เพิ่มโค้ด

<set field="workEffortTypeId" from-field="parameters.workEffortTypeId" default-value="PROJECT" />

อธิบายโค้ด
ให้ field ชื่อ workEffortTypeId ส่งค่า workEffortTypeId ที่ได้มาจาก parameter โดยที่ตัวแปร workEffortTypeId นี้ ถูกกำหนดค่าไว้ให้มีค่าเท่ากับ PROJECT (default-value="PROJECT")

2. ที่ form ให้เพิ่ม value และส่งค่าไปพร้อมกับ field ชื่อ workEffortTypeId ดังนี้

<field name="workEffortTypeId"><hidden value="${parameters.workEffortTypeId}"/></field>

ใน lookup ก็จะสามารถกรองเฉพาะข้อมูลที่มี workEffortTypeId ที่มีค่าเป็น PROJECT มาแสดงได้

3. ที่ lookup ในหน้า  ProjectForms.xml ให้เพิ่มโค้ด
<lookup target-form-name="LookupWorkEffort?workEffortTypeId=PROJECT">

ใส่ paremeter workEffortTypeId=PROJECT เป็น query string ไปในโค้ด เพื่อให้ส่งค่าเข้าไปค้นหาเฉพาะ workEffortTypeId=PROJECT

ไม่มีความคิดเห็น:

แสดงความคิดเห็น