您的位置:首页 > 其它

会议记录管理系统(5) -浏览会议记录模块设计

2017-12-20 21:39 429 查看
1.浏览会议记录模块概述

浏览会议记录模块可以说是整个管理系统的核心。其主要功能是通过查询数据库的相关数据,将会议的各种信息输出到浏览器页面中,用户不但可以浏览特定会议的详情,同时也可以对会议内容进行打印预览或打印操作。同时,用户也可将所有会议的信息以Excel报表形式导出。

2.WebBrowser打印技术

webBrowser打印,是IE浏览器内置的浏览器空间,其优点在于无须用户下载目标文件,且可以支持客户端独立完成目标文件的打印,这样可以减轻服务器负担;缺点是源文档的分析操作比较复杂,并且要对源文档中要打印的内容进行约束。



在本项目中封装两个JavaScript脚本函数,通过不同的函数加载不同的WebBrowser控件,完成报表的打印预览和打印操作。关键代码如下:

<script>
function printview(){

document.all.WebBrowser1.ExecWB(7,1);       // 执行打印预览
window.close();
}
function print(){
document.all.WebBrowser1.ExecWB(6,1);       // 执行打印操作
window.close();
}
</script>
xmlhttp.send(null);
<object ID='WebBrowser1' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A968-00C04FD705A2'></object>
<?php
$action = $_POST["print"];
if($action == "打印预览"){            // 判断前台按钮操作
?>
<body topmargin="0" leftmargin="0" bottommargin="0" onLoad="printview();">
<?php
}else if($action == "打印"){          // 判断前台按钮操作
?>
<body topmargin="0" leftmargin="0" bottommargin="0" onLoad="print();">
<?php
}
?>


3.Excel报表生成技术分析

Excel报表是通过header()函数生成下载文件的,header函数属于HTTP函数,它的作用是发送一个原始的HTTP标头。header函数的语法如下:

void header(string string[,bool replace[,int http_response_code]])


- string:发送标头

- replace:如果一次发送多个标头,指明相似的标头是替换还是添加

- http_response_code:强制HTTP响应为指定值

生成Excel报表的关键代码如下:

<?php
header("Content-type:application/vnd.ms=excel");  // 设置HTTP头
header("Content-Disposition:filename=会议报表.xls");  //定义下载文件名称
session_start();
?>


4.文本文件中数据的获取技术分析

获取文件内容,在添加会议记录过程中会添加一个文本文档。在浏览会议记录时,会通过数据库相应的路径获取相应文件的内容并显示在浏览页面上。关键代码如下:

$myfile = fopen("$address","r");  //将文件以只读方式打开
$myline = fgets($myfile);         // 按行获取文件内容
echo $myline;                     // 输出获取的文件内容
fclose($myfile);                  // 关闭文件




5.浏览会议记录实现过程

会议信息显示页面循环输出会议主要信息,首先查看tb_meeting_info数据表中是否有记录,如果数据库中没有记录,则输出“当前没有任何记录”;如果数据库中有数据,则分页输出数据。会议信息显示页viewmeeting.php关键代码如下:

<?php
header("Content-Type:text/html;charset=utf-8");
date_default_timezone_set('PRC');           // 设置为北京时间

include_once('conn/conn.php');

$sqlview = "select * from tb_meeting_info";
$num = 2;                   // 每页显示2条
if(isset($_GET['n_page'])){ // 判断当前页码
$c_page = $_GET['n_page'];  // 将$n_page赋给变量$c_page
}else{
$c_page = 1;            // 初始化变量$c_page
}

// php分页开始
$count = mysql_query("select count(*) from tb_meeting_info");       // 记录总数
// 从结果集中取得一行作为关联数组
$rs = mysql_fetch_array($count);
$totalNumber = $rs[0];              // 总记录数量
$totalPage = ceil($totalNumber/$num);       // 计算出总页数(当前2页)

$startCount = ($c_page - 1) * $num;       // 根据此方法计算出开始的记录

// 根据前面的计算出开始的记录和记录数
// limit用法,从$sartCount+1开始,取$num行
$result = mysql_query("select * from tb_meeting_info limit $startCount,$num");

echo "<table border='1'>";
echo "<tr>";
echo "<th>会议编号</th>";
echo "<th>会议名称</th>";
echo "<th>会议出席者</th>";
echo "<th>会议摘要</th>";
echo "</tr>";

while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>$row[meeting_id]</td>";
echo "<td>$row[meeting_name]</td>";
echo "<td>$row[meeting_present]</td>";
echo "<td>$row[meeting_abstruct]</td>";
echo "</tr>";
}
echo "</table>";

if($c_page != 1){                   // 如果不是第一页

?>
<a href="viewmeeting.php?n_page=<?php echo $c_page - 1;?>">上一页</a>  <!-- 显示上一页 -->
<?php
}
for($i = 1;$i <= $totalPage;$i++){          //循环显示页码
?>
<a href="viewmeeting.php?n_page=<?php echo $i;?>"><?php echo $i;?></a>
<?php
}
if($c_page < $totalPage){           // 当前页数小于总页数,显示下一页链接
?>
<a href="viewmeeting.php?n_page=<?php echo $c_page + 1;?>">下一页</a>
<?php
}
?>


6.会议记录详细信息浏览实现过程

对于会议记录管理系统,不仅可以浏览会议的主要信息,还可以查看会议的详细内容,阅读特定的会议内容。

创建showinfo.php文件,根据GET方法传递ID值,查询数据库中的数据,返回查询结果。并且通过文件系统函数读取文本文件中存储的会议记录内容。关键代码如下:

<?php
header("Content-Type:text/html;charset=utf-8");
date_default_timezone_set('PRC');           // 设置为北京时间

include_once "conn/conn.php";

$id = $_GET["id"];             // 获取传递的ID值

//  数据库查询语句
$sqlstriii = "select * from tb_meeting_info where meeting_id = $id";
$s_rst = mysql_query($sqlstriii);

$retult = mysql_fetch_array($s_rst,MYSQL_ASSOC);

// print_r($retult);
?>

<div class="infoshow">
<table width="560" border="0" cellspacing="0" cellpadding="0">
<form action="printwindow.php" method="post">
<tr>
<td colspan="4" align="center">
<h3>会议记录详情</h3>
</td>
</tr>
<tr>
<td width="134"><div align="right">会议编号:</div></td>
<td width="340"><?php echo $retult['meeting_id']?></td>
<td width="135"><div align="right">会议名称:</div></td>
<td width="341"><?php echo $retult['meeting_name']?></td>
</tr>
<!-- 省略部分代码 -->
<tr>
<td height="200" colspan="4">
<div>
<?php
$address = $retult['meeting_address'];      // 文件路径及文件名称
$myfile = fopen("$address","r");            // 将文件以只读形式打开
$myline = fgets($myfile);                   // 按行读取文件内容
echo $myline;                               // 输出文件内容
fclose($myfile);                            // 关闭文件
?>
</div>
</td>
</tr>
<tr>
<td colspan="4" align="center">
<input type="hidden" name="id" value="<?php echo $id;?>" />
</td>
</tr>
<div class="printbutton">
<input type="submit" value="打印预览" name="print" />
  
<input type="submit" value="打印" name="print" />
</div>
</form>
</table>
</div>


printwindow.php关键代码如下:

<script>
function printview(){

document.all.WebBrowser1.ExecWB(7,1);       // 执行打印预览
window.close();
}
function print(){
document.all.WebBrowser1.ExecWB(6,1);       // 执行打印操作
window.close();
}
</script>
<object ID='WebBrowser1' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A968-00C04FD705A2'></object>
<?php
$action = $_POST["print"];
if($action == "打印预览"){            // 判断前台按钮操作
?>
<body topmargin="0" leftmargin="0" bottommargin="0" onLoad="printview();">
<?php
}else if($action == "打印"){          // 判断前台按钮操作
?>
<body topmargin="0" leftmargin="0" bottommargin="0" onLoad="print();">
<?php
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: