tempreport คือ Table โดยที่สร้างฟิลขึ้นมา เพื่อใช้พักข้อมูล หรือ ดึงข้อมูลมาใส่ในตารางนี้ โดยจะมีฟิลสำหรับเก็บค่าต่าง ๆ คือ
name , name1 , name2 , ... ใช้เก็บค่าที่เป็น String
num1,num2,num3 , .... ใช้เก็บค่าที่เป็นตัวเลข
ประมาณนี้ครับ ถ้าอยากรูว่ามีฟิลอะไรบ้างก็ใช้คำสั่ง
desc tempreport
จุดประสงค์ของการสร้าง tempreport ผมเข้าใจว่า เอาไว้ใช้ทำรายงานที่มีความซับซ้อนมาก ๆ หรือมีเงื่อนไขมาก ๆ ซึ่งการเขียน SQL ธรรมดาจะทำไม่ได้หรือทำได้ก็ต้อง join table จำนวนมาก แต่ถ้าจะเอามาทำรายงานทั่วไปก็ไม่ว่ากันครับ
ขั้นตอนการใช้ tempreport มีประมาณนี้ครับ
1. ใช้ Pascal Script ดึงข้อมูลมาไว้ในตาราง tempreport (อยู่ในแถบ Script)
1.1 Clear tempreport ลบข้อมูลในตาราง temreport ที่มี reportname และ reportid เป็นของรายงานนี้
1.2 ใช้ fcds , fcds1 , fcds2.... <- อันนี้มาให้เรียกใช้ได้เลย , tclientdataset ดึงข้อมูลมาใส่ตาราง tempreport
2. เขียน SQL ดึงข้อมูลจากตาราง tempreport (อยู่ในแถบ SQL)
3. สร้างรายงานตามปกติ
ส่วนป่วนประโยชน์ที่ผมใช้บ่อย ๆ ก็คือ
1. ส่งข้อมูลเป็น Exel ได้ ถ้าใช้ Variable จะทำไม่ได้ (ต้อง Print To file เป็น Exel แล้วไปตัด head report ออก)
2. จัดการข้อมูลที่ต้องการได้ง่าย เช่น ลูปของการดึงข้อมูลต่าง ๆ ถ้าใช้ sql ล้วน ๆ อาจจะต้อง union กันหลายรอบ
3. สามารถคำนวณแบบซับซ้อนก่อนนำข้อมูลไปใส่ใน Table
4. สามารถสร้างรายงานที่รับ Parameter หลาย ๆ ค่า (สามารถสร้าง Form ได้เหมือน Delphi)
5. ..
6. ..
นึกไม่ออกละครับ
ถ้าใช้ tempreport บ่อย ๆ แนะนำให้เขียน code เป็น pattern
พอมาใช้ครั้งต่อไปจะได้เปลี่ยนไม่มากครับ
ปล. การสร้าง Report ทำได้หลายวิธี ขึ้นอยู่กับวิธีไหนจะง่ายที่สุด เร็วที่สุด เพื่อให้ได้ Report ตามต้องการครับ