Objekte

Objekte

In IwanScript stehen eine Reihe eingebauter Objekte zur Verfügung. Des Weiteren können COM Objekte verwendet werden. Ein Objekt wird immer mit der Anweisung CreateObjecterstellt.

Bsp.:
ret=CreateObject(oComXml,"MSXML.XMLDomDocument");
ret=CreateObject(server,"Server");

Hinweis

Innerhalb von Iwan existieren verschieden Parser Instanzen, nicht in jeder ist jedes Objekt für die Erstellung zulässig.

 

Objekt

Dateityp

  .iws .ipalx .design
APRFile o o o
Array o o o
FileObject o o o
FontInfo o o o
Geometry o o o
GeoProcessor o o o
Graph o o o
Graphics o x o
Layers o x x
ODBCDb o o o
ogcServiceException o o o
ogcServiceExceptionEntry o o o
Point o o o
Request o x x
Response o x x
Selection o x x
Server o x x
Session o x x
SessionExtent o x x
SymbolFile o o o
SymbolSet o x x
wfsRequest o x x
XmlFile o o o
COM o o o
Druckersymbol Druckversion dieser Seite

APRFile

Parser für ESRI-ODB Dateien

Since version: 3.2.0

Methoden / Eigenschaften



Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//-------------------------- routine "ReadApr"; //-------------------------- ret=CreateObject(apr,"AprFile"); ret=apr.OpenFile($SOURCE_FILE); if(not(ret)); EndScript("Fehler"); return; EndIf; // Anzahl der Views viewCount=apr.GetItem("Doc.$COUNT");// $COUNT kann für jedes Element eingesetzt werden //Alle Views durchlaufen curViewIdx=0; while(Compare(curViewIdx,viewCount,lt)); // neues Root Element setzten "view[0]" ret=apr.SetRootElem("View["+int(curViewIdx)+"]"); if(not(ret);EndScript("Fehler-Root Element");EndIf; // Themen durchlaufen call "ReadThemes"; inc(curViewIdx); wend; EndRoutine(); //-------------------------- routine "ReadThemes"; //-------------------------- // Anzahl der Theme themeCount=apr.GetItem("Theme.$COUNT"); curThemeIdx=0; while(Compare(curThemeIdx,themeCount,lt)); thisTheme=printf("theme[%i].",curThemeIdx); themeString=thisTheme+"Source.Name."; // Auf Dateityp testen class="apr".GetItem(themeString+"OwnerClass"); if(Compare(ucase(class),"SHPSRC",ne));WriteTrace("Not a Shapefile: "+class);Return;endif; // Dateiname source=apr.GetItem(themeString+"FileName.Path"); wend; EndRoutine();
End;

 

Array

Ein Array dient der Speicherung von Werten aller Art, ausgenommen sind Objekte. Es stehen Möglichkeiten zur Verfügung, um den Inhalt in eine Zeichenkette zu konvertieren, bzw. aus einer Zeichenkette ein Array zu erstellen. Das Array kann, wie jede Auflistung, mit 'FIRST'...'NEXT' durchlaufen werden.

Methoden / Eigenschaften


Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; wort="Emma*Anton*Carsten*Dirk*Berta"; ret=Createobject(neuesarray,"Array"); /*ret ist TRUE, falls Objekt erstellt werden konnte wenn nicht, ist ret FALSE*/ //FromString //~~~~~~~~~~~~~~~ ret=neuesarray.FromString(wort,"*"); //ret gibt die Anzahl der eingefügten Elemente wieder //alle vorher enthaltenen Elemente werden entfernt!!! print("Es wurden "+int(ret)+" Elemente eingelesen.
"); //Add //~~~~~~~~~~~~~~~ neuesarray.Add("Ferdinand"); neuesarray.Add("Anton"); neuesarray.Add("Gustav"); neuesarray.Add("Dirk"); neuesarray.Add("Heike"); /*Elemente werden im Array hinten angefügt*/ //RemoveDup + Count //~~~~~~~~~~~~~~~ vorsortieren=neuesarray.Count(); ret=neuesarray.RemoveDup(); //in ret wird die Anzahl der doppelten Elemente abgelegt nachsortieren=neuesarray.Count(); If(Compare(ret,0,GT)); print(ret+" Elemente waren doppelt.
"); Endif; print("Vor dem Entfernen von Duplikaten waren "); print(int(vorsortieren)+" Elemente im Array.
"); print("Nachher nur noch "+int(nachsortieren)+" Elemente.
"); //Exists //~~~~~~~~~~~~~~~ ret=neuesarray.Exists("Micha"); //ret ist TRUE, wenn der Wert im Array enthalten ist aussage=iif(ret,"","nicht"); print("Der Name Dirk ist im Array "+aussage+" enthalten.
"); //At //~~~~~~~~~~~~~~~ i=4; ret=neuesarray.At(i); //in ret wird das fünfte Element übernommen print("Das "+int(i+1)+". Element ist '"+ret+"'.
"); //AsString //~~~~~~~~~~~~~~~ namen=neuesarray.AsString(","); print(namen); End;
End;
Druckersymbol Druckversion dieser Seite 

Extent

ein Extent

Methoden / Eigenschaften



Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

End;
Schlüsselwörter

[TODO: SearchKeyWords]

 

Fields

eine Auflistung von Sachdatenfeldern

Methoden / Eigenschaften
Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(lay,"Layers"); print(lay.Count()+" Ebenen sind enthalten.<br>"); ret=lay.first(); while(lay.next()); //eine Schleife, die alle Layer im Projekt behandelt print("<br>- "+lay.item()); layer=lay.GetItem(); //erstellt ein "Layer" - Objekt mit dem Namen layer print(" - "+layer.Description()); If(layer.name()=="Gemeinden"); If(layer.MaxScale()=="-1"); print("<br>Der Layer ist auf keinen Maßstab beschränkt.<br>"); EndIf; felder=layer.GetFields(); //erstellt ein "Fields" - Objekt mit dem Namen felder print("Die Ebene '"+felder.name()+"' enthält "); print(felder.count()+" Felder in der Attributtabelle.<br>"); If(felder.count()!=0); print("Feldnamen:<br>"); ret=felder.first(); while(felder.next()); //eine Schleife, die alle Felder der Attributtabelle der Ebene behandelt print(" -"+felder.item()+"<br>"); wend; EndIf; EndIf; wend; End;
End;
Druckersymbol Druckversion dieser Seite 

FileObject

Methoden zum Zugriff auf das Dateisystem

Since version: 3.2.0
Methoden / Eigenschaften
Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

End;
Druckersymbol Druckversion dieser Seite 

 

FontInfo

Objekt zur Ermittlung der auf dem Server installierten Schritfarten

Since version: 3.1.1.290
Methoden / Eigenschaften
Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

End;
Druckersymbol Druckversion dieser Seite 

 

GeoProcessor

Bietet einfache boolsche Operatoren für Geometrien.



Folgenden Operatoren stehen zur Verfügung:

Druckersymbol Druckversion dieser Seite 

Geometry

ein Geometrieobjekt

Methoden / Eigenschaften
 

Graphics

ermöglicht es, weitere Elemente in Bilder zu zeichnen

Since version: 3.2.1
Methoden / Eigenschaften
Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; /*!!Diese Datei ist ein Ereignis-Skript!! ret=session.OnImageBeforeCompress("drawtext.event.iws"); (CreateTheImage) ret=session.OnImageBeforeCompress(""); */ ret=CreateObject(graph,"Graphics"); ret=graph.LoadSymbolset("anno.event.ipalx"); txtSize=12; x=15; y=txtSize+15; text="Kartendarstellung Umweltauskunft Dresden"; smb=0; y=800-txtSize; y=700-txtSize; x=120; j=0; y=700-txtSize; bis=3; while(Compare(j,7,lt)); i=0; x=10; while(Compare(i,bis,lt)); txtSize=4; smb=iif(smb==0,1,0); ret=graph.DrawText(text,smb,x,y,txtSize,0,false,"Normal"); inc(i); x=x+300; wend; inc(j); y=y-100; Wend; End;
End;
Schlüsselwörter
[TODO: SearchKeyWords]
 

Layer

ein Layer Objekt

Methoden / Eigenschaften


Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(lay,"Layers"); print(lay.Count()+" Ebenen sind enthalten.
"); ret=lay.first(); while(lay.next()); //eine Schleife, die alle Layer im Projekt behandelt print("
- "+lay.item()); layer=lay.GetItem(); //erstellt ein "Layer" - Objekt mit dem Namen layer print(" - "+layer.Description()); If(layer.name()=="Gemeinden"); If(layer.MaxScale()=="-1"); print("
Der Layer ist auf keinen Maßstab beschränkt.
"); EndIf; felder=layer.GetFields(); //erstellt ein "Fields" - Objekt mit dem Namen felder print("Die Ebene '"+felder.name()+"' enthält "); print(felder.count()+" Felder in der Attributtabelle.
"); If(felder.count()!=0); print("Feldnamen:
"); ret=felder.first(); while(felder.next()); //eine Schleife, die alle Felder der Attributtabelle der Ebene behandelt print(" -"+felder.item()+"
"); wend; EndIf; EndIf; wend; End;
End;
Schlüsselwörter
[TODO: SearchKeyWords]
 

Layers

Zugriff auf die Layer im aktiven Projekt

Methoden / Eigenschaften
Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(lay,"Layers"); print(lay.Count()+" Ebenen sind enthalten.<br>"); ret=lay.first(); while(lay.next()); //eine Schleife, die alle Layer im Projekt behandelt print("<br>- "+lay.item()); layer=lay.GetItem(); //erstellt ein "Layer" - Objekt mit dem Namen layer print(" - "+layer.Description()); If(layer.name()=="Gemeinden"); If(layer.MaxScale()=="-1"); print("<br>Der Layer ist auf keinen Maßstab beschränkt.<br>"); EndIf; felder=layer.GetFields(); //erstellt ein "Fields" - Objekt mit dem Namen felder print("Die Ebene '"+felder.name()+"' enthält "); print(felder.count()+" Felder in der Attributtabelle.<br>"); If(felder.count()!=0); print("Feldnamen:<br>"); ret=felder.first(); while(felder.next()); //eine Schleife, die alle Felder der Attributtabelle der Ebene behandelt print(" -"+felder.item()+"<br>"); wend; EndIf; EndIf; wend; End;
End;

 

 

 

Druckersymbol Druckversion dieser Seite 

 

MetaData

Metadaten werden bei den Ebenentypen WMS und WFS aus den GetCapabilities generiert. Eine Auflistung dieses Objektes ist nur über das Layer-Objekt abzurufen. Das Objekt kann nicht mit CreateObject erstellt werden.

Since version: 4.0.6

Methoden / Eigenschaften
Verwandte Themen

Layer

ODBCDb

stellt eine Verbindung zu einer ODBC-Datenquelle her

Since version: 3.0.4

Methoden / Eigenschaften

ODBCFields

eine Auflistung der Felder in einem ODBC-Recordset

Since version: 3.0.4

Methoden / Eigenschaften

ODBCRecordset

ein Recordset auf Basis einer ODBC-Datenquelle

Since version: 3.0.4
Methoden / Eigenschaften

OgcServiceException

Durch die Verwendung dieses Objektes ist es möglich eine vollständig OGC-konforme Exception zu generieren. Es müssen lediglich Exceptions der Liste hinzugefügt werden und dann zur Generierung des passenden Xml die Methode "Xml" aufgerufen werden.

Since version: 4.0.0.60
Methoden / Eigenschaften
Verwandte Themen
OgcServiceExceptionEntry

Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Zwei Exceptioneinträge hinzufügen und Xml generieren


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=CreateObject(exList,"OgcServiceException"); ret=exList.Add("Errormessage 1", "Code 1", "Locator 1"); ret=exList.Add("Errormessage 2", "Code 2", "Locator 2"); exList.Xml();
End;
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Exceptioneintrag hinzufügen


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=CreateObject(exList,"OgcServiceException"); ret=CreateObject(ex,"OgcServiceExceptionEntry"); ex.Message("Errormessage"); ex.Code("Code"); ex.Locator("Locator"); ret=exList.Add(ex); exList.Xml();
End;
Schlüsselwörter
OGC Exception OGCException OgcServiceException
 

OgcServiceExceptionEntry

Stellt einen Eintrag im OgcServiceException-Array dar.

Since version: 4.0.0.60
Methoden / Eigenschaften
Verwandte Themen
OgcServiceException

Schlüsselwörter
OGC Exception OGCException OgcServiceExceptionEntry
 

Request

Info über den Request

Methoden / Eigenschaften


Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(info,"Request"); user=info.UserAgent(); qs=info.QueryString(); //falls sie hinter den Dateinamen noch einen Zusatz schreiben, //der mit "?" beginnt, wird er in die Variable "qs" übernommen. ip=info.ClientAddress(); ref=info.Referer(); //falls die aktuelle Seite durch einen Link aufgerufen wurde //wird in ref die Addresse der Quellseite eingetragen. print("Sie benutzen: "+user+".
"); If(Not(IsNull(qs))); print("Die angegebenen Parameter lauten: "+qs+".
"); EndIf; print("Ihre IP ist: "+ip+".
"); If(Not(IsNull(ref))); print("Diese Seite war verlinkt in: "+ref+".
"); EndIf; cookies=info.Cookies(); ret=CreateObject(pair,"Array"); while(cookies.next()); ret=pair.FromString(cookies.item(),"="); print("Cookie '"+pair.At(0)+"' hat den Wert '"+pair.At(1)+"'.
"); wend; End;
End;
Schlüsselwörter
[TODO: SearchKeyWords]
 

Response

Objekt zur Ermittlung und Änderung von Eigenschaften des Ausgabestroms

Since version: 3.2.0
Methoden / Eigenschaften


Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Aktuelle Ausgabe per Flush schreiben


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=CreateObject(response, "RESPONSE"); ret=response.SendContinue(); i=0; while(Compare(i,100,LT));   printf("Durchlauf %i
",i);   response.Flush(); i=i+1; wend;
End;
Schlüsselwörter
Response

 

 

Selection

Zugriff auf die Daten der aktuellen Selektion

Methoden / Eigenschaften
Boolean Next( )

Server

bietet Zugriff auf die Eigenschaften des Servers

Methoden / Eigenschaften


Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(iwan,"Server"); name=iwan.Name(); version=iwan.Version(); sess=iwan.ActiveSessions(); print("Sie benutzten einen "+name+" in der "); print("Version "+version+". Darauf laufen zur Zeit "); print(int(sess)+" Sessions."); End;
End;
Schlüsselwörter
[TODO: SearchKeyWords]

Session

die aktuelle Benutzersitzung

Methoden / Eigenschaften



Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Go; ret=CreateObject(sess,"Session"); If(Not(sess.Valid())); EndScript(); EndIf; //Wenn die Session-Parameter nicht gültig sind, wird das Script abgebrochen print("Session-ID:"+sess.Id()+"
"); nolay=sess.LayerList("Layer1|Layer2|Layer3"); //versucht die Layer 1 bis 3 in die Session einzufügen //die Layer die nicht eingefügt werden konnten werden in "nolay" geschrieben If(nolay!=" "); /*wenn alle Layer vorhanden waren steht in "nolay" ein Lehrzeichen*/ print("Nicht vorhandene Layer: "+nolay+"
"); EndIf; print("In der Session enthaltene Layer: "+sess.LayerList()+"
"); print("Die Koordinaten der rechten oberen Kartenecke betragen:
"); print("  Hochwert: "+sess.YMax()+"
"); print("  Rechtswert: "+sess.YMax()+"
"); //auslesen der Parameter height=sess.ImageHeight(500); //verändert die Bildgröße auf 500px End;
End;
Schlüsselwörter

[TODO: SearchKeyWords]

SessionExtent

gibt den aktuellen Extent der Sitzung zurück

SymbolFile

Zugriff auf ILF Dateien.

Für den Zugriff auf die Datenzeilen wird jeweils ein Array zurückgeben. In diesem ist an Position 0 die Symbolnummer, an Position 1 der Label enthalten.

Methoden / Eigenschaften

 

SymbolSet

Zugriff auf Eigenschaften eines Symbolsets (*.ipalx)

Since version: 3.0.3

Methoden / Eigenschaften



Beispiele
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

End;
Schlüsselwörter

Symbolpalette, ipalx

 

WfsRequest

Dieses Objekt dient zum Zerlegen, Analysieren und Abarbeiten eines WFS-Requests.

Since version: 4.0.0.60

Methoden / Eigenschaften
Verwandte Themen

WfsRequestLayer, Request

Schlüsselwörter

Wfs Request WfsRequest WfsRequestLayer Ogc

 

WfsRequestLayer

Stellt einen Layer und seine Eigenschaften in einer Wfs-Anforderung dar

Since version: 4.0.0.60

Methoden / Eigenschaften
Verwandte Themen

WfsRequest, ISQL

Schlüsselwörter

Wfs Request WfsRequest WfsRequestLayer Ogc

 

XMLFile

einfacher XML Parser

Since version: 3.2.0

Methoden / Eigenschaften