Autodesk 15606-011408-9300 Developer Guide - Page 100

Adding a Button with the Viewer API, Autodesk MapGuide to display Parcel Data CF.

Page 100 highlights

Adding a Button with the Viewer API An Autodesk MapGuide report is generated by right-clicking the map and then choosing View ➤ Reports from the popup menu. This interface is not immediately apparent to users, so we'll make it easier by creating a Parcel Report button that will display the report. First we'll add the following tag to the parcel_map.htm file: function getMap() { if (navigator.appName == "Netscape") return parent.Left.document.map; else return parent.Left.window.map; } function runReport() { parent.Right.document.write("Select one or more parcels first."); getMap().viewReport('Parcel Data (CF)'); } The tag holds two JavaScript functions. The first function is getMap. The second, runReport, displays our Autodesk MapGuide report. The runReport function consists of two statements. The first statement writes a line of text to the right-hand frame of our report application. You will notice that the text instructs users to select one or more map features. This instruction displays each time runReport is invoked, regardless of whether the user has selected features. If features are selected, the instructions are replaced in the frame by the contents of the newly generated report; otherwise the instructions remain in the frame to provide feedback. Note parent refers to the top-level frame and Right is the name we specified for our right-hand frame in parcel_frames.htm. Refer to third-party JavaScript documentation for more information on writing to frames and windows. The second statement uses the viewReport method to run our report. The statement begins by calling getMap, which returns the map object in the Web page. The map object is then passed to viewReport, which directs Autodesk MapGuide to display Parcel Data (CF). Now that our function is defined, we need a way to call it, adding a element to parcel_map.htm:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208

100
|
Chapter 6
Using Reports to Query and Update Data Sources
Adding a Button with the Viewer API
An Autodesk MapGuide report is generated by right-clicking the map and
then choosing View
Reports from the popup menu. This interface is not
immediately apparent to users, so we
ll make it easier by creating a Parcel
Report button that will display the report.
First we
ll add the following
<SCRIPT>
tag to the
parcel_map.htm
file:
<SCRIPT>
function getMap()
{
if (navigator.appName == "Netscape")
return parent.Left.document.map;
else
return parent.Left.window.map;
}
function runReport()
{
parent.Right.document.write("<P>Select one or more parcels first.</P>");
getMap().viewReport('Parcel Data (CF)');
}
</SCRIPT>
The
<SCRIPT>
tag holds two JavaScript functions. The first function is
getMap
. The second,
runReport
, displays our Autodesk MapGuide report.
The
runReport
function consists of two statements. The first statement
writes a line of text to the right-hand frame of our report application. You
will notice that the text instructs users to select one or more map features.
This instruction displays each time
runReport
is invoked, regardless of
whether the user has selected features. If features are selected, the instruc-
tions are replaced in the frame by the contents of the newly generated report;
otherwise the instructions remain in the frame to provide feedback.
Note
parent
refers to the top-level frame and
Right
is the name we specified
for our right-hand frame in
parcel_frames.htm
. Refer to third-party JavaScript doc-
umentation for more information on writing to frames and windows.
The second statement uses the
viewReport
method to run our report. The
statement begins by calling
getMap
, which returns the map object in the
Web page. The map object is then passed to
viewReport
, which directs
Autodesk MapGuide to display Parcel Data (CF).
Now that our function is defined, we need a way to call it, adding a
<FORM>
element to
parcel_map.htm
:
<FORM>
<INPUT TYPE="button" VALUE="Parcel Report" ONCLICK=
"
runReport()
"
</INPUT>
</FORM>