28 พฤษภาคม 2550

php: baaGrid::setGPCol

baaGrid เป็น Data Grid class ตัวหนึ่งซึ่งสามารถแสดงผล SQL Query จาก Database ได้หลายตัว โดย Default เป็น MySQL

ความสามารถหนึ่งที่ทำให้ baaGrid แสดงรายงานในแบบตารางได้ดีคือ General Purpose Column ซึ่งจะสามารถนำข้อมูลจาก query มาแสดงในรูปแบบอื่นได้เช่น image หรือ hyperlink แต่อย่างหนึ่งซึ่งตัว baaGrid Guide ไม่ได้บอกไว้ก็คือการสนับสนุนการใช้ function ได้ (**อย่างมีข้อจำกัด**) ทั้ง php built-in และ user defined โดยในการ parse funtion นั้น baaGrid ใช้ function_exists ของ php ตรวจอักขระที่ ตำแหน่ง 0 จนถึง วงเล็บเปิดแรก ถ้ามี function ที่รู้จักก็จะผ่านไปให้ eval ของ php ทำงาน
ตัวอย่าง
...
$grid->setGPCol(4, 'myfunction(#1)'); // pass column 1 from query to myfunction, valid for numeric data
$grid->setGPCol(5, 'myfunction("#2")'); // pass column 2 from query to myfunction, valid for string data
$grid->setGPCol(6, 'myfunction(#1)+123'); // also valid
...
$grid->setGPCol(6, '123+myfunction(#1)'); // invalid, function_exists('123+myfunction') returns null

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

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