123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- $PBExportHeader$f_storage_array.srf
- global type f_storage_array from function_object
- end type
- forward prototypes
- global subroutine f_storage_array (string arg_storagestr, string arg_storagestr_new, string arg_storagestr_audit)
- end prototypes
- global subroutine f_storage_array (string arg_storagestr, string arg_storagestr_new, string arg_storagestr_audit);Long ll_cnt,cnt,ll_cnt_new,ll_cnt_audit
- String ls_storagestr,ls_storagestr_new,ls_storagestr_audit
- Long ll_storageid
- Long local_storageid[],local_storageid_new[],local_storageid_audit[]
- ls_storagestr = arg_storagestr
- ls_storagestr_new = arg_storagestr_new
- ls_storagestr_audit = arg_storagestr_audit
- IF Trim(arg_storagestr) = '' OR Trim(arg_storagestr) = '-1' THEN
- local_storageid[1] = 0
- ELSE
- IF sys_power_issuper OR arg_storagestr = '0' THEN
-
- SELECT count(*) INTO :cnt
- FROM u_storage;
- IF sqlca.SQLCode <> 0 OR cnt = 0 THEN
- ll_cnt++
- local_storageid[ll_cnt] = 0
- ELSE
- DECLARE cur_storage CURSOR FOR
- SELECT u_storage.storageID
- FROM u_storage
- Order By u_storage.storageID Desc;
-
- OPEN cur_storage;
- FETCH cur_storage INTO :ll_storageid;
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- local_storageid[ll_cnt] = ll_storageid
- FETCH cur_storage INTO :ll_storageid;
- LOOP
-
- CLOSE cur_storage;
- END IF
- ELSE
- DO WHILE Len(ls_storagestr) <> 1
- ls_storagestr = Replace( ls_storagestr, 1, 1, '' )
- ll_storageid = Long(Left(ls_storagestr,Pos(ls_storagestr,',',1) - 1))
- ll_cnt++
- local_storageid[ll_cnt] = ll_storageid
-
- ls_storagestr = Replace ( ls_storagestr, 1, Pos(ls_storagestr,',',1) - 1, '' )
- LOOP
- END IF
- END IF
- IF Trim(arg_storagestr_new) = '' OR Trim(arg_storagestr_new) = '-1' THEN
- local_storageid_new[1] = 0
- ELSE
- IF sys_power_issuper OR arg_storagestr_new = '0' THEN
-
- SELECT count(*) INTO :cnt
- FROM u_storage;
- IF sqlca.SQLCode <> 0 OR cnt = 0 THEN
- ll_cnt_new++
- local_storageid_new[ll_cnt_new] = 0
- ELSE
- DECLARE cur_storage_new CURSOR FOR
- SELECT u_storage.storageID
- FROM u_storage
- Order By u_storage.storageID Desc;
-
- OPEN cur_storage_new;
- FETCH cur_storage_new INTO :ll_storageid;
- DO WHILE sqlca.SQLCode = 0
- ll_cnt_new++
- local_storageid_new[ll_cnt_new] = ll_storageid
- FETCH cur_storage_new INTO :ll_storageid;
- LOOP
-
- CLOSE cur_storage_new;
- END IF
- ELSE
- DO WHILE Len(ls_storagestr_new) <> 1
- ls_storagestr_new = Replace( ls_storagestr_new, 1, 1, '' )
- ll_storageid = Long(Left(ls_storagestr_new,Pos(ls_storagestr_new,',',1) - 1))
- ll_cnt_new++
- local_storageid_new[ll_cnt_new] = ll_storageid
-
- ls_storagestr_new = Replace ( ls_storagestr_new, 1, Pos(ls_storagestr_new,',',1) - 1, '' )
- LOOP
- END IF
- END IF
- IF Trim(arg_storagestr_audit) = '' OR Trim(arg_storagestr_audit) = '-1' THEN
- local_storageid_audit[1] = 0
- ELSE
- IF sys_power_issuper OR arg_storagestr_audit = '0' THEN
-
- SELECT count(*) INTO :cnt
- FROM u_storage;
- IF sqlca.SQLCode <> 0 OR cnt = 0 THEN
- ll_cnt_audit++
- local_storageid_audit[ll_cnt_audit] = 0
- ELSE
- DECLARE cur_storage_audit CURSOR FOR
- SELECT u_storage.storageID
- FROM u_storage
- Order By u_storage.storageID Desc;
-
- OPEN cur_storage_audit;
- FETCH cur_storage_audit INTO :ll_storageid;
- DO WHILE sqlca.SQLCode = 0
- ll_cnt_audit++
- local_storageid_audit[ll_cnt_audit] = ll_storageid
- FETCH cur_storage_audit INTO :ll_storageid;
- LOOP
-
- CLOSE cur_storage_audit;
- END IF
- ELSE
- DO WHILE Len(ls_storagestr_audit) <> 1
- ls_storagestr_audit = Replace( ls_storagestr_audit, 1, 1, '' )
- ll_storageid = Long(Left(ls_storagestr_audit,Pos(ls_storagestr_audit,',',1) - 1))
- ll_cnt_audit++
- local_storageid_audit[ll_cnt_audit] = ll_storageid
-
- ls_storagestr_audit = Replace ( ls_storagestr_audit, 1, Pos(ls_storagestr_audit,',',1) - 1, '' )
- LOOP
- END IF
- END IF
- sys_user_storageid = local_storageid
- //sys_user_storageid_new = local_storageid_new
- //sys_user_storageid_audit = local_storageid_audit
- end subroutine
|