บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ howto

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...

หลายหลายวิธีแสดงข้อมูลด้วย Grid

รูปภาพ
หลักการนำข้อมูลจากฐานข้อมูลต่างๆแสดงในกริด (Grid) โดยทั่วไปคือ เลือกช่วงข้อมูลจากฐานข้อมูลด้วยคำสั่ง SELECT SQL เก็บไว้ในเคอร์เซอร์ (Cursor) ชั่วคราวก่อน หลังจากนั้นก็นำเคอร์เซอร์ดังกล่าวไปใส่ในกริด โดยระบุชื่อเคอร์เซอร์ดังกล่าวใน RecordSource Property ของกริดเท่านั้นเอง แต่เนื่องจากวิชวลฟอกซ์โปรมีความสามารถในการติดต่อกับฐานข้อมูลได้หลากหลาย ดังนั้นหลายท่านจึงมักสับสนว่า ควรใช้งานเมื่อไร อย่างไร สรุปให้ง่ายๆก็คือ ให้ท่านเลือกใช้ตามความชอบและความถนัดของท่าน ตัวอย่าง แสดงรายชื่อพนักงานจากฐานข้อมูลตัวอย่าง Tastrade ใน Grid 1 Native ใช้กับไฟล์ฐานข้อมูลของฟอกส์โปรโดยตรง ให้ดูประโยคคำสั่ง SELECT... INTO CURSOR cPath = HOME(2) + "Tastrade\Data\tastrade.dbc" OPEN DATABASE (cPath) SELECT * FROM employee INTO CURSOR c_data THISFORM.Grid1.RecordSource = "c_data" 2 SQL-Passthru (SPT ผ่าน ODBC) ใช้กับฐานข้อมูลอะไรก็ได้ผ่าน ODBC ให้ดูประโยคคำสั่ง =SQLEXEC( "SELECT....", "Cursor" ) ประโยคการเชื่อมต่อกับฐานข้อมูลต่างๆ * DSN cStrConn...

วิธีตรวจและซ่อมแซมไฟล์ Foxpro ด้วย CM Table Repair

รูปภาพ
ตัวอย่างในบทความนี้เเลือกใช้ CM Table Repair เวอร์ชัน 2009a ดาวน์โหลดได้ที่ cmstory.com โปรดอ่าน : ก่อนทำทุกครั้งต้องสำรอง (Backup) ไฟล์ข้อมูลของเราก่อนทุกครั้ง !!! รัน VFP (ถ้าต้องการติดตั้ง VFP ไว้บน USB Disk ดูวิธีทำ Portable VFP ใน Tips ) เปิดหน้าต่าง Command Windows (Ctrl+F2) รันคำสั่ง DO ? เลือกไฟล์ cmRepair.app ถ้าหากมุมบนซ้ายไม่ใช่โฟลเดอร์ที่เก็บไฟล์ข้อมูลของเราให้คลิกปุ่ม Select Folder ตัวอย่าง D:\Test\Data คลิกที่ปุ่ม Check Folder เลือก Normal Mode ให้สังเกตว่า ถ้าทุกอย่างปกติต้องมี x เฉพาะแถวแรก (Checked) เท่านั้น ถ้าพบว่ามี x ในคอลัมภ์ 2 แสดงว่า ไฟล์นั้นเสีย (Corrupted) ให้คลิกปุ่ม Check Folder เลือก Auto-repair mode เพื่อลองซ่อมไฟล์ทั้งหมดในโฟลเดอร์แบบอัตโนมัติก่อน คลิกที่ปุ่ม Check Folder เลือก Normal Mode อีกครั้ง หากยังพบ x (Corrupted) ตรงชื่อไฟล์ไหนอีกก็ให้คลิกปุ่ม Select Table เลือกไฟล์นั้นมาซ่อมทีละไฟล์ โดยคลิกปุ่ม Change เพื่อให้ตัวเลขทางขวา (Reported) เท่ากับทางซ้าย (Change to) ::: Good Luck :::

คำสั่ง Transaction ใน Visual Foxpro

Transaction มักนำมาใช้กับการอัปเดทข้อมูลหลายตารางพร้อมกัน ประโยชน์ก็คือ หากมีความผิดพลาดในระหว่างการอัปเดทตารางใดตารางหนึ่ง ก็สามารถยกเลิกการอัปเดทตารางทั้งหมดได้ ส่วนมากก็มักใช้กับการประมวลผลของเอกสารประเภท Parent-Child พูดเป็นนัยว่า ตารางข้อมูลมีความสัมพันธ์เชื่อมโยงเกี่ยวข้องกัน อย่างเช่น ใบรับของ ใบสั่งซื้อ ใบกำกับสินค้า เป็นต้น ตัวอย่าง เพิ่มข้อมูลใน 2 ตาราง (ถ้าหากมีข้อผิดพลาดในระหว่างการอัปเดทก็ให้ยกเลิกการอัปเดททั้งหมด) Native-SQL LOCAL ex AS Exception BEGIN TRANSACTION TRY INSERT INTO Table1 ( . . .) VALUES ( . . .) INSERT INTO Table2 ( . . .) VALUES ( . . .) END TRANSACTION MESSAGEBOX("Updated completed.") CATCH TO ex ROLLBACK MESSAGEBOX(STR(ex.ErrorNo)+" "+ex.Message) ENDTRY Native-DBF (Unbuffer) LOCAL ex AS Exception BEGIN TRANSACTION TRY APPEND BLANK IN Table1 REPLACE . . . WITH . . . IN Table1 APPEND BLANK IN Table2 REPLACE . . . WITH . . . IN Table2 END TRANSACTION MESSAGEBOX("Updated com...