TFilter

Iz SDMS
Redakcija dne 12:50, 5. februar 2014 od Aleš Trtnik (pogovor | prispevki) (Prostorski pogoji)
(prim) ← Starejša redakcija | poglejte trenutno redakcijo (prim) | Novejša redakcija → (prim)
Jump to navigationJump to search
Ta stran je trenutno še v izdelavi.

Razred TFilter je namenjen za opredelitev načinov filtriranja podatkov in dejansko izvedbo filtriranja podatkov.

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.Execute

Edit

Metoda Edit odpre urejevalnik filtrirnih pogojev.

Method TFilter.Edit As Boolean
ResultOptional BooleanTrue, č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)
ListTRecordListTRecordList objekt, ki vsebuje listo zapisov.

Skupne lastnosti

Name

Lastnost Name določa ime objekta.

Property TFilter.Name As String
ResultString.

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
ResultString.

Comment

Lastnost Comment omogoča zapis komentarja za objekt tipa TFilter.

Property TFilter.Comment As String
ResultString.

Parent

Lastnost Parent .

RO Property TFilter.Parent As TLayer
ResultTLayer.

StoredNames

Lastnost StoredNames .

RO Property TFilter.StoredNames As String
ResultString.

Lastnosti filtra

Caption

Lastnost Caption omogoča zapis naslova Filter dialoga.

Property TFilter.Caption As String
ResultString.

FilterType

Lastnost FilterType .

RO Property TFilter.FilterType As Long
ResultLong.

OnlyCentroid

Lastnost OnlyCentroid določa ali se pri prostorskem pogoju upoštevajo samo centroidi poligona.

Property TFilter.OnlyCentroid As Boolean
ResultBoolean.

Points

Lastnost Points .

RO Property TFilter.Points As TPointArray
ResultTPointArray.

PolygonFilterType

Lastnost PolygonFilterType .

Property TFilter.PolygonFilterType As Long
ResultLong.

SQL

Lastnost SQL določa podatkovni (SQL) pogoj filtra.

Property TFilter.SQL As String
ResultString.

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
NameString.
ResultOptional Boolean.

Save

Metoda Save shrani nastavitev filtra v podatkovno plast.

Method TFilter.Save (Name As String)
NameStringIme 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)
LTFilter.

Delete

Metoda Delete .

Method TFilter.Delete (Name As String)
NameString.

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 formi

AreaPoint

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)
YFloatKoordinate centralne točke.
XFloatKoordinate centralne točke.
DistanceFloatRadij 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
EndIf

AreaPolygon

Metoda AreaPolygon nastavi poligonski prostorski pogoj, kateri se definira s koordinatami vnešenega ali pokazanega poligona.

Method TFilter.AreaPolygon (P As TPointArray)
PTPointArraySeznam 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 poligona

AreaPolygonDist

Metoda AreaPolygonDist .

Method TFilter.AreaPolygonDist (P As TPointArray, Distance As Float)
PTPointArray.
DistanceFloat.

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)
PTPointArrayKoordinate polilinije.
DistanceFloatOdmik 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
EndIf

AreaMultiPoint

Metoda AreaMultiPoint .

Method TFilter.AreaMultiPoint (P As TPointArray, Distance As Float)
PTPointArray.
DistanceFloat.

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 formi

AreaWindow

Metoda AreaWindow nastavi prostorski pogoj v obliki pravokotnika (okna).

Method TFilter.AreaWindow (Y1, X1, Y2, X2 As Float)
Y1FloatKoordinate pravokotnika.
X1FloatKoordinate pravokotnika.
Y2FloatKoordinate pravokotnika.
X2FloatKoordinate 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
EndIf

NearestPoints

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)
YFloatKoordinate centra kroga.
XFloatKoordinate centra kroga.
DistanceFloatMaksimalna razdalja od točke (centra kroga).
CountLongMaksimalno š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
EndIf

NearestFromPoint

Metoda NearestFromPoint .

Method TFilter.NearestFromPoint (Y, X, Distance As Float, Count As Long)
YFloat.
XFloat.
DistanceFloat.
CountLong.

Direktno izvajanje

ExecutePoint

Metoda ExecutePoint .

Method TFilter.ExecutePoint (Y, X, Distance As Float) As TRecordList
YFloat.
XFloat.
DistanceFloat.
ResultOptional TRecordList.

ExecutePointSQL

Metoda ExecutePointSQL .

Method TFilter.ExecutePointSQL (Y, X, Distance As Float, SQL As String) As TRecordList
YFloat.
XFloat.
DistanceFloat.
SQLString.
ResultOptional TRecordList.

ExecutePolygon

Metoda ExecutePolygon .

Method TFilter.ExecutePolygon (P As TPointArray, Distance As Float) As TRecordList
PTPointArray.
DistanceFloat.
ResultOptional TRecordList.

ExecutePolygonSQL

Metoda ExecutePolygonSQL .

Method TFilter.ExecutePolygonSQL (P As TPointArray, Distance As Float, SQL As String) As TRecordList
PTPointArray.
DistanceFloat.
SQLString.
ResultOptional TRecordList.

ExecutePolyLine

Metoda ExecutePolyLine .

Method TFilter.ExecutePolyLine (P As TPointArray, Distance As Float) As TRecordList
PTPointArray.
DistanceFloat.
ResultOptional TRecordList.

ExecutePolyLineSQL

Metoda ExecutePolyLineSQL .

Method TFilter.ExecutePolyLineSQL (P As TPointArray, Distance As Float, SQL As String) As TRecordList
PTPointArray.
DistanceFloat.
SQLString.
ResultOptional TRecordList.

ExecuteSQL

Metoda ExecuteSQL .

Method TFilter.ExecuteSQL (SQL As String) As TRecordList
SQLString.
ResultOptional TRecordList.