⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reinsur.4gl

📁 根据指定的机构信息
💻 4GL
📖 第 1 页 / 共 2 页
字号:
################################################################################   中国人寿股份公司对中再\慕再分保系统#       AUTHOR:     LIUHAIXIAO#       VER 1.0#   VER 1.1 #       1 增加对未满18周岁儿童的保额限定#       2 修正加费处理有误的问题#       3 修正撤单、复效分保金额误用保险金额的错误#   Ver 1.2 增加对机构的处理,包括#       1 机构管理#       2 自动生成机构关系树#       3 按指定机构生成分保账单#   Ver 1.3 #       1 增加对70、71、72岁分保费率的处理#       2 修改以投保年龄与16岁进行比较的处理方法,改为当前年龄#       3 增加对环增变量REINSURDB指定数据库名称的处理#       4 修正接收机构时报的重复错误#       5 增加对CBPSV8接口数据的处理:#         (1)接口数据接收;(2)计算分保费率;(3)对订正及撤消进行处理#       6 修正变更数据抽取时退保保单漏取的错误#   Ver 1.4#       1 修正首期分保时净分保费计算时采用的用分保费*选择折扣的错误,改为-分保费#       2 增加对本采集区间内做的订正处理的保单的提示功能,并同步修改操作手册#         对订正及撤消情况的处理进行指引#   Ver 1.5#       1 针对分公司运行人员提出的要求增加重复接收下级机构数据的功能#   Ver 1.6#       1 应再保何欣的要求,对变更时做过批改加费处理的保单进行记载#       2 将处理过程中的4位小数均改为2位#       3 修改转入转出标志#   Ver 1.7 #       1 2005-12-1 增加传出基础数据时对未修正保单的检查,如果存在未修正的保单,则不可传出#       2 2005-12-1 增加进行报表处理时对未修正保单的检查,如果存在未修正的保单,则不可执行#       3 2005-12-6 应再保部需求变更1,要求去掉账单首行机构名称的留位#       4 2005-12-6 应再保部需求变更2,要求去掉账单末行分入公司的空位#   未解决问题:#		2 各SQL处理均需要有优化的要求#升级数据据时,请注意系统主程序的升级#数据库升级办法#delete from sys_parameter where sys_param='dbVersion';#insert into sys_parameter values ("dbVersion",NULL,"数据库版本","1.6")#程序升级办法,修改l_Ver值#let l_ver='最新的数据库版本'###############################################################################GLOBALS    define  start_date          date          	--统计开始日期    define  end_date            date           	--统计结束日期    define  ratio_51            decimal(8,2)  	--分保比例    define  ratio_19            decimal(8,2)  	--分保比例    define  chg_ratio_51        decimal(8,2)    --分保手续费比例    define  chg_ratio_19        decimal(8,2)    --分保手续费比例    define  home_path           varchar(60)     --用户目录路径    define  g_branch_no         char(6)         --操作员所在级别单位代码    define  g_amnt18_limit      decimal(12,2)   --未成年人age<18保额限额    define  g_logFileName       char(50)    define  g_reDataBase        char(20)END GLOBALSMAIN    define i int    define l_branch char(6)    define l_Ver    char(10)    define l_str    char(78)    define l_ans    char       --prompt接受字符    define l_rtn    smallint   --函数反回结果    options message line    24,            error   line    24,            comment line    24,            prompt  line    24,            form    line    5,            input   wrap            defer INTERRUPT        clear screen    let l_Ver = '1.7'     let l_str = "|              VERSION ",l_Ver[1,10],"                |"    display "+------------------------------------------------+" at 9,16    display "|                                                |" at 10,16    display "|                                                |" at 11,16    display "|      中国人寿股份公司分保系统                  |" at 12,16    display "|                                                |" at 13,16    display l_str at 14,16    display "|                                                |" at 15,16    display "|                                                |" at 16,16    display "+------------------------------------------------+" at 17,16    sleep 1                  LET home_path=fgl_getenv("REINSURDIR") clipped    --add by weixin at 2005-6-17 8:55 容错处理    if  home_path is null    then        let home_path=fgl_getenv("HOEM")    end if    let g_logFileName = home_path clipped,"/reinsur.log"    call startlog(g_logFileName)        let g_reDataBase = fgl_getenv("REINSURDB")    if  g_reDataBase is null    then        let g_reDataBase = "reinsur"    end if        whenever error continue        database g_reDataBase    whenever error stop    if  sqlca.sqlcode !=0    then        let l_str = "选择再保数据库",g_reDataBase clipped                   ,"失败,sqlcode:",sqlca.sqlcode using "-<<<<<","按回车键继续..."        call errorlog(l_str clipped)        prompt l_str clipped for char l_ans        exit program    end if            --检查数据库版本与系统版本是否一致    call check_ver(l_Ver)         returning l_rtn,l_str    if  l_rtn=0    then        let l_str="程序版本:",l_Ver clipped," - 数据库版本:",l_str clipped        display l_str clipped at 21,16 attribute(reverse)        prompt "程序与数据库版本不匹配,检查是否使用了一致的版本,请按回车键继续..." for char l_ans        exit program    end if    while true          clear screen          display "请输入要处理单位的机构代码(如辽宁省沈阳市公司则为210100,辽宁省本省则为210000)" at 21,1          display "请确保输入的机构代码正确有效,该代码将作为输入文件的区分标志" at 22,1          prompt "要处理机构代码:" for g_branch_no          if  length(g_branch_no)=6          then              select distinct 1                from branch                where balance_branch = g_branch_no              if  status = notfound              then                  error "机构代码输入有误或不是结算单位,请重新输入!"                  sleep 2              else                  exit while              end if          else              error "机构代码输入有误,请重新输入!"              sleep 2          end if    end while    clear screen    --取得限额    select sys_param_num       into g_amnt18_limit      from sys_parameter     where sys_param='amnt18_limit'    --down add by weixin at 2005-6-1 10:29    --对于北京、上海、广州、深圳4市的分保时年龄未满18周岁保额限额固定为100000    --其它城市的可自调    --110000、310000、440100、440200    if  g_branch_no[1,2] ='11'  --北京     or g_branch_no[1,2] ='31'  --上海     or g_branch_no[1,4] ='4402'--深圳      or g_branch_no[1,4] ='4401'--广州    then        if  g_amnt18_limit!=100000        then            let l_str = "您的未成年人分保限额应该是100000,目前是",g_amnt18_limit,",请注意核查"            error l_str            prompt "按回车键继续" for char l_ans        end if    end if    --add at 2005-6-1 10:29 Over    select sys_param_eng       into start_date      from sys_parameter     where sys_param='start_date'    if status!=0 then        error "数据库操作错误SQLCODE=",status,",分保区间开始日期错误"    sleep 1    end if        select sys_param_eng       into end_date      from  sys_parameter     where sys_param='end_date'    if  status!=0 then         error "数据库操作错误SQLCODE=",status,",分保区间开始日期错误"    sleep 1    end if             select count(*) into i    from insur_policies    where pol_code='S51'    if i=1 then      select reinsur_ratio into ratio_51      from insur_policies      where pol_code='S51'      if status!=0 then          error "数据库操作错误SQLCODE=",status,",S51分保比例定义错误"         sleep 1      end if    else let ratio_51=0    end if         select count(*) into i    from insur_policies    where pol_code='S19'    if i=1 then      select reinsur_ratio into ratio_19      from insur_policies      where pol_code='S19'      if status!=0 then          error "数据库操作错误SQLCODE=",status,",S19分保比例定义错误"         sleep 1      end if    else let ratio_19=0    end if         select count(*) into i    from insur_policies    where pol_code='S19'    if i=1 then       select reinsur_chg_ratio into chg_ratio_19      from insur_policies      where pol_code='S19'      if status!=0 then          error "数据库操作错误SQLCODE=",status,",S19分保手续费定义错误"         sleep 1      end if    else let chg_ratio_19=0    end if         select count(*) into i    from insur_policies    where pol_code='S51'    if i=1 then      select chose_discount into chg_ratio_51 --mdy by weixin at 2005-5-19 16:56      from insur_policies      where pol_code='S51'      if status!=0 then          error "数据库操作错误SQLCODE=",status,",S51选择折扣定义错误"      sleep 1      end if    else let chg_ratio_51=0    end if     whenever error stop            If UPSHIFT(fgl_getenv("DBDATE"))!="Y4MD/" Then        display "环境变量DBDATE设置错,请设置为Y4MD/"        Exit PROGRAM    End If        while 1        CALL MAIN_MENU()        call disp()    end whileEND MAIN##########################################函数:main_menu()#功能:程序主菜单#########################################FUNCTION main_menu()    define l_rtn smallint    clear screen    call disp()    Menu "主菜单"        Command "A:参数设置" "设置分保的起止时间"            menu "参数设置"            command "A:设置分保区间" "设置本次分保的分保区间"                    call set_reTime()                         returning l_rtn                    case l_rtn                    when 0                         error "修改成功!"                    when 1                         error "用户放弃!"                    end case                    call disp()            command "B:未成年保额" "设置本地区规定的未成年人投保限额"                    call set_reAmntLimit()                         returning l_rtn                    case l_rtn                    when 0                         error "修改成功!"                    when 1                         error "用户放弃!"                    end case                    call disp()            command "C:机构管理" "维护再保库中的机构代码关系,形成以本级机构为最高机构的树型结构"                    call branchMag_menu()                    call disp()            command "E:返回上一层" "退出账单管理"                    exit menu            end menu        command "B:分保处理" "采集并计算分保数据,只有存在Picc2库的单位才可运行"                 call  reinsur_get()        command "C:报表及账单管理" "生成分保报表及账单"            menu "报表及账单管理"            before menu                      --down n line add by weixin at 2005-12-1 13:32

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -