Quote: Originally posted by Korakod วันที่ 05 ก.พ. 2553
ในวงแลนเราสามารถเช็คว่ามีผู้ใช้งานอยู่ในระบบกี่คนได้หรือไม่ครับ
ถ้าเช็คทั่วไปก็ใช้ โปรแกรม IP SCAN ถ้าเป็น NT ก็เข้าไปดูในหมวด user
แต่ที่ผมเข้าใจคงหมายถึงระบบโปรแกรมที่เราเขียน ว่ามีคนเข้าในขณะนั้นกี่คน (ผมอาจเข้าใจผิดก็ได้ไม่ว่ากันนะครับ ) 1.สร้าง table user_log ประกอบไปด้วย COMPUTER ID,login name,last in,last out,status
2.ใน login form เมื่อเข้าไปแล้ว ก็เปิด table user_log โดยเอา COMPUTER ID ไป seek หาในตารางถ้าเจอ ก็เขียน รายละเอียดลงไป ที่สำคัญใส่ status = .T. /ถ้าไม่เจอก็เพิ่ม COMPUTER ID เข้าไปใน table พร้อมรายละเอียด เปิดแล้วก็ ปิด table นี้ทุกครั้งจะได้ไม่เปลืองหน่วยความจำ 3.ถ้าออกจากระบบ ก็ทำเหมือนข้อ(2) แต่ กรอก logout time และ เปลี่ยน status= .F. เปิดแล้วก็ ปิด table นี้ทุกครั้งจะได้ไม่เปลืองหน่วยความจำ
การวิวดู ก็ สร้าง form ขึ้นมาเพื่อดูสถานะ โดยใส่ object Timer นับเวลาไว้ ให้ refresh ทุกๆกี่วิ ก็ระบุเอาครับ
ปล.ข้อ 2,3 ก็ใช้คำสั่งพื้นฐานที่มีอยู่ง่ายๆ เพื่อทำการระบุ status *-------------------------------------------- LOCAL oldSetEXACT,chkCOMP_NO oldSetEXACT =SET("Exact") *-------------------------------------------- chkCOMP_NO = LEFT(LEFT(ID(),AT(" ",ID())),15) &&ตัวอย่างเอาชื่อเครื่องมา 15 หลัก SELECT USER_LOG SET ORDER TO comp_no IF SEEK(chkCOMP_NO) REPLACE LOG_NAME WITH m.USRNAME,; last_in WITH DATETIME(),status_on WITH .T. ELSE INSERT INTO USER_LOG(comp_no,LOG_NAME,last_in,last_out,status_on) ; VALUE(chkCOMP_NO,m.USRNAME,DATETIME(),CTOT(" "),.T.) ENDIF *-------------------------------------------- SET EXACT &oldSetEXACT *--------------------------------------------
ปล2 m.usrname ก็คือชื่อID ที่กรอกตรง login form ปล3 ตอนออกจากระบบ ก็แค่ตรวจว่าเจอหรือเปล่า IF SEEK(chkCOMP_NO) ถ้าเจอ ก็จัดการ บันทึกเวลาออก และ replace สถานะเป็น .F. ซะ
ลองเอาไปเล่นดูครับ ขำๆ
------------- "การดีบั๊ก จะใช้สมองเป็นสองเท่าของ การโค้ดดิ้ง
ถ้าเรา โค้ดดิ้ง ด้วยปัญญาทั้งหมดที่มี... เราจะโง่เกินกว่าที่จะดีบั๊กมัน"
Brian W. Kernighan
|