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

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" />
    &nbsp;&nbsp;
    <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
    }
?>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值