握手协议
定义一个byte类型数组发送(或接收),第一位做为判断的校验头&HAA、&HBB、&HCC、&HDD、&HEE、&HFF,第二位为窗体代码,第三位为功能码,第四位、第五位、第六位、第七位文件字节总数(高位在前、低位在后)。
发送(接收)内容均以文本文件形式出现,其中发送文件保存为本地路径下olshineS.hov,接收文件保存为本地路径下olshineR.hov。
发送(接收)格式:
0xAA、0xBB、0xCC、0xDD、0xEE、0xFF,窗体代码,功能码,文件拆分总章节数高位(两位),文件拆分总章节数低位(两位),……发送(接收)内容……
Switch case 窗体代码
Case 0x01 请求连接窗体
1.客户端发送请求
功能码 0x00 无请求(即正常连接数据库)
发送内容 空
服务端回复:
a. 如数据库存在
功能码 0x00
发送内容 succeed
b. 如数据库不存在
功能码 0x00
发送内容 loss
2.客户端发送请求
功能码 0x01 发送数据库文件以备还原
发送内容 数据库恢复文件
服务端回复:
a. 还原成功
功能码 0x01
发送内容 succeed
b. 还原失败
功能码 0x01
发送内容 loss
Case 0x02 登陆窗体
1. 客户端发送请求
功能码 0x01 调用所有用户名(read)
发送内容 无
服务端回复:
功能码 0x01
发送内容 XXXXX;XXX;XX 姓名字符串(按登陆排序,第一个为上次系统登陆用户)
2. 客户端发送请求
功能码 0x01 验证当前登陆用户密码(write)
发送内容 XXXXX 当前用户所输入的密码
服务端回复:
功能码 0x01
发送内容 right/error 密码正确与否
Case 0x03 系统字典
1. 客户端发送请求:
功能码 0x01 请求部门表数据
发送内容 无
服务端回复:
功能码 0x01
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
2. 客户端发送请求:
功能码 0x02 请求科目代码表数据
发送内容 无
服务端回复:
功能码 0x02
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
3. 客户端发送请求:
功能码 0x11 请求新增部门表数据
发送内容 xxx;xxx;……;xxx(修改的数据集内容)
服务端回复:
功能码 0x11
发送内容 succeed/loss 成功/失败
4. 客户端发送请求:
功能码 0x21 请求修改部门表数据
发送内容 xxx;xxx;……;xxx(修改的数据集内容)
服务端回复:
功能码 0x21
发送内容 succeed/loss 成功/失败
5. 客户端发送请求:
功能码 0x31 请求删除部门表数据
发送内容 xxx;xxxx (删除的数据集内容,xxx代表删除内容的部门ID,xxxx代表部门名称)
服务端回复:
功能码 0x31
发送内容 succeed/loss 成功/失败
6. 客户端发送请求:
功能码 0x12 请求新增科目表数据
发送内容 xxx;xxx;……;xxx(新增的数据集内容)
服务端回复:
功能码 0x12
发送内容 succeed/loss 成功/失败
7. 客户端发送请求:
功能码 0x22 请求修改科目表数据
发送内容 xxx;xxx;……;xxx(修改的数据集内容)
服务端回复:
功能码 0x22
发送内容 succeed/loss 成功/失败
Case 0x04 季度计划窗体
1. 客户端发送请求:
功能码:0x01 请求机关部门名称
发送内容 无
服务端回复:
功能码 0x01
发送内容:xxx;xx(机关名称;是否分劈)
2. 客户端发送请求:
功能码 0x02 请求科目代码表数据
发送内容 无
服务端回复:
功能码 0x02
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
3. 客户端发送请求:
功能码 0x03 请求当前选择部门对应的科目显示
发送内容 xxx;xxxx(部门名称,当前年份)
服务端回复:
功能码 0x03
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
4. 客户端发送请求:
功能码 0x04 存储新增(或修改)部门对应科目
发送内容 xxx;xxx;……;xxx(需新增或修改的内容,第一位部门名称,第二位科目代码,倒数第二位当前年份,最后一位为当前月份)
服务端回复:
功能码 0x04
发送内容 succeed/loss 成功/失败
5. 客户端发送请求:
功能码 0x05 删除选择的部门对应科目
发送内容 xx;xxx;xxxx;xxxxx(xx为所要删除的id,xxx为部门名称,xxxx为科目代码,xxxxx为当前年份)
服务端回复:
功能码 0x05
发送内容 succeed/loss 成功/失败
Case 0x05 年度计划窗体
1. 客户端发送请求:
功能码:0x01 请求车间部门名称
发送内容 无
服务端回复:
功能码 0x01
发送内容:xxx(车间名称)
2. 客户端发送请求:
功能码 0x02 请求科目代码表数据
发送内容 无
服务端回复:
功能码 0x02
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
3. 客户端发送请求:
功能码 0x03 请求当前选择部门对应的科目显示
发送内容 xxx;xxxx(部门名称,当前年份)
服务端回复:
功能码 0x03
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
4. 客户端发送请求:
功能码 0x04 存储新增(或修改)部门对应科目
发送内容 xxx;xxx;……;xxx(需新增或修改的内容,第一位部门名称,第二位科目代码,倒数第二位当前年份,最后一位为当前月份)
服务端回复:
功能码 0x04
发送内容 succeed/loss 成功/失败
5. 客户端发送请求:
功能码 0x05 删除选择的部门对应科目
发送内容 xx;xxx;xxxx;xxxxx(xx为所要删除的id,xxx为部门名称,xxxx为科目代码,xxxxx为当前年份)
服务端回复:
功能码 0x05
发送内容 succeed/loss 成功/失败
Case 0x06 追加计划窗体
1. 客户端发送请求:
功能码:0x01 请求所有部门名称
发送内容 无
服务端回复:
功能码 0x01
发送内容:xxx(部门名称)
2. 客户端发送请求:
功能码 0x03 请求当前选择部门对应的科目显示
发送内容 xxx;xxxx(部门名称,当前年份)
服务端回复:
功能码 0x03
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
3. 客户端发送请求:
功能码 0x04 存储新增部门对应科目追加金额
发送内容 xxx;xxx;……;xxx(需新增或修改的内容,第一位部门名称,第二位科目代码,倒数第二位当前年份,最后一位为当前月份)
服务端回复:
功能码 0x04
发送内容 succeed/loss 成功/失败
Case 0x07 报销窗体
1. 客户端发送请求:
功能码:0x01 请求所有部门名称
发送内容 无
服务端回复:
功能码 0x01
发送内容:xxx(部门名称)
2. 客户端发送请求:
功能码 0x03 请求当前选择部门对应的科目,余额
发送内容 xxx;xxxx;xxx(部门名称,当前年份,当前月份)
服务端回复:
功能码 0x03
发送内容 xxx;xxx;……;xxx & 回车符
xxx;xxx;……;xxx & 回车符
………………
xxx;xxx;……;xxx (所有数据集内容,按字段顺序发送,每行为一行数据集内容)
3. 客户端发送请求:
功能码 0x04 存储新的支出
发送内容 xxx;xxx;……;xxx(新支出内容,第一位部门名称,第二位科目代码,倒数第四位当前年份,倒数第三位为当前月份,倒数第二位为最新总支出数,最后一位为最新余额)
服务端回复:
功能码 0x04
发送内容 succeed/loss 成功/失败
Case 0x08 结转窗体
1. 客户端发送请求:
功能码 0x01 结转
发送内容 xxx;xxxx(当前年份;当前月份)
服务端回复:
功能码 0x01
发送内容 succeed/loss 成功/失败
Case 0x09 追加查询窗体
1. 客户端发送请求:
功能码 0x01 请求追加表Addplans里所有部门数据
发送内容 无
服务端回复:
功能码 0x01
发送内容 xxx;xxx;……;xxx(所有部门数据)
2. 客户端发送请求:
功能码 0x02 请求所有根据条件的查询结果
发送内容 xxx;xxx;xxx;xxx;xxxx(查询起始时间;查询结束时间;部门;追加人;文件编号)
服务端回复:
功能码 0x02
发送内容 xxx;xxx;xxx;xxx;xxx;xxx;xxx;xxx;xx;xx & 回车符
………………
xxx;xxx;xxx;xxx;xxx;xxx;xxx;xxx(部门名称;科目代码;科目名称;文件编号;文件发布日期;追加人;追加日期;追加金额;当前年份;当前月份。其中最后两位没用,只是为了sql语句写的方便,可不处理)
Case 0x0A 支票查询窗体
1. 客户端发送请求:
功能码 0x01 请求报销表Apply里所有部门数据
发送内容 无
服务端回复:
功能码 0x01
发送内容 xxx;xxx;……;xxx(所有部门数据)
2. 客户端发送请求:
功能码 0x02 请求所有根据条件的查询结果
发送内容 xxx;xxx;xxx;xxx;xxxx(查询起始时间;查询结束时间;部门;报销类型;支票编号)
服务端回复:
功能码 0x02
发送内容 xxx;xxx;xxx;……;xxx;xxx;xxx;& 回车符
………………
xxx;xxx;xxx;……;xxx;xxx;xxx(部门名称;科目代码;科目名称;报销人;摘要;报销类型;支票号码;报销时间;报销金额;当前年份;当前月份。其中最后两位没用,只是为了sql语句写的方便,可不处理)
Case 0x0B 部门汇总窗体
1. 客户端发送请求:、
功能码 0x01 请求所有已用部门数据
发送内容 无
服务端回复
功能码 0x01
发送内容 xxx(部门名称)
2. 客户端发送请求:
功能码 0x02 请求查询数据
发送内容 xxx;xxx;xxx(部门名称;查询年份;查询月份 注:部门名称为空则代表查询所有部门)
服务端回复:
功能码 0x02
发送内容 xxx;xxx;……;xxx & 回车符
…… ……
xxx;xxx;……;xxx(部门名称;科目代码;科目名称;计划数;追加数;上月余额;支出数;余额;年份;月份。其中最后两位没用,只是为了sql语句写的方便,可不处理)
Case 0x0C 科目汇总窗体
1. 客户端发送请求:、
功能码 0x01 请求所有已用科目数据
发送内容 无
服务端回复
功能码 0x01
发送内容 xxx(科目代码)
2. 客户端发送请求:
功能码 0x02 请求查询数据
发送内容 xxx;xxx;xxx(科目代码;查询年份;查询月份 注:科目代码为空则代表查询所有部门)
服务端回复:
功能码 0x02
发送内容 xxx;xxx;……;xxx & 回车符
…… ……
xxx;xxx;……;xxx(部门名称;科目代码;科目名称;计划数;追加数;上月余额;支出数;余额;年份;月份。其中最后两位没用,只是为了sql语句写的方便,可不处理)
Case 0x0D 删除数据窗体
1. 客户端发送请求:
功能码 0x01 请求删除数据库中相应记录
发送内容 xxx(删除年份)
服务端回复:
功能码 0x01
发送内容 succeed/loss 成功/失败
Case 0x0E 备份数据窗体
1. 客户端发送请求:
功能码 0x01 请求备份当前数据库
发送内容 无
服务端回复:
功能码 0x01
发送内容 数据库备份文件