DS Map Book
frmPageProperties.frm

' Copyright 2008 ESRI
' 
' All rights reserved under the copyright laws of the United States
' and applicable international laws, treaties, and conventions.
' 
' You may freely redistribute and use this sample code, with or
' without modification, provided you include the original copyright
' notice and use restrictions.
' 
' See use restrictions at <your ArcGIS install location>/developerkit/userestrictions.txt.
' 




Option Explicit

Public m_pApp As IApplication
Private bLoadFlag As Boolean

Private Sub cmdOK_Click()
7:   Unload Me
End Sub

Private Sub cmdUpdate_Click()
On Error GoTo ErrHand:
  Dim pMapBook As IDSMapBook, dLastOutput As Date
  Dim pSeries As IDSMapSeries, lLoop As Long, pPage As IDSMapPage
14:   Set pMapBook = GetMapBookExtension(m_pApp)
  If pMapBook Is Nothing Then Exit Sub
  
17:   Set pSeries = pMapBook.ContentItem(0)
18:   Set pPage = pSeries.Page(grdPages.Row - 1)
  
  Select Case grdPages.Col
  Case 1   'Name
22:     grdPages.Text = txtUpdate.Text
23:     pPage.PageName = txtUpdate.Text
  Case 2   'Scale
25:     grdPages.Text = txtUpdate.Text
26:     pPage.PageScale = CDbl(txtUpdate.Text)
  Case 3   'Rotation
28:     grdPages.Text = txtUpdate.Text
29:     pPage.PageRotation = CDbl(txtUpdate.Text)
  Case 4   'Last Output
31:     dLastOutput = Format(txtUpdate.Text, "mm/dd/yyyy")
32:     grdPages.Text = dLastOutput
33:     pPage.LastOutputted = dLastOutput
34:   End Select

  Exit Sub
  
ErrHand:
39:   MsgBox "cmdUpdate_Click - " & Err.Description
End Sub

Private Sub Form_Load()
On Error GoTo ErrHand:
  Dim pMapBook As IDSMapBook
  Dim pSeries As IDSMapSeries, lLoop As Long, pPage As IDSMapPage
46:   Set pMapBook = GetMapBookExtension(m_pApp)
  If pMapBook Is Nothing Then Exit Sub
  
49:   Set pSeries = pMapBook.ContentItem(0)
  
  'Load up the Grid
52:   bLoadFlag = True
53:   grdPages.Clear
54:   grdPages.Rows = 1
55:   grdPages.ColWidth(0) = 750
56:   grdPages.ColWidth(1) = 2500
57:   grdPages.ColWidth(2) = 1000
58:   grdPages.ColWidth(3) = 1000
59:   grdPages.ColWidth(4) = 1400
60:   grdPages.Row = 0
61:   grdPages.Col = 0
62:   grdPages.Text = "Number"
63:   grdPages.Col = 1
64:   grdPages.Text = "Tile Name"
65:   grdPages.Col = 2
66:   grdPages.Text = "Scale"
67:   grdPages.Col = 3
68:   grdPages.Text = "Rotation"
69:   grdPages.Col = 4
70:   grdPages.Text = "Last Output"
71:   grdPages.CellAlignment = 1
72:   For lLoop = 0 To pSeries.PageCount - 1
73:     Set pPage = pSeries.Page(lLoop)
74:     grdPages.AddItem lLoop + 1 & Chr(9) & pPage.PageName & Chr(9) & pPage.PageScale & _
     Chr(9) & pPage.PageRotation & Chr(9) & pPage.LastOutputted
76:   Next lLoop
77:   bLoadFlag = False
  
  'Set the Update properties
80:   lblType.Caption = ""
81:   txtUpdate.Text = ""
82:   lblTile.Caption = "Page:"
83:   cmdUpdate.Enabled = False
  
  'Make sure the wizard stays on top
86:   TopMost Me
  
  Exit Sub
  
ErrHand:
91:   MsgBox "frmPageProperties_Load - " & Err.Description
End Sub

Private Sub grdPages_EnterCell()
On Error GoTo ErrHand:
  Dim pMapBook As IDSMapBook, lCol As Long, lRow As Long
  Dim pSeries As IDSMapSeries, lLoop As Long, pPage As IDSMapPage
  
  'Exit the sub if we are loading up the grid
  If bLoadFlag Then Exit Sub
  
102:   Set pMapBook = GetMapBookExtension(m_pApp)
  If pMapBook Is Nothing Then Exit Sub
  
105:   Set pSeries = pMapBook.ContentItem(0)
  
107:   lCol = grdPages.Col
108:   lRow = grdPages.Row
  
110:   If lCol > 0 Then
111:     Set pPage = pSeries.Page(lRow - 1)
112:     lblTile.Caption = "Page: " & pPage.PageName
    Select Case lCol
    Case 1   'Page Name
115:       lblType.Caption = "Name:"
116:       txtUpdate.Text = pPage.PageName
    Case 2   'Scale
118:       lblType.Caption = "Scale:"
119:       txtUpdate.Text = CStr(pPage.PageScale)
    Case 3   'Rotation
121:       lblType.Caption = "Rotation:"
122:       txtUpdate.Text = CStr(pPage.PageRotation)
    Case 4   'Last Output
124:       lblType.Caption = "Last Output:"
125:       txtUpdate.Text = CStr(pPage.LastOutputted)
126:     End Select
127:     cmdUpdate.Enabled = True
128:   Else
129:     lblType.Caption = ""
130:     txtUpdate.Text = ""
131:     lblTile.Caption = "Page:"
132:     cmdUpdate.Enabled = False
133:   End If

  Exit Sub
ErrHand:
137:   MsgBox "grdPages_EnterCell - " & Err.Description
End Sub

Private Sub txtUpdate_KeyUp(KeyCode As Integer, Shift As Integer)
On Error GoTo ErrHand:

143:   cmdUpdate.Enabled = False
  
  Select Case grdPages.Col
  Case 1   'Name
147:     If txtUpdate.Text <> "" Then
148:       cmdUpdate.Enabled = True
149:     End If
  Case 2, 3  'Scale and Rotation
151:     If txtUpdate.Text <> "" Then
152:       If IsNumeric(txtUpdate.Text) Then
153:         cmdUpdate.Enabled = True
154:       End If
155:     End If
  Case 4    'Last output
157:     If txtUpdate.Text <> "" Then
158:       If IsDate(txtUpdate.Text) Then
159:         cmdUpdate.Enabled = True
160:       End If
161:     End If
162:   End Select

  Exit Sub
ErrHand:
166:   MsgBox "txtUpdate_KeyUp - " & Err.Description
End Sub