我需要校外教授来查看学生的出勤历史。 我写的应用程序是经典的asp with vbscript。
数据库有一个出勤表,但每个学生都会在课程开始的每个日期获得一个新记录,以及出勤状态是迟到还是缺席。
我的主要程序收集教师ID,他想查看哪个课程并返回班级名单(学生名单)以及每种出勤状态的总数。
我的最后一步是他们希望能够点击某个学生的出勤状态并显示那些“n”个记录。
我查看过master / detail,但所有引用都说所有数据都必须在一行中。重复部分似乎不接受第二个记录集,该记录集将是相同的数据库基表,但是对于该课程的学生ID(作为URL参数传递)进行过滤。
我可以通过什么方法实现这一目标?一个主记录与许多详细的记录关系。
答案 0 :(得分:0)
对于事务表,此架构可能有效 [日期],[professorid],[studentid],[CLASSID],[P],[L],[A]
[P],[L],[A]存在,迟到和缺席 那么你需要创建相关的学生表
您需要的其余页面是根据您的条件按查询分组。
答案 1 :(得分:0)
对于深入分析,您需要两个报告:一个包含教师的所有记录,另一个包含具有该教师的特定学生的所有详细信息。如果要显示的列在两个报告之间基本相同,那么您实际上可以使用单个.asp文件执行此操作,但我假设您希望有两个文件。
首先,制作详细报告。这应该从查询字符串中获取学生ID和教师ID。据推测,还应该有一个学年或一个学期或一些这样的时间限制。
<html><head><blah blah blah>
<%
dim AY, SID, IID, SQL '-etc.
AY = Request.Querystring("AY")
SID = Request.Querystring("S")
IID = Request.Querystring("I")
'- validate the inputs and assign default values as needed
%></head><body>
<%
SQL = "SELECT StudentName, Course, DateofClass, Attendance FROM AttendanceView"
SQL = SQL & " WHERE StudentID = " & SID & " AND InstructorID = " & IID
SQL = SQL & " AND AY = " & AY '- or whatever other filters are needed
'- open a recordset and write it out, probably in a table
'- close recordset, close table
%></body></html>
然后,在主报告中,当您为学生写出行时,请将其中一列作为详细报告的链接。
'...
response.write "<td><a href='DetailReport.asp?I=" & rs("InstructorID")
response.write "&S=" & rs("StudentID") & "&AY=" & rs("AY") & "'"
response.write " title='Click to see details' target='_blank'>"
response.write rs("TotalAttendance") & "</a></td>"
'---
我在链接上放了一个target =“_ blank”,但是只需要一点JavaScript,就可以在弹出窗口/叠加层中显示详细报告。此外,如果您愿意,可以将详细信息链接放在其自己的列中,因此用户只需单击加号或单词“详细信息”或箭头等,而不是单击总出勤次数。但基本思路仍然相同:将每行的识别信息放入链接中,然后详细报告可以从查询字符串中读取它。