单证打印的整流程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 数据库的设置和格式文件设计:

1.1数据库的设置:

数据库的设置是打印一张单证的基础,也是较为困难的部分。该部分工作由开发人员对本地库直接进行操作。前台需要设置的表有t_insrnc_dfn(险种定义表),T_DOC_INFO(单证信息主档),T_DOC_DA TABLK(单证数据块档),T_ITEM_DCRB(单证数据项描述档)。后台的设置和前台相同。各表的详细说明见内部接口的单证设置表部分。(注:t_insrnc_dfn (险种定义表)的定义未包含在内,该表设置了险种的信息,其中的c_doc_id字段是单证打印模块所需要的。)

首先,要分析提供的单证的格式样本。然后根据单证的格式样本中要打印的单证数据来确定该单证的数据块及每个数据块包含的数据项;在此基础上,写出得到这些数据块和数据项的值的SQL语句,并将数据块,数据项和设计的SQL语句添加到数据库中相关的单证设置表中。供单证打印系统使用。

在此以单证PC0002为例说明分析和设置的过程(可用单证编辑器打开PC0002.FMP浏览其格式)。

在PC0002的单证样本中,我们可以看到以下信息:险种,保单号,被保险人姓名,保险标的地址,受益人名称,保险项目及保险金额,保险期限,免赔信息,保险费率,付款日期及方式,特别约定和保险公司的信息等。这些信息都可以根据该保单的保单号从数据库中获得。当然不一定只用一个SQL语句就可获得所有的信息。我们将每个SQL语句查询出的信息称为一个数据块,而每个数据块由多个数据项组成。在本例中,有四个数据块:PL Y_HEAD(保单的基本信息),PL Y_OBJ(标的物信息),PL Y_RDR(附加险信息)和PL Y_TERM(缴费信息)。每个数据块包含的数据项可在“域”对象的表达式属性页中点击“数据项”按钮浏览。每个数据块包含的数据项的个数应和该数据块对应的SQL语句SELECT出的字段的个数一致,并且SELECT出的字段的顺序必须和该数据块中的数据项的n_ord_id的顺序相同。否则该单证无法打印或打印出的数据与要求不一致。在设置时,每个数据块应尽可能包含可能需要的所有信息,而不应局限于提供的单证格式样本。

1.2格式文件的设计

参照单证格式样本用单证编辑器设计单证格式文件。

2.软件设计:

2.1

2.2层次结构

2.2.1客户端

2.2.1.1 软件结构

以下是单证打印的概要设计,其详细设计请参阅文档单证打印(车险)详细设计书.doc

本系统所提供的各项业务、功能在系统设计实现阶段按三个层次划分。这三个层次是: 主模块;

单证打印客户端的功能主要分成两个独立的部分:数据读取和格式打印,通常先通过前一部分从服务器取到单证数据后,才能开始按格式进行打印,但这两个步骤不一定是连续完成的,数据读取可以将读来的数据暂存在客户端(可以是多个单证的数据),格式打印根据暂存数据打印单证。其描述如下:

参数:单证类别号、相关编号(如保单号、批单号等)以及其它参数(详见定义)

1. 将参数打包发送给服务器;

2. 接收服务器送来的数据,数据可能是分批送来的多个二维数据块(可根据单证设置表的本地版本得到这些数据块的定义);

3. 如果有数据需要由用户输入的数据替换,且用户输入的数据不为空,则替换相应的数据;

4. 将接收的数据存放到本地临时数据库中。

详细定义:

1.1.1GetDocTempDataId():

●原型:CString GetDocTempDataId(char *lpPara)

●功能:从本地库中查询单证临时数据的ID

●流程:首先分析参数lpPara生成SQL语句,用该语句打开本地库中的t_tmp_doc

表,如果记录集为空则返回空串,否则返回c_data_id字段的值。

1.1.2GetFormDataIntoMDB()

●原型:CString GetFormDataIntoMDB(CBASEBASE *pThis, char *lpPara, short len)

●功能:从服务器端查询获得要打印单证的临时数据并将其保存在本地库中,同时返

回单证临时数据的ID

●流程:向服务器发包并收包,失败则返回空串,成功则调用PutDataIntoMDB将接

收的数据保存到本地库中,失败则报错,成功则返回单证临时数据的ID

1.1.3GetFormNo()

●原型:BOOL GetFormNo(CString sInsrncCde, CString &sDocId)

●功能:根据险种代码sInsrncCde查询该险种保单的ID

●流程:根据sInsrncCde生成SQL语句,用该语句打开本地库中的t_insrnc_dfn

表,如果记录集为空则返回假,否则返回真,该险种保单的ID保存在sDocId中。

1.1.4InsertTempDoc()

●原型:BOOL InsertTempDoc(CDaoDatabase *m_pdbpasys, CString sDataID, char

*lpPara)

●功能:将单证的临时数据的参数保存在本地库中

●流程:先分析lpPara生成SQL语句,用该语句将单证临时数据插入到本地库中的

t_tmp_doc表,成功则返回真,失败则返回假。

1.1.5PutDataIntoMDB()

●原型:CString PutDataIntoMDB(char *lpPara, char *lpData)

●功能:将从服务器端查询获得的单证的临时数据保存在本地库中

●流程:

(1)在本地库的t_doc_info表中查询指定单证的数据块,失败则报错并返回,有则继续;

(2)循环:while 还有指定单证的数据块

✧获得该数据块的ID

✧构造单证记录集对象CDocRecordset

相关文档
最新文档