TFilter
Razred TFilter je namenjen za opredelitev načinov filtriranja podatkov in dejansko izvedbo filtriranja podatkov.
Vsebina
Osnovna uporaba
Dim F As TFilter
F = [Neka plast].Filter
F.Clear
If F.Edit Then
F.Name = 'ImeFiltra'
F.Alias = 'DrugoImeFiltra'
F.Comment = 'KomentarFiltra'
F.Save ('ImeFiltra')
EndIf
F.Load ('ImeFiltra')
F.ExecuteEdit
Metoda Edit odpre urejevalnik filtrirnih pogojev.
| Method TFilter.Edit As Boolean | ||
| Result | Optional Boolean | True, če je bilo filtriranje dejansko izvedeno, sicer pa je rezultat False. |
Execute
Metoda Execute izvede prehodno nastavljeni filter podatkov. Vsi podatki, ki so bili filtrirani, se nahajajo v listi TLayer.FilteredRecords.
| Method TFilter.Execute |
ExecuteList
Metoda ExecuteList .
| Method TFilter.ExecuteList (List As TRecordList) | ||
| List | TRecordList | TRecordList objekt, ki vsebuje listo zapisov. |
Skupne lastnosti
Name
Lastnost Name določa ime objekta.
| Property TFilter.Name As String | ||
| Result | String | . |
Alias
Lastnost Alias določa nastavitev drugega imena objekta tipa TFilter.Drugo ime se lahko uporablja pri sklicevanju na ta objekt.
| Property TFilter.Alias As String | ||
| Result | String | . |
Comment
Lastnost Comment omogoča zapis komentarja za objekt tipa TFilter.
| Property TFilter.Comment As String | ||
| Result | String | . |
Parent
Lastnost Parent .
| RO Property TFilter.Parent As TLayer | ||
| Result | TLayer | . |
StoredNames
Lastnost StoredNames .
| RO Property TFilter.StoredNames As String | ||
| Result | String | . |
Lastnosti filtra
Caption
Lastnost Caption omogoča zapis naslova Filter dialoga.
| Property TFilter.Caption As String | ||
| Result | String | . |
FilterType
Lastnost FilterType .
| RO Property TFilter.FilterType As Long | ||
| Result | Long | . |
OnlyCentroid
Lastnost OnlyCentroid določa ali se pri prostorskem pogoju upoštevajo samo centroidi poligona.
| Property TFilter.OnlyCentroid As Boolean | ||
| Result | Boolean | . |
Points
Lastnost Points .
| RO Property TFilter.Points As TPointArray | ||
| Result | TPointArray | . |
PolygonFilterType
Lastnost PolygonFilterType .
| Property TFilter.PolygonFilterType As Long | ||
| Result | Long | . |
SQL
Lastnost SQL določa podatkovni (SQL) pogoj filtra.
| Property TFilter.SQL As String | ||
| Result | String | . |
Skupne Metode
Load
Metoda Load omogoča včitavanje predhodno kreiranih in shranjenih nastavitev za objekt tipa TFilter.
| Method TFilter.Load (Name As String) As Boolean | ||
| Name | String | . |
| Result | Optional Boolean | . |
Save
Metoda Save shrani nastavitev filtra v podatkovno plast.
| Method TFilter.Save (Name As String) | ||
| Name | String | Ime nastavitve. |
Clear
Metoda Clear briše vse nastavljene vrednosti filtra, prostorske in SQL pogoje.
| Method TFilter.Clear |
CopyFrom
Metoda CopyFrom .
| Method TFilter.CopyFrom (L As TFilter) | ||
| L | TFilter | . |
Delete
Metoda Delete .
| Method TFilter.Delete (Name As String) | ||
| Name | String | . |
DeleteAll
Metoda DeleteAll .
| Method TFilter.DeleteAll |
Prostorski pogoji
AreaNone
Metoda AreaNone briše vse predhodno nastavljene prostorske pogoje filtra, oziroma v nadaljevanju izvajanja filtra se prostorski pogoj ne upošteva.
| Method TFilter.AreaNone |
Dim F As TFilter
F = [SHOWOSNOVNI].Filter
F.AreaNone // Briši prostorski pogoj
F.SQL = '[Velikost] = 0.5' // Nastavi SQL pogoj
F.Execute // Izvedi filter
[SHOWOSNOVNI].Form.Execute // prikaži filtrirane podatke v formiAreaPoint
Metoda AreaPoint nastavi točkovni prostorski pogoj, kateri se definira s koordinatami centralne točke in radija.
| Method TFilter.AreaPoint (Y, X, Distance As Float) | ||
| Y | Float | Koordinate centralne točke. |
| X | Float | Koordinate centralne točke. |
| Distance | Float | Radij kroga. |
Dim F As TFilter, X1, Y1 As Float, AList As TRecordList
F = [Neka plast].Filter
F.Clear
// rutina za vnos točke
If InputPoint ('Enter point for filter', X1, Y1) Then
F.AreaPoint (X1, Y1, 500) // Prostorski pogoj
F.SQL = '[Neko polje] = 10' // SQl pogoj
AList = [Neka plast].CreateRecordList ('Alist') // kreiranje liste
F.ExecuteList (AList) // Izvedba filtra
[Neka plast].Form.OpenList (AList) // Odprtje maske
AList.Destroy // uničenje liste
EndIfAreaPolygon
Metoda AreaPolygon nastavi poligonski prostorski pogoj, kateri se definira s koordinatami vnešenega ali pokazanega poligona.
| Method TFilter.AreaPolygon (P As TPointArray) | ||
| P | TPointArray | Seznam koordinat poligona. |
Dim F As TFilter, Poly as TPointArray
F = [Neka plast].Filter
F.Clear
// Vnos poligona
If InputPolygon ('Vnesi poligon', Poly) Then
F.AreaPolygon (Poly) // Prostorski pogoj
F.SQL = '[Neko polje] = 10' // SQL pogoj
F.Caption = "Površina poligona: " + FormatFloat ( "#,0.00", Poly.Area ) +
" Obseg poligona: " + FormatFloat ( "#,0.00", Poly.Perimeter)
F.OnlyCentroid = False // če so filtrirani podatki poligonskega tipa, se upošteva celoten poligon
If F.Edit Then
F.Execute // Izvedba filtra
[Neka plast].Form.Open // Filtrirani podatki v maski
EndIF
EndIf
Message ( "Informacija" , "Površina podanega poligona je " + FormatFloat ( "#,0.00", Poly.Area ) + " m2." + Line + "Obseg podanega poligona je " + FormatFloat ( "#,0.00" , Poly.Perimeter ) + " metrov." )
Poly.Destroy // uničenje poligonaAreaPolygonDist
Metoda AreaPolygonDist .
| Method TFilter.AreaPolygonDist (P As TPointArray, Distance As Float) | ||
| P | TPointArray | . |
| Distance | Float | . |
AreaPolyLine
Metoda AreaPolyLine nastavi polilinijski prostorski pogoj, kateri se definira s koordinatami vnešene ali pokazane polilinije ter odmikom (buffer) od te polilinije.
| Method TFilter.AreaPolyLine (P As TPointArray, Distance As Float) | ||
| P | TPointArray | Koordinate polilinije. |
| Distance | Float | Odmik od polilinije. |
Dim F As TFilter, Poly as TPointArray
F = [SomeLayer].Filter
F.Clear
// Vnos polilinije
If InputPolyline ('Vnesi polilinijo', Poly) Then
F.AreaPolyline (Poly,100) // Prostorski pogoj
F.SQL = '[SomeField] = 10' // SQL pogoj
If F.Edit Then
F.Execute // Izvedba filtra
[SomeLayer].Form.Open // Filtrirani podatki v maski
EndIF
Poly.Destroy // uničenje polilinije
EndIfAreaMultiPoint
Metoda AreaMultiPoint .
| Method TFilter.AreaMultiPoint (P As TPointArray, Distance As Float) | ||
| P | TPointArray | . |
| Distance | Float | . |
AreaScreen
Metoda AreaScreen nastavi ekranski prostorski pogoj, kateri se definira s koordinatami trenutnega prikaza na ekranu.
| Method TFilter.AreaScreen |
Dim F As TFilter
F = [SHOWOSNOVNI].Filter
F.AreaNone // Briši prostorski pogoj
F.SQL = '[Velikost] = 0.5' // Nastavi SQL pogoj
F.Execute // Izvedi filter
[SHOWOSNOVNI].Form.Execute // prikaži filtrirane podatke v formiAreaWindow
Metoda AreaWindow nastavi prostorski pogoj v obliki pravokotnika (okna).
| Method TFilter.AreaWindow (Y1, X1, Y2, X2 As Float) | ||
| Y1 | Float | Koordinate pravokotnika. |
| X1 | Float | Koordinate pravokotnika. |
| Y2 | Float | Koordinate pravokotnika. |
| X2 | Float | Koordinate pravokotnika. |
Dim F As TFilter, Poly as TPointArray
Dim Y1,X1,Y2,X2 as Float
F = [SomeLayer].Filter
F.Clear
// Vnos okna
If InputWindow ('Vnesi okno', Y1,X1,Y2,X2) Then
F.AreaWindow (Y1,X1,Y2,X2) // Prostorski pogoj
F.SQL = '[SomeField] = 10' // SQL pogoj
If F.Edit Then
F.Execute // Izvedba filtra
[SomeLayer].Form.Open // Filtrirani podatki v maski
EndIF
EndIfNearestPoints
Metoda NearestPoints prostorskega pogoja, podobna metodi AreaPoint poišče najbližje entitete. Število najbližjih entitet določite z Count parametrom.
| Method TFilter.NearestPoints (Y, X, Distance As Float, Count As Long) | ||
| Y | Float | Koordinate centra kroga. |
| X | Float | Koordinate centra kroga. |
| Distance | Float | Maksimalna razdalja od točke (centra kroga). |
| Count | Long | Maksimalno število zapisov. |
Dim F As TFilter, X1, Y1 As Float
F = [Neka plast].Filter
F.Clear
// rutina za vnos točke
If InputPoint ('Pokaži mesto filtriranja okoli točke', X1, Y1) Then
F.NearestPoints (X1, Y1, 50, 4) // Nastavitev prostorskega pogoja
F.SQL = '[Neko polje] = 10' // Nastavitev SQL pogoja
If F.Edit Then // Odprtje filtra, da ga lahko uporabnik dodatno ureja
F.Execute // Izvedba filtra
[Neka plast].Form.Open // Odprtje filtriranih podatkov v maski
EndIf
EndIfNearestFromPoint
Metoda NearestFromPoint .
| Method TFilter.NearestFromPoint (Y, X, Distance As Float, Count As Long) | ||
| Y | Float | . |
| X | Float | . |
| Distance | Float | . |
| Count | Long | . |
Direktno izvajanje
ExecutePoint
Metoda ExecutePoint .
| Method TFilter.ExecutePoint (Y, X, Distance As Float) As TRecordList | ||
| Y | Float | . |
| X | Float | . |
| Distance | Float | . |
| Result | Optional TRecordList | . |
ExecutePointSQL
Metoda ExecutePointSQL .
| Method TFilter.ExecutePointSQL (Y, X, Distance As Float, SQL As String) As TRecordList | ||
| Y | Float | . |
| X | Float | . |
| Distance | Float | . |
| SQL | String | . |
| Result | Optional TRecordList | . |
ExecutePolygon
Metoda ExecutePolygon .
| Method TFilter.ExecutePolygon (P As TPointArray, Distance As Float) As TRecordList | ||
| P | TPointArray | . |
| Distance | Float | . |
| Result | Optional TRecordList | . |
ExecutePolygonSQL
Metoda ExecutePolygonSQL .
| Method TFilter.ExecutePolygonSQL (P As TPointArray, Distance As Float, SQL As String) As TRecordList | ||
| P | TPointArray | . |
| Distance | Float | . |
| SQL | String | . |
| Result | Optional TRecordList | . |
ExecutePolyLine
Metoda ExecutePolyLine .
| Method TFilter.ExecutePolyLine (P As TPointArray, Distance As Float) As TRecordList | ||
| P | TPointArray | . |
| Distance | Float | . |
| Result | Optional TRecordList | . |
ExecutePolyLineSQL
Metoda ExecutePolyLineSQL .
| Method TFilter.ExecutePolyLineSQL (P As TPointArray, Distance As Float, SQL As String) As TRecordList | ||
| P | TPointArray | . |
| Distance | Float | . |
| SQL | String | . |
| Result | Optional TRecordList | . |
ExecuteSQL
Metoda ExecuteSQL .
| Method TFilter.ExecuteSQL (SQL As String) As TRecordList | ||
| SQL | String | . |
| Result | Optional TRecordList | . |