DO WITH FRAME {&FRAME-NAME}:
IF SESSION:SET-WAIT-STATE("GENERAL") THEN.
CLOSE QUERY CompListing.
DEFINE VARIABLE Q1String AS CHARACTER NO-UNDO.
DEFINE VARIABLE h1Query AS HANDLE NO-UNDO.
DEFINE VARIABLE strWhere AS CHARACTER NO-UNDO.
IF rs-Filter:SCREEN-VALUE = "2" THEN
strWhere = "Company.SalesmanID = ~"" + cb-Salesman:SCREEN-VALUE + "~"".
IF TRIM(scr-Search:SCREEN-VALUE) <> "" THEN
CASE TRIM(cb-Search:SCREEN-VALUE):
WHEN "Name" THEN
strWhere = strWhere + MIN(strWhere, " AND ") + " Company.Name BEGINS ~"" + TRIM(scr-Search:SCREEN-VALUE) + "~"".
WHEN "City" THEN
strWhere = strWhere + MIN(strWhere, " AND ") + " Company.City BEGINS ~"" + TRIM(scr-Search:SCREEN-VALUE) + "~"".
WHEN "State" THEN
strWhere = strWhere + MIN(strWhere, " AND ") + " Company.State BEGINS ~"" + TRIM(scr-Search:SCREEN-VALUE) + "~"".
WHEN "Zip" THEN
strWhere = strWhere + MIN(strWhere, " AND ") + " Company.Zip BEGINS ~"" + TRIM(scr-Search:SCREEN-VALUE) + "~"".
END CASE.
IF t-badAdd:SCREEN-VALUE = "YES" THEN
strWhere = strWhere + MIN(strWhere, " AND ") + " Company.BadAddress = TRUE ".
Q1String = SUBSTITUTE("FOR EACH Company WHERE &1 NO-LOCK BY Company.Name BY Company.City INDEXED-REPOSITION", strWhere).
IF tMSG:SCREEN-VALUE = "YES" THEN
MESSAGE Q1STring
VIEW-AS ALERT-BOX INFO BUTTONS OK.
h1Query = QUERY CompListing:HANDLE.
h1Query:QUERY-PREPARE(Q1String).
h1Query:QUERY-OPEN().
/* I'm guessing something like this*/
/*h1Query:reposition-to-row Something*/
IF SESSION:SET-WAIT-STATE("") THEN.
APPLY "value-changed" TO CompListing.
END.
END PROCEDURE.