how about something like this?
local booleanvar keep := true;
IF {?Site Selection} <> '*' THEN
IF {mp_bdsPOApproveReceiptComparison;1.POSite} <> {?Site Selection} THEN
keep := false;
IF {?Category 1 } <> '*' THEN
IF {mp_bdsPOApproveReceiptComparison;1.CatCodesCode1} <> {?Category 1 }
keep := false
ELSE
keep := true;
keep
typically, the record selection want to know to accept or reject a record, so it just needs to see true or false at the end of the formula
HTH