123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- $PBExportHeader$f_area_array.srf
- global type f_area_array from function_object
- end type
- forward prototypes
- global subroutine f_area_array (ref string arg_areastr)
- end prototypes
- global subroutine f_area_array (ref string arg_areastr);Long ll_cnt,cnt
- String ls_areastr
- Long ll_areaid
- Long local_areaid[]
- ls_areastr = arg_areastr
- IF Trim(arg_areastr) = '' THEN
- local_areaid[1] = 0
- ELSE
- IF sys_power_issuper OR arg_areastr = '0' THEN
- sys_areastr = '0'
-
- SELECT count(*) INTO :cnt
- FROM u_Cusarea;
- IF sqlca.SQLCode <> 0 OR cnt = 0 THEN
- ll_cnt++
- local_areaid[ll_cnt] = 0
- ELSE
- DECLARE cur_area CURSOR FOR
- SELECT u_Cusarea.CusareaID
- FROM u_Cusarea ;
-
- OPEN cur_area;
-
- FETCH cur_area INTO :ll_areaid;
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- local_areaid[ll_cnt] = ll_areaid
- FETCH cur_area INTO :ll_areaid;
- LOOP
-
- CLOSE cur_area;
- END IF
- ELSE
- sys_areastr = arg_areastr
- DO WHILE Len(ls_areastr) <> 1
- ls_areastr = Replace( ls_areastr, 1, 1, '' )
- ll_areaid = Long(Left(ls_areastr,Pos(ls_areastr,',',1) - 1))
- ll_cnt++
- local_areaid[ll_cnt] = ll_areaid
-
- ls_areastr = Replace ( ls_areastr, 1, Pos(ls_areastr,',',1) - 1, '' )
- LOOP
- END IF
- END IF
- sys_areaid = local_areaid
- end subroutine
|