งานช่วงนี้ของผมมีแก้ Report บ้าง โดยใน Report อันนี้เป็นการบอกสถานะของ User ว่าต้องมี Message แจ้งเตือนอะไรบ้าง ได้แก่
- แจ้ง Message "- User Suspend in 2014-DEC-12 12:23:00" เมื่อถูก Admin กำหนด, ไม่ได้ใช้งานระบบนานเกิน 20 วัน หรือมีการ Log in Fail เกิน 3 ครั้ง
- แจ้ง Message "- User must change password at next login" เมื่อถูก Admin กำหนด
- แจ้ง Message "- User back date transaction authorization." เมื่อถูก Admin กำหนด
จากข้อมูลคร่าวๆนี้ หลายๆคนตอนออกแบบ Layout อาจจะแยก 3 Message ออกเป็น 3 formula
ซึ่งมาถึงตรงนี้ อาจจะพบว่าปัญหาว่า User บางคน มีแต่ 2 Message ทำให้การแสดงผลมันดูแหว่งๆ และไม่สวยงามครับ (ตัวอย่างในรูปพบว่าพื้นที่สีเหลืองที่ hilight คือ พื้นที่ที่แหว่งไป ถ้าไม่มีคำว่า "- User must change password at next login." แสดงผลอีกมันคงดูแปลกๆนะครับ)
ทางแก้ของผม คือ เวลาสร้าง Formula ก็ให้เก็บ Message แต่ละอันไว้ในตัวแปรก่อน แล้วค่อยนำมาแสดงผลทีเดียวครับ ดังนี้
//ประกาศตัวแปร Val เพื่อเก็บข้อความไว้ stringvar val; //ตรวจสอบเงื่อนไขของ Messsage ที่ 1 if {USERINVEST.ISSUSPENDED} = 'Y' then val := val + '- User Suspended in ' + ToText({USERINVEST.SUSPENDEDTIME} , "yyyy-MMM-dd hh:mm:ss") + "." + ChrW(13); //ตรวจสอบเงื่อนไขของ Messsage ที่ 2 if (trim({USERINVEST.NEEDCHANGEPWD}) = 'Y' AND trim({USERINVEST.ISSUSPENDED}) = 'Y') or (trim({USERINVEST.ISSUSPENDED}) = 'N' AND trim({USERINVEST.NEEDCHANGEPWD}) = 'Y') then val := val + '- User must change password at next login.' + ChrW(13); //ตรวจสอบเงื่อนไขของ Messsage ที่ 3 if (trim({USERINVEST.BACKDATEAUTH}) = 'Y') then val := val + '- User back date transaction authorization.'+ ChrW(13); //Return ผลลัพธ์ที่ได้ไปแสดงผล val
ผลลัพธ์ที่ได้ครับ ไม่มีบรรทัดว่างแล้วครับ
หมายเหตุ:
- ChrW(13) = ขึ้นบรรทัดใหม่(Newline)
- เวลาเขียนเงื่อนไขในรูปแบบนี้ เราควรเลือก property "can grow" ไว้ เพื่อให้ตัวรายงานช่วยปรับของ Field ตามข้อมูลทีมี
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.