BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: ittipol ที่ กันยายน 29, 2010, 11:08:15 AM

หัวข้อ: tempreport
เริ่มหัวข้อโดย: ittipol ที่ กันยายน 29, 2010, 11:08:15 AM
อาจารย์ครับ
ขอคำแนะเรื่องการทำรายงานแบบ tempreport   หน่อยครับ
ขอบคุณครับ
หัวข้อ: Re: tempreport
เริ่มหัวข้อโดย: ittipol ที่ ตุลาคม 01, 2010, 13:47:20 PM
อาจารย์ครับ
ขอคำแนะนำการสร้างรายงานแบบ tempreport ด้วยครับ
เพราะมีหลายๆๆรายงานเป็นแบบนี้ครับ
ขอบคุณครับ
หัวข้อ: Re: tempreport
เริ่มหัวข้อโดย: smrmpo ที่ ตุลาคม 01, 2010, 13:49:56 PM
เป็นแบบไหนครับ มีรูปมั้ยครับ งง (ผมก็ไม่ได้เก่งนะครับ) แต่งง กับคำถาม
หัวข้อ: Re: tempreport
เริ่มหัวข้อโดย: Bordin ที่ ตุลาคม 03, 2010, 19:02:22 PM
เท่าที่เคยแก้มา มันต้องเขียน Pascal Script ให้มัน select ข้อมูล ลง tempreport ก่อน

แล้วถึงดึงมาทำรายงานอีกที รออาจารย์ท่านอื่นมาตอบดีกว่าครับ  ;D ;D
หัวข้อ: Re: tempreport
เริ่มหัวข้อโดย: d^_^b►►ทิว ที่ ตุลาคม 03, 2010, 20:28:32 PM
เท่าที่ผมเข้าใจน่ะ
มันเป็นตารางที่สร้างไว้กลางๆไม่ระบุชื่อfieldที่เจาะจง
เอาไว้เป็นที่พักข้อมูลก่อนจะนำมาทำรายงานอีกทีเช่น
ใช้คำสั่ง sql ดึงข้อมูลเฉพาะที่ต้องการออกมาจากฐานข้อมูลมารวบรวมไว้ที่ตารางนี้ก่อน
แล้วค่อยใช้คำสั่ง sql นับจำนวนแล้วทำเป็นรายงานอีกที ประมาณนี้ครับ
ดังนั้น field ต่างๆมันจึงไม่มีชื่อเฉพาะเจาะจง ใน field หนึ่งอาจจะมีข้อมูลแต่ต่างกันก็ได้แล้วแต่ผู้ทำรายงานจะใช้ field ไหนเก็บค่าอะไร โดยแยกกลุ่มด้วย reportname และ id
หัวข้อ: Re: tempreport
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ ตุลาคม 04, 2010, 07:33:28 AM
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  ตามต้องการครับ