医院信息系统软件总体设计方案文档格式.docx
《医院信息系统软件总体设计方案文档格式.docx》由会员分享,可在线阅读,更多相关《医院信息系统软件总体设计方案文档格式.docx(70页珍藏版)》请在冰点文库上搜索。
SetHelp(HelpStr:
通过基本的txt_control.help得到
注意把每个edit控件,combo控件的hint=helpster,showhint=true.
能否把控件分成一组一组的,便于控制?
?
增加以下方法:
Focusfirst(grp:
grp=controlobjectgroupname,if==nilindicatecurrentgroup.
Ifcurrentgrp==-1findfirstgroup.
Focusbyname(ctlname:
Ctlname表示控件名称
FocusLast(grd:
grp=konggroupname,if==nilindicatecurrentgroup.
FocusPrev(grp:
grp=controlobjectgroupname,if==nilindicatecurrentgroup.
FocusNext(grp:
UpdCtlByStr(Grp:
String,Updstr:
UpdStr格式如’ctyno=abcdef;
ctyname=972397;
。
’.参见gridstring
一般他用grid.getstr得到,在grid.onclick事件中调用
为了实现以上功能,每个控件必须有一个group属性,表示控件所属的组。
2ldtext控件
2.1ldtext控件总体说明
增加属性:
Group
表示控件所属的组,如”luo”
一般任何控件都需要本属性
TabStop
表示控件是否可以得到焦点
TabOrder
表示控件得到焦点的顺序
HelpStr
表示控件得到焦点后的提示字符串
MatchStr
表示grid中的内容字符串要更新的edit或其他控件的内容匹配字符串
如grid中得到’ctyno=abcdef;
’.
而屏幕上有一个txt_bdctyf_ctyno.matchstr=’ctyno’,则txt_bdxtyf_ctyno.text=’abcdef’
他通过ldbase_frm的ctlupdate方法更新,具体说明见ldbase_frm说明
FmtStr
表示编辑的内容的数据格式,如:
#V(n)自由格式,长度为n,数据库用varchar
#Z(n)自由格式,长度为n,数据库用char
#S(n)'
a'
-'
z'
'
0'
9'
A'
Z'
和汉字字符串格式,长度为n
#A(n)'
字符串格式,长度为n
#C(n)汉字字符串格式,长度为n
#G(n)'
#P(n)'
字符串格式,前端显示用密码方式显示
#D(yn,mn,dn)日期字符串格式,年份长度为yn,月份长度为mn,天的长度为dn
#T(hn,mn,sn)时间字符串格式,小时长度为hn,分钟长度为mn,秒的长度为sn
#I(n)整型格式长度为n
#F(n1,n2)浮点格式,小数点前面为n1位,小数为n2位
#$(n1,n2)金额格式,小数点前面为n1位,小数为n2位
minlen
表示输入数据的最小长度,一般>
=0
maxlen
表示输入数据的最大长度,一般>
0,0和负数表示不限制
keystr
表示编辑内容是否关键字字段,如:
‘p’表示唯一的primarykey
‘f’表示和主表对应的组合primary之一
‘c’表示不和主表对应的组合其他primarykey
‘t’表示本字段为不可以修改字段
‘n’表示本字段为一般字段
BackAttr
表示在控件的首字符前按backspace的处理:
如
false表示无动作,true表示进入前一个控件
FullAttr
表示在控件输入满字符后的处理,如
false表示无动作,true表示进入下一个控件
FullFlag
表示该控件必须输入满字符,如
false-表示无需输入满,true-表示必须输入满
Backcolor
表示该控件的提示字符颜色
Forecolor
表示该控件的输入字符在失去焦点后的颜色
EditBackColor
表示该控件的在输入时输入框的颜色
EditForeColor
表示该控件的在输入时输入字符的颜色
FontNo
表示该字符字体,如建立常见的几种字体
Layout
表示标签的位置关系,如
left/right表示左右,top/bottom表示上下
LabelWidth
表示标签的长度
TextWidth
表示输入框的长度
缺省的passwordchar为*,无需在外部指定
缺省的AllowHeadNull为false
缺省的showhint为true
缺省的hint为helpstr
3ldgrid控件
3.1ldgrid控件总体说明
增加以下属性:
attr:
表示唯一定位时的列属性
’p’,’f’,’c’表示唯一定位时要用到的列进行比较和匹配
‘n’和’’t’及其他表示不需要
dispf:
表示列的显示和非显示属性,’d’or‘h’
True表示列显示,False表示列不显示
LdGrid.SetCols(ColFmtStr:
按列描述字符串格式初始化grid的列.
ColFmtStr格式如下:
”name;
width;
fmt;
attr;
cption#。
”
Name格式如:
ctyno
Width格式如:
width
Fmt格式如:
V(8),C(8),I(6),G(6),A(20),D(4,2,2),T(2,2,2),F(10,2),$(10.2)等
Attr格式如:
null,disp,print,disp&
print
Caption格式如:
国家编码
RowFirst()
把光标定位到第一行上
RowEmpty()
清除所有内容
RowLocate(Locstr:
Locstr定位内容字符串,格式如下:
’ctyno=abcdef;
’
RowAppend(Appstr:
Appstr删除内容字符串,格式如下:
Appstr=nilor‘’表示空行
在当前行之前添加,光标定位在刚添加的一行。
RowInsert(Insstr:
Insstr插入内容字符串,格式如下:
Insstr=nilor‘’表示空行
在当前行之前插入,光标定位在刚插入的一行。
RowUpdate(Updstr:
Updstr修改内容字符串,格式如下:
RowDelete(Delstr:
Delstr删除内容字符串,格式如下:
RowGetStr(Getstr:
Getstr取得内容字符串,格式如下:
RowPrev()
把光标定位到上一行上
RowNext()
把光标定位到下一行上
RowLast()
把光标定位到最后一行上
AddTitle(TitleStr:
把打印标题字符串加到GRID中
AddPage(PageHeaderLStr,PageHeaderCStr,PageHeaderRStr:
string)
把打印表头字符串加到GRID中
AddPage(PageFooterLStr,PageFooterCStr,PageFooterRStr:
把打印表尾字符串加到GRID中
PreView()
打印预览
OnClick()
一般本函数由用户编写,他负责把选中的行或列的内容写到画面的edit控件上
4ldreport控件
5ldcombo控件
参见ldedit
6button控件
第四章:
终端授权接口描述
4。
1终端授权接口总体说明
终端授权主要用于管理客户端的终端的合法性授权,只有通过软件的检查并得到授权的终端才可以和后端系统进行交易,终端授权文件和系统的运行目录在同一个目录下,它的名字叫ldtrmapp.ini,同时系统提供一个处理终端授权的库函数,他和系统的运行目录在同一个目录下,它的名字叫ldtrmapp.dll。
其中ldtrmapp.ini文件格式如下:
[hostname]
trmno=”000001”
key=”acfdefghh”
为了保证一个配置文件可以重复使用在多个终端上,上述内容可以重复,以上内容表示一个终端的配置文件,系统支持每个终端一个文件,其内容各不一样。
其hostname为本机hostname。
但为了管理方便,可以把系统所有的终端配置文件写在同一个文件中,因此本文本有多个SECTION。
Trmno表示主机上终端数据库中描述的终端名称。
Key表示通过用hostname经过trmno和前端系统的特殊可控制变量变换后的结果,一般用hash和DES算法实现。
其中ldtrmapp.dll提供以下动态库函数:
取得终端名称-GetHostName()
检查终端的合法性-ChkTrmValid()
2终端授权接口的详细描述
2。
1GetHostName()
函数调用原型说明:
intGetHostname(hostname);
函数接口参数说明:
char*hostname;
//表示要返回的主机名称
函数返回值说明:
0-表示成功,1-表示失败。
函数调用说明:
无
系统实现说明:
2ChkTrmValid()
intChkTrmValid(trmid);
char*trmid;
//表示返回的终端代号。
0-表示合法,1-表示非法,2-读授权文件失败。
系统自动取得hostname,检查终端的合法性,返回合法的终端代号。
第五章:
三层式交易接口描述
5。
1交易接口总体说明
交易接口属于开发层面的内容,以下主要通过提供客户端的动态库实现客户端访问的透明性,客户端的动态库和客户端的运行程序在同一个用户目录下,文件名为ldmidc.dll。
同时提供编程的头文件ldmidch.pas供程序员参考。
同时为了服务器端的访问透明,服务器端提供相关动态库函数,文件名为ldmids.dll。
同时提供编程的头文件ldmidsh.pas供程序员参考。
该客户端动态库ldmidc.dll提供以下函数:
和中间件核心连接函数-ConnectMidKernel()
交易请求函数-DoMidTx()
和中间件核心断链函数-DisconnectMidKernel()
取得当前返回错误提示函数-GetTxMsgDefault()
取得任意返回错误提示函数-GetTxMsgByInt()
该服务器端动态库ldmids.dll提供以下函数:
取得系统变量函数-GetSvrVar()
2客户端交易接口的详细描述
1ConnectMidKernel()
intConnectMidKernel(midware,midwarehost,trmid,usrid,usrpasswd);
constchar*midware;
//表示连接的MIDWARE的名字,如tuxedo,cstalk等
constchar*midwarehost;
//表示连接的MIDWARE核心主机的别名或IP地址
constchar*trmid;
//表示连接的CLIENT的终端代号,一般用hostname表示
constchar*usrid;
//表示连接的CLIENT的用户代号,一般用usrid表示
constchar*usrpasswd;
//连接的CLIENT的用户口令,一般用passwd表示.
对于具体错误返回提示用GetErrMsgDedefult得到。
本函数一般在系统初始化时调用,如在formload时处理,同时系统允许在每次调用DoMidTx时及时调用本函数,允许和DisconnectMidKernel()嵌套调用。
当发现已经连接了以后,系统不在做连接动作,而只把连接的次数加1,在断连接时自动把连接次数减一,实现系统的嵌套式调用。
2DoMidTx()
intDoMidTx(txc,tic,tid,toc,trc,tod);
TXC*txc;
//表示交易控制块结构
TIC*tic;
//表示交易请求控制块结构
Char*tid;
//表示交易请求数据块,由用户自己定义,
//一般和交易接口文档的内容一致。
Char*trc;
//表示交易请求和应答往返控制块。
由用户设置和系统返回。
//在调用时为本次往返的起始条件,一般首次由用户设置。
//在返回时为下次往返的起始条件。
TOC*toc;
//表示交易应答控制块
Char*tod;
//表示交易应答数据块
//一般和交易接口文档的内容一致
交易控制块一般包括如下内容:
typedefstruct{
chartimeout[6];
//表示交易延时,以秒为单位
chartrmid[6];
//终端代号
chartrmsno[6];
//终端流水号
charusrid[6];
//用户代号
charusrsno[6];
//用户流水号
chartxtoken[24];
//交易令牌
}TXC;
交易请求控制块一般包括如下内容:
charsvrname[24];
//表示服务名称
chartxno[6];
//表示交易代号
charhcode[1];
//表示交易冲正标志
//'
--正常状态
1'
--表示取消状态,表示不留痕迹
2'
--表示冲正状态,表示留痕迹
chartxtype[1];
//表示交易请求期望得到的结果类型
--表示期望得到单笔返回结果
--表示期望得到多笔往返返回
charcommitf[1];
//表示需要设置数据库事务标志
//更改数据库用'
//查询数据库用'
//其他标志由用户自己控制
charhseqno[6];
//冲正或取消交易的原流水号。
chartxcnt[6];
//本次交易上送tid记录数
chartxmax[6];
//本次交易可以返回的最大记录数
//如果为0表示:
//由服务器端按tid.todlen决定返回最大记录数
chartxfee[12];
//交易手续费
chartxamt[12];
//交易金额
chartidlen[6];
//交易请求数据块长度
chartrclen[6];
//交易往返控制块长度
chartodlen[6];
//交易返回数据块长度
}TIC;
交易返回控制块包括如下内容:
chartxrst[8];
//交易返回代码
chartxmsg[80];
//交易错误提示。
chartxhlp[80];
//交易返回处理提示。
chartrmseqno[6];
//返回终端流水号
charusrseqno[6];
//返回用户流水号,一般由主机生成,
//当tid为空,tod为主机产生流水号
//表示交易返回结果类型
--表示单笔返回结果
--表示多笔往返返回
//本次交易返回记录数
//在非往返交易情况下为1
//如果大于交易返回记录数表示交易结束
//返回数据长度
}TOC;
本函数一般在交易请求时调用。
当发现未连接时,系统自动做连接动作。
3DisconnectMidKernel()
intDisconnectMidKernel();
本函数一般在退出系统时调用,注意要和ConnectMidKernel()匹配。
当发现未连接时,系统不做连接动作。
当系统连接数不为0时,自动减一,如果减一为0,真实Disconnect。
和ConnectMidKernel实现嵌套。
4GetTxMsgByInt()
voidGetTxMsgByInt(errcode,errmsg);
interrcode;
//错误代码
char*errmsg;
//错误提示缓冲区
本函数一般在取得系统各种错误代码的提示时使用。
5GetTxMsgDefault()
voidGetTxMsgDefault(errmsg);
本函数一般在上次调用发生错误时使用。
3服务器端交易接口的详细描述
1GetSvrVar()
intGetSvrVar(intvarid,TXC*txc,TIC*tic,char*varstr);
intvarid;
//变量代号
//见TXC描述
//见TIC描述
Char*varstr;
//返回结果字符串
0-成功,1-失败(无此变量)
varid描述的各个txc,tic变量见相关的include头文件ldmidsh.pas
2CmpSvrVar()
intCmpSvrVar(intvarid,TXC*txc,TIC*tic,char*str);
Char*str;
//比较字符串
0-匹配,1-不匹配,2-无此变量
匹配不区分大小写。
第六章:
数据库访问接口描述
6。
1数据库接口总体说明
数据访问接口主要用于处理数据库的数据访问,每个数据库都有相关的数据库访问函数,一般包括插入,删除,修改,运算,选择,加锁,最小,最大等。
为了实现以上功能,必须提供一个项目数据库描述脚本和数据库的原始描述脚本,通过这两个最基本的脚本自动产生数据库访问的程序代码和项目工程文件,再通过该项目工程文件产生相关的动态连接库,具体的原