ในแอปพลิเคชันฐานข้อมูลที่ใช้กันทั่วไปของเรา การเขียนโปรแกรมรายงานเป็นเรื่องยาก และไม่สะดวกสำหรับผู้ใช้ในการแก้ไขโปรแกรมรายงานใน Delphi ตัวอย่างเช่น ข้อมูลทั่วไปจำเป็นต้องเพิ่มส่วนหัว และข้อมูลบางส่วนจำเป็นต้องแก้ไขหรือ จำเป็นต้องเปลี่ยนแปลงข้อมูลหลายอย่าง รวมข้อมูลจากแต่ละตารางลงในชุดข้อมูลแล้วพิมพ์ออกมา ความสามารถโดยธรรมชาติของ Excel ล่ะ แล้วฟังก์ชันการพิมพ์หลายรายการล่ะ คำตอบคือใช่ เราใช้ฟังก์ชันของ EXCEL เพื่อประมวลผลไฟล์ DBASE ตราบใดที่ไฟล์ฐานข้อมูลของเราเข้ากันได้กับ DBASE
ในระบบเดสก์ท็อปฐานข้อมูลใน Delphi ให้สร้างไฟล์ dbase IV ใหม่ของตาราง Table (สามารถใช้ได้เฉพาะไฟล์ dabse เท่านั้น เนื่องจาก EXCEL ไม่รู้จักไฟล์ในรูปแบบอื่น) ไฟล์ example.dbf ซึ่งสามารถสร้างไฟล์ดัชนีได้ ระบุไว้ที่นี่ว่าในฐานข้อมูลสามารถป้อนเฉพาะฟิลด์ภาษาอังกฤษในเดสก์ท็อปเท่านั้น เดสก์ท็อปสร้างโครงสร้างไฟล์จากนั้นคุณสามารถแก้ไขเป็นภาษาจีนใน vfp การเริ่มต้นข้อมูลและการบวกและการลบฟิลด์สามารถทำได้ใน vfp คุณอาจถามว่าทำไมไม่สร้างไฟล์ตารางข้อมูลใน vfp โดยตรงเนื่องจาก EXCEL ไม่รู้จักเลย ข้อมูลที่อ่านจากตารางข้อมูลใน vfp นั้นยุ่งเหยิง
หลังจากสร้างตารางข้อมูล example.dbf แล้ว ให้สร้างโปรเจ็กต์ใน Delphi จากนั้นเลือกโมดูลข้อมูลในไฟล์ -> ใหม่ ข้อดีของโมดูลข้อมูลที่สร้างขึ้นคืออาจพบได้ทั่วไปในทุกรูปแบบ เพิ่มแหล่งข้อมูลและ ข้อมูลในส่วนประกอบของตาราง datamodule1 ตั้งค่ารายการที่เกี่ยวข้อง ชื่อฐานข้อมูลของตารางข้อมูลควรตั้งค่าเป็น c: emp (ไดเร็กทอรีของไฟล์ dbf ของคุณ) ตั้งชื่อตารางให้เป็นตารางข้อมูลที่คุณออกแบบ (sample.dbf) สร้างปุ่มใหม่บน form1 แก้ไขคำอธิบายภาพและพิมพ์ และเพิ่มโค้ดต่อไปนี้ใน onclick:
data.table1.close;//ปิดตารางข้อมูลปัจจุบัน หากไม่ปิด ข้อมูลอาจไม่สมบูรณ์
หากมีไฟล์อยู่ (extractfiledir (application.exename) + 'sampp.dbf') จากนั้น DeleteFile (extractfiledir (application.exename) + 'sampp.dbf');
//ตรวจสอบว่ามีตารางข้อมูลการพิมพ์ Samplep.dbf อยู่หรือไม่ และลบออกหากมีอยู่
copyfile(pchar(extractfiledir(application.exename)+'sample.dbf'),pchar(extractfiledir(application.exename)+'samplep.dbf'),จริง);
//คัดลอกsample.dbfลงในตารางข้อมูลการพิมพ์samplep.dbfเป็นไฟล์พิเศษสำหรับการแก้ไขและการพิมพ์ หากคุณใช้sample.dbf EXCELจะแจ้งว่าsample.dbfเป็นไฟล์แบบอ่านอย่างเดียวหากคุณแก้ไข มันจะพัง
data.table1.open;//เปิดตารางข้อมูลปัจจุบันเพื่อให้ใช้งานได้
shellexecute(0,'open','EXCEL.EXE',pchar(extractfiledir(application.exename)+'sampp.dbf'),pchar(extractfiledir(application.exename)),SW-SHOWMAXIMIZED);//เรียก excel และ ผสาน อ่านไฟล์ Samplep.dbf ลงใน Excel และอ้างอิง ShellAPI ในไฟล์ส่วนหัว
ด้วยวิธีนี้ คุณสามารถใช้ประโยชน์จากฟังก์ชันตารางและฟังก์ชันการพิมพ์หลายรายการของ EXCEL ได้ และคุณไม่จำเป็นต้องออกแบบโปรแกรมรายงานที่ซับซ้อนอีกต่อไป ฉันใช้วิธีนี้ในระบบสถิติใบแจ้งหนี้ที่ฉันเขียนสำหรับหน่วยของฉัน และผู้ใช้ก็พบ มันสะดวกมาก