โปรแกรมรายงานผลการเรียน เบื้องต้น | ||
บทเรียนทั้งหมดนี้ ได้ทำเป็น กรณีศึกษาไว้ที่ http://www.thaiall.com/asp/sgrade.htm เพื่อให้เรียกใช้ได้ง่าย ส่วนนี้ผมทำเป็น ทั้งบทเรียน ให้ท่านนำไปเขียนใช้เอง และส่วนที่ ให้บริการครู อาจารย์ ประกาศผลการเรียน ในวิชาของตน หรือจะเรียกบริการประกาศผลการเรียน ด้วยบริการ redirection ที่ http://go.to/grade ก็จะจำได้ง่ายกว่า
|
ข้อควรทราบ |
|
อ่านข้อมูลมาแสดงอย่างง่าย |
Source code ของ sgrdlstt.asp
http://thaiall.thailandhosting.net/asp/sgrdlstt.asp |
<html><title>Testing of grade listing</title> <body><font face="microsoft sans serif"> Testing of grade listing<hr> <table width=100% bgcolor=#ffffdd> <% Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) Set rsUser = objConn.Execute("SELECT tid,sid,sname,grade FROM grade") do while not rsUser.eof %> <tr> <td><%=rsUser("tid")%></td> <td><%=rsUser("sid")%></td> <td><%=rsUser("sname")%></td> <td><%=rsUser("grade")%></td> </tr> <% rsUser.movenext loop rsUser.close set rsUser=nothing %> </table> </body></html>Click To View Source Code |
แสดงผลจากรหัสการสอน ซึ่งรับค่าได้ทั้งผ่าน form และ url |
ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrdlsts.asp method=post> <b>รหัสการสอน</b> : <input type="text" name=tid size=5 value=1><br> <input type=submit value="Show grade report"><input type=reset value=Reset> </form> |
Source code ของ sgrdlsts.asp |
<html><title>บริการประกาศผลการเรียน ทาง Internet</title> <body bgcolor=#ffffdd><font face="microsoft sans serif"> <font size=4><center>บริการประกาศผลการเรียนทาง Internet</center></font> <hr> <% xtid = request.form("tid") + request.querystring("tid") response.write("รหัสการสอน : <b><font color=#ff0000 size="2">"& xtid & "</font></b>") Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) Set rsUser = objConn.Execute("SELECT tid,school,subj,tyear,tsem,tname,typeshow FROM teacher where teacher.tid=" & xtid) response.write("( " & rsUser("tyear") &" / ") response.write(rsUser("tsem") &" )<br>") response.write("<center><font color=#0000ff><b>" & rsUser("school")&"</b></font><br>") response.write("<b><font color=#008000 size="2">" & rsUser("subj") &"</font></b></center>") tshow = rsUser("typeshow") tname = rsUser("tname") rsUser.close set rsUser = objConn.execute("select tid,sid,sname,scorekeep,scoremid,scoreproject,scorefinal,grade from grade where grade.tid=" & xtid) response.write("<table width=100% >") response.write("<tr bgcolor=#00dddd><td>ลำดับ</td><td>รหัส</td><td>ชื่อ - สกุล</td>") if tshow= "l" then response.write("<td>คะแนนเก็บ</td>") response.write("<td>คะแนนสอบกลางภาค</td>") response.write("<td>คะแนนรายงาน</td>") response.write("<td>คะแนนสอบปลายภาค</td>") response.write("<td>คะแนนรวม</td>") end if response.write("<td>เกรด</td></tr>") i = 0 do while not rsUser.eof i = i + 1 if (i mod 2) = 0 then response.write("<tr bgcolor=#cccccc>") else response.write("<tr bgcolor=#fffffd>") end if response.write("<td>" & i &"</td>") response.write("<td>" & rsUser("sid")&"</td>") response.write("<td>" & rsUser("sname")&"</td>") if tshow= "l" then response.write("<td>" & rsUser("scorekeep")&"</td>") response.write("<td>" & rsUser("scoremid")&"</td>") response.write("<td>" & rsUser("scoreproject")&"</td>") response.write("<td>" & rsUser("scorefinal")&"</td>") ss = rsUser("scorekeep")+rsUser("scoremid")+rsUser("scoreproject")+rsUser("scorefinal") response.write("<td><b>" & ss &"</b></td>") end if response.write("<td>" & rsUser("grade")&"</td></tr>") rsUser.movenext loop response.write("</table>") response.write("ชื่อผู้สอน : <b>" & tname &"</b> [ ") if tshow = "s" then response.write("s : รายงานแบบสั้น]<hr>") if tshow = "l" then response.write("l : รายงานแบบสั้น พร้อมคะแนนสอน]<hr>") rsUser.close set rsUser=nothing %> </body> </html>Click To View Source Code |
เพิ่มวิชา คะแนน และเกรด (ส่วนนี้ใช้การส่งค่า 2 ช่วงคือ sgrdadd.asp และ sgrdaddx.asp) |
ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrdadd.asp method=post> ชื่อสถาบัน : <input type="text" name=school size=40 value="โรงเรียนบุญวาทย์วิทยาลัย"><br> ปีการศึกษา : <input type="text" name=tyear size=6 value="2543"> ภาคการศึกษา : <input type="text" name=tsem size="2" value="1"><br> รหัสวิชา หรือชื่อวิชา : <input type="text" name=subj size=30 value="คอมพิวเตอร์เบื้องต้น"><br> ชื่อผู้สอน : <input type="text" name=tname size=40 value="อาจารย์เกิน กำดี"><br> รหัสผ่าน : <input type=password name=passwd size=8> รหัสผ่านอีกครั้ง : <input type=password name=passwdc size=8><br> จำนวนนักเรียน : <input type="text" name=amount size=3 value=3> เลขระบุช่องว่าง สำหรับข้อมูล<br> <b>โปรดเลือกแบบ</b> : ของการจัดเก็บข้อมูล และการแสดงผลเกรด<br> <input type=radio name=typeshow value="s" checked>เก็บ เกรดที่ต้องการแสดง<br> <input type=radio name=typeshow value="l">เก็บ คะแนน และเกรดอะไร<br> <input type=submit value="Add new subject"><input type=reset value=Reset><br> </form> |
โปรแกรมสำหรับเพิ่มระเบียนในตาราง teacher Source code ของ sgrdadd.asp |
<body><font face="microsoft sans serif"> <% if len(request.form("passwd")) > 0 and (request.form("passwd") = request.form("passwdc")) then Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) sql = "INSERT into teacher (school,tyear,tsem,subj,tname,typeshow,passwd) SELECT " sql = sql & " '" & request.form("school") & "' as school, " sql = sql & " " & request.form("tyear") & " as tyear, " sql = sql & " " & request.form("tsem") & " as tsem, " sql = sql & " '" & request.form("subj") & "' as subj, " sql = sql & " '" & request.form("tname") & "' as tname, " sql = sql & " '" & request.form("typeshow") & "' as typeshow, " sql = sql & " '" & request.form("passwd") & "' as passwd; " Set rsUser = objConn.Execute(sql) Set rsUser = objConn.Execute("SELECT tid from teacher order by tid desc;") response.write("รหัสการสอน ของท่านคือ <b>" & rsUser("tid") & "</b><hr>") response.write("<br>Step 1 of 2 : Put your information to TEACHER is OK <hr>") response.write("This is step 2 of 2 :") lasttid = rsUser("tid") rsUser.close Set rsUser = nothing response.write("<form action=http://thaiall.thailandhosting.net/asp/sgrdaddx.asp method=post>") response.write("<input type=hidden name=tid value=" & lasttid & ">") response.write("<input type=hidden name=amount value=" & request.form("amount") & ">") response.write("<input type=hidden name=typeshow value=" & request.form("typeshow") & ">") for i = 1 to cint(request.form("amount")) response.write("รหัสนักเรียน<input type="text" size=10 name=sid" & i &" > ") response.write("ชื่อ<input type="text" size="2"0 name=sname" & i &" > ") if request.form("typeshow") = "s" then response.write("เกรด<input type="text" size=3 name=grade" & i &" ><br>") end if if request.form("typeshow") = "l" then response.write("เก็บ <input type="text" size=3 name=scorekeep" & i &" >") response.write("กลาง<input type="text" size=3 name=scoremid" & i &" >") response.write("รายงาน <input type="text" size=3 name=scoreproject" & i &" >") response.write("ปลาย<input type="text" size=3 name=scorefinal" & i &" > ") response.write("เกรด<input type="text" size=3 name=grade" & i &" ><br>") end if response.write("<br>") next response.write("<input type=submit value='Save all grade in file'>") response.write("<input type=reset value=Reset>") response.write("</form>") else response.write("ข้อมูลมีปัญหา โปรแกรมกลับไปตรวจสอบให้เรียบร้อย<br>หรือ ท่านอาจไม่ได้ระบุรหัสผ่าน") response.write("<br>Your data have problem. Please back for checking.") end if %> <hr> </body> |
โปรแกรมสำหรับเพิ่มระเบียนในตาราง grade Source code ของ sgrdaddx.asp |
<body><font face="microsoft sans serif"> <% Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) for i = 1 to cint(request.form("amount")) ' type s if request.form("typeshow") = "s" then if len(request.form("tid")) > 0 and len(request.form("sid"&i)) > 0 and len(request.form("sname"&i)) > 0 then sql = "INSERT into grade (tid,sid,sname,grade) SELECT " sql = sql & " " & request.form("tid") & " as tid, " sql = sql & " " & request.form("sid"&i) & " as sid, " sql = sql & " '" & request.form("sname"&i) & "' as sname, " sql = sql & " '" & request.form("grade"&i) & "' as grade; " Set rsUser = objConn.Execute(sql) end if end if ' type l if request.form("typeshow") = "l" then if len(request.form("tid")) > 0 and len(request.form("sid"&i)) > 0 and len(request.form("sname"&i)) > 0 then sql = "INSERT into grade (tid,sid,sname,scorekeep,scoremid,scoreproject,scorefinal,grade) SELECT " sql = sql & " " & request.form("tid") & " as tid, " sql = sql & " " & request.form("sid"&i) & " as sid, " sql = sql & " '" & request.form("sname"&i) & "' as sname, " sql = sql & " " & request.form("scorekeep"&i) & " as scorekeep, " sql = sql & " " & request.form("scoremid"&i) & " as scoremid, " sql = sql & " " & request.form("scoreproject"&i) & " as scoreproject, " sql = sql & " " & request.form("scorefinal"&i) & " as scorefinal, " sql = sql & " '" & request.form("grade"&i) & "' as grade; " Set rsUser = objConn.Execute(sql) end if end if next Set rsUser = nothing %> Step 2 of 2 : Your student score is OK <hr> </body> Click To View Source Code ของ sgrdadd.asp Click To View Source Code ของ sgrdaddx.asp |
แสดงผลสรุปว่ามี รหัสการสอนอะไรบ้าง และจำนวน ซึ่งใช้วิธีการอ่านแฟ้ม query จาก group by ตาราง 2 ตาราง |
Source code ของ sgrdlsta.asp
http://thaiall.thailandhosting.net/asp/sgrdlsta.asp |
<html><title>สรุป จำนวนนักเรียน เรียงตามรหัสการสอน</title> <body bgcolor=#000000><font face="microsoft sans serif"> <font size=4 color=#ff0000><center>สรุป จำนวนนักเรียน เรียงตามรหัสการสอน</center></font> <hr> <table width=100% bgcolor=#ffffdd> <tr><td>ลำดับ</td><td>รหัสการสอน</td><td>ชื่อสถาบัน</td><td>ชื่อผู้สอน</td><td>ชื่อวิชา</td><td>จำนวน</td><td>แสดงผล</td> <% Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) Set rsUser = objConn.Execute("SELECT tid,school,tname,subj,cnts FROM cntstd order by tid desc;" ) i = 0 do while not rsUser.eof i = i + 1 if (i mod 2) = 0 then response.write("<tr bgcolor=#cccccc>") else response.write("<tr bgcolor=#fffffd>") end if %> <td><%=i%></td> <td><%=rsUser("tid")%></td> <td><%=rsUser("school")%></td> <td><%=rsUser("tname")%></td> <td><%=rsUser("subj")%></td> <td><%=rsUser("cnts")%></td> <td><a href=sgrdlsts.asp?tid=<%=rsUser("tid")%>>Click here</a></td> </tr> <% rsUser.movenext loop rsUser.close set rsUser=nothing %> </table> <font color=#ffffdd> <b>หมายเหตุ</b> :<br> ถ้าวิชาใด มีนักเรียน ไม่เกิน 3 คน หรือกรอกข้อมูลไม่สมบูรณ์ <b>ทีมงานขอใช้สิทธิ์ลบข้อมูล</b> ซึ่งไม่ก่อประโยชน์นั้นทั้งชุด </body> </html>Click To View Source Code |
ลบข้อมูลโดยใช้รหัสการสอน และรหัสผ่าน โดยลบจากตาราง teacher และ grade ด้วย click เดียว |
ฟอร์มส่งค่า | Source code เขียน ฟอร์มส่งค่า |
<form action=http://thaiall.thailandhosting.net/asp/sgrddel.asp method=post> รหัสการสอน : <input type="text" name=tid size=5 value=1><br> รหัสผ่าน : <input type=password name=passwd size=10><br> <input type=submit value="Delete all of your records"><input type=reset value=Reset> </form> |
Source code ของ sgrddel.asp |
<body> <% Set objConn = CreateObject("ADODB.Connection") objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("grade.mdb")) Set rsUser = objConn.Execute("SELECT tid,passwd FROM teacher where teacher.tid=" & request.form("tid")) if not rsUser.eof then if request.form("passwd") = rsUser("passwd") then response.write("Delete ID :" & request.form("tid")) Set rsUser = objConn.Execute("DELETE tid,school FROM teacher WHERE teacher.tid= " & request.form("tid")) Set rsUser = objConn.Execute("DELETE tid FROM grade WHERE grade.tid= " & request.form("tid")) else response.write("Your password is not correct.") end if else response.write("Your tid is not found") end if Set rsUser = nothing %> <hr> </body>Click To View Source Code |
แบบฝึกหัด |
|