$PBExportHeader$f_reportlist_array.srf global type f_reportlist_array from function_object end type forward prototypes global subroutine f_reportlist_array (string arg_reportliststr) end prototypes global subroutine f_reportlist_array (string arg_reportliststr);Long ll_cnt,cnt String ls_reportstr Long ll_reportid Long local_report[] ls_reportstr = arg_reportliststr IF Trim(arg_reportliststr) = '' THEN local_report[1] = 0 ELSE IF sys_power_issuper OR arg_reportliststr = '0' THEN sys_user_reportstr = '0' SELECT count(*) INTO :cnt FROM u_report_user; IF sqlca.SQLCode <> 0 OR cnt = 0 THEN ll_cnt++ local_report[ll_cnt] = 0 ELSE DECLARE cur_report CURSOR FOR SELECT u_report_user.reportid FROM u_report_user ; OPEN cur_report; FETCH cur_report INTO :ll_reportid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ local_report[ll_cnt] = ll_reportid FETCH cur_report INTO :ll_reportid; LOOP CLOSE cur_report; END IF ELSE sys_user_reportstr = arg_reportliststr DO WHILE Len(ls_reportstr) <> 1 ls_reportstr = Replace( ls_reportstr, 1, 1, '' ) ll_reportid = Long(Left(ls_reportstr,Pos(ls_reportstr,',',1) - 1)) ll_cnt++ local_report[ll_cnt] = ll_reportid ls_reportstr = Replace ( ls_reportstr, 1, Pos(ls_reportstr,',',1) - 1, '' ) LOOP END IF END IF sys_user_report = local_report end subroutine