预约系统源码
⑴ 家政小程序源码,家政预约服务小程序开发哪家好
方派哪式一,“一键生成”的套模板小程序,价格比较低,一般几千元
优点是:功能简单,容易操作,开发时间短,能够快速上线
缺点是:功能一般无法修改,这种模板小程序是按年租用给你,并不是属于你的。
方式二,购买源码,价格中等,一般1-3万左右
优点是:永久拥有自己的小程序,无需按年缴费;可以做无数个小程序,不用再付费。
缺点是:不一定能够买到符合自己供需求的源码
方式三,定制开发,价格比较高,一般3万到10万+
优点是:永久拥有自己独立且独一无二的小程序,而且小程序是按照个性化需求定制开发的,用户体验更加好。
缺点是:成本相对比较高,基本费用在3万元到10万不等
其实价格只是一方面,找一家靠谱的开发公司也是非常重要的。一、微信小程序开发之前必须要完成和注册认证,申请小程序费用为300元,如果有已经认证过的公众号就可以免费申请。
二、小程序开发:分为两种情况
第一种自己开发,费用的话就是自己技术的工资、绩效和服务器。
第二种找第三方开发公司,这里分为两种情况:
第1种是卖模板为主的网络公司。
优点是:价格低,几千块钱到万元之间就能搞定,方便,能够快速上线;
缺点是:修改功能麻烦,这里需要避免低价陷阱,不要到最后才发现模板性的修改功能所花的钱比买模板还贵。
第2种是定制开发为主的网络公司。?
优点是:专为你的企业或者店面定制的,功能你来定,要求你来定,后期修改bug方便,改东西也很方便。
缺点是:相对价格比较高!定制版的基本费用在上万元到十几万不等!不过贵也有贵的道理吧,毕竟功能做的更全面一点。
最后总结,至于找什么样的小程序开发公司?花多少钱来开发?还是需要看贵公司准备的预算这块!推荐了解一下企维度小程序,价格适中,功能齐全。做一个商城小程序需要橘羡历多少钱?这个很难给你一个统一的标准答案,主要还是要根据小程序商城的具体需求而定。根据我们接触到的小程序商城用户需求,大致可以分为两类:商家自用小程序商城和多用户入驻小程序商城这两种类型。
(一)商家自用小程序商城类型
这种类型,一般都是线下有门店实体店,想通过线上商城小程序平台将商品卖给消费者,无缝对接线上线下渠道。
(二)多用户入驻小程序商城类型
这种多用户入驻小程序,不太建议新手做,为什么呢?因为商家之所以会入驻您的平台,其本质是为了您能够帮助她卖点产品,对于新手或普通商家来说的话,做这样的平台需要投入大量成本做引流,可能引流成本远远高于您收取商家的入驻扣点费用。当然,如果你有更好的运营模式,你可以尝试一下。
这种模式开发的费用要比第一种模式费用要高些,一般这种开发费用几万到几十万不等,具体的报价还是根据您的功能需求而定。
以上就是对小程序商城价格多少钱具体分析,希望以上内容对大家有所帮助!商城小程序具体需要多少钱,得根据你的需求来定,比如你要实现哪些功能?需要多少个页面?模板开发还是定制开发?
所以,方便把你的需求详细的说一下吗,这样我才能帮你估算一下价格,或者直接帮你做出来。为APP和公众号的有效补充,小程序以更流畅的体验与更多元的曝光,在商业服务、电商、餐饮等领域有明显的流量红利。然而,普通小程序并不能满足营销的需求,线上线下深度融合仍是营销数字化升级的方向。
至于小程序商城需要多少钱,主要是根据你的需求去决定的:
你是什么行业的?
你需要什么哪些功能?
你用小程序商城来做什么?
你需要他偏展示还是偏销售?
这个小程序商城在你公司发展的战略布局重要吗?
这些问题下来,你大概就知道这个小程序商城在你的公司发展当中占据什么地位了,是仅仅多一个销售宣传渠道,还是准备在微信几亿用户当中分一杯羹。小程序商城高则上万,低则几千。
以上两种方法对于普通的商家或多或少有些不足的地方,成本和后期维护还有开发周期使得普通商家很难圆搜使用这种方法;对于商家来说一个拿来就能用的小程序商城好像要更好一些。这样,租用已经成熟的系统也是一种方法。市面上的微商城,小程序商城系统几千到几万一年不等。
不同的系统实际下来价格和功能都会有所不同,可以选择当下最适合自己的一种。
⑵ 适合医疗行业的微信公众号预约挂号系统源码求介绍好用些的
觉得想做生活服务的话不如去微信城市服务里面申请,只要当地还没有的版块都可以申请,微信的客户群肯定是要比其他的多的,而且微信城市服务就是功能都在一起 这样给别人感觉就是省事 以前需要办什么就要下载一个app 这样就很烦 现在微信里面直接就能处理了 谁还会下载app
⑶ C语言程序设计的图书管理系统
我们也开始做课程设计了呢~~~ 这是我同学做的:
#include
#include
#include
struct BOOK
{
int id,usr[10],total,store,days[10];
char name[31],author[21];
}books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。*/
void page_title(char *menu_item)
{
clrscr();
printf(">>> 图 书 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
}
/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/
void return_confirm(void)
{
printf("\n按任意键返回……\n");
getch();
}
/*上面是返回前请求确认的函数,以便在返回前观察结果*/
int search_book(void)
{
int n,i;
printf("请输入图书序号:");
scanf("%d",&i);
for(n=0;n<100;n++)
{
if(books[n].id==i)
{
printf("书名:%s\n",books[n].name);
printf("作者:%s\n",books[n].author);
printf("存数:%d of ",books[n].store);
printf("%d\n",books[n].total);
return n;
}
}
printf("\n输入错误或无效图书序号.\n");
return -1;
}
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返
回数组下标,如果找不到相应记录则提示错误并返回-1。*/
void book_out(void)
{
int n,s,l,d;
page_title("借阅图书");
if((n=search_book())!=-1&&books[n].store>0)
{
printf("请输入借书证序号:");
scanf("%d",&s);
printf("请输入可借天数:");
scanf("%d",&d);
for(l=0;l<10;l++)
{
if(books[n].usr[l]==0)
{
books[n].usr[l]=s;
books[n].days[l]=d;
break;
}
}
books[n].store--;
}
if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");
return_confirm();
}
/*上面是借书的函数,首先调用找书函数*/
void book_in(void)
{
int n,s,l;
page_title("归还图书");
if((n=search_book())!=-1&&books[n].store<books[n].total)
{
printf("借阅者图书证列表:\n");
for(l=0;l<10;l++)
if (books[n].usr[l]!=0)
printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
printf("请输入借书证序号:");
scanf("%d",&s);
for(l=0;l<10;l++)
{
if(books[n].usr[l]==s)
{
books[n].usr[l]=0;
books[n].days[l]=0;
break;
}
}
books[n].store++;
}
if(n!=-1&&books[n].store==books[n].total)
printf("全部入藏.\n");
return_confirm();
}
void book_add(void)
{
int n;
page_title("注册新书");
for(n=0;n<100;n++)
if(books[n].id==0) break;
printf("序号:");
scanf("%d",&books[n].id);
printf("书名:");
scanf("%s",&books[n].name);
printf("作者:");
scanf("%s",&books[n].author);
printf("数量:");
scanf("%d",&books[n].total);
books[n].store=books[n].total;
return_confirm();
}
void book_del(void)
{
int n;
page_title("注销旧书");
if((n=search_book())!=-1) books[n].id=0;
printf("该书已注销.\n");
return_confirm();
}
void main(void)
{
menu: page_title("操作选单");
printf("请用数字键选择操作\n\n");
printf("1 借阅图书\n2 归还图书\n\n");
printf("3 注册新书\n4 注销旧书\n\n");
printf("\n0 退出\n");
switch(getch())
{
case '1' : book_out();break;
case '2' : book_in();break;
case '3' : book_add();break;
case '4' : book_del();break;
case '0' : exit(0);
}
goto menu;
}
{
int n;
page_title("广?症慕");
if((n=search_book())!=-1) books[n].id=0;
printf("乎慕厮广?.\n");
return_confirm();
}
void main(void)
{
menu: page_title("荷恬佥汽");
printf("萩喘方忖囚佥夲荷恬\n\n");
printf("1 処堋夕慕\n2 拷珊夕慕\n\n");
printf("3 广过仟慕\n4 广?症慕\n\n");
printf("\n0 曜竃\n");
switch(getch())
{
case '1' : book_out();break;
case '2' : book_in();break;
case '3' : book_add();break;
case '4' : book_del();break;
case '0' : exit(0);
}
goto menu;
}
⑷ 求一个基于Java编写的医院预约系统源码
摘 要
进入21世纪以来,网络的空前发展给人们的工作和生活带来了极大的便利,信息化建设已经成为节约运营成本、提高工作效率的首选。相比之下,国内相当数量的中小医院的医院预约挂号工作还采用相对保守的手工工作方式,数据信息查询和存储的成本较高,但效率却很低下。为了使医院预约挂号管理更高效、更科学,决定开发医院预约挂号平台。
本文采用结构化分析的方法,详细阐述了一个功能比较强大的医院预约挂号平台的前后台开发、操作流程和涉及的一些关键技术。首先进行了可行性分析,然后是系统分析,通过实际的业务流程调研,分析业务流程和系统的组织结构,完成了数据流分析和数据字典;然后是系统设计阶段主要完成了功能模块的划分、阐述了系统设计的思想、数据库的设计和系统设计的工具及技术。该阶段对本系统各个模块的功能进行了详细设计,形成了本系统的功能模块图;数据库设计时先进行了概念结构设计,然后进行了逻辑结构设计,最后完成了数据表的设计。
根据前几个阶段的分析和设计,本系统在设计方面采用B/S模式,同时使用JSP技术进行基本页面的设计与功能实现,后台数据库选用SQL Server 2000数据库。本系统的设计实施为医院预约挂号系统的运行做基础,为医院预约挂号管理工作提供良好的条件。
关键词:预约挂号;结构化分析;平台
Abstract
In the 21st century, the unprecedented development of the network to the people's work and life has brought great convenience, information technology has become operational cost savings, improve efficiency of choice. In contrast, a considerable number of domestic small and medium hospitals, hospital appointment registration work is relatively conservative with manual work, data query and the high cost of storage, but the efficiency is very low. To make an appointment by registered hospital management more efficient, more science, decided to develop the hospital appointment registration platform.
In this paper, structural analysis, a function described in detail more powerful platform for the hospital before and after the appointment register sets and development, operational processes, and some of the key technologies involved. First, a feasibility analysis, and system analysis, business process through the actual research, analyze business processes and organizational structure of the system to complete the data flow analysis and data dictionary; then completed the system design phase is mainly divided into functional moles, elaborated the idea of the system design, database design and system design tools and techniques. This phase of the system function of each mole in detail the design, forming a functional block diagram of the system; database design first tested the concept design, followed by a logic design, and finally completed the data table design.
According to the first few stages of the analysis and design, the system used in the design of B / S mode, JSP technology, the basic page design and implementation of function, use SQL Server 2000 database backend database. Implementation of the system design registration system for the operation of the hospital appointment as a foundation for the hospital management to provide a good appointment registration conditions.
Key Words:Appointment registration; structural analysis; platform
目 录
摘 要... I
Abstract II
一、引言... 1
(一)项目开发的背景... 1
(二)项目开发的目的... 1
二、可行性分析及总体设计原则... 2
(一)可行性分析... 2
1.技术可行性... 2
2.经济可行性... 2
3.社会可行性... 3
(二)总体设计原则... 3
三、系统分析... 5
(一)业务流程分析... 5
(二)数据流图... 6
(三)数据字典... 9
四、系统设计... 13
(一)系统功能设计... 13
(二)系统数据库设计... 14
1.概念结构设计... 14
2.逻辑结构设计... 18
3.数据库表设计... 18
(三)系统开发工具与开发模式的选择... 20
1.系统开发工具... 20
2.系统设计模式... 21
五、系统实现... 22
(一)用户模块... 22
1.登录及注册管理模块... 22
2.首界面... 23
3.用户注册界面... 24
4.公告界面... 25
5.科室预约界面... 26
6.留言界面... 27
(三)管理员模块... 28
1.登录界面... 28
2.科室管理界面... 28
3.添加专家界面... 29
六、性能测试与分析... 30
(一)测试的重要性... 30
(二)测试实例的研究与选择... 30
(三)测试环境与测试条件... 31
(四)实例测试... 32
(五)系统评价... 32
(六)测试结果... 33
参 考 文 献... 35
致 谢... 36
⑸ 微信小程序开发,预约系统哪家好
微信小程序的预约系统很多,具体要根据自己的需求情况而确定,小程序是一个很好的工具,大家可以选择定制开发或者模板的形式的工具。
第1种是卖模板为主的网络公司。
优点是:价格低,几千块钱到万元之间就能搞定,方便,能够快速上线,微尘小程序就可以实现。
缺点是:修改功能麻烦,这里需要避免低价陷阱,不要到最后才发现模板性的修改功能所花的钱比买模板还贵。而且不是独立的,一个模本卖给很多商家用,模板不是永久使用的,一般每年都要交年费。
第2种是主流的方式,定制开发为主的网络公司。
优点是:独一无二的,专为你的企业或者店面定制的,功能你来定,要求你来定,后期修改BUG方便,改东西也很方便,最重要的是永久使用权!!
缺点是:相对价格比较高!!! 定制版的基本费用在上万元到十几万不等!不过贵也有贵的道理吧,毕竟功能做的更全面一点。
最后总结,至于找什么样的小程序开发公司?花多少钱来开发?还是需要看贵公司准备的预算这块!希望对大家有用!
⑹ 求网约专车系统源码
如何编写出好的网约专车系统源码呢?这里分享下迪蒙网约专车系统关于编写系统源码的相关经验:
1、学习经验:因为网约车系统最近流行起来,经验不怎么丰富,故而在编写网约车系统源码之前可以先去取取经,多了解相关知识社区,学习一下他们的开发经验。
2、收取资料:学习了经验之后,也不要立即编写系统源码,我们还要收取一下资料,例如网约车系统应该包含什么样的功能,如何开发出适合行业使用的网约车平台等等。
3、进行研讨:学习了经验,收取完资料,就需要研讨,确定开发方案,着手准备开发。
4、尝试开发:把各项准备工作做好之后,就要开始尝试开发系统,编写系统源码。
5、修改确定:第一次尝试开发肯定有不尽如意的地方,还需要修改,直至最后编写出比较好的,比较满意的系统源码。
除此之外,网约车系统源码在编写时要细心、创新,编写出最好的众筹系统源码,提交满意的答卷。
⑺ 基于web的医疗交换中心系统的源代码
医院管理系统(HIS)应用设计
这里我们介绍医院管理系统HIS的应用设计,它包括医院门诊时间表线上查询系统、线上医院预约挂号系统等应用的点子、设计实例、以及详细解说,让您快速地设计出各种医院的网站应用。
医院网站资料库应用
医院使用网站资料库,可以透过Internet、或Intranet提供以下的应用∶
* 线上查询医院门诊时间表*
* 线上医院预约挂号*
右上角标示*的应用,本节将提供设计的范例,并详加解说。
执行本章资料库的范例,所用的资料库可为Microsoft Access、Microsoft SQL Server、或Text档案(读者可修改成其他支援ODBC的资料库,详见1-5节),须于NT安装IIS 3.0,并于“控制台”中的“ODBC”,新建一个名称为“BookSamp”的资料来源,驱动程式为“Microsoft Access Driver”、“SQL Server”、或“Microsoft Text 驱动程式”。详见附录 范例磁片。
1
医院门诊时间表线上查询系统
“医院门诊时间表线上查询系统”,可以透过Internet,查询医院门诊时间表。
一般的医院,每月会提供一张新的医院门诊时间表。看病的人可以透过Internet,连线上医院的“医院门诊时间表线上查询系统”,即可线上查询新的医院门诊时间表。
设计实例
让我们执行一个实例。
( 范例 data7.asp 医院门诊时间表线上查询
若要查询门诊时间表,于用户端使用浏览器,浏览本书所附安装于网站服务器的data7.asp,即可显示查询的结果如下,包括科别、星期一~星期六的门诊医师姓名∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表HospitalSchele。
于栏名CLASS、A1~A6分别输入科别、星期一~星期六的门诊医师姓名。
使用Microsoft Access建立一个资料表HospitalSchele,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalSchele,如下∶
或使用Text档案建立一个资料表HospitalSchele,如下∶
查询资料库
接着,网站服务器执行data7.asp档案,使用“Server.CreateObject”建立连线的物件,并使用“Open”开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,设定SQL指令,查询HospitalSchele的资料,下个“Execute”指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchele"
Set RS = Conn.Execute(SQL)
接着,要显示查询的结果了。首先,由“ IF RS.EOF THEN ...”判断是否找到HospitalSchele的资料,若RS.EOF为TRUE,则显示“本月无门诊”。
程式码,如下∶
查询结果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">本月无门诊</FONT>
若找到HospitalSchele的资料,则显示科别、星期一~星期六的门诊医师姓名,分别由RecordSets物件的RS(0)、RS(1) ~RS(6) 取得。
RS.Fields.Count表示RecordSets物件的栏位数,由“For i = 0 to RS.Fields.Count - 1”取得RS(i) 各栏位的资料。配合<TABLE>表格的HTML语法,将结果填入表格的各栏位当中。
若还有下一笔资料,使用RS.MoveNext移到下一笔的位置。
程式码,如下∶
<% ELSE %>
<FONT COLOR="#0000ff">本月份 门诊时间表如下:</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期一</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期二</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期三</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期四</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期五</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期六</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<% If LEFT(RS(i).Name,1) = "W" Then %>
<TD BGCOLOR="f7efde" ALIGN=CENTER>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#800000">
<FONT><%= RS(i) %></FONT></TD>
<% END IF %>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF %>
最后,使用RS.Close关闭RecordSet,使用Conn.Close关闭资料库。
全部的程式码,如下∶
<HTML>
<HEAD>
<TITLE>医院门诊时间表 线上查询系统</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">医院门诊时间表 线上查询系统</FONT>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchele"
Set RS = Conn.Execute(SQL)
%>
<HR>
查询结果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">本月无门诊</FONT>
<% ELSE %>
<FONT COLOR="#0000ff">本月份 门诊时间表如下:</FONT>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期一</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期二</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期三</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期四</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期五</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期六</FONT></TD>
</TR>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<% If LEFT(RS(i).Name,1) = "W" Then %>
<TD BGCOLOR="f7efde" ALIGN=CENTER>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD>
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#800000">
<FONT><%= RS(i) %></FONT></TD>
<% END IF %>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE>
<% END IF %>
<HR>
</CENTER>
</BODY>
</HTML>
2
线上医院预约挂号系统
“线上医院预约挂号系统”,可以透过Internet,完成医院预约挂号的手续。
一般的医院,提供排队、人工接听电话、或语音系统等多种预约挂号的方式。透过Internet,现在可以提供比较丰富、生动的预约挂号方式。
看病的人可以透过Internet,连线上医院的“线上医院预约挂号系统”,在电脑上输入病历号码(或身分证号码),再输入要预约的科别、医师、预约日期、和上下午夜间,即可完成预约挂号的手续。
挂号系统将告诉您挂几号的看诊顺序,并自动统计每一个门诊的预约人数,若超过名额,将自动告之,要求预约其他的时间。
预约时,预约系统提供可以增加、取消、查询预约的功能。
看病的人并可线上查询医院门诊时间表、医师简介、用药须知、健康新知、医院活动、医院地址等资讯。
挂号系统将自动印出所预约的每日挂号表,以供医院相关部门准备病历表。
设计实例
让我们执行一个实例。
( 范例 data12.asp 线上医院预约挂号
若要线上预约医院挂号,于用户端使用浏览器,浏览本书所附安装于网站服务器的data12.asp,于“科别”处选择科别如内科,于“病历号码”处输入病历号码如123456后,于“看诊日期”处输入看诊日期如870701后,按下“预约挂号”按钮,即可显示预约挂号的结果如下,包括病历号码、看诊日期、科别、看诊顺序∶
预约医院挂号时,若预约的诊次已经预约过,则重覆预约相同的诊次将显示“已经预约挂号”如下∶
预约医院挂号时,若超过诊次的100个名额时,则显示“预约挂号已满”如下∶
取消预约挂号
预约医院挂号后,可以取消所预约的挂号,于“选修课程”处选择待取消选修课程如婚姻学,于“科别”处选择科别如神经科,于“病历号码”处输入病历号码如123456后,于“看诊日期”处输入看诊日期如870701后,按下“取消预约挂号”按钮,即可显示取消预约挂号的结果如下∶
若待取消的诊次尚未预约过,则取消预约挂号时显示“尚未预约挂号”如下∶
查询预约挂号
预约医院挂号后,可以查询所有预约的诊次,仅须于“病历号码”处输入病历号码如123456后,按下“查询预约挂号”按钮,即可显示查询预约挂号的结果如下∶
查询预约挂号时,若尚未预约挂号,则查询预约挂号时将显示“尚未预约挂号”如下∶
门诊时间表
按下“门诊时间表”按钮,即可显示门诊时间表如下∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表HospitalCount,储存一个诊次的预约挂号人数、和最后看诊顺序。
这个资料表系供预约挂号和取消预约挂号时,记录预约挂号人数、和最后看诊顺序号码之用。建立栏位TOTAL、COUNT0、DATE0、CLASS,分别代表一个诊次的预约挂号人数、最后看诊顺序号码、预约日期、科别名称。建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表HospitalCount,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalCount,如下∶
或使用Text档案建立一个资料表HospitalCount,如下∶
尚需要建立另一个资料表HospitalReserve,储存预约挂号的记录,建立栏位ID、COUNT0、DATE0、CLASS,分别代表一笔预约挂号记录的病历号码、看诊顺序号码、预约日期、科别名称。
这个资料表系供预约挂号、查询预约挂号、和取消预约挂号时,记录预约诊次、和看诊顺序之用。
建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表HospitalReserve,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalReserve,如下∶
或使用Text档案建立一个资料表HospitalReserve,如下∶
设计输入的表单
接着,设计输入的表单form,当病患选择科别CLASS1,输入病历号码ID1,看诊日期DATE1,按下“预约挂号”等按钮submit时,即使用POST的方式将输入资料传送到网站服务器,并执行于“form action=...”所设定的data12.asp档案(与form为同一个ASP档案),程式码如下∶
预约挂号, 请输入以下资料 (初诊者以身分证字号代替病历号码):<br>
<form action="data12.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>科别:
<select name="CLASS1">
<OPTION SELECTED>内科
<OPTION>神经科
<OPTION>小儿科
<OPTION>外科
<OPTION>妇产科
<OPTION>耳鼻喉科
<OPTION>眼科
<OPTION>皮肤科
</select>
<br>
<FONT COLOR="#FF8080">■ </FONT>病历号码 (如123456):
<INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10><BR>
<FONT COLOR="#FF8080">■ </FONT>看诊日期 (如87年7月1日请输入870701):
<INPUT TYPE=TEXT VALUE="870701" NAME="DATE1" SIZE=6><BR>
<INPUT TYPE=submit VALUE="预约挂号" name="Action">
<INPUT TYPE=submit VALUE="取消预约挂号" name="Action"><br>
<INPUT TYPE=submit VALUE="查询预约挂号" name="Action"> 仅须填入病历号码<br>
</form>
<form>
<INPUT TYPE=button VALUE="门诊时间表" OnClick="location.href='data7.asp'">
</form>
若按了“门诊时间表”按钮时,将执行data7.asp,以显示门诊时间表。
网站服务器执行data12.asp档案,首先经由Request.Form("Action")取得所按submit按钮上的显示文字VALUE,Left(Request.Form("Action"),2)系只取前两个中文字,若Request.Form("Action")非空白时,表示为表单输入所呼叫执行。
由“SELECT CASE Left(Request.Form("Action"),2) ”判断是按了那个按钮。若按钮上前两个字为“预约”时,则执行AddReserve() 副程式;若为“取消”时,则执行DeleteReserve() 副程式;若为“查询”时,则执行CheckReserve() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "预约"
AddReserve()
CASE "取消"
DeleteReserve()
CASE "查询"
CheckReserve()
END SELECT
%>
预约挂号
按了“预约挂号”按钮时,将执行AddReserve() 副程式。
首先,使用“Server.CreateObject”建立连线的物件,并使用“Open”开启待存取查询资料库BookSamp。
再寻找所待新增的预约挂号记录,以检查是否已经预约过,使用SELECT的SQL指令查询资料库的资料,于HospitalReserve资料表,设定SQL指令,查询病历号码栏位ID符合所输入Request.Form("ID1"),看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料,下个“Execute”指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
Sub AddReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
接着,要显示执行的结果了。
首先于HospitalReserve资料表,寻找预约挂号的记录,由“IF RS.EOF THEN ...”判断是否找到病历号码栏位ID符合所输入Request.Form("ID1"),看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料。
若RS.EOF为TRUE,表示尚未预约挂号,再寻找所待预约挂号的诊次是否已经有人预约挂号过。于HospitalCount资料表,设定SQL指令,查询看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料。若RS.EOF为TRUE,表示此诊次尚未有人预约挂号过,则于HospitalCount资料表,使用“INSERT INTO...”指令新增一笔资料。此笔新增资料的预约挂号人数栏位TOTAL、和最后看诊顺序号码栏位COUNT0都设定为1,科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
然后再于HospitalReserve资料表,使用“INSERT INTO...”指令新增一笔资料。此笔新增资料的看诊顺序号码栏位COUNT0为1,病历号码栏位ID为Request.Form("ID1"),科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
显示执行的结果时,配合<TABLE>表格的HTML语法,将结果填入表格的各栏位当中。程式码,如下∶
<FONT COLOR="#0000FF">预约挂号结果:</FONT><br>
<%
IF RS.EOF THEN
RS.Close
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
'此科次尚未有人预约挂号 ! 于HospitalCount新增一笔
SQL = "INSERT INTO HospitalCount(COUNT0, TOTAL, DATE0, CLASS) VALUES(1,1,'" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
'HospitalReserve新增一笔
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(1,'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#0000FF">预约挂号 OK ! 看诊顺序为第 1 号</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病历号码</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊顺序</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000">1</FONT></TD>
</TR>
</TABLE>
若RS.EOF为FALSE,表示此诊次已有人预约挂号。
由“IF RS(0) < 100 THEN...”判断RS(0) 预约挂号人数TOTAL是否超过100个名额。
若未超过,则于HospitalCount资料表,使用“UPDATE...”指令,将此笔资料的预约挂号人数TOTAL、和最后看诊顺序号码COUNT0都加一。
然后,再于HospitalReserve资料表,使用“INSERT INTO...”指令新增一笔资料。此笔新增资料的看诊顺序号码栏位COUNT0为HospitalCount资料表的加一后之COUNT0新值,病历号码栏位ID为Request.Form("ID1"),科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
接着,显示执行的结果时,配合<TABLE>表格的HTML语法,将于HospitalReserve资料表新增的资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE
IF RS(0) < 100 THEN
'此诊次已有人预约挂号 ! HospitalCount的COUNT,TOTAL增一
TotalNo = RS(0)+1
CountNo = RS(1)+1
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & ",COUNT0 = " & CountNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
'HospitalReserve新增一笔
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(" & CountNo & ",'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#0000FF">预约挂号 OK ! 看诊顺序为第 <% =CountNo %> 号</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病历号码</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊顺序</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =CountNo %></FONT></TD>
</TR>
</TABLE>
若此课程的预约挂号人数TOTAL超过100个名额,则显示“预约挂号已满 ! 请预约其他诊次 !”。
接着,显示执行的结果,配合<TABLE>表格的HTML语法,将病历号码和看诊日期等资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE %>
<% '100预约挂号已满 %>
<FONT COLOR="#FF0000">报歉 !</FONT><br>
<FONT COLOR="#FF0000">预约挂号已满 ! 请预约其他诊次 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病历号码</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR>
</TABLE>
<% END IF %>
<% END IF %>
当于HospitalReserve资料表,由“IF RS.EOF THEN ...”判断是否已经预约挂号时,若RS.EOF为FALSE,表示此诊次已经预约挂号过,则显示“报歉! 已经预约挂号! 看诊顺序为第...号”。
接着,显示执行的结果,配合<TABLE>表格的HTML语法,将病历号码、看诊日期、和看诊顺序等资料,填入表格的各栏位当中显示出来。
程式码,如下∶
<% ELSE %>
<% '已经预约挂号 %>
<FONT COLOR="#FF0000">报歉 !</FONT><br>
<FONT COLOR="#FF0000">已经预约挂号 !</FONT> 看诊顺序为第 <% =RS(1) %> 号</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病历号码</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊顺序</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
</TR>
</TABLE>
<% END IF
Conn.Close
End Sub %>
最后,使用Conn.Close关闭资料库。
取消预约挂号
按了“取消预约挂号”按钮时,将执行DeleteReserve() 副程式。
首先,先寻找到所待取消的预约挂号记录,使用“Server.CreateObject”建立连线的物件,并使用“Open”开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,于HospitalReserve资料表,设定SQL指令,查询病历号码栏位ID符合所输入Request.Form("ID1"),查询看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料,,下个“Execute”指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
由“IF RS.EOF THEN ...”判断是否找到所待取消的预约挂号记录,若RS.EOF为TRUE,表示此诊次尚未预约挂号,则显示“找不到 ! 尚未预约挂号 !”。
程式码如下∶
<%
Sub DeleteReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消预约挂号结果:</FONT><br>
<%
IF RS.EOF THEN
'找不到 ! 尚未预约挂号 !
%>
<FONT COLOR="#FF0000">找不到 ! 尚未预约挂号 !</FONT>
若找到所待取消的预约挂号记录,则于HospitalReserve资料表,使用“DELETE FROM...”指令删除此笔资料。
然后,再于HospitalCount资料表,使用“UPDATE...”指令,将此笔课程的预约挂号人数TOTAL减一。
接着,显示执行的结果,配合<TABLE>表格的HTML语法,将于HospitalReserve资料表删除的资料,填入表格的各栏位当中,以显示出来。
程式码,如下∶
<% ELSE
'取消预约挂号 !
'HospitalReserve删除一笔
SQL = "DELETE FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
'HospitalCount的TOTAL减一
'RS.Close
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
%>
<FONT COLOR="#FF0000">找不到预约挂号资料 !</FONT>
<%
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#FF0000">预约挂号已经取消 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病历号码</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看诊日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科别</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="f7efde" ALIGN