疫情防控信息管理系统设计文档

目录

需求分析... 3

a.引言... 3

a. 1目的... 3

a. 2文档约定... 3

a. 3预期的读者和阅读建议... 3

a. 4产品的范围... 3

b. 综合描述... 4

b.1产品的前景... 4

b.2产品的功能... 4

b.3用户类和特征... 5

b.4运行环境... 5

b.5设计和实现上的限制... 5

b.6假设和依赖... 5

c.系统特性... 5

c.1 说明和优先级... 5

c.2功能需求... 6

d.其它非功能需求... 7

d.1性能需求... 7

d.2安全设施需求... 7

d.3安全性需求... 7

d.4软件质量标准属性... 7

d.5业务规则... 7

e.其它需求... 7

f.附录... 8

f.1结构化需求分析... 8

数据库设计... 11

a.数据字典设计... 11

b.查询语句、视图和储存过程... 13

程序部分设计... 15

a.管理端... 15

b.居民端... 21

完成情况说明... 24

a.提交材料... 24

b.对照评分标准的说明... 24

1.创建了八张表,有增删改查操作。(10)... 24

2.有多处界面级联操作。(0.5)... 25

3.有权限管理,管理端通过创建工作人员表来赋予不同的权限。(0.5)... 26

4.有视图和存储过程(0.5+0.5)... 26

5.前台Delphi开发(3)... 28

需求分析

a.引言

a. 1目的

本疫情防控信息管理系统是由Delphi7编写的用户端程序和运行在华为云服务器上的高斯数据库后台组成的计算机系统,以达到帮助分城市分社区疫情防控数字化管理的目标。通过编写该需求文档说明,使用户可以详细地了解到软件的功能、环境、特点、受众等情况,从而在使用软件时可以得到更好的用户体验。本文档将供开发人员和用户查阅和使用。

a. 2文档约定

若无其他说明,本文档内的同一内容下的并列内容没有优先级先后关系。

本文档中出现的社区均为中华人民共和国的中国社区(行政划分),社区工作人员指居民委员成员,疫情指是指2019新型冠状病毒感染导致的肺炎引起的疫情,以中华人民共和国中央人民政府通告的为准。

a. 3预期的读者和阅读建议

预期的读者范围包括开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员等,针对当前一版需求文档,建议用户阅读时不必关注其中的具体技术细节,着重关注使用说明书(在另一文档中提供)。

对于居民,软件可以帮助他们简化和社区沟通的流程,方便地上报个人信息;对于各级疫情防控单位/小组。,软件可以帮助他们简化统计居民信息的流程,方便地管理居民健康状况。

a. 4产品的范围

实现居民的扫码出入、健康上报、外来人员报备、核酸查询以及社区工作人员的管理投诉与建议、社区成员信息管理、进出管理、外来人员报备、健康状况管理、区域管理人员、区域分配、居民分配管理等功能。

b. 综合描述

b.1产品的前景

在新冠肺炎疫情联防联控中,社区网格化管理发挥了重要的作用。然而,高效沟通方式以及信息快速定位的欠缺使其难以达到精准化管理的要求。开发一个疫情防控信息管理系统能够提高居民和社区之间的沟通效率,同时还实施网格化、精准化管理,确保了各项疫情防控任务的落实。

数字化的疫情防控平台可以为疫情防控数字化、精准化、规范化管理提供有力支撑。疫情防控信息管理系统作为疫情防控功能的基础数字平台,为接入社区网络化管理提供“梯子”,实现社区成员数据扁平集中管理,便于进行多维汇总、分析、分发、跟踪等,形成疫情防控大数据闭环管理平台,真正做到数字化社区防疫,为精准化、规范化疫情防控提供有力的支撑。

数字化疫情防控平台的技术创新和治理变革,也将加速疫后社区网格化管控治理的数字化转型成为现实。经此一“疫”,社会公共治理“数字化思维”将不断加强,平台应用带来的巨大便利将加速“数字政府”“智慧城市”的建设去虚向实,疫情防控信息管理系统作为数字化社区的前沿尝试,将为数字技术在国家治理、社会治理中发挥更大作用发挥更大作用。

本产品是一个新型产品。

b.2产品的功能

实现居民的健康状况自查寻、健康打卡上报、问题反馈以及社区工作人员的管理投诉与建议、社区成员信息管理、健康上报信息管理、外来人员报备、健康状况管理、分区域管理等功能。

b.3用户类和特征

居民:社区的常住人口,该平台的主要使用者,是平台获取相关信息的主体。

工作人员:包含市级疫情防控小组以及中国社区的负责疫情防控信息管理的相关工作人员,也是该平台的使用者,主要对后台信息进行管理。

b.4运行环境

居民端:Windows XP及以上。

管理端:Windows XP及以上。

b.5设计和实现上的限制

  1. 该软件侧重于疫情防控相关功能,只适用于新冠疫情这个特殊的时期,没有进行额外设计满足疫情后的更多需求。
  2. 硬件限制,需要高性能服务器满足并发访问响应,需要大容量存储和备份保存居民信息。
  3. 使用opengauss作为数据库,对unidac和firedac等第三方数据库连接工具的PG驱动兼容性差,无法连接,因此只能使用ODBC来连接,需要用户正确安装驱动并配置数据源。

b.6假设和依赖

假设:用户更倾向于使用程序来完成疫情期间和社区进行的沟通和出入管理。社区倾向于使用计算机软件系统来取代先前的电话微信人工流程。

依赖:软件系统运营中所使用的服务器提供商能够保护用户的隐私安全。

c.系统特性

c.1 说明和优先级

1.1信息搜索

说明

方便工作人员查找信息

优先级

成本

在多个功能板块设置模糊查询功能

风险

1.2信息修改

说明

方便居民和管理员修改信息

优先级

成本

在多个功能板块设置修改信息功能

风险

1.3消息提醒

说明

管理员及时提醒居民上传健康情况

优先级

成本

设置消息提醒功能

风险

1.4登陆授权

说明

居民和工作人员登陆权限验证

优先级

成本

设置数据库校验

风险

1.5信息交互

说明

居民和管理员有信息交互行为

优先级

成本

居民端和管理员端通过数据库实现交互

风险

c.2功能需求

c.2.1 登录功能

登录时,根据用户的输入用户名和密码验证用户身份成功则跳转到目标列表页面。

c.2.2 账户管理功能

用户可以修改自己的个人信息。

c.2.3管理和编辑功能

用户可以选择不同模块功能搜索、查看并修改居民信息,查看待完成任务以及对居民反馈做出回复。

c.2.4 健康状况自查询功能

用户可以获取健康通行权限。

c.2.5 健康打卡功能

用户可以在健康状况有变化时上报自己的健康信息。

d.其它非功能需求

d.1性能需求

在运行openeuler的3450MhzRyzen5800H的计算机上,当系统至少有50%的空闲资源时,对于1s内不超过10条的访问请求,90%以上必须在1000ms内完成

d.2安全设施需求

本系统不存在安全设施方面的需求

d.3安全性需求

1.重要数据加密。对一些重要的数据按一定的算法进行加密,如管理员口令,用户敏感个人信息等。

2.数据备份。后台定期进行数据的备份,以弥补数据的破坏和丢失。

d.4软件质量标准属性

1.系统日志。后端服务器应存储系统发生的所有操作和错误。

2.控制不可更改项和必须输入项。保护重要数据,确保健康信息的登记是完整的

3.方便操作。从用户角度出发,方便使用产品,尽可能缩短使用时间和操作次数。例如,在健康信息登记时添加全选的选项。

d.5业务规则

只有最高级管理员可操作整个社区范围内的数据。分区域管理员只可更改自己区域内的居民信息。

e.其它需求

1.程序框架尽可能小,方便快速打开,减少本地缓存。

2.更多功能可通过数据库函数和储存过程以及视图等方法进行快速调整。

f.附录

f.1结构化需求分析

过程建模

1.上下文图

2.DFD片段

3.0层图

4.1层图

ERD

关系模式

数据库设计

a.数据字典设计

根据需求,数据库应由以下八张表组成:社区表,小区表,小区社区连接表,居民表,健康信息打卡表,问题反馈表,工作人员表,健康码表。

设计表:

社区表(sq)

字段名

字段含义

字段类型

字段长度

NULL

备注

bh

社区编号

varchar

255

 

PK

mc

社区名称

varchar

255

 

 

小区表(xqs)

字段名

字段含义

字段类型

字段长度

NULL

备注

bh

小区编号

varchar

255

 

PK

mc

小区名称

varchar

255

 

 

小区社区连接表(xs)

字段名

字段含义

字段类型

字段长度

NULL

备注

bh

小区编号

varchar

255

 

PK

sqbh

社区编号

varchar

255

 

FK

居民表(jm)

字段名

字段含义

字段类型

字段长度

NULL

备注

sfz

身份证号

varchar

255

 

PK

xm

姓名

varchar

255

 

 

add

住址

varchar

2000

 

 

xqbh

小区编号

varchar

255

 

FK

tel

电话号

varchar

20

 

 

pwd

密码

varchar

255

健康信息上报表(jkxx)

字段名

字段含义

字段类型

字段长度

NULL

备注

id

自增编号

SERIAL

PK

sfz

身份证号

varchar

255

 

FK

jkxx

健康情况说明

varchar

2000

 

 

rq

日期

date

2000

 

 

问题反馈表(wtfk)

字段名

字段含义

字段类型

字段长度

NULL

备注

id

自增编号

SERIAL

PK

sfz

身份证号

varchar

255

 

FK

wt

问题内容

varchar

2000

 

 

stat

解决状态

numeric

1

 

 

健康码表(jkm)

字段名

字段含义

字段类型

字段长度

NULL

备注

sfz

身份证号

varchar

255

 

PK

jkm

健康码

varchar

255

 

 

工作人员表(admin)

字段名

字段含义

字段类型

字段长度

NULL

备注

zh

账号

varchar

255

 

PK

mm

密码

varchar

255

 

 

sqbh

社区编号

varchar

255

 

FK

关系R属于BCNF当且仅当:如果R中非平凡FD A1A2⋯An → B1B2⋯Bm 成立,则A1A2⋯An是关系R的超键。

经检查,符合BCNF,证明如下:

  1. 对于社区表,只有一个FD:社区编号→社区名称,左端是键,符合。
  2. 对于小区表,只有一个FD:小区编号→小区名称,左端是键,符合。
  3. 对于小区社区连接表,只有一个FD:小区编号→社区编号,符合。
  4. 对于居民表,同理,所有的FD左端均为身份证,其他属性都非唯一或不能决定其他属性,不能决定其他属性,符合。
  5. 对于健康信息上报表和问题反馈表,所有的FD左侧均包含id(自增主键),符合
  6. 对于健康码表,只有一个FD:身份证→健康码,左端是键,符合。
  7. 对于工作人员表,所有的FD左端均包含主键账号,符合。

b.查询语句、视图和储存过程

查询账户信息:

select * from admin

搜索全部居民信息(超级管理员)

SELECT jm.sfz as 身份证, jm.xm as 姓名, jm.add as 住址, jm.tel as 电话, jkm.jkm as 健康码状态, xq.mc as 小区, sq.mc as 社区

from jm, jkm, xq, sq

WHERE jm.sfz = jkm.sfz

AND jm.xqbh = xq.bh

AND xq.sqbh = sq.bh ;

搜索全部居民信息(普通管理员)

SELECT jm.sfz as 身份证, jm.xm as 姓名, jm.add as 住址, jm.tel as 电话, jkm.jkm as 健康码状态, xq.mc as 小区, sq.mc as 社区 from jm, jkm, xq   WHERE jm.sfz = jkm.sfz     AND jm.xqbh = xq.bh     AND xq.sqbh = delphi中拼接出社区编号。

模糊搜索居民信息

以上查询加上s:='and jm.xm like '+QuotedStr('%'+Edit1.Text+'% ')+' and jm.xm like '+QuotedStr('%'+Edit2.Text+'% ')+' and jm.add like '+QuotedStr('%'+Edit3.Text+'% ')+' and jm.tel like '+QuotedStr('%'+Edit4.Text+'% ');

级联查询小区

select xq.mc from xq,sq where xq.sqbh=sq.bh and sq.mc='社区1' order by xq.bh ;

'select xq.mc from xq,sq order by bh where xq.sqbh=sq.bh and sq.mc='+ComboBox1.Text

查询反馈信息

select jm.xm AS 姓名,wtfk.wt AS 问题,jm.tel AS 电话,jm."add" AS 地址 FROM xq,jm,wtfk

WHERE jm.sfz=wtfk.sfz

AND xq.bh=jm.xqbh

AND xq.sqbh=

查询健康上报信息

select jm.xm AS 姓名,jkxx.jkxx AS 上报内容,jm.tel AS 电话,jkxx.rq AS 上报日期,jkm.jkm as 健康码状态 FROM xq,jm,jkm,jkxx WHERE jm.sfz=jkxx.sfz AND xq.bh=jm.xqbh AND jkm.sfz=jm.sfz AND xq.sqbh=1

更新居民信息的存储过程

create or replace procedure updateinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)

AS

declare

_record record;

BEGIN

UPDATE jm SET xm=nam,"add"=zz,tel=dh WHERE sfz=id;

UPDATE jkm SET jkm=jkm1 WHERE sfz=id;

FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1

LOOP

UPDATE jm SET xqbh=_record.bh WHERE sfz=id;

END LOOP;

END

/

//(测试)CALL updateinfo('1120200001','t','thome','12345678910','社区1','昊天家园','红码');

用于连接小区社区的视图

CREATE OR REPLACE VIEW xq

AS

SELECT xqs.bh,xqs.mc,xs.sqbh from xs,xqs

WHERE xqs.bh=xs.bh;

提供给用户端使用的视图

CREATE OR REPLACE view allinfo as

SELECT jm.sfz as 身份证, jm.xm as 姓名, jm.add as 住址, jm.tel as 电话, jkm.jkm as 健康码状态, xq.mc as 小区, sq.mc as 社区, jm.pwd AS 密码

from jm, jkm, xq, sq

WHERE jm.sfz = jkm.sfz

AND jm.xqbh = xq.bh

AND xq.sqbh = sq.bh ;

用户查看自己信息的查询

SELECT * FROM allinfo WHERE sfz=;

新用户注册储存过程

create or replace procedure addinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)

AS

declare

_record record;

BEGIN

Insert into jm values(id,nam,zz,'1',dh,null);

INSERT INTO jkm values(id,jkm1);

FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1

LOOP

UPDATE jm SET xqbh=_record.bh WHERE sfz=id;

END LOOP;

END

/

用户查看、提交和更改问题反馈

select wt AS 问题内容,stat as 解决状态 from wtfk where sfz=

程序部分设计

a.管理端

设计登陆界面,以达到连接数据库验证用户名和密码的效果,具体采用ADOTable的Lookup方法来进行查找。如果匹配成功,获取用户的社区范围(0为超级管理员)传递给主界面。不同的社区管理员具有不同的社区编号,根据社区编号,本软件从软件层面增加权限管理,仅能管理和浏览自己的社区范围内的居民信息等。

密码输入改为显示星号来保护用户隐私,通过修改Edit属性里的PasswdChar为“*”来实现。但直接设置会让提示文本也显示为星号,为了解决这一问题在onclick事件中增加点击后才修改为“*”的语句来完成:

procedure TForm2.Edit2Click(Sender: TObject);

begin

edit2.PasswordChar:='*';

edit2.Text:='';

end;

设计主界面,接收登陆界面的社区范围值,显示在左上角,如果是超级管理员则生成右下角的编辑管理员账号按钮。中心部分为管理端的四个功能模块,点击进入功能页面。

设计居民信息管理界面,为方便查询在上方添加了模糊查询框,可以对居民信息进行搜索,只需填写部分即可。下方的表格和导航条可以对居民信息进行浏览

设计分区健康信息管理界面,目标提供先选择社区再级联搜索小区的功能,同时可以对健康码情况进行筛选。使用DbcomboBox完成改项功能。

具体细节:在选择社区前,小区栏是失效的,在选择社区栏后,小区栏根据选择的社区初始化。在选择小区前,对应的查询按钮是失效的,只有选择小区后查询按钮才生效。健康码同理,在选择后才可以进行查询。

为了简化操作,采用保存原始sql语句以及添加分区信息的sql语句,在应用查询时仅将新条件添加到初始的sql语句后面:

sql0:String; //全局变量储存初始sql语句。

sql1:string;//保存增加了分区查询的语句。

sql2:string;//保存增加了健康码查询的语句。

s:=' and xq.mc= '+QuotedStr('ComboBox2.Text');//向原来的查询结尾增加新条件。

最后执行的sql语句为sql0+sql1+sql2;

经验证,效果达到预期,两种筛选不会冲突,可以任意顺序叠加。

添加清除筛选功能,实现原理为分别清空sql1和sql2再次执行拼装好的sql语句,下面是清除分区筛选的代码:

sql1:='';

ADOQuery1.Close;

ADOQuery1.SQL.Clear();

ADOQuery1.SQL.Add(sql0+sql1+sql2);

ADOQuery1.Active:=true;

设计问题反馈界面,首先设计查询语句:和登陆时获取的社区编号拼接起来,得到:

if sq=0 then

begin

s:='select jm.xm AS 姓名,wtfk.wt AS 问题,jm.tel AS 电话,jm."add" AS 地址,wtfk.stat as 状态 FROM xq,jm,wtfk WHERE jm.sfz=wtfk.sfz AND xq.bh=jm.xqbh ';

end

else

begin

s:='select jm.xm AS 姓名,wtfk.wt AS 问题,jm.tel AS 电话,jm."add" AS 地址,wtfk.stat as 状态 FROM xq,jm,wtfk WHERE jm.sfz=wtfk.sfz AND xq.bh=jm.xqbh AND xq.sqbh='+IntToStr(sq);

end;

//ShowMessage(s);

Form6.sql0:=s;

Form6.ADOQuery1.SQL.Clear;

Form6.ADOQuery1.sql.Add(s);

Form6.ADOQuery1.Active:=true;

Form6.Show;

其他具体细节和居民信息界面类似,使用checkbox来添加是否完成回复。

if checkbox1.Checked=true then

begin

stat:=1;

end

else

begin

stat:=0;

end;

s:=' and wtfk.wt like '+QuotedStr('%'+Edit2.Text+'%')+' and jm.xm like '+QuotedStr('%'+Edit1.Text+'%')+' and jm."add" like '+QuotedStr('%'+Edit4.Text+'%')+' and jm.tel like '+QuotedStr('%'+Edit3.Text+'%')+' and wtfk.stat='+IntToStr(stat);

ShowMessage(sql0+s);

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(sql0+s);

ADOQuery1.Active:=true;

界面如下:

问题完成反馈后由居民端将问题状态修改为1即可。管理端无修改状态的权限。

设计居民健康上报界面,目标能够对居民进行按指定信息以及健康码状态查询,实现浏览居民的健康上报以及更改其健康码状态的功能。设计思路与前面的界面设计相似。界面如下:

设计修改居民信息界面,设计目标能够完成输入姓名或者身份证号来搜索居民再选中确定的居民更改其信息,配合其他模块共同使用,设计过程如下:

首先拼装用于调取存储过程的语句:

s:='CALL updateinfo('+QuotedStr(Listbox1.Items[ListBox1.ItemIndex])+','+QuotedStr(Edit1.Text)+','+QuotedStr(Edit2.Text)+','+QuotedStr(Edit3.Text)+','+QuotedStr(ComboBox1.Text)+','+QuotedStr(ComboBox2.Text)+','+QuotedStr(ComboBox3.Text)+')';

  ShowMessage(s);

  ADOQuery4.close;

  ADOQuery4.SQL.clear;

  ADOQuery4.SQL.add(s);

  ADOQuery4.active:=true;

然后设计页面的具体内容:

上方是搜索框,提供身份证和姓名的模糊搜索,搜索完成后,下方的表格会展示所有符合条件的居民其全部信息,并将结果中的身份证号出示在信息设置中供选择。选中想要修改的身份证号后,右侧的输入框和选择框会更新为该居民的信息,左面三个是文本修改栏,可以直接修改,右侧的三个下拉选择栏实现了社区小区的级联搜索和健康码的选择,当仅更改社区时,应用按钮会变为灰色不可选状态,只有重新选择小区使数据合法时才能点击应用按钮提交数据,实现前端数据校验。

b.居民端

设计居民端登陆页面,大致思路与管理端相同,不同的是添加了密码初始化判断,用户在第一次登陆时可以填写任意密码成为密码。同时增加了注册界面,调用储存过程在所有关联的表中添加新居民。

设计用户注册界面,实现验证身份证未注册,遮罩禁止直接填写信息,小区社区级联选择的功能。

设计个人信息修改界面,实现用户更改自己的信息,小区社区级实现了联选择的功能。完成修改后有弹窗提示,信息框会保持在最新的信息以供核查,若更新失败则信息仍为原来的信息。

设计意见反馈界面,用户可以在此界面查看之前提交的反馈信息并修改问题的解决状态。在下方的提交区可以提交新的问题以及清空编辑区。

设置内容检查,在未填写编辑框时无法点击提交按钮。提交完成后刷新上方的表格。

设计健康上报界面,用户可以在此界面查看之前上报的健康信息,不可更改。在下方的提交区可以提交新的问题以及清空编辑区。

设置内容检查,在未填写编辑框时无法点击提交按钮。提交完成后刷新上方的表格。

完成情况说明

a.提交材料

  1. 设计文档,在根目录
  2. 使用说明书,在根目录,较为完整,共21页,每一个界面都包含了示例操作。
  3. 源代码,在代码文件夹
  4. 可执行文件,在程序文件夹
  5. 创建数据库以及数据的sql脚本,在根目录
  6. 数据库备份文件,在数据库备份文件夹,包含了详细的恢复数据库的指令和过程,已经在虚拟机测试可以完全按照该流程恢复到本作业的数据库。

提交了要求的全部材料。

b.对照评分标准的说明

1.创建了八张表,有增删改查操作。(10)

2.有多处界面级联操作。(0.5)

(1)管理端选择小区时需要先选择社区,选择社区后会刷新小区列表,选择完小区才可以点击查询。

(2)居民信息变更页面的选择在选择社区和小区时同样存在级联操作,在左侧选择居民身份证后右侧的编辑框会出现居民的信息。在变更社区之后小区栏会变成“—请选择--”,应用按键会失效,在选择小区后才可以提交。

(3)居民端更新信息时对社区和小区的选择同样存在级联操作。

3.有权限管理,管理端通过创建工作人员表来赋予不同的权限。(0.5)

工作人员表(admin)

字段名

字段含义

字段类型

字段长度

NULL

备注

zh

账号

varchar

255

 

PK

mm

密码

varchar

255

 

 

sqbh

社区编号

varchar

255

 

FK

管理员根据社区编号而拥有不同的权限,其中,0为超级管理员,对所有居民信息拥有访问和修改的权限,而普通管理员对自己的社区编号对应的社区的居民信息有管理权限。任何管理员对于健康上报和问题反馈表没有修改权限,只有只读权限。

4.有视图和存储过程(0.5+0.5)

(1)视图

查看居民全部信息使用的视图

CREATE view allinfo as

SELECT jm.sfz as 身份证, jm.xm as 姓名, jm.add as 住址, jm.tel as 电话, jkm.jkm as 健康码状态, xq.mc as 小区, sq.mc as 社区

from jm, jkm, xq, sq

WHERE jm.sfz = jkm.sfz

AND jm.xqbh = xq.bh

AND xq.sqbh = sq.bh ;

用于连接小区社区的视图

CREATE OR REPLACE VIEW xq

AS

SELECT xqs.bh,xqs.mc,xs.sqbh from xs,xqs

WHERE xqs.bh=xs.bh;

(2)存储过程

新用户注册储存过程

create or replace procedure addinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)

AS

declare

_record record;

BEGIN

Insert into jm values(id,nam,zz,'1',dh,null);

INSERT INTO jkm values(id,jkm1);

FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1

LOOP

UPDATE jm SET xqbh=_record.bh WHERE sfz=id;

END LOOP;

END

/

更新居民信息的存储过程

create or replace procedure updateinfo(id text,nam text,zz text,dh text,sq1 text,xq1 text,jkm1 text)

AS

declare

_record record;

BEGIN

UPDATE jm SET xm=nam,"add"=zz,tel=dh WHERE sfz=id;

UPDATE jkm SET jkm=jkm1 WHERE sfz=id;

FOR _record in SELECT DISTINCT xq.bh FROM xq,sq WHERE sq.mc=sq1 AND sq.bh=xq.sqbh AND xq.mc=xq1

LOOP

UPDATE jm SET xqbh=_record.bh WHERE sfz=id;

END LOOP;

END

/

5.前台Delphi开发(3)

较为完整地完成了Delphi前端的开发,代码添加了适当的注释,具有较好的可读性。为了保证项目的完整性,制作了两个程序,共计15个页面(管理端8个+居民端7个),经过了比较充分的测试和反复修改,达到了功能需求。

基于Delphi7openGauss2.0开发社区信息管理系统-设计文档相关推荐

  1. 新闻管理系统源码java_基于SSM开发的新闻管理系统 附带文档 源码下载

    功能概述 后端springMVC. MyBatis框架.前端使用bootstrap.angularJs ,前后端交互为纯Ajax(angularJs) + ui-router,编辑器为百度UEdito ...

  2. 医院门诊管理系统php文献,医院门诊信息管理系统Api文档

    医院门诊信息管理系统Api文档 xinggevip • 2021 年 03 月 12 日 医院门诊信息管理系统Api文档 1.用户端 1.1注册 请求类型:post 接口名称:/api/patient ...

  3. 学生成绩管理系统-设计文档

    第1章 概述 1.1 课题背景 由于每年读书的人越来越多,有关学生的各种信息量也成倍增长,各类学生的统计分析工作也越来越困难,面对如此繁杂的工作,为了能够为高校学生信息管理提供一种更加高效实用的管理手 ...

  4. 基于javaspringboot+vue的汽车租赁管理系统含文档

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  5. PYB Nano 开发板的完整设计文档

    2019独角兽企业重金招聘Python工程师标准>>> 一直有网友在询问PYB Nano的设计文件,希望可以参考.今天将文档整理出来,放在github和oschina上,方便大家参考 ...

  6. python学生信息管理系统策划文档

    文章目录 需求分析 系统设计 系统功能结构 系统业务流程 系统开发必备 系统开发环境 文件夹组织结构 主函数设计 功能概述 主函数业务流程 学生信息维护模块设计 概述 录入模块业务流程 删除模块业务流 ...

  7. 【迭代式开发】v1架构设计文档——大数据开发实战项目(三)

    文章目录 前言 一.背景 二.名词解释 三.设计目标 3.1 实现功能 3.2 性能指标 Ⅰ.数据精确度 Ⅱ.时间特性 Ⅲ.适应性 四.系统环境 4.1 相关软件和硬件 4.2 数据规模预估 五.系统 ...

  8. 超好用的数据库设计文档生成工具

    原创声明:本文为作者(幻好)原创,可用做学习参考转载,但需注明出处.禁止未经允许用于商业等途径,否则后果自负! 前言概述 随着开发场景的复杂度越来越高,存储数据的数据库表也越来越多并不断的更新.在开发 ...

  9. 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业

    基于JavaSwing开发学生信息管理系统(SQLServer数据库版本):   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+SQLServer数据库 运行 ...

最新文章

  1. rabbitMQ入门程序
  2. linux 代码获取当前路径,【linux】shell代码,获取当前路径,创建文件夹
  3. js实现日期转换方法
  4. Android 友盟推送开发
  5. SQL Server Pivot 隐藏group
  6. 【历史上的今天】5 月 1 日:AMD 成立;第一个 BASIC 程序跑通;世界上第一封垃圾邮件
  7. 对“鬼压床”现象的科学解释与防治
  8. 怎样在计算机中找小键盘,笔记本怎么关小键盘【方法步骤】
  9. 26岁零基础想转行做软件测试可行吗?多方面分析
  10. ILM(Index Lifecycle Management)
  11. 新手云服务器系统,新手云服务器系统
  12. 如何恢复格式化丢失的资料?
  13. 【jzoj4742】【单峰】
  14. 织梦网站如何设置404错误页面?
  15. idea,eclipse中注解使用的计算机用户名修改
  16. Scrapy是什么?Scrapy怎么用?Scrapy进阶使用[链接提取器、自动登录、图片(文件)下载器](基于scrapy2.0+编写) ๑乛◡乛๑ Scrapy框架使用方法
  17. ssh 修改超时时间
  18. elementUI使用卡槽二次封装table(亲测可用)
  19. maven 项目 springMVC实现文件图片的上传下载功能详解(源码已提供,小白必看)
  20. 谁说app的视频抓取不了的?用Python爬取整个app视频

热门文章

  1. 已知抛物线与直线相交两点和抛物线顶点,求抛物线和直线所围成的面积?
  2. 计算机毕业设计SSM仿咸鱼二手物品交易系统【附源码数据库】
  3. 山地自行车系统的组成部分及论如何自己组装一台山地车
  4. 刚子扯谈:神马网络营销
  5. ETCgame移动端上线,预测游戏世界杯预测触手可及
  6. Cannot invoke an object which is possibly ‘undefined‘.Vetur(2722)
  7. 今天终于知道了什么是X-window中字体hinting的含义了!
  8. python 学习day7
  9. 怎么开通代付通道接口?
  10. Java的自学之旅10