2013-11-22 104 views
0

我需要校外教授查看学生的出勤历史。 我正在写的应用程序是与VBScript的经典ASP。asp多个详细记录

该数据库有一个出席表,但每个学生都会为每个课程会议的日期以及出席状态是迟到还是缺席而获得新记录。

我的主要程序是收集指导员ID,他想要查看哪个课程,并返回一个班级名单(学生的不同名单)和每种出勤状态的总数。

我最后一步是希望能够点击某个学生的出勤状态,并显示出“n”个记录数量。

我已经看过主/细节,但所有的参考文献说,所有的数据必须在一行中。重复部分似乎不接受第二个记录集,该记录集可能是相同的数据库基表,但会根据课程的学生标识(作为URL参数传递)进行过滤。

什么是我可以做到这一点的方法?一个具有许多详细记录关系的主记录。

+0

您是否在问如何以“向下钻取”格式显示现有数据,或者您在问如何设置数据库? – Martha

+0

我要求在下钻中显示。 sql表已经建立了填充表的插入和更新特性(改变表是不可行的)。 –

回答

0

对于事务表,这个模式可能会奏效 [日期],[professorid],[studentid],[CLASSID],[P],[L],[A]

使用[P],[ L],[A]现在,迟到和缺勤 那么你需要创建相关的学生表

你需要的其余页面是一个由您的条件查询组。

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>" 
'--- 

我已经把目标=“_空白”的链接,而是使用JavaScript的一点点,就可以使细节报告拿出在弹出窗口/重叠代替。此外,如果您愿意,可以将详细信息链接放在自己的专栏中,因此用户不必单击总出席人数,而是单击加号或单词“详细信息”或箭头等。但基本思想仍然是一样的:将每行的标识信息放入链接中,然后详细报告可以从查询字符串中读取它。