170 lines
5.1 KiB
Plaintext
170 lines
5.1 KiB
Plaintext
# 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
|