รายงานซึ่งเป็นหนึ่งในรูปแบบเอาต์พุตทั่วไปของข้อมูลระบบเป็นฟังก์ชั่นสำคัญของระบบแอปพลิเคชันส่วนใหญ่ที่เป็นฟังก์ชั่นพิเศษและสำคัญของระบบ MIS ไม่ว่าจะมีฟังก์ชั่นการพิมพ์ที่ดีมักเกี่ยวข้องกับความสำเร็จหรือความล้มเหลวของระบบในระดับหนึ่ง Delphi มีฟังก์ชั่นการรายงานที่แข็งแกร่ง แต่ฟังก์ชั่นการรายงานไม่สามารถตอบสนองความต้องการของเราได้ ดังนั้นผู้เชี่ยวชาญ Delphi หลายคนได้เปิดตัวการควบคุมรายงานที่ยอดเยี่ยมมากมาย (โมดูล) อย่างต่อเนื่องเพื่อเป็นอาหารเสริมสำหรับ QuickReport ซึ่ง Fastreport เป็นตัวแทน
Fastreport ผสมผสานข้อดีของ QuickReport และ ReportBuilder มีขนาดเล็กความเร็วเร็วและมีซอร์สโค้ดทั้งหมด เมื่อพัฒนาระบบการบำบัดยาผู้เขียนประสบความสำเร็จในการจัดทำรายงานแบบฟอร์มซึ่งเหมือนกับรูปแบบการยอมรับยาและการจัดสรรยาโดยใช้ Fastreport 2.51 ให้ฉันแนะนำให้เพื่อนของฉันด้านล่าง
fastreport2.51 ที่อยู่ดาวน์โหลด: http // www.skycn.com/Soft/8805.html
การวิเคราะห์ข้อกำหนดของรายงาน
เพื่อนที่ทำงานในโรงพยาบาลรู้ว่าเมื่อยาเสพติดถูกใส่เข้าไปในคลังสินค้าพวกเขาจะต้องกรอกแบบฟอร์มการยอมรับยาเสพติดและเมื่อเจ้าหน้าที่ร้านขายยาได้รับยาเสพติดพวกเขาจะต้องกรอกแบบฟอร์มการจัดสรรยา แบบฟอร์มการยอมรับยาและแบบฟอร์มการจัดสรรที่ใช้โดยผู้เขียนไม่ได้ทุ่มเท แต่เป็นแบบฟอร์มการยอมรับผลิตภัณฑ์ทั่วไปและแบบฟอร์มการจัดสรร ซึ่งแตกต่างจากรายงานที่ใช้ในห้างสรรพสินค้าและระบบโทรคมนาคมลักษณะที่ปรากฏเป็นรูปทรงบาร์และแต่ละแผ่นสามารถเติมด้วยยาห้าชนิดรวมถึงหน่วยส่งมอบหมายเลขคำสั่งจัดส่งหน่วยส่งมอบชื่อผลิตภัณฑ์ข้อมูลจำเพาะหน่วยราคา จำนวนเงิน ฯลฯ สไตล์หนึ่งและการรวมกันสามครั้ง
เพื่อสรุปเราสามารถสรุปข้อกำหนดของการออกแบบรายงานดังต่อไปนี้:
1. ขนาด: กว้าง 21 ซม. และกว้าง 10 ซม.
2. แต่ละคนสามารถพิมพ์ยา 5 ชนิดและผลรวมย่อยของหน้านี้พบได้ภายใต้แบบฟอร์ม
3. เมื่อมียามากกว่า 5 ตัวเริ่มพิมพ์แบบฟอร์มใหม่
รายงานการออกแบบ
1. เปิดผู้ออกแบบรายงาน Fastreport และออกแบบ "แบบฟอร์มการยอมรับยา" ตามรูปที่ 1
(ภาพมีขนาดใหญ่โปรดดึงแถบเลื่อนเพื่อดู)
นอกจากนี้ตัวแปร Inhj, outhj, cahj และ linecount เป็นตัวแทน "ทั้งหมดในร้านค้า", "ทั้งหมดนอกร้านค้า", "ความแตกต่างทั้งหมด" และ "แถวข้อมูลทั้งหมด" และตัวแปรเหล่านี้จะถูกกำหนดค่าใน โปรแกรม
2. กด F11 เพื่อเรียกดูวัตถุเลือก Band2 และป้อนรหัสต่อไปนี้ในเหตุการณ์ OnBeForPrint:
เริ่ม
ถ้าline#-1 <> 0 และline#-1 mod 5 = 0 แล้ว
เริ่ม
Showbandchild1
Showbandband1
สิ้นสุด
สิ้นสุด
ในรหัสให้ใช้ฟังก์ชั่นในตัวline#ของ fastreport เพื่อรับหมายเลขบรรทัดปัจจุบัน
3. เลือก Child3 และป้อนรหัสต่อไปนี้ในเหตุการณ์ OnBeForPrint:
เริ่ม
lin = linecount // กำหนดค่าให้กับตัวแปรนี้ในโปรแกรม
ในขณะที่lin mod 5 <> 0 ทำ
เริ่ม
Showbandchild2 // พิมพ์เส้นเปล่า
inclin
สิ้นสุด
Showbandchild3
สิ้นสุด
วัตถุประสงค์ของรหัสนี้คือการพิมพ์บรรทัดว่างถ้าสายข้อมูลล่าสุดไม่เพียงพอสำหรับแบบฟอร์มที่จะแสดง
4. เลือก Band3 และป้อนรหัสต่อไปนี้ในเหตุการณ์ OnBeForPrint:
เริ่ม
Showbandchild1 // เมื่อถึงรายงานเนื้อหาที่ด้านล่างของแบบฟอร์มจะปรากฏขึ้น
สิ้นสุด
5. บันทึกรายงานและกลับสู่สภาพแวดล้อมการพัฒนา Delphi
ส่วนการเขียนโปรแกรม Delphi
ในส่วนการเขียนโปรแกรม Delphi เราส่วนใหญ่ผ่านพารามิเตอร์ที่จำเป็นสำหรับรายงาน
ส่วนตัว
line1line2integer // บันทึกหมายเลขบรรทัด
inputxjintemp // รายการย่อยย่อยลงในคลังสินค้าให้ชัดเจนหลังจากทุก ๆ 5 บรรทัดด้านล่างเหมือนกัน
outxjoutemp // ผลรวมย่อยเอาต์พุต
cajiaxjcatempreal // ผลรวมย่อยของความแตกต่างของราคา
ด้านล่างเป็นรายการรหัสสำหรับกระบวนการหลักหลายกระบวนการ
// กระบวนการรวมข้อมูลแบบฟอร์มเดียว
โพรซีเดอร์tinputform.frdbdataset1nextsender tobject
วาจา
เล่าเรื่องinteger
เริ่ม
นับใหม่ = adoruku.recordcount
incline1 // ตัวแปรนี้ถูกส่งไปยังไฟล์รายงานเพื่อควบคุมการพิมพ์ของสายว่างเปล่า
incline2 // ตัวแปรนี้ควบคุมค่ารวมย่อย
ถ้าไม่ Adoruku.eof แล้ว
เริ่ม
inputxj = inputxj+adoruku.fieldbyname'inputจำนวน 'Aasfloat
outxj = outxj+adoruku.fieldbyname'out-deposit จำนวนเงิน '.asfloat
cajiaxj = cajiaxj+adorukujxcj.asfloat
สิ้นสุด
// ล้างค่ารวมทั้งหมดหลังจากทุก ๆ 5 แถว
ถ้าline2 mod 5 = 0 และrecount> line2 div 5 5แล้ว
เริ่ม
intemp = inputxj
outemp = outxj
catemp = cajiaxj
inputxj = 0
outxj = 0
cajiaxj = 0
สิ้นสุด
// กำหนดค่าให้กับตัวแปรเมื่อถึงจุดสิ้นสุดของชุดข้อมูล
ถ้า adoruku.eof แล้ว
เริ่ม
intemp = inputxj
outemp = outxj
catemp = cajiaxj
สิ้นสุด
สิ้นสุด
โปรแกรมข้างต้นถูกดีบักและส่งผ่านใน Windows 2000/XP+Delphi6.0 จนถึงตอนนี้เราได้เสร็จสิ้นการออกแบบแบบฟอร์มการยอมรับยาและการออกแบบรายงานอื่น ๆ ที่คล้ายกันสามารถอ้างถึงกระบวนการข้างต้น รูปที่ 2 เป็นผลตัวอย่างของรายงานที่สร้างขึ้นเมื่อโปรแกรมกำลังทำงาน
(ภาพมีขนาดใหญ่โปรดดึงแถบเลื่อนเพื่อดู)