บทความ

กำลังแสดงโพสต์จาก กรกฎาคม, 2019

Print VFP Report with .NET application

รูปภาพ
สั่งพิมพ์รายงาน FRX บน .NET Framework การสร้างรายงานด้วยชุด Visual Studio บน .NET มักเลือกใช้ CR (Crystal Report) เป็นหลัก สำหรับ CR นี้จะมีอยู่ในชุด Professional ขึ้นไป เนื่องจากภาษาบน .NET ไม่มี VFP ดังนั้นหากต้องการอัปเกรดระบบงานที่พัฒนาด้วย VFP ไปรันบน .NET Framework ก็จำเป็นต้องเขียนโปรแกรมกันใหม่ทั้งหมด อย่างไรก็ตาม เราสามารถเรียกใช้รายงานต่าง ๆ (*.frx) ที่พัฒนาด้วย VFP จาก .NET โดยตรงก็ได้ ซึ่งวิธีการนี้ก็จะไม่ต้องเสียเวลาแปลงรายงานเป็น CR กันใหม่ทั้งหมด คนที่ใช้ฟอกส์สามารถประยุกต์ใช้สร้างรายงานบน .NET กับ Visual Studio ชุด Express ที่ไม่มี CR ก็ได้น่ะ :-) ทำไมต้อง .NET หลักการพัฒนาแอปพลิเคชันที่ไม่ต้องสนใจระบบปฎิบัติการ (OS) ไม่ต้องสนใจแพลตฟอร์ม (Platform) คอนเซ็ปท์เดียวกับ Java นั่นล่ะ ขอให้เครื่องนั้นมี .NET Framework ติดตั้งอยู่เท่านั้น สังเกตว่า Win7 แถม .NET ติดตั้งมาพร้อม ส่วนวินโดวส์อื่นก็ต้องหา .NET Framework มาติดตั้งเพิ่มเติม เพื่อให้เข้าใจง่าย ๆ ก็ให้มองว่า .NET Framework เหมือนกับ Runtime Libraries เพียงแต่มันเอาทุกอย่างมาอัดรวมไว้ทีเดียว เปรียบเสมือนก้

Data Entry Form แบบ Client/Server

รูปภาพ
หลากหลายวิธีในการสร้างฟอร์มป้อนข้อมูลแบบ Client/Server (1) วิชวลฟอกส์โปรมีเครื่องมือจัดการกับฐานข้อมูลแบบ Client/Server ให้เลือกใช้งานหลากหลายแบบ ก่อนอื่นต้องเข้าใจก่อนว่า ฐานข้อมูลของเรานั้นสนับสนุน OLEDB หรือ ODBC เพราะว่า เครื่องมือแต่ละตัวออกแบบมาให้ใช้งานไม่เหมือนกัน สรุปง่าย ๆ ดังตารางต่อไปนี้ เครื่องมือ ODBC OLEDB Native DBF ADO (ActiveX Data Object) Yes Yes No SPT (SQL Pass Thru) Yes No No Remote View Yes No Yes CA (Cursor Adapter) Yes Yes Yes จากตารางข้างต้นจะเห็นได้ว่า เราสามารถเลือกเขียนคำสั่งติดต่อกับฐานข้อมูลตามที่เราถนัดแบบไหนก็ได้ ถ้าเคยใช้พวก ADO ใน Visual Basic มาก่อน ก็สามารถเขียนคำสั่งกับออปเจ็กต์ของ ADO ในฟอกส์โปรได้เลย หากต้องการใช้คำสั่ง Native DBF ของฟอกส์โปร เช่น GO, SKIP, LOCATE, APPEND, TABLEUPDATE ฯลฯ ก็เลือกใช้ CA หรือ Remote View ตามถนัด เพราะส่วนใหญ่ฐานข้อมูลจะมี ODBC มาให้อยู่แล้ว ส่วน SPT นั้นเป็นการเขียนคำสั่ง SQL กับฐานข้อมูลผ่าน ODBC โดยตรง กล่าวคือ มักใช้กับคำสั่ง SQL ที่ไม่ได้เป็นมาตรฐานนั่นล่ะ แต่ละตัวมักไม่เหมือนกัน เช่น คำสั่ง SELECT

Subtotal at top of group report

รูปภาพ
แสดงยอดรวมในส่วนหัวของแต่ละกลุ่มในรายงาน ปกติลักษณะรายงานข้างต้น มักใช้วิธี Query หายอดรวมก่อนแล้วค่อยแสดงในรายงาน ซึ่งมีข้อดีคือ ใช้ได้กับทุกเวอร์ชัน แต่อย่างไรก็ตาม Report Writer ในวิชวลฟอกส์โปรเวอร์ชัน 9 นั้นมีลูกเล่นในการทำรายงานมากกว่าเวอร์ชันก่อน สามารถแสดงยอดรวมในรายงานดังกล่าวได้อย่างง่ายดาย โดยการสร้าง Detail Band เพิ่มขึ้นมา แล้วก็สร้าง Header/Footer ของ Detail Band หลังจากนั้นก็ใส่ยอดรวมไว้ใน Footer ของ Detail Band ลักษณะดังรูป วิธีการสร้างรายงานข้างต้นดังกล่าว สามารถทำได้ดังนี้ :- ระบุคีย์ฟิลด์เพื่อสร้างกลุ่มของข้อมูลในรายงาน เพิ่ม Detail Band 2 ดับเบิลคลิก Band แถบสีเทาที่ Detail 1 ระบุ Target คือ Alias() และคลิกเลือก Associated header and footer bands ดับเบิลคลิก Band แถบสีเทาที่ Detail 2 ระบุเพียง Target คือ Alias() จะเห็น band ต่างๆในรายงาน มีลักษณะดังรูป สร้างฟิลด์ข้อมูลต่างๆของกลุ่มใส่ไว้ใน Detail Footer 1 สร้างฟิลด์ข้อมูลรายการต่างๆใส่ไว้ใน Detail 2 ดับเบิลคลิกฟิลด์ที่ต้องการสรุปยอดรวม ตัวอย่าง order_amt (สีแดง) ใน Detail Foote