[mapguide-users] RE: Come get your Key IDs
Andrew DeMerchant
andrew.demerchant at gemtec.ca
Thu Jun 29 14:37:59 EDT 2006
Kori,
Is your code VB.Net? The server-side code that I use will need to be
VBScript (not VB.Net)....I tried your code, but it doesn't run, which is
why I suspect that it's .Net....I'm a 'programming type', but not when
it comes to PHP, C# or .Net. I can read them to some extent, but don't
know that languages very well. Since I don't know PHP or C#, I've found
the documentation pretty hard to follow. I'd LOVE it if you could just
specify a field to pass for each layer without any coding involved. That
would be a great addition. In the meantime, any help that I can get
would be greatly appreciated. What I really need is to see some example
VBScript code (I learn best by example) that shows how to get data from
the "$CurrentSelection$" variable that gets passed with InvokeURL.
Andrew
Kori Maleski wrote:
>Andy,
>
>This code is part of a generic handler so I don't hardcode the column name and is reused in all the reporting functions. I could have passed the name instead of the ordinal position. I forget why I did that. It must have been a Monday.
>
>
>
>
>Kori Maleski BSc.
>Senior Technical Consultant
>
>Pacific Alliance Technologies
>Suite 400 - 534 17 Ave. SW Calgary, AB CANADA T2S 0B1
>TEL 403.770.1917 FAX 877.691.9149 TOL 877.691.9171 www.pat.ca <http://www.pat.ca/>
>
>________________________________
>
>From: Andy Morsell [mailto:amorsell at spatialgis.com]
>Sent: Thu 29/06/2006 11:33 AM
>To: users at mapguide.osgeo.org
>Subject: [BULK] RE: [mapguide-users] RE: Come get your Key IDs
>
>
>Kori,
>I don't think you have to know the column order. In my case I am getting to it directly by field name. I am creating the filter, query options and feature reader the same way, though. Also, my MgPropertyType is hardcoded here. Your way of determining it from the field is better.
>
>Here is part of the C# code for it:
>
>//loop through the featureReader, get the ID field, and add it to an array
>ArrayList objDBID = new ArrayList(0);
>while (featureReader.ReadNext())
> {
> objDBID.Add(featureReader.GetString("ID")); //TO DO: un-hard code this. Pick up the field name to be queried from a request parameter instead.
> }
>
>My biggest problem with these solutions is that the non-programmer types are not going to be able to easily do this. We really need a way to easily pass ANY field in a given layer from a selection set client-side.
>
>
>Andy
>
>________________________________
>
>From: Kori Maleski [mailto:km at pat.ca]
>Sent: Thursday, June 29, 2006 10:15 AM
>To: users at mapguide.osgeo.org
>Subject: [mapguide-users] RE: Come get your Key IDs
>
>
>Andrew,
>
>The Selection Set contains the featureIDs for your datasource.
>You can get YOUR key IDs from the Selection set by querying the feature, then reading your preferred key Column (property).
>
>You have to know your key columns position in order to do this - hence my variable - l_iKeyColumnOrdinal.
>i.e. - if my key IDs are in column 4 then l_iKeyColumnOrdinal = 4
>I utilize a lookup table that manages my key columns. Not sure if this is the best way but it works.
>
>This returns MY key IDs in a column delimited string.
>
>
>
>'query the features
>
>Dim l_oQuery As New MgFeatureQueryOptions()
>l_oQuery.SetFilter(l_sFilter) 'derived from selection set
>
>
>
>Dim l_ofeatureSource As MgResourceIdentifier = New MgResourceIdentifier(l_oSelLayer.GetFeatureSourceId())
>Dim l_ofeatures As MgFeatureReader = l_oFeatureSrvc.SelectFeatures(l_ofeatureSource, l_sFeatureClassName, l_oQuery)
>
>
>
>If l_ofeatures.ReadNext() Then
>Dim l_sProperty As String = l_ofeatures.GetPropertyName(l_iKeyColumnOrdinal)
>
>Do
>
>Dim pi As Integer
>'For pi = 0 To l_ofeatures.GetPropertyCount() - 1
>
>Dim l_iPropType As Integer = l_ofeatures.GetPropertyType(l_sProperty)
>Dim l_sPropertyValue As String = ""
>
>Select Case l_iPropType
>Case MgPropertyType.Boolean
>l_sPropertyValue = l_ofeatures.GetBoolean(l_sProperty).ToString()
>Case MgPropertyType.Single
>l_sPropertyValue = l_ofeatures.GetSingle(l_sProperty).ToString()
>Case MgPropertyType.Double
>l_sPropertyValue = l_ofeatures.GetDouble(l_sProperty).ToString()
>Case MgPropertyType.Int16
>l_sPropertyValue = l_ofeatures.GetInt16(l_sProperty).ToString()
>Case MgPropertyType.Int32
>l_sPropertyValue = l_ofeatures.GetInt32(l_sProperty).ToString()
>Case MgPropertyType.Int64
>l_sPropertyValue = l_ofeatures.GetInt64(l_sProperty).ToString()
>Case MgPropertyType.String
>l_sPropertyValue = l_ofeatures.GetString(l_sProperty)
>End Select
>
>If l_sSelectedLayerIDs = "" Then
>l_sSelectedLayerIDs = l_sPropertyValue
>Else
>l_sSelectedLayerIDs = l_sSelectedLayerIDs + "," + l_sPropertyValue
>End If
>
>'Next pi
>
>Loop While l_ofeatures.ReadNext()
>
>
>
>
>
>Obviously you have to do this server side...
>
>
>Cheers,
>
>Kori Maleski BSc.
>Senior Technical Consultant
>
>Pacific Alliance Technologies
>Suite 400 - 534 17 Ave. SW Calgary, AB CANADA T2S 0B1
>TEL 403.770.1917 FAX 877.691.9149 TOL 877.691.9171 www.pat.ca <http://www.pat.ca/>
>
>________________________________
>
>From: Andrew DeMerchant [mailto:andrew.demerchant at gemtec.ca]
>Sent: Thu 29/06/2006 10:32 AM
>To: users at mapguide.osgeo.org
>Subject: Re: [mapguide-users] Andy - Question about your tooltips...
>
>
>
>
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe at mapguide.osgeo.org
>For additional commands, e-mail: users-help at mapguide.osgeo.org
>
--
*Andrew DeMerchant*
*Computer Technologist*
ph.1-877-4GEMTEC x.163
fax 506-453-9470
/GEMTEC Limited <http://www.gemtec.ca>
/191 Doak Road
Fredericton, NB, Canada
E3C 2E6
-------------- next part --------------
Skipped content of type multipart/related
More information about the Mapguide-users
mailing list