⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 我做的第一个学生管理系统
💻
字号:
<%
dim Pri
Pri=CheckUrl("成绩报表管理")
%>
<!--#include virtual="/school/public/CheckUrl.asp"-->
<%
vServer="http://" & Request.ServerVariables("Server_name")
%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>打印班级毕业成绩表 write by longZhiping on 1999.8.26</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body background="../../images/di2001.jpg">

<p><font color="#0000a0" size="6"><strong>打印班级毕业成绩表</strong>
<object id="rds1" classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" width="0" height="0">
</object>

<object id="rds3" classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" width="0" height="0"></object>
</font><br><img src="../../images/Slidbar.gif" width="760">

<div align="center"><center>
<table border="1" width="760" height="325">  
    <tr>
    <td width="610" height="325" valign="top"><p align="center">
            <OBJECT classid=clsid:00028CD1-0000-0000-0000-000000000046 
             CODEBASE="http://<%=Request.ServerVariables("SERVER_NAME")%>/school/public/tdbg6.ocx"
            dataSrc=#rds1 height=350 id=grid1 style="LEFT: 0px; TOP: 0px" 
            width=600 VIEWASTEXT></OBJECT></p>
    </td>
  
       <td width="136" height="325" valign="top">
            


     </P>
     <hr color="#0000ff">
     <P align="center"><input type="button" value="开始打印" onclick="beginPrint()" name="start_input" style="COLOR: rgb(0,0,255); FONT-FAMILY: 宋体; FONT-SIZE: 14px"  > 
	 <P align="center"><input type="button" value="全部打印" onclick="Allprint()" name="all_print" style="COLOR: rgb(0,0,255); FONT-FAMILY: 宋体; FONT-SIZE: 14px"  > 
	 <P align="center"><input type="button" value="全部取消" onclick="AllNoprint()" name="all_no_print" style="COLOR: rgb(0,0,255); FONT-FAMILY: 宋体; FONT-SIZE: 14px"  > 
     <P align="center"><input type="button" value="退出返回" onclick="returning()" name="exiting" style="COLOR: rgb(0,0,255); FONT-FAMILY: 宋体; FONT-SIZE: 14px"  > 
 
    </P></td></tr>

</table>
</center></div>
<script language="Vbscript">
	dim courseNoArray,courseArray,yearnoArray,termnoArray,xhArray,xmArray,courseSelectArray
	dim courseCount,termCount,XHCount,courseSelectCount
	dim course_sql
	dim total_score
	dim print_lineno
	dim havedCourseArray,havedCourseCount '所有开设过的课程数组和课程数目
	
	print_lineno=0
		
	RDS1.Server = "http://<%=REQUEST.SERVERVARIABLES("SERVER_NAME")%>"
	RDS1.Connect="database=school;uid=sa;pwd=;dsn=school"

	rds3.server = "http://<%=REQUEST.SERVERVARIABLES("SERVER_NAME")%>"
	rds3.connect ="database=school;uid=sa;pwd=;dsn=school"

    rds1.SQL = "Execute createTempclass "
    rds1.ExecuteOptions = 1
    rds1.Refresh
	
	Set xlApp = CreateObject("Excel.Application") 
	xlApp.Visible = false
 
    Set xlBook =xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1) 
    
    '下面从数据库中取得课程名称,课程代码
	rds3.sql = "select * from course"
	rds3.ExecuteOptions = 1
	rds3.refresh
	courseArray = rds3.recordset.Getrows(rds3.recordset.recordcount,0,1)
	rds3.Recordset.movefirst
	courseNoArray= rds3.recordset.Getrows(rds3.recordset.recordcount,0,0) 
	courseCount = rds3.Recordset.recordcount 

 
sub beginPrint()

	'根据用户的选择,一班接一班依次打印
	rds1.recordset.movefirst
	allrecords=rds1.Recordset.recordcount
	for i =1 to allrecords
			if rds1.Recordset.fields(2).value="打  印" then
				call ToClassprint(rds1.Recordset.fields(0).value) 
			end if 
			rds1.Recordset.movenext
	next
	rds1.Recordset.movefirst
end sub

sub Allprint()
	rds1.recordset.movefirst
	allrecords=rds1.Recordset.recordcount
	for i =1 to allrecords
		rds1.Recordset.fields(2).value="打  印"
		rds1.Recordset.movenext
	next 
	rds1.recordset.movefirst
end sub

sub AllNoprint()
	rds1.recordset.movefirst
	allrecords=rds1.Recordset.recordcount
	for i =1 to allrecords
		rds1.Recordset.fields(2).value="不打印"
		rds1.Recordset.movenext
	next 
	rds1.recordset.movefirst
end sub
'===================================================
sub grid1_BeforeColEdit(colindex,keyascii,cancel)
	set colsel = grid1.columns.item(colindex)
	select case colsel.caption
	case "打印状态"
		'colsel.button = true
		if grid1.columns.item(colindex).value = "打  印" then 
			 grid1.columns.item(colindex).value = "不打印"
		else
			 grid1.columns.item(colindex).value = "打  印"
		end if 
		cancel = true
	case else 
		cancel = true
	end select

end sub

'===================================================
sub ToClassPrint(classno) '打印一班的毕业成绩表
'===================================================	
	call GetHavedCourseno(classno)
	if HavedCourseCount <=0 then
		msgbox "此班到现在为止,还没有开设过课程!"
		exit sub
	end if
	
	call getYearTerm(classno)
	if termCount <=0 then
		msgbox "此班到现在为止,还没有上过一个学期的课程!"
		exit sub
	end if
		
	call getXh(classno)
	if XHCount <=0 then
		msgbox "此班没有学生!"
		exit sub
	end if
	
	xlApp.Visible = true
	for xhloop = 0 to xhCount -1 
		   	call print_head(classno,xhloop)
		   	call print_kcm()
			call print_body(classno,xhloop)
	next 		   		
end sub

'=================================================
sub print_head(classno,xhno)  '打印表头
'=================================================
	print_lineno = print_lineno + 3
   '打印表头	  
   xlSheet.Cells(print_lineno, termCount/2) = "学生毕业成绩表"
   xlSheet.Cells(print_lineno+1,termCount/2) = "————————"
   print_lineno = print_lineno +2
   
   xlSheet.Cells(print_lineno, 1) = "  班号:"
   xlSheet.Cells(print_lineno, 2) = trim(classno)
   xlSheet.Cells(print_lineno, 3) = "  学号:"
   xlSheet.Cells(print_lineno, 4) = trim(xhArray(0,xhno))
   xlSheet.Cells(print_lineno, 5) = "  姓名:"
   xlSheet.Cells(print_lineno, 6) = trim(xmArray(0,xhno))
   print_lineno = print_lineno +1
   xlSheet.Cells(print_lineno, 1) = "课程名"
   for i=0 to termCount -1
	xlSheet.Cells(print_lineno, 2+i) = yearnoArray(0,i)+termnoArray(0,i)
   next
   print_lineno = print_lineno +1
end sub

'==================================================
sub print_kcm()  '在最左列打印课程名
'==================================================
	for kcloop = 0 to HavedCourseCount - 1
		xlSheet.Cells(print_lineno+kcloop, 1) = GetCourseName(kcloop) '打印课程名	
	next
end sub

'===================================================
sub print_body(classno,xhno)  '打印表体,即成绩内容
'===================================================
	dim tmpvalue,linenum
	
	for termloop =0 to termCount - 1  '一门课程找出所有学期的成绩
		  call get_course(classno,termloop)
		  if courseSelectCount <= 0 then
			'msgbox "本学期没有开设课程!"
		  end if
		  rds3.sql = " select "
		  for cno = 0 to courseSelectCount - 1
			rds3.SQL = rds3.SQL + trim(courseSelectArray(0,cno)) +","
		  next
		    rds3.SQL = rds3.SQL +"'LZP' from score where"&_
					   " 学号='"+xhArray(0,xhno)+"' and 学年='"+yearnoArray(0,termloop)+"' and "&_
					   " 学期='"+termnoArray(0,termloop)+"' and 成绩类型='总评成绩'"
		  	rds3.ExecuteOptions = 1
			rds3.Refresh 
			
			if rds3.Recordset.recordcount >0 then 				
				tmpvalue = null
				for cno = 0 to courseSelectCount - 1
					tmpvalue = rds3.Recordset.fields(cno).value
					linenum = GetPrintLine(cno)
					if isnull(tmpvalue) then
						xlSheet.Cells(print_lineno+linenum, 2+termloop) = "    "
					else
						xlSheet.Cells(print_lineno+linenum, 2+termloop) = trim(cstr(tmpvalue))
					end if
				next
			end if	
	next 
	print_lineno = print_lineno + HavedCourseCount +1

end sub


'==============根据序列号从开设课程数组中取课程名称=================
function  GetCourseName(cno)
	GetCourseName = "No Find"
	for loopcount = 0 to courseCount-1
		if courseNoArray(0,loopcount) = HavedCourseArray(0,cno) then
			GetCourseName = courseArray(0,loopcount)
			exit for
		end if
	next
	if loopcount=courseCount then
		'msgbox HavedCourseArray(0,cno)+"没有找到课程名"
		GetCourseName = HavedCourseArray(0,cno)
	end if

end function

'=================================================
sub getXH(classno)  '取一个班所有学生的学号和姓名
'=================================================
	rds3.sql = " select 学号,姓名 from student where 班号='"+classno+"'"
	rds3.ExecuteOptions = 1
	rds3.Refresh
	
	xhCount = rds3.Recordset.recordcount
	if xhCount > 0 then
		xhArray = rds3.recordset.Getrows(rds3.recordset.recordcount,0,0) 
		rds3.Recordset.Movefirst
		xmArray = rds3.recordset.Getrows(rds3.recordset.recordcount,0,1) 
	end if
end sub


'=================================================
sub getYearterm(classno) '取一个班在校的学期和学年
'=================================================
	rds3.sql = "select 学年,学期 from score where 学号 in (select 学号 from student where 班号='"+classno+"')"&_
		   " Group by 学年,学期"
	rds3.ExecuteOptions = 1
	rds3.Refresh
	termCount = rds3.Recordset.recordcount
	if termCount <=0 then
		exit sub
	end if
	yearnoArray = rds3.Recordset.Getrows(termCount,0,0)
	rds3.Recordset.Movefirst
	termnoArray = rds3.Recordset.Getrows(termCount,0,1)
end sub
'========================================================
sub GetHavedCourseno(classno) '取一个班所开设的所有课程
'========================================================
    havedCourseCount = 0	
	rds3.SQL = " select 课程号 from class_course where 班号='"+classno+"' group by 课程号"
	rds3.ExecuteOptions=1
	rds3.Refresh
						
	havedCourseCount = rds3.recordset.recordcount

	if havedCourseCount > 0 then '表明开设了多门课程
		havedCourseArray = rds3.recordset.Getrows(rds3.recordset.recordcount,0,0) 
	end if
end sub

'=======================================================
sub returning() '返回上一层程序
'=======================================================
    history.go(-1)

end sub
'==============================================================

function checkHaved(classno,kcno,termno)
	
	rds3.SQL = "select * from class_course where 班号='"+classno+"' and 课程号='"+HavedCourseArray(0,kcno)+"' and "&_
			   " 学年='"+yearnoArray(0,termno)+"' and 学期='"+termnoArray(0,termno)+"'"
			   
	
	rds3.ExecuteOptions = 1
	rds3.Refresh
	if rds3.Recordset.recordcount >0 then
		checkHaved = true
	else
		checkHaved = false
	end if
	
end function
'========按班、年级及学号取某学年某学期所开所的课程======
sub get_course(classno,termno)
'========================================================
	courseSelectCount = 0
	rds3.SQL = "select 课程号 from class_course where 班号='"+classno+"' and "&_
			   " 学年='"+yearnoArray(0,termno)+"' and 学期='"+termnoArray(0,termno)+"'"
	
	rds3.ExecuteOptions = 1
	rds3.Refresh
	courseSelectCount = rds3.Recordset.recordcount
	if courseSelectCount <=0 then
		exit sub 
	end if 
	courseSelectArray= rds3.recordset.Getrows(rds3.recordset.recordcount,0,0) 
	
end sub

'========找出某课程在所有开设的课程中的位置======
function getPrintLine(cno)
	getPrintLine = 0
	for i=0 to HavedCourseCount - 1
		if HavedCourseArray(0,i)=CourseSelectArray(0,cno) then
			getPrintLine = i
			exit for
		end if
	next 
end function

				

</script>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -