Files
MBS/TEST/MultipleDialogs/MultiMasterDetail/CityList.4gl
T

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