# Property of Four Js* # (c) Copyright Four Js 1995, 2019. All Rights Reserved. # * Trademark of Four Js Development Tools Europe Ltd # in the United States and elsewhere # # Four Js and its suppliers do not warrant or guarantee that these # samples are accurate and suitable for your purposes. Their inclusion is # purely for information purposes only. # Included in other demos to simplify compilation / link IMPORT FGL MsgBox FUNCTION select_city(prefix) DEFINE prefix STRING DEFINE filter STRING DEFINE r SMALLINT DEFINE name, state STRING DEFINE cityarr DYNAMIC ARRAY OF RECORD city_id INTEGER, city_name VARCHAR(50), city_state CHAR(2) END RECORD OPEN WINDOW w_city WITH FORM "CityList" DIALOG ATTRIBUTES(UNBUFFERED, FIELD ORDER FORM) INPUT BY NAME filter END INPUT DISPLAY ARRAY cityarr TO sr.* END DISPLAY BEFORE DIALOG IF LENGTH(prefix) < 3 THEN LET filter = prefix || "*" ELSE LET filter = "*" END IF CALL select_city_fill(DIALOG,filter,cityarr) CALL DIALOG.setActionActive("accept", DIALOG.getCurrentRow("sr")>0) ON ACTION filter CALL select_city_fill(DIALOG,filter,cityarr) CALL DIALOG.setActionActive("accept", DIALOG.getCurrentRow("sr")>0) ON ACTION accept LET name = cityarr[DIALOG.getCurrentRow("sr")].city_name LET state = cityarr[DIALOG.getCurrentRow("sr")].city_state LET r = 0 EXIT DIALOG ON ACTION cancel LET r = -1 EXIT DIALOG END DIALOG CLOSE WINDOW w_city RETURN r, name, state END FUNCTION FUNCTION select_city_fill(d,filter, cityarr) DEFINE d ui.Dialog DEFINE filter STRING DEFINE cityarr DYNAMIC ARRAY OF RECORD city_id INTEGER, city_name VARCHAR(50), city_state CHAR(2) END RECORD DEFINE i INTEGER LET i = 0 CALL cityarr.clear() &define ADD_CITY(name, state) \ LET cityarr[i:=i+1].city_id = i \ LET cityarr[i].city_name = name \ LET cityarr[i].city_state = state ADD_CITY("Austin", "TX") ADD_CITY("Boston", "MA") ADD_CITY("Chicago", "IL") ADD_CITY("Dallas", "TX") ADD_CITY("Denver", "CO") ADD_CITY("Detroit", "MI") ADD_CITY("Houston", "TX") ADD_CITY("Las Vegas", "NV") ADD_CITY("Los Angeles", "CA") ADD_CITY("Miami", "FL") ADD_CITY("New York", "NY") ADD_CITY("Philadelphia", "PA") ADD_CITY("Phoenix", "AZ") ADD_CITY("Portland", "ME") ADD_CITY("San Antonio", "TX") ADD_CITY("San Diego", "CA") ADD_CITY("San Francisco", "CA") ADD_CITY("Washington", "DC") FOR i=1 TO cityarr.getLength() IF cityarr[i].city_name NOT MATCHES filter THEN CALL cityarr.deleteElement(i) LET i = i - 1 END IF END FOR CALL d.setCurrentRow("sr",1) END FUNCTION FUNCTION combo_fill_states(cb) DEFINE cb ui.ComboBox CALL cb.addItem("AK","Alaska") CALL cb.addItem("AL","Alabama") CALL cb.addItem("AR","Arkansas") CALL cb.addItem("AZ","Arizona") CALL cb.addItem("CA","California") CALL cb.addItem("CO","Colorado") CALL cb.addItem("CT","Connecticut") CALL cb.addItem("DC","D.C.") CALL cb.addItem("DE","Delaware") CALL cb.addItem("FL","Florida") CALL cb.addItem("GA","Georgia") CALL cb.addItem("HI","Hawaii") CALL cb.addItem("IA","Iowa") CALL cb.addItem("ID","Idaho") CALL cb.addItem("IL","Illinois") CALL cb.addItem("IN","Indiana") CALL cb.addItem("KS","Kansas") CALL cb.addItem("KY","Kentucky") CALL cb.addItem("LA","Louisiana") CALL cb.addItem("MA","Massachusetts") CALL cb.addItem("MD","Maryland") CALL cb.addItem("ME","Maine") CALL cb.addItem("MI","Michigan") CALL cb.addItem("MN","Minnesota") CALL cb.addItem("MO","Missouri") CALL cb.addItem("MS","Mississippi") CALL cb.addItem("MT","Montana") CALL cb.addItem("NC","North Carolina") CALL cb.addItem("ND","North Dakota") CALL cb.addItem("NE","Nebraska") CALL cb.addItem("NH","New Hampshire") CALL cb.addItem("NJ","New Jersey") CALL cb.addItem("NM","New Mexico") CALL cb.addItem("NV","Nevada") CALL cb.addItem("NY","New York") CALL cb.addItem("OH","Ohio") CALL cb.addItem("OK","Oklahoma") CALL cb.addItem("OR","Oregon") CALL cb.addItem("PA","Pennsylvania") CALL cb.addItem("PR","Puerto Rico") CALL cb.addItem("RI","Rhode Island") CALL cb.addItem("SC","South Carolina") CALL cb.addItem("SD","South Dakota") CALL cb.addItem("TN","Tennessee") CALL cb.addItem("TX","Texas") CALL cb.addItem("UT","Utah") CALL cb.addItem("VA","Virginia") CALL cb.addItem("VT","Vermont") CALL cb.addItem("WA","Washington") CALL cb.addItem("WI","Wisconsin") CALL cb.addItem("WV","West Virginia") CALL cb.addItem("WY","Wyoming") END FUNCTION