I have a mapbook with 1,440 pages that label neighboring tiles and I do not see a good reason to upgrade to 10 based on what I have tried and have read.
Also what is a good way to export random pages, I do not use page numbers but a name instead.
jim
There is a fine example Python based tool that creates a dialog with map sheet names instead of numbers on the resource pages. I know it is so hard to find these, no arcscripts search now, so here is the whole script unzipped:from Tkinter import *
import arcpy
# SelectPopup.py sample Python script using Tkinter for a user interface
# User selects feature from list, code selects and zooms to feature
# Works with file geodatabases and sdc datasets
# Use in ArcMap by attaching script to a button for best results
# In ArcGIS 10, you can add scripts and models to buttons in the UI without using VBA.
# See "Adding a custom tool to a menu or toolbar" in this help topic:
# http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002400000005000000.htm
# Replace the values for the 4 variables below to match your data
# if you change the variable name, be sure to modify the code
# below to match.
# Layer on which the selection will be performed
Layer = "states"
# Table or feature class with field containing unique list of feature names to use for selections
# Can be the data source for the layer above or a separate table. Use a separate table containing
# only the valid names if there are large numbers of blank or non-unique names or a definition query
# on the layer.
# SelTable = "D:\Work\Demos\Done\Arkansas10\GeoStor.gdb\NRHP_YrBlt"
SelTable = "D:\Work\ESRIData&Maps\mexico\data\states.sdc\states"
# Name of field in SelTable and Layer that contains feature names
SelField = "ST_NAME"
# Title to Appear on Dialog
Title = "Select A State"
# End of section for entering your data parameters
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.createWidgets(master)
def createWidgets(self, master):
self.yScroll = Scrollbar ( self, orient=VERTICAL )
self.yScroll.grid ( row=0, column=1, sticky=N+S )
self.stList = Listbox (self, yscrollcommand=self.yScroll.set)
self.stList.grid( row=0, column=0 )
self.yScroll["command"] = self.stList.yview
#populate list with choices, sorted ascending
rows = arcpy.SearchCursor(SelTable, "", "", SelField, SelField + " A")
for row in rows:
self.stList.insert( END, row.getValue(SelField) )
#add selection and quit button
self.selButton = Button (self, text='Select', command=self.selectFeat)
self.selButton.grid( row=0, column=2 )
self.quitButton = Button ( self, text='Quit', command=master.destroy )
self.quitButton.grid( row=1, column=2 )
def selectFeat(self):
sel = self.stList.curselection()
myState = self.stList.get(sel[0])
arcpy.SelectLayerByAttribute_management(Layer, "NEW_SELECTION", "\"" + SelField + "\" = '" + myState + "'")
mxd = arcpy.mapping.MapDocument("CURRENT")
for df in arcpy.mapping.ListDataFrames(mxd):
if df.name == mxd.activeView:
df.zoomToSelectedFeatures()
arcpy.RefreshActiveView()
root = Tk()
app = Application(master=root)
app.master.title(Title)
app.mainloop()