ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2013

ดึงข้อมูลมาจากอีกตาราง มาเก็บในรายงาน ควรเก็บเป็น id อ้างอิง หรือ ชื่อเต็มไปเลย

ข้อมูลในตาราง customer ประกอบด้วย cust_id     cust_name cust_address 1 นายโรเบิร์ต ... 2 นายวิลสัน ... 3 นายทอมครุซ ... ข้อมูลในรายงาน sale_report ประกอบด้วย sale_id sale_date sale_cust_id 1 2012-02-01 3 2 2012-02-03 1 3 2012-02-20 2 สังเกตในฟิลด์ที่ 3 ของตาราง sale_report จะเป็นการเก็บรหัสอ้างอิงลูกค้า ปัญหาที่พบคืออะไร??? เมื่อเวลาผ่านไป แล้วลูกค้าเกิดเปลี่ยนชื่อ ประวัติการซื้อขายก็จะเพี้ยน พอเรียกรายงานกลับมาดู ก็จะพบว่าเป็นชื่อใหม่ ส่วนเอกสารที่เคยพิมพ์ออกมาเป็นคนละชื่อ ตัวอย่างเช่น นายโรเบิร์ต ซื้อรถเมื่อปีที่แล้ว วันที่ 2 ก.พ. 2012  ข้อมูลทั้งหมดถูกพิมพ์เก็บเข้าแฟ้มไปแล้ว  หลังจากนั้นเขาเกิดเปลี่ยนชื่อ เป็น นายสตีเว่น มาปีนี้อยากเรียกดูรายงานของปีก่อน พอปริ้นท์ออกมา ปรากฏว่าเอกสารไม่ตรงกัน ข้อมูลนายโรเบิร์ตหายไป และมีข้อมูล นายสตีเว่น โผล่มาจากไหนก็ไม่รู้ สาเหตุก็เพราะเรียกชื่อลูกค้า จะใช้ id อ้างอิง ทำให้ได้ข้อมูลที่เขาเป

Gimp โปรแกรมตกแต่งภาพ สำหรับงาน CG

สำหรับใครที่เคยทดลองใช้โปรแกรมจากค่ายดังอย่าง Adobe ก็คงจะรู้จักโปรแกรม Photoshop เป็นอย่างดี ซึ่งจะขอบอกว่าโปรแกรม Gimp นั้นสามารถนำมาใช้งานแทนกันได้เป็นอย่างดี สำหรับความต้องการหลักๆ ในงานตกแต่งภาพถ่าย หรืองานระบายสีภาพวาดนั้นทำได้ดีทีเดียว แต่การใช้งานเครื่องไม้เครื่องมืออาจจะแตกต่างกันบ้าง แต่ถ้าได้ลองใช้ Gimp จนชินมือแล้ว ก็อาจจะไม่รู้สึกว่าแตกต่างกัน และใช้งานได้ตามต้องการได้ดีทีเดียว

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

เปิดไฟล์เอกสาร Excel แล้วเจอข้อความเตือน There was a problem sending the command to the program

"There was a problem sending the command to the program" คำเตือนนี้ปรากฏขึ้นขณะที่ชายผู้หนึ่งได้กดนิ้วคลิกที่เมาส์อย่างเร็ว 2 ครั้งที่ไอคอนไฟล์เอกสาร excel หรือโปรแกรมตารางงานที่ทำไว้หลายวันก่อน เขานั่งนิ่งเหงื่อซึมเล็กน้อยที่ไรผม สายตาจดจ่ออยู่ที่หน้าจอกับประโยคที่ปรากฏในจอ LCD ขนาด 21 นิ้ว แววตาที่เต็มไปด้วยคำถามกวาดมายังชายหนุ่มอีกคนที่นั่งอยู่ตรงมุมห้อง ที่กำลังเคาะแป้นคีย์บอร์ดอย่างเมามัน แล้วเอ่ยขึ้นว่า "น้องโปรแกรมมันเป็นอะไรเนี่ย เปิดไฟล์ไหนก็ไม่ได้เลย" ชายหนุ่มหันมาทางต้นเสียง ใบหน้านิ่ง หัวคิ้วเกือบชนกัน ก่อนจะลุกขึ้นเดินไปหาเจ้าของเสียงนั้น "น้องลองดูเลย เปิดไม่ได้ซักกะไฟล์" คลิกๆๆๆ คลิกๆๆ ไม่ได้จริงแฮะ!! "พี่ครับ พี่เปิดแบบอื่นไปก่อนนะครับ เวลาดับเบิ้ลคลิกแล้วเปิดไม่ได้ พี่ก็ลากไฟล์เข้ามาวางในโปรแกรมแทน" ดูเหมือนการใช้งานแบบนี้จะขัดใจพี่เขานิดๆ "หรือเปิดอีกวิธีก็คือ คลิกที่ Open แล้วเปิดไฟล์จากหน้าต่างที่เปิดขึ้นมานะครับ" ผ่านไป สองสัปดาห์... "น้อง พี่ไม่ไหวจะเคลียร์ละ มันทำให้พี่ทำงานช้า

Crystal Report 8.5 การ Sum แบบมี Group แล้วยอดเกิน

รายงานยอดรวมไม่ตรง เพราะการ JOIN ตารางอื่นเอาไว้ ซึ่งมียอดเยอะ เกินจริง เพราะเวลา JOIN แล้วไม่ได้ GROUP ไว้ข้อมูลที่เข้าเงื่อนไขจะมาแสดงหมดเลย โดยเฉพาะตารางที่เป็นแบบ One to Many ถ้าตารางที่สองเข้าเงื่อนไข 10 รายการ จะทำให้ เกิดข้อมูล 10 แถว เมื่อ SUM ออกมา ค่าจะเบิ้ลไป 10 ครั้งนั่นเอง สำหรับครั้งนี้เป็นปัญหาที่เกิดกับ Crystal Report 8.5 ที่สร้างไว้โดยพี่โปรแกรมเมอร์คนก่อน วันนี้ตรวจสอบแล้วเพี้ยนจึงต้องแก้ให้ได้ จะไปใส่ SQL โดยตรงก็รู้สึกว่าจะทำไม่ได้ ใช้เวลาครึ่งวันสุดท้ายก็ได้วิธีหาค่า SUM แบบ มีการแสดงผลด้วย GROUP ไว้จนได้ เมนู Insert > Runing Total Field ในหน้าต่าง Field Explorer ให้คลิกขวาที่ Runing Total Field: แล้วเลือก New จะขึ้นหน้าต่าง Create Running Total Field ตั้งชื่อในช่อง Running Total Name เลือกฟิลด์ที่ต้องการหาผลรวมในส่วนของ Summary ที่ Evaluate  ให้เลือก On change of group : ให้เลือก ฟิลด์ที่จัดกลุ่มในรายงาน ที่ Reset ให้เลือก On change of group : แล้วเลือกกฟิลดที่จุดกลุ่ม ชั้นที่ 2 คลิก OK เป็นอันสิ้นสุด ลาก Running Total Field ที่สร้างไปวา

PHP CI MANIA