project BLF > class BStoredSearch > method CreateAndDeleteStoredSearches
Parameters
Internal usage
BLF
program code (program1/bstoredsearch.p)
assign oiReturnStatus = -98
vcStoredSearchesToDelete = ""
viWarningStatus = 0
vlStart1 = false.
<M-97 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>
if viFcReturnSuper < 0
then do:
assign oiReturnStatus = viFcReturnSuper.
return.
end.
if viFcReturnSuper > 0 and
viWarningStatus = 0
then assign viWarningStatus = viFcReturnSuper.
for each tStoredSearchesToDelete:
assign vlStillInUse = false.
if not vlStart1
then do:
<Q-76 run StoredSearchById (Start) in BStoredSearch >
assign vlStart1 = true.
end.
<Q-8 run StoredSearchById (all) (Read) (NoCache)
(input ?, (CompanyId)
input tStoredSearchesToDelete.tiStoredSearch_ID, (StoredSearchId)
output dataset tqStoredSearchById) in BStoredSearch >
for each tqStoredSearchById:
if not can-do(tStoredSearchesToDelete.tcCustomFieldRowId, entry(2, tqStoredSearchById.tc_rowid))
then do:
assign vlStillInUse = true.
leave.
end.
end.
if not vlStillInUse
then do:
if vcStoredSearchesToDelete <> ""
then assign vcStoredSearchesToDelete = vcStoredSearchesToDelete + chr(4).
assign vcStoredSearchesToDelete = vcStoredSearchesToDelete + string(tStoredSearchesToDelete.tiStoredSearch_ID).
end.
end.
if vlStart1
then do:
<Q-23 run StoredSearchById (Stop) in BStoredSearch >
end.
if vcStoredSearchesToDelete <> ""
then do:
<M-72 run DataLoad
(input '' (icRowids),
input vcStoredSearchesToDelete (icPkeys),
input '' (icObjectIds),
input '' (icFreeform),
input false (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>
if viFcReturnSuper < 0
then do:
assign oiReturnStatus = viFcReturnSuper.
return.
end.
if viFcReturnSuper > 0 and
viWarningStatus = 0
then assign viWarningStatus = viFcReturnSuper.
for each tStoredSearch:
assign tStoredSearch.tc_Status = "D".
end.
end.
assign vlStart1 = false.
for each tStoredSearchesToCreate where
tStoredSearchesToCreate.tiStoredSearch_ID = 0:
find first tStoredSearch where
tStoredSearch.StoredSearchLookupRef = tStoredSearchesToCreate.tcStoredSearchLookupRef and
tStoredSearch.StoredSearchName = tStoredSearchesToCreate.tcStoredSearchName and
(tStoredSearch.Role_ID = 0 or
tStoredSearch.Role_ID = ?) and
(tStoredSearch.Usr_ID = 0 or
tStoredSearch.Usr_ID = ?)
no-error.
if available tStoredSearch
then do:
assign tStoredSearchesToCreate.tiStoredSearch_ID = tStoredSearch.StoredSearch_ID.
if tStoredSearch.tc_Status = "D"
then assign tStoredSearch.tc_Status = "".
next.
end.
if not vlStart1
then do:
<Q-47 run GetStoredSearch (Start) in BStoredSearch >
assign vlStart1 = true.
end.
<Q-19 run GetStoredSearch (all) (Read) (NoCache)
(input tStoredSearchesToCreate.tcStoredSearchLookupRef, (Reference)
input ?, (CompanyId)
input ?, (RoleID)
input ?, (UserID)
input tStoredSearchesToCreate.tcStoredSearchName, (Name)
output dataset tqGetStoredSearch) in BStoredSearch >
find first tqGetStoredSearch where
tqGetStoredSearch.tcStoredSearchLookupRef = tStoredSearchesToCreate.tcStoredSearchLookupRef and
tqGetStoredSearch.tcStoredSearchName = tStoredSearchesToCreate.tcStoredSearchName and
(tqGetStoredSearch.tiRole_ID = 0 or
tqGetStoredSearch.tiRole_ID = ?) and
(tqGetStoredSearch.tiUsr_ID = 0 or
tqGetStoredSearch.tiUsr_ID = ?)
no-error.
if available tqGetStoredSearch
then do:
assign tStoredSearchesToCreate.tiStoredSearch_ID = tqGetStoredSearch.tiStoredSearch_ID.
next.
end.
<M-34 run AddDetailLine
(input 'StoredSearch' (icTable),
input '' (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BStoredSearch>
if viFcReturnSuper < 0
then do:
assign oiReturnStatus = viFcReturnSuper.
return.
end.
if viFcReturnSuper > 0 and
viWarningStatus = 0
then assign viWarningStatus = viFcReturnSuper.
assign tStoredSearch.StoredSearchLookupRef = tStoredSearchesToCreate.tcStoredSearchLookupRef
tStoredSearch.StoredSearchName = tStoredSearchesToCreate.tcStoredSearchName
tStoredSearchesToCreate.tiStoredSearch_ID = tStoredSearch.StoredSearch_ID.
end.
if vlStart1
then do:
<Q-75 run GetStoredSearch (Stop) in BStoredSearch >
end.
assign oiReturnStatus = viWarningStatus.