บทความ

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

Find Middle Value มีสามจะเอาหนึ่ง

ในเวลาที่ผมต้องเลือก 1 ใน 3 นี้ ถ้าเป็นการเลือกสาวสวยก็คงลำบากใจเหมือนกัน เพราะอาจเหมาไว้ทั้งหมด แต่หากเป็นการเลือกค่า 1 ค่าจาก 3 ค่าล่ะก็ไม่ยากครับ โดยเฉพาะฟังก์ชั่น max และ min นั้นก็มีกันอยู่แล้ว แต่นี่เป็นฟังก์ชั่นสั้นๆที่จะหาค่าที่ไม่มากและไม่น้อยไปกว่าค่าอีกสองค่าที่เหลือ มาแนวนี้เลยต้องใช้ชื่อว่า midvalue (ค่าขนาดกลาง) ยังไงล่ะครับ ... ไปดู code กันเลย function midvalue parameter val_1,val_2,val_3 maxvalue = max(val_1,val_2,val_3) minvalue = min(val_1,val_2,val_3) returnvalue = 0 do case case val_1>=minvalue .and. val_1<maxvalue returnvalue = val_1 case val_2>=minvalue .and. val_2<maxvalue returnvalue = val_2 case val_3>=minvalue .and. val_3<maxvalue returnvalue = val_3 endcase return returnvalue endfunc วิธีเรียกใช้ก็เหมือนฟังก์ชั่นทั่วไป ให้ a,b และ c เป็นตัวแปรที่มีค่าบรรจุอยู่แล้วเรียกใช้ฟังก์ชั่นว่า ... x=minvalue(a,b,c) ค่า x จะเป็นค่าที่คืนมาจากฟังก์ชั่น ซึ่งจะเป็นค่า 1 ใน 3 ค่าที่ส่งไป และจะไม่มากและไม่น้อ

Copy Table Structure to Cursor ลอกโครงสร้าง Table ไปเป็น Cursor

A : วันก่อนครับ B : ทำไมครับ A : เขียนโปรแกรมดึงข้อมูลจากหลาย Table มาใส่ใน Cursor เดียว วุ่นมาก โดยเฉพาะการสร้าง Cursor ต้องไป List Structure แล้วมาเขียนคำสั่งสร้าง Cursor หลายๆครั้งเข้าเลยทำเป็นโปรแกรมเลยสิ ก็เขียนอยู่นานตั้งหลายสิบบรรทัด วนรอบเช็ค Field name , Field type , Field size กันให้วุ่น เสร็จปุ๊บก็สบายละทีนี้ต่อไปไม่ต้องปวดหัวเรื่องนี้อีก ใช้มาเรื่อย ดีมากๆเลย เจ๋งเลย ภูมิใจมากๆเลย ชีวิตกูคงง่ายกว่าคนอื่นเยอะ จนวันนึงทำ Source Code ส่วนนั้นหาย เลยต้องมาเริ่มกันใหม่ แล้ว...แล้ว..เจือกจำไม่ได้ด้วยว่าเขียนยังไง!!! B : เวรล่ะครับ A : ก็เลยตั้งสติ เอาใหม่ เริ่มใหม่ ปรากฏว่าใช้คำสั่ง 3 บรรทัดออก B : เฮ้ย!! ขนาดนั้น A : จริงๆนะ บ้าที่สุดเลย หลงภูมิใจความโง่มาตั้งนาน เอ้าดูกันเลยครับ USE <table> AFIELDS(tblFields) CREATE CURSOR <cursorname> FROM ARRAY tblFields ข้อคิดดีๆที่ได้จากเรื่องนี้ - การที่เราทำเรื่องยากๆได้ ก็ใช่ว่าจะเจ๋งเสมอไป - เวลา Source Code โปรแกรมหายอย่าตกใจ!! ลองคิดใหม่ อาจมีอะไรที่เจ๋งกว่าเดิม - เขียนลง Blog เอาไว