Instead of combining both conditions in the WHERE phrase (which will probably kill any chance of using an index), why not define a query and open it depending on the CB-Customer.
DEFINE QUERY q-Customer FOR Customer.
IF CB-Customer = 0 THEN DO:
OPEN QUERY q-Customer
FOR EACH Customer
WHERE Customer.CustNum >= 0
NO-LOCK
.
END.
ELSE DO:
OPEN QUERY q-Customer
FOR EACH Customer
WHERE Customer.CustNum = CB-Customer
NO-LOCK
.
END.
GET FIRST q-Customer.
REPEAT WHILE AVAILABLE Customer:
/* Whatever you want to do with the Customer record, for example: */
DISPLAY Customer.
GET NEXT q-Customer.
END.
You can do a lot of fancy tricks with queries, especially dynamic ones, but this should work in pretty much every recent version of OpenEdge.