You don't need FINDSET to get the count and in the SETFILTER you cannot usse RecWoComponents. Quantity Per
Try below code
RecWOLines.SETRANGE(RecWOLines.Status,RecProdOrder.Status);
RecWOLines.SETRANGE(RecWOLines."Prod. Order No.",RecProdOrder."No.");
IF RecWOLines.FIND('-') THEN
RemQty := RecWOLines."Remaining Qty. (Base)";
RecWoComponents.RESET;
RecWoComponents.SETCURRENTKEY(RecWoComponents.Status,RecWoComponents."Prod. Order No.",
RecWoComponents."Prod. Order Line No.", RecWoComponents."Line No.");
RecWoComponents.SETRANGE(RecWoComponents.Status,RecProdOrder.Status);
RecWoComponents.SETRANGE(RecWoComponents."Prod. Order No.",RecProdOrder."No.");
RecWoComponents.SETFILTER(RecWoComponents."Quantity per",'<>%1',0);
RecWoComponents.SETFILTER(RecWoComponents."Remaining Qty. (Base)",'>%1',
(1*RemQty));
//the above code is not working .
test1 := RecWoComponents.COUNT;
IF (RecWoComponents.COUNT > 0) THEN
IF RecWoComponents.FINDFIRST THEN
BEGIN
IF CONFIRM(Text018) THEN
frmRel_prodOrd.show_retn_comp(RecProdOrder."No.");//codeunit calling for displaying excess material
END;