最近公司为了充分利用图书资源,方便员工查询,决定在公司内部网上建立一个图书查询系统。考虑到公司图书不多,只有1千多册,且专业书居多的特点,我决定做两个查询条件:一个是根据图书类别来查询, 用户只要选择相应的类别就可以显示出该类别的所有图书,这主要是面对对公司图书不熟悉的人;第二个是根据图书名称来查询,用户只要输入图书名,就可以快速的搜索到符合条件的所有图书。
方案已定,接下来就是用什么软件做及如何做的问题了。在这里,我选用了网页的形式,这样同事们只要打开浏览器,输入相应的地址就可以查询了。因此,我使用网页制作利器 dreamweaver 软件(下面简称dw),数据库用acess,环境为win98,pws(编者注:关于PWS的使用教程可以查阅《深入了解微软个人服务器PWS之一》《深入了解微软个人服务器PWS之二》《深入了解微软个人服务器PWS之三》《深入了解微软个人服务器PWS之四》)。下面就正式开工锣。
点击这里下载本教程的源代码
首先,建立数据库:
二、打开acess,新建一数据库db1,建立两张表 leibie 和 tushu ,表与表之间的联系字段为“类别名称”。
表leibie结构为两个字段:
(1)类别号,文本类型,字段长度为6位,必填字段,不允许输入空白字符串;
(2)类别名称,文本类型,字段长度为20位,必填字段,不允许输入空白字符串。
表tushu结构为九个字段:
(1)编号,文本类型,字段长度为6位;
(2)书名,文本类型,字段长度为60位,必填字段,不允许输入空白字符串。
(3)作者,文本类型,字段长度为50位;
(4)出版者,文本类型,字段长度为60位;
(5)版次,文本类型,字段长度为15位;
(6)单价,货币类型,允许小数位数2位,默认值为0元;
(7)类别名称,文本类型,字段长度为20位,必填字段,不允许输入空白字符串。
(8)是否借出,文本类型,字段长度为4位,必填字段,不允许输入空白字符串,默认值为 No 。
(9)备注,备注类型。
三、根据表结构输入各项数据。
其次,设置站点及连接数据库:
(1)设置站点。打开dw ,选择 site 菜单下的 new site ,弹出设置站点面板,站点名输入研究所,目录就是我们刚才建立的目录,如图1,Testing Server选项中的Server Model选择Asp VBScript,Access选择Local/Network。
(2)新建一网页,因为查询是动态页面,因此在弹出的面板中选择Dynamic page和Asp VBScript,如图2。按create按钮回到页面。
(3)连接数据库。展开右边的Application 面板,选择Databases标签,按"+"按钮,选择Data Source Name (DSN),如图3。
(4)在弹出的Data Source Name (DSN)面板上(如图4)选择define...按钮进入ODBC数据源管理器,选择系统DSN标签,点击添加按钮,选择"Driver do Microsoft Access(*.mdb)"数据驱动程序,点击完成按钮。
(5)在随后的面板上选择数据库路径(就是我们刚才建立的目录),选中db1,数据源名输入db1,如图5。
现在准备工作一切就绪,可以建立动态查询网页了。
一、建立主页。主页很简单,就是建立两个查询链接,“按图书类别查询”链接到chaxun.asp,“按图书名称查询”链接到chaxun1.asp,这两个网页就是我们下面要建立的查询网页。主页因不需要动态编程,可存为htm格式,文件保存到研究所目录下,取名为index,具体如图7。
二、建立按图书类别查询网页。
1、新建一动态网页,取名chaxun.asp。
2、建立记录集。选择右边的Application面板中的Bindings标签,按加号按钮,选择Recordset(Query),如图8,弹出Recordset对话框,里面的设置如图9,Name就取默认值 Recordset1,Connection选择我们刚刚建立的连接db1,因为显示的是图书类别,因此Table选择表leibie。
4、输入网页上静态显示的内容,如图10,其中“返回”链接到主页index.htm 。
5、点击Binding标签下方Recordset1旁边的"+"号,展开字段,用鼠标按住“类别名称”字段不放,直接拖到页面上的单元格中,松开鼠标, 这样单元格就包含了一个动态文本,页面效果如图11。
只是现在这个单元格还只能显示一行(大家可以先在浏览器里看一看是不是这样的显示效果),那么如何才能将所有的字段内容显示出来呢?
6、选中表格,再选择右边的Application面板中的Server Behaviors标签,按加号按钮,选择Repeat Region(循环区域),这样就可以控制一页显示多少记录了。在这里,因为图书类别不多,因此在对话框中选择All Records(显示所有记录),不分页显示了,具体如图12。
7、运行pws,设置好路径,用浏览器打开此网页,看看屏幕上是不是将数据库里的类别名称都显示出来了,只是现在还不能点击进去。好,下面我们就来做相应的显示图书的页面。
三、制作按类别查询显示的页面
1、新建一动态网页,取名xianshi.asp。
2、建立记录集。选择Application面板中的Bindings标签,按加号按钮,选择Recordset(Query),弹出Recordset对话框,里面的设置如图13,名字为Recordset2,数据库表选择tushu,因为网页显示的图书信息是根据前面查询条件来显示的,因此就需要设置一个限制条件来选择符合条件的图书,那么这个条件是通过什么来实现传递和接受的呢?这就需要用到URL Parameter(URL参数)了,利用这个参数可以从查询网页传递查询条件,然后在显示网页中接受这个参数来显示符合的记录。具体使用方法如下:
(2)好,URL Parameter已设置,现在再回到显示网页xianshi.asp来接受这个参数。选择Recordset(Query),弹出Recordset对话框,在Filter中设置如上图13,意思是:查询条件为表tushu中的字段“类别名称”要等于传递过来的URL Parameter参数“类别名称”,这样查询网页和显示网页就联系起来了。
(3)点击test按钮来测试。大家可以输入某一个类别名称,dw 就会显示出相应的图书记录。
(4)点击ok按钮回到页面,至此记录集建立好了。
3、输入网页中的静态内容,如图15,其中“返回”链接到查询网页chaxun.asp,因为有的类别图书比较多,因此将显示设为分页显示。
4、用上面介绍的方法,将记录集的字段分别拖到页面上相应的位置中,如图16。
5、选中表格中的第二行,点击Application面板中的Server Behaviors标签,按加号按钮,选择Repeat Region,弹出Repeat Region对话框,因为要分页显示,所以选择每次显示几条,在这里我输入的是10,意思为每页显示10条记录,大家可以根据情况自由输入,如图17。点击ok键回到页面。
6、因为是分页显示,需要翻页,那么在dw里如何实现呢?很简单,大家先选中“首页”,然后点击Application面板中的Server Behaviors标签,按加号按钮,可以看到有一个Recordset Paging选项,将鼠标滑到这选项,显示出下拉菜单,这些菜单的含义我想大家应该明白了吧,如图18。选择第一条“Move To First Record”,弹出对话框,如图19,点击ok按钮回到页面,这样“首页”的动态链接就做好了,其他的“上一页”、“下一页”、“末页”依次类推,做好与其相对应的动态链接。
7、那么用户如何知道记录已经到最后一条,而不应再往下翻了呢?在这里,我是这样解决的,如果记录已到最后一条,则“下一页”、“末页”在页面上自动隐藏,同理,记录已到第一条,则“首页”、“上一页”自动隐藏。下面是具体实现方法:
(1)大家先选中“首页”,然后点击Application面板中的Server Behaviors标签,按加号按钮,将鼠标滑到Show Region选项,显示出下拉菜单,如图20。
(2)选择“Show Region If Not First Record”,意思为如果不是第一条记录则显示,反过来就是如果是第一条记录则不显示,隐藏起来。
(3)在弹出的对话框上直接点击ok按钮回到页面,这样“首页”的自动隐藏功能就做好了。
(4)同理,做好其他几个的自动隐藏功能。“上一页”与“首页”一样,选择“Show Region If Not First Record”;“下一页”与“末页”一样,选择“Show Region If Not Last Record”。
至此,按类别查询显示的页面终于制作完成了,我们来看看具体效果。运行pws,用IE打开chaxun.asp,点击某一个类别名称,如“新药 药品”,IE就会自动显示出该类别的图书,点击“下一页”,“上一页”等等链接,看看IE会不会自动翻页,具体效果如图21、22。
四、制作根据图书名称来查询的网页
1、新建一动态网页,取名chaxun1.asp。
2、输入网页上静态显示的内容,如图23,其中“返回”链接到主页index.htm ,红色虚线表明这是个表单,表单的属性设置如图24,意思为post(传递)一个表单变量名到xianshi1.asp网页,并执行这个网页,这样查询网页和显示网页就通过变量名联系起来了;文本框取名ts,这个名字请记住,因为这就是要通过表单传递的变量名,后面的显示网页还要用到。
五、制作按图书名称显示的网页
1、新建一动态网页,取名xianshi1.asp。
2、输入网页上静态显示的内容,如图25,其中“返回”链接到查询页chaxun1.htm ,红色虚线同样表明这是个表单。
3、建立记录集。选择Application面板中的Bindings标签,按加号按钮,选择Recordset(Query),弹出Recordset对话框,里面的设置如图26,名字为Recordset1,数据库表选择tushu,Filter过滤条件设置为表tushu中的字段“书名”要contains(包含)传递过来的Form Variable(表单变量)ts,这个ts变量就是查询网页chaxun1.asp里文本框的名字。点击ok按钮回到页面。
4、将记录集的字段分别拖到页面上相应的位置中。
5、选中表格的第二行,点击Application面板中的Server Behaviors标签,按加号按钮,选择Repeat Region,弹出Repeat Region对话框,设置为全部显示。
最终页面效果如图27。
至此,按图书名称查询显示的页面终于制作完成了,我们来看看具体效果。运行pws,用IE打开chaxun1.asp,输入某个名称,如“质量管理”,IE就会自动显示出所有书名含有“质量管理”的图书,具体效果如图28、29。
网页终于全部制作完了,现在大家可以完整的运行了。将自己电脑的IP地址告诉同事,打开pws,这样同事就可以随时通过查询系统来查询图书了。
点击这里下载本教程的源代码