แน่นอนว่ามันเป็นอาการปวดหัวในการวนรอบระดับที่ไม่มีที่สิ้นสุดของการจำแนกประเภท
ตัวอย่างเช่นเราจำเป็นต้องวนรอบเลือกหรือตารางและเขียนการตัดสินจำนวนมาก
มีวิธีที่ดีกว่านี้ไหม
วิธีการของฉันคือการสร้างอาร์เรย์คุณสามารถเรียกมันซ้ำ ๆ และเพียงแค่วนรอบอาร์เรย์โดยตรง
เพื่อความสะดวกฉันเขียนลงในชั้นเรียน
ชั้นเรียน
ส่งคืนอาร์เรย์ของทุกหมวดหมู่และทุกประเภทตามลำดับ
มี 4 คุณลักษณะ:
คัดลอกรหัสดังนี้: setaa = newClassList
aa.id = "id" // ชื่อหมายเลข
aa.className = "classname" // ชื่อการจำแนกประเภท
aa.pid = "pid" // ชื่อรหัสหลัก
aa.db_name = "คลาส" // ชื่อตาราง
list = aa.arrylist ()
คัดลอกรหัสดังนี้: <%
ผู้เข้าร่วมชั้นเรียน
privatec_id
privatec_db_name
privatec_pid
privatec_classname
PublicPropertyletId (STR)
c_id = str
ปลายทาง
PublicPropertyletDb_name (STR)
c_db_name = str
ปลายทาง
PublicPropertyletPid (STR)
c_pid = str
ปลายทาง
PublicPropertyletClassName (STR)
c_className = str
ปลายทาง
หรี่แสง ()
Dimi, n
privateSubclass_initialize () 'เริ่มต้นตัวแปร
i = 0
n = 0
enddub
PublicFunctionClassarry (thisid, pid) 'รับ ID ที่ต่ำกว่า
ifpid> 0 แล้ว
sql = "select*จาก" & c_db_name & "Where" & c_pid & "=" & thisid
อื่น
sql = "select*จาก" & c_db_name & "Where" & c_id & "=" & thisid
endif
setrs_c = conn.execute (SQL)
n = n+1
dowhilenotrs_c.eof
รายการ (0, i) = rs_c (c_id) 'โหลดลงในอาร์เรย์
รายการ (1, i) = rs_c (c_classname)
รายการ (2, i) = n
'n = n+1
i = i+1
thisid = classarry (rs_c (c_id), 1) 'นี่คือการโทรแบบเรียกซ้ำจนกระทั่ง subclass สุดท้าย
rs_c.movenext
วง
n = n-1
rs_c.close
endfunction
PublicFunctionArrylist () 'วนรอบคลาสรูททั้งหมด
setrs_c = conn.execute ("selectcount (" & c_id & ") จาก" & c_db_name)
ความยาว = rs_c (0)
rs_c.close
Redimlist (2, Lenght) 'ตั้งค่าอาร์เรย์
setRs1 = conn.execute ("เลือก" & c_id & "จาก" & c_db_name & "โดยที่" & c_pid & "= 0")
dowhilenotrs1.eof
Callclassarry (rs1 (c_id), 0)
'n = 1
Rs1.Movenext
วง
rs1.close
arryllist = รายการ
endfunction
endclass
-
ตัวอย่างการทดสอบ:
ชั้นเรียนตาราง
ทุ่งนา
ID: การกำหนดหมายเลขอัตโนมัติ
ClassName: ชื่อ
PID: รหัสผู้ปกครอง