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

📄 reinsur.4gl

📁 根据指定的机构信息
💻 4GL
📖 第 1 页 / 共 2 页
字号:
                     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 + -