📄 reinsur.4gl
字号:
let l_rtn = f_checkValid() if l_rtn != 0 then message "存在未修正的问题保单,请进入'主菜单'->'B分保处理'-'C:问题保单分保处理'中处理" exit menu end if --up add over at 2005-12-1 13:32 command "A:生成报表明细" "按照再保报表的格式,生成首期、续期、变更、理赔分保报表,存在reinsur_data目录中" call report_gen() call report_unl() call disp() command "B:生成本级公司账单" "用于生成本级公司账单" call check_cal() call disp() command "C:生成指定公司账单" "用于上级公司生成下级公司的账单" call build_speBill() call disp() command "D:生成指定公司报表" "用于生成指定公司及其下级公司的报表" call build_speReport() call disp() command "E:返回上一层" "退出账单管理" call disp() exit menu end menu command "D:数据管理" "传送本级单位数据,接收下级单位数据" call data_mag() call disp() command "E:退出" exit program END MENUEND FUNCTION##########################################函数:disp()#功能:#########################################function disp() define t_start_date varchar(10) define t_end_date varchar(10) define t_char varchar(40) define z_bbl integer let t_start_date=start_date let t_end_date=end_date let t_char="【数据库:",g_reDataBase clipped,"】" display "===",t_char,"===【",g_branch_no,"】===分保区间【",t_start_date,"-",t_end_date,"】===" at 3,1end function--/////////////////////////////////////////////////////////////////////////////--//函数名称:set_reAmntLimit()--//函数功能:设置未成年人承保限额--//入口参数: 无,使用全局变量g_amnt18_limit--//出口参数: 1:用户放弃;0:修改成功--//开发日期:2005-6-1 20:54--//开发 人:魏新--/////////////////////////////////////////////////////////////////////////////function set_reAmntLimit() define l_str char(78), l_ans char define l_amntLimit decimal(8,0) let l_str = '当前未成年人承保限额为',g_amnt18_limit using "<<<<<<<","要修改吗?[Y/N]" prompt l_str clipped for char l_ans if upshift(l_ans)!='Y' then return 1 end if while true prompt '请输入新的承保限额:' for l_amntLimit if l_amntLimit=100000 or l_amntLimit=50000 then --置全局变量 let g_amnt18_limit = l_amntLimit update sys_parameter set sys_param_num = g_amnt18_limit where sys_param='amnt18_limit' exit while else error '未成年人承保限额只能为100000或50000,请重新输入...' continue while end if end while return 0end function##########################################函数:set_reTime()#功能:设置分保区间#########################################function set_reTime() define t_start_date date define t_end_date date define flag char(1) define check_flag char(1) define str varchar(10) define i int define l_str char(78), l_ans char let l_str = "当前分保区间为",start_date,"至",end_date,"要修改吗?[Y/N]" prompt l_str clipped for char l_ans if upshift(l_ans)!='Y' then return 1 end if let check_flag='F' while check_flag='F' prompt "请输入分保区间开始日期(格式yyyymmdd):" for t_start_date let str=t_start_date if length(str)<>10 then display "日期应为八位,请重新输入!" else if year(t_start_date)<2005 or year(t_start_date)>2006 then display "分保区间要在2005-2006年度,请重新输入!" else if month(t_start_date)<>1 and month(t_start_date)<>4 and month(t_start_date)<>7 and month(t_start_date)<>10 then display "分保区间开始月度必须是每个季度的开始月份,请重新输入!" else if day(t_start_date)<>1 then display "分保区间开始日期必须是月份的第一天,请重新输入!" else let check_flag='T' end if end if end if --end if end if end while --输入结束日期并做合法性检查 let check_flag='F' while check_flag='F' prompt "请输入分保区间结束日期(格式yyyymmdd): " for t_end_date let str=t_end_date if length(str)<>10 then display "日期应为八位,请重新输入!" else if t_end_date<=t_start_date or year(t_end_date)<>year(t_start_date) or month(t_end_date)>month(t_start_date)+2 then display "分保区间结束日期应该大于开始日期并在一个季度内,请重新输入!" else if year(t_end_date)<2005 or year(t_end_date)>2006 then display "分保区间要在2005-2006年度,请重新输入!" else if month(t_end_date)<>3 and month(t_end_date)<>6 and month(t_end_date)<>9 and month(t_end_date)<>12 then display "分保区间结束月度必须是每个季度的结束月份,请重新输入!" else if (month(t_end_date)=3 and day(t_end_date)<>31) or (month(t_end_date)=6 and day(t_end_date)<>30) or (month(t_end_date)=9 and day(t_end_date)<>30) or (month(t_end_date)=12 and day(t_end_date)<>31) then display "分保区间日期必须是该月份的最后一天,请重新输入!" else let check_flag='T' end if end if end if end if end if end while let start_date=t_start_date let end_date=t_end_date update sys_parameter set sys_param_eng=t_start_date where sys_param ="start_date" update sys_parameter set sys_param_eng=t_end_date where sys_param ="end_date" call disp() return 0end function{--报表生成function report_menu() clear screen call disp() Menu "报表生成" command "A:生成报表" call report_gen() command "B:报表下载" call report_unl() command "E:返回" call main_menu() call disp() END MENU end function}##########################################函数:data_mag()#功能:汇总下级单位数据\导出本单位数据--//最后修改:2005-12-1 13:31#########################################--数据管理function data_mag() define l_rtn smallint define l_branch char(6) clear screen call disp() Menu "数据管理" command "A:接收基础数据" "接收下级单位传来的分保基础数据信息" if data_in("注意:本处仅限于接收下级单位上报的基础数据,请输入下级单位机构代码:")=0 then error "接收成功!" else error "接收失败!" end if command "B:传出基础数据" "传出本数据库中全部分保基础数据" --down n line add by weixin at 2005-12-1 13:32 let l_rtn = f_checkValid() if l_rtn = 0 then call data_out() else error "存在未修正的问题保单,请进入'主菜单'->'B分保处理'-'C:问题保单分保处理'中处理" end if --up add over at 2005-12-1 13:32 --Note by weixin at 2005-12-1 13:32 call data_out() call disp() command "C:接收报表数据" "接收下级单位传来的分保报表,适用于江苏、上海" call report_in() call disp() command "D:接收CBPSV8接口数据" "接收CBPSV8系统传来的接口数据信息" if data_in("注意:本处仅限于接收CBPSV8接口数据,请输入运行CBPSV8接口程序的机构代码:")=0 then call f_rePremRateCal() --计算分保费率(reinsur_base.re_prem_rate) call get_dzList() --取订正信息 --add by weixin at 2005-7-18 15:15 call f_addRePremCal('2') --计算变更表中记载的加费分保费率 else error "接收失败!" end if call disp() command "G:接收自开发系统接口数据" "接收自开发系统传来的接口数据信息" if data_in("注意:本处仅限于接收自开发系统的接口数据,请输入机构代码:")=0 then call get_dzList() --取订正信息 --add by weixin at 2005-7-18 15:15 call f_addRePremCal('3') --计算变更表中记载的加费分保费率 else error "接收失败!" end if call disp() command "F:删除已接收的数据" "删除指定机构接收过的基础数据" prompt "请输入要删除数据所在的机构代码:" for l_branch select distinct 1 from rec_load where branch_no = l_branch if status=notfound then error "该机构代码",l_branch clipped,"下不存在已上载的数据,请确认..." continue menu end if call del_old(l_branch) error "删除完毕..." call disp() command "E:返回" "返回主菜单" call main_menu() call disp() END MENU end function##########################################函数:reinsur_get#功能:菜单功能,调用分保信息的采集函数reinsur_extract与计算函数reinsur_cal#########################################function reinsur_get() clear screen call disp() Menu "分保处理" Command "A:分保信息采集" "只采集picc2库上的分保信息" call reinsur_extract()--调用采集函数 next option "B:分保金额计算" command "B:分保金额计算" "计算采集完毕的分保信息" call reinsur_cal() --分保数据计算 next option "C:问题保单分保处理" command "C:问题保单分保处理" "针对程序无法自动处理的保单进行处理,比如批改加费分保费计算..." call re_problemCal() --分保数据计算 --error "指定保单处理完毕" next option "E:返回" command "E:返回" exit menu END MENU end function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -