[mapguide-users] RE: Come get your Key IDs
Andrew DeMerchant
andrew.demerchant at gemtec.ca
Thu Jun 29 15:55:25 EDT 2006
Ok, I've actually found some documentation that may help me. (Found
here: http://www.mapguide.com/Help/ver6.5/pdf/en/MGDevGuide6.pdf)
This actually has some ASP (VBScript) documentation for a change. Of
course, it's not for MapServer, but surely it must be similar, at least.
At the very least, it's a start for me.
Andrew
Andrew DeMerchant wrote:
> If it can be done with VB.Net, I'd imagine that it could be done with
> VBScript....finding documentation on that might be tricky though. Is
> there any documentation on using MapServer with VB.Net? That would
> certainly be a start for me....I don't think that .Net is too
> difficult to pick up from regular VB.
>
> Kori Maleski wrote:
>
>>Hi Andrew,
>>
>>It is indeed VB.NET - although I can switch it to C# easy enough.
>>
>>I don't think you can utilize VBScript server side for these operations (if anybody can correct me on this feel free).
>>You will have to pick up a book on .NET basics - VB since you are more comfortable with it.
>>
>>You can get away with not purchasing Visual Studio by just coding in a text editor (you will lose the debugging ability).
>>
>>Note: My code is only a snippet and won't run without a larger part of code above it.
>>
>>
>>
>>
>>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 12:37 PM
>>To: users at mapguide.osgeo.org
>>Subject: Re: [mapguide-users] RE: Come get your Key IDs
>>
>>
>>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/> <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/> <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
>>
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>---------------------------------------------------------------------
>>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
>
--
*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