Basic Dialog Scripts
“OPEN” script:
'
jennessent.SampleDialogOpen
AVUpperLeft =
av.ReturnOrigin
AVCenter = avUpperLeft +
(av.ReturnExtent / (2@2))
halfDialogWidthHeight =
Self.ReturnExtent.ReturnSize / (2@2)
MovePoint = AVCenter -
halfDialogWidthHeight
Self.MoveTo(MovePoint.GetX, MovePoint.GetY)
theDialog = self
cmdOK =
theDialog.FindByName("cmdOK")
cmdCancel = theDialog.FindByName("cmdCancel")
“ACTIVATE” script:
'
jennessent.SampleDialogActivate
theDialog = self
cmdOK =
theDialog.FindByName("cmdOK")
cmdCancel = theDialog.FindByName("cmdCancel")
“CLOSE” script:
'
jennessent.SampleDialogClose
self.SetObjectTag(nil)
self.FindByName("cmdOK").SetObjectTag(nil)
self.FindByName("cmdCancel").SetObjectTag(nil)
“OK” script:
'
jennessent.SampleDialogOK
self.GetDialog.Close
“CANCEL” script:
'
jennessent.SampleDialogCancel
self.GetDialog.SetModalResult(nil)
self.GetDialog.Close

MultiChoice Scripts:
“MultiChoice” script:
'
Jennessent.SampleMultiChoice
if ((self.Count) <>
4) then
msgBox.Warning("Wrong number of parameters for MultiChoice Message Box;
expected 4.",
"Avenue
Runtime Error:")
return nil
end
theMessage =
self.Get(0)
theTitle =
self.Get(1)
theListOfLabels =
self.Get(2)
theListOfLists =
self.Get(3)
if
(theMessage.Count > 55) then
theWords =
theMessage.AsList
theCounter = 0
theTempMessage =
""
for each aWord in
theWords
theCounter =
theCounter+aWord.Count+1
if (theCounter
> 55) then
theTempMessage = theTempMessage+NL+aWord
theCounter =
0
else
theTempMessage = theTempMessage++aWord
end
end
theMessage =
theTempMessage.Trim
end
if
(theListOfLabels.Count <> theListOfLists.Count) then
msgBox.Info("Number of labels is not equal to number of lists! Bailing
out...", "Problem:")
return nil
end
' FOLLOWING JUST
BECAUSE DIALOG BECOMES TOO BIG FOR MANY SCREEN RESOLUTIONS
if
(theListOfLabels.Count > 20) then
msgBox.Info("Too
many lists! Please limit number of lists to <= 15...", "Problem:")
return nil
end
AllStrings = True
for each aLabel in
theListOfLabels
if
(aLabel.Is(String).Not) then
AllStrings =
False
break
end
end
if (AllStrings.Not)
then
msgBox.Info("Labels (parameter 2) must all be strings! Bailing out...",
"Problem:")
return nil
end
' IDENTIFY
LOCATIONS FOR DIALOG COMPONENTS
theBasicHeight = 55
theAddedHeight =
theListOfLabels.Count*30
FinalHeight =
theBasicHeight+theAddedHeight
theWidth = 428
theSize =
theWidth@FinalHeight
theRect =
Rect.Make(0@0, theSize)
AVUpperLeft =
av.ReturnOrigin
AVCenter =
avUpperLeft + (av.ReturnExtent / (2@2))
halfDialogWidthHeight = theSize / (2@2)
MovePoint =
AVCenter - halfDialogWidthHeight
theRect.SetOrigin(MovePoint.GetX@MovePoint.GetY)
' MAKE DIALOG
theDialog =
Dialog.MakeSized (True, True, True, True, theRect)
theDialog.SetModal(True)
theDialog.SetTitle(theTitle)
theControlPanel =
theDialog.GetControlPanel
' ADD COMBO BOXES
theYPos = 25
theCounter = 0
theListOfCbxNames =
{}
for each anIndex in
0..(theListOfLabels.Count-1)
theComboFasteners
= {#CONTROL_FASTENER_TOP, #CONTROL_FASTENER_LEFT,
#CONTROL_FASTENER_RIGHT,
#CONTROL_FASTENER_HEIGHT}
theCounter =
theCounter+1
theYPos =
theYPos+30
theComboBox =
ComboBox.Make
theComboBox.SetName("AComboBox"+anIndex.AsString)
theListOfCbxNames.Add(theComboBox.GetName)
theComboBox.SetLabel(theListOfLabels.Get(anIndex))
theControlPanel.Add(theComboBox, Rect.Make(7@theYPos, 321@114))
theComboBox.SetFasteners(theComboFasteners)
theComboBox.DefineFromList(theListOfLists.Get(anIndex))
end
theButtonFasteners
= {#CONTROL_FASTENER_TOP, #CONTROL_FASTENER_WIDTH,
#CONTROL_FASTENER_RIGHT,
#CONTROL_FASTENER_HEIGHT}
' ADD OK BUTTON
theOKScriptString =
"theList = {}"+NL
for each aCbxName
in theListOfCbxNames
theOKScriptString
= theOKScriptString+
"theList.Add(self.GetDialog.FindByName("+aCbxName.Quote+").GetCurrentValue)"+NL
end
theOKScriptString =
theOKScriptString+"self.GetDialog.SetModalResult(theList)"+NL+"self.GetDialog.Close"
theOKScriptName =
"temp_cbx_ok"
theOKBaseName =
"temp_cbx_ok"
theOKCounter = 0
while(av.FindDoc(theOKScriptName) <> nil)
theOKCounter =
theOKCounter+1
theOKScriptName =
theOKBaseName+theOKCounter.AsString
end
theOKSEd =
SEd.MakeFromSource(theOKScriptString, theOKScriptName)
theOKButton =
LabelButton.Make
theOKButton.SetName("cmdOK")
theOKButton.SetLabel("OK")
theControlPanel.Add(theOKButton, Rect.Make(344@14, 71@24))
theOKButton.SetFasteners(theButtonFasteners)
theOKButton.SetClick(theOKScriptName)
' ADD CANCEL BUTTON
theCancelScriptString =
"self.GetDialog.SetModalResult(nil)"+NL+"self.GetDialog.Close"
theCancelScriptName
= "temp_cbx_Cancel"
theCancelBaseName =
"temp_cbx_Cancel"
theCancelCounter =
0
while(av.FindDoc(theCancelScriptName) <> nil)
theCancelCounter
= theCancelCounter+1
theCancelScriptName = theCancelBaseName+theCancelCounter.AsString
end
theCancelSEd =
SEd.MakeFromSource(theCancelScriptString, theCancelScriptName)
theCancelSEd.Compile
theCancelButton =
LabelButton.Make
theCancelButton.SetName("cmdCancel")
theCancelButton.SetLabel("Cancel")
theCancelButton.SetClick(theCancelScriptName)
theControlPanel.Add(theCancelButton, Rect.Make(344@47, 71@24))
theCancelButton.SetFasteners(theButtonFasteners)
' ADD MESSAGE
theMessageLabel =
TextLabel.Make
theMessageLabel.SetName("lblMessage")
theMessageLabel.SetLabel(theMessage)
theMessageLabel.SetFasteners({#CONTROL_FASTENER_TOP,
#CONTROL_FASTENER_WIDTH, #CONTROL_FASTENER_LEFT,
#CONTROL_FASTENER_HEIGHT})
theControlPanel.Add(theMessageLabel, Rect.Make(5@5, 328@45))
theOutput =
theDialog.Open
theDialog = nil
av.GetProject.RemoveDoc(theCancelSEd)
av.GetProject.RemoveDoc(theOKSEd)
return theOutput
“MultiChoice Sample Code” script:
'
Jennessent.SampleMultiChoice_sample_code
' PASTE THE
FOLLOWING LINE INTO THE TOP OF YOUR SCRIPT SOMEWHERE BEFORE THE
' MULTI-CHOICE BOX
GETS CALLED:
MsgMultiChoice =
av.FindScript("Jennessent.SampleMultiChoice")
' THIS MESSAGE BOX
REQUIRES 4 PARAMETERS:
' 0) THE MESSAGE TO
SHOW ABOVE THE DROP-DOWN BOXES: MUST BE A STRING
' 1) THE DIALOG
TITLE: MUST BE A STRING
' 2) A LIST OF
LABELS FOR EACH DROP-DOWN BOX: MUST CONTAIN ALL STRING LABELS
' 3) A LIST OF
LISTS, TO FILL THE DROP-DOWN BOXES: THESE LISTS CAN CONTAIN ANY
OBJECTS
' USE THE FOLLOWING
LINE TO OPEN A MULTI-CHOICE BOX AND RETURN A LIST OF SELECTED ITEMS:
' theChoices =
MsgMultiChoice.DoIt({theMessage, theTitle, theListOfLabels,
theListOfLists})
' FOR EXAMPLE, THE
FOLLOWING CODE WILL GENERATE A MULTI-CHOICE MESSAGE BOX CONTAINING 6
DROP-DOWN LISTS
' AND RETURN THE 6
SELECTED VALUES IN A SINGLE LIST. IT WILL THEN SHOW YOU A LIST OF THE
SELECTED VALUES.
theMessage = "This
is a sample message:"
theTitle = "This is
a sample MultiChoice Title:"
theListOfLabels =
{"Arizona", "New Mexico", "California", "Utah", "Colorado", "Nevada"}
theAZList = {5, 10,
15, 20, 25, 30, 35}
theNewMexicoList =
theAZList.Clone
theCaliforniaList =
theAZList.Clone
theUtahList =
theAZList.Clone
theColoradoList =
theAZList.Clone
theNevadaList =
theAZList.Clone
theListOfLists =
{theAZList, theNewMexicoList, theCaliforniaList, theUtahList,
theColoradoList, theNevadaList}
' GET CHOICES
theChoices =
MsgMultiChoice.DoIt({theMessage, theTitle, theListOfLabels,
theListOfLists})
if (theChoices =
nil) then return nil end
' MAKE REPORT OF
CHOICES
theReport = ""
for each anIndex in
0..(theListOfLabels.Count-1)
theReport =
theReport+theListOfLabels.Get(anIndex)+": Choice =
"+theChoices.Get(anIndex).AsString+NL
end
msgBox.Report(theReport, "Report of Choices:")

Progress Meter Scripts
“Open” script:
'
Jennessent.SampleProgressMeter_Open
theProject =
av.GetProject
icnProgressLine =
self.FindByName("icnProgressLine")
panelProgressLine =
self.FindByName("panelProgressLine")
lblTimeLeft =
self.FindByName("lblTimeLeft")
lblCurrentTime =
self.FindByName("lblCurrentTime")
lblBeginTime =
self.FindByName("lblBeginTime")
lblIndex =
self.FindByName("lblIndex")
lblPercentDone =
self.FindByName("lblPercentDone")
lblRecordNumber =
self.FindByName("lblRecordNumber")
AVUpperLeft =
av.ReturnOrigin
AVCenter =
avUpperLeft + (av.ReturnExtent / (2@2))
aDialog = self
halfDialogWidthHeight = aDialog.ReturnExtent.ReturnSize / (2@2)
MovePoint =
AVCenter - halfDialogWidthHeight
aDialog.MoveTo(MovePoint.GetX, MovePoint.GetY)
lblCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)
lblTimeLeft.SetLabel ("Estimated time remaining: ---:---:---")
lblPercentDone.SetLabel ("(00.0%)")
lblBeginTime.SetLabel("---:---")
lblRecordNumber.SetLabel("-----")
lblIndex.SetLabel("-----")
self.SetTitle("Current Status...")
icnProgressLine.ResizeTo(0,13) ' START GREEN PROGRESS BAR
AT 0 PIXELS WIDE
“EstTimeLeft” script:
'
Jennessent.SampleProgressMeter_EstTimeLeft
' ESTIMATED TIME
LEFT CODE
BeginTime =
self.Get(0)
theRecordNumber =
self.Get(1)
theRecordCount =
self.Get(2)
theProgressDialog =
self.Get(3)
thePDTimeLeft =
self.Get(4)
thePDPercentDone =
self.Get(5)
thePDProgressBar =
self.Get(6)
thePDCurrentTime =
self.Get(7)
thePDDescription =
self.Get(8)
thePDCurrentStep =
self.Get(9)
theCurrentDescription = self.Get(10)
thePDDescription.SetLabel(theCurrentDescription)
thePDCurrentStep.SetLabel("Working on Step "+theRecordNumber.AsString+"
of "+theRecordCount.AsString+"...")
thePercentDone =
(theRecordNumber/theRecordCount)*100
thePDProgressBar.ResizeTo((thePercentDone*2.68), 10) ' RESIZES PROGRESS
BAR TO FULL SIZE OF 268 PIXELS
thePercentDone.SetFormat ("dd.d")
thePDPercentDone.SetLabel ("("+thePercentDone.AsString+"%)")
thePDCurrentTime.SetLabel(Date.Now.SetFormat("hhh:m:s").AsString)
theDuration =
(Date.Now - BeginTime).AsSeconds
PredictedDuration =
(theDuration * theRecordCount)/(theRecordNumber+1)
EstTimeLeft =
(PredictedDuration-theDuration)+1
EstHoursLeft =
(EstTimeLeft/3600).Truncate
EstMinutesLeft =
((EstTimeLeft - (EstHoursLeft*3600))/60).Truncate
EstSecondsLeft =
(EstTimeLeft - (EstHoursLeft*3600) - (EstMinutesLeft*60)).Truncate
EstHoursStr =
EstHoursLeft.AsString
If (EstMinutesLeft
>= 10) then
EstMinutesStr =
EstMinutesLeft.AsString
else
EstMinutesStr =
"0"+EstMinutesLeft.AsString
end
If (EstSecondsLeft
>= 10) then
EstSecondsStr =
EstSecondsLeft.AsString
else
EstSecondsStr =
"0"+EstSecondsLeft.AsString
end
EstTimeLeftStr =
EstHoursStr +":"+EstMinutesStr+":"+EstSecondsStr
thePDTimeLeft.SetLabel ("Estimated time remaining: "+EstTimeLeftStr)
theProgressDialog.Activate
return nil
“Sample Code” script:
'
Jennessent.SampleProgressMeter_SampleCode
' THE PROGRESS
METER CONTAINS 7 CONTROLS THAT YOU CAN MODIFY AS YOUR SCRIPT RUNS:
'
thePDBeginTime: A TEXT LABEL INTENDED TO DISPLAY THE TIME THE SCRIPT
STARTED
'
thePDCurrentTime: A TEXT LABEL INTENDED TO DISPLAY THE CURRENT TIME
'
thePDRecordNumber: A TEXT LABEL INTENDED TO DISPLAY THE CURRENT STEP
NUMBER, PLUS
' THE TOTAL NUMBER OF STEPS EXPECTED IN THE ANALYSIS
'
thePDIndex: A TEXT LABEL INTENDED TO DISPLAY A BRIEF DESCRIPTION OF THE
CURRENT TASK
'
thePDTimeLeft: A TEXT LABEL INTENDED TO DISPLAY THE ESTIMATED TIME
REMAINING
'
thePDPercentDone: A TEXT LABEL INTENDED TO DISPLAY NUMERICALLY THE
PERCENTAGE DONE
'
thePDProgressBar: AN ICON INTENDED TO DISPLAY GRAPHICALLY THE AMOUNT
DONE
' PASTE THE
FOLLOWING CODE INTO THE TOP OF YOUR SCRIPT SOMEWHERE TO IDENTIFY DIALOG
CONTROLS
' AND SCRIPTS AND
PRESET DIALOG COMPONENTS.
' PROGRESS METER
STUFF -----------------------------------------------
UpdateProgress =
av.FindScript("Jennessent.SampleProgressMeter_EstTimeLeft")
theProgressDialog =
av.FindDialog ("Jennessent.SampleProgressMeter")
thePDBeginTime =
theProgressDialog.FindByName("lblBeginTime")
thePDCurrentTime =
theProgressDialog.FindByName ("lblCurrentTime")
thePDCurrentStep =
theProgressDialog.FindByName("lblRecordNumber")
thePDDescription =
theProgressDialog.FindByName("lblIndex")
thePDTimeLeft =
theProgressDialog.FindByName("lblTimeLeft")
thePDPercentDone =
theProgressDialog.FindByName("lblPercentDone")
thePDProgressBar =
theProgressDialog.FindByName("icnProgressLine")
thePDCurrentStep.SetLabel ("Current Record Number or Step...")
thePDPercentDone.SetLabel ("0%)")
thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)
theIndexLabel =
"Description of Current Task..."
thePDDescription.SetLabel ("Preparing Data...")
thePDTimeLeft.SetLabel ("Estimated time remaining: ---:---:---")
thePDProgressBar.ResizeTo(0,13) ' START GREEN PROGRESS BAR
AT 0 PIXELS WIDE
' END PROGRESS
METER STUFF -------------------------------------------
' PASTE THE
FOLLOWING CODE IN AT THE POINT YOU WANT THE PROGRESS DIALOG TO OPEN AND
START WORKING:
theProgressDialog.Open
theProgressDialog.Activate
BeginTime =
Date.Now.SetFormat("MMMM d, h:m:s AMPM")
thePDBeginTime.SetLabel("Began Job: "+BeginTime.AsString)
thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)
' AT ANY POINT YOU
CAN SET ANY OF THE TEXT LABELS BY THE FOLLOWING CODE:
'
theTextLabelName.SetLabel("your label")
' TO UPDATE ALL
PORTIONS OF THE PROGRESS METER INCLUDING THE ESTIMATED TIME LEFT, YOU
NEED TO
' IDENTIFY THE
FOLLOWING VARIABLES:
' theStepNumber =
THE NUMBER OF THE CURRENT STEP OR CALCULATION. FOR EXAMPLE, IF YOU WERE
ON THE
'
4TH OF 10 CALCULATIONS, THIS NUMBER WOULD BE 4.
' theStepCount =
THE TOTAL NUMBER OF CALCULATIONS. FOR EXAMPLE, IF YOU WERE ON THE 4TH
OF 10
'
CALCULATIONS, THIS NUMBER WOULD BE 10.
' theDescription =
A BRIEF MESSAGE DESCRIBING THE CURRENT CALCULATION.
' THEN PASTE THE
FOLLOWING CODE TO UPDATE THE PROGRESS METER. MOST OF THESE LIST ITEMS
HAVE
' BEEN IDENTIFIED
AT THE BEGINNING OF THE SCRIPT. MAKE SURE TO REMOVE COMMENT TAGS
'
UpdateProgress.DoIt({BeginTime, theStepNumber, theStepCount,
theProgressDialog,
'
thePDTimeLeft, thePDPercentDone, thePDProgressBar,
thePDCurrentTime,
'
thePDDescription, thePDCurrentStep, theDescription})
' FOR EXAMPLE:
ASSUMING YOU HAVE ALREADY PASTED THE INTRODUCTORY CODE ABOVE, THE
FOLLOWING SCRIPTS
' ILLUSTRATE HOW
THE PROGRESS DIALOG WORKS:
' THIS SCRIPT
UPDATES THE PROGRESS DIALOG AT EVERY STEP
theProgressDialog.Open
theProgressDialog.Activate
BeginTime =
Date.Now.SetFormat("MMMM d, h:m:s AMPM")
thePDBeginTime.SetLabel("Began Job: "+BeginTime.AsString)
thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)
theTotalCount =
2000
theDescription =
"Counting to 2,000"
for each aNumber in
0..theTotalCount
UpdateProgress.DoIt({BeginTime, aNumber, theTotalCount,
theProgressDialog,
thePDTimeLeft, thePDPercentDone, thePDProgressBar, thePDCurrentTime,
thePDDescription, thePDCurrentStep, theDescription})
end
theProgressDialog.Close
' THIS SCRIPT
UPDATES THE PROGRESS DIALOG EVERY SECOND
theProgressDialog.Open
theProgressDialog.Activate
BeginTime =
Date.Now.SetFormat("MMMM d, h:m:s AMPM")
thePDBeginTime.SetLabel("Began Job: "+BeginTime.AsString)
thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)
theTotalCount =
40000
theDescription =
"Counting to 40,000"
theTestTime =
Date.Now
for each aNumber in
0..theTotalCount
if ((Date.Now -
theTestTime).AsSeconds >=1) then
UpdateProgress.DoIt({BeginTime, aNumber, theTotalCount,
theProgressDialog,
thePDTimeLeft, thePDPercentDone, thePDProgressBar, thePDCurrentTime,
thePDDescription, thePDCurrentStep, theDescription})
theTestTime =
Date.Now
end
end
theProgressDialog.Close

Theme and ID Field Scripts:
“Cancel” script:
'
Jennessent.SampleThemeID_Cancel
self.GetDialog.SetModalResult(nil)
self.GetDialog.Close
“CheckOK” script:
'
Jennessent.SampleThemeID_CheckOK
theDialog =
av.FindDialog("Jennessent.SampleThemeID")
cmdOK =
theDialog.FindByName("cmdOK")
lbxField =
theDialog.FindByName("lbxField")
lbxTheme =
theDialog.FindByName("lbxTheme")
cmdOK.SetEnabled(lbxField.HasSelection and lbxTheme.HasSelection)
“Close” script:
'
Jennessent.SampleThemeID_Close
Self.SetObjectTag(nil)
Self.FindByName("cmdCancel").SetObjectTag(nil)
Self.FindByName("cmdOK").SetObjectTag(nil)
Self.FindByName("lblSelectField").SetObjectTag(nil)
Self.FindByName("lblSelectTheme").SetObjectTag(nil)
Self.FindByName("lbxField").SetObjectTag(nil)
Self.FindByName("lbxTheme").SetObjectTag(nil)
“OK” script:
'
Jennessent.SampleThemeID_OK
theDialog =
av.FindDialog("Jennessent.SampleThemeID")
lbxField =
theDialog.FindByName("lbxField")
lbxTheme =
theDialog.FindByName("lbxTheme")
self.GetDialog.SetModalResult({lbxTheme.GetCurrentValue,
lbxField.GetCurrentValue})
self.GetDialog.Close
“Open” script:
'
Jennessent.SampleThemeID_Open
AVUpperLeft =
av.ReturnOrigin
AVCenter =
avUpperLeft + (av.ReturnExtent / (2@2))
halfDialogWidthHeight = Self.ReturnExtent.ReturnSize / (2@2)
MovePoint =
AVCenter - halfDialogWidthHeight
Self.MoveTo(MovePoint.GetX, MovePoint.GetY)
theDialog =
av.FindDialog("Jennessent.SampleThemeID")
cmdCancel =
theDialog.FindByName("cmdCancel")
cmdOK =
theDialog.FindByName("cmdOK")
lblSelectField =
theDialog.FindByName("lblSelectField")
lblSelectTheme =
theDialog.FindByName("lblSelectTheme")
lbxField =
theDialog.FindByName("lbxField")
lbxTheme =
theDialog.FindByName("lbxTheme")
theView =
av.GetActiveDoc
theThemes =
theView.GetThemes
theSelectThemes =
{}
for each aTheme in
theThemes
if
(aTheme.Is(FTheme)) then
if
(aTheme.GetFTab.GetShapeClass.GetClassName = "Polygon") then
theSelectThemes.Add(aTheme)
end
end
end
lbxTheme.DefineFromList(theSelectThemes)
lbxField.Empty
cmdOK.SetEnabled(False)
“Select Theme”
script:
'
Jennessent.SampleThemeID_SelectTheme
theDialog =
av.FindDialog("Jennessent.SampleThemeID")
lbxField =
theDialog.FindByName("lbxField")
theTheme =
Self.GetCurrentValue
if
(theTheme.Is(FTheme)) then
theVTab =
theTheme.GetFTab
else
theVTab =
theTheme.GetVTab
end
theFieldList = {}
for each aField in
theVTab.GetFields
if
(aField.IsTypeShape.Not) then theFieldList.Add(aField) end
end
lbxField.DefineFromList(theFieldList)
av.Run("Jennessent.SampleThemeID_CheckOK", nil)
“Sample Code”
script:
'
Jennessent.SampleThemeID_sample code
' THIS IS A SIMPLE
EXTENSION TO OPERATE. FIRST IDENTIFY THE DIALOG AND THEN USE THE 'OPEN'
' REQUEST TO RUN
IT. THE FOLLOWING CODE IDENTIFIES THE DIALOG, OPENS IT, THEN SHOWS YOU
' THE SELECTED
THEME AND FIELD. THE DEFAULT CODE ASSUMES IT IS BEING RUN FROM A VIEW.
theThemeIDDialog =
av.FindDialog("Jennessent.SampleThemeID")
theThemeAndID =
theThemeIDDialog.Open
if (theThemeAndID =
nil) then return nil end
if
(theThemeAndID.Get(0) = nil) then return nil end
theTheme =
theThemeAndID.Get(0)
theIDField =
theThemeAndID.Get(1)
msgBox.List(theThemeAndID, "Selected Theme and ID Field...", "Dialog
Results:")
Back to Script/Dialog Tools Page
| New Dialog Types

Please visit Jenness Enterprises ArcView
Extensions site for more ArcView Extensions and other software by
the author. We also offer customized ArcView-based GIS consultation
services to help you meet your specific data analysis and application
development needs.
