Mit dem Modul ILOUT können Objekte in eine INTERLIS 1 .itf Datei geschrieben werden. Der Modul liest auch die zugehörigen INTERLIS 1 Datenmodelle (.ili Dateien). Jedes Objekt wird vom Modul auf seine Konsistenz gegenüber den INTERLIS 1 Datenmodellen überprüft. Falls z.B. zwingende Attribute vergessen oder falsche Attributwerte gefunden werden, werden entsprechende Fehlermeldungen ausgegeben.
Der Modul wird mit:
|INCL \script\ilout.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map
ILOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
INTERLIS_DEF | r | Filename des INTERLIS Definitionsfiles. Die Angabe des Parameters ist obligatorisch |
FORMAT | r | ITF oder XTF ,
Default = ITF . Definiert das Output
Datenformat. |
MATH_DEGREES | r | ON oder OFF ,
Default = OFF . DEGREES
im mathematischen Sinn interpretieren, d.h.
0.0 = horizontal, Orientierung =
Gegenuhrzeigersinn. |
DOUBLEPOINT_CHECK | r | ON oder OFF ,
Default = OFF . Nacheinanderfolgende
dopplete Punkte in Linien testen. |
DEBUG | r | ON oder OFF ,
Default = OFF . Debugmodus ein oder
aus. |
STATUS | r | Enthält nach dem Schreiben eines Objektes einen Fehlerstatus, falls ein Fehler aufgetreten ist. |
STATISTICS | r | ON oder OFF ,
Default = OFF . Statistik
anzeigen. |
Der Modul verlangt pro OUT-Objekt folgende Systemkomponenten:
Komponente | req/opt | Beschreibung |
OUT.TOPIC(s) | r | Topic des Objekts. |
OUT.TABLE(s) | r | Table des Objekts. |
OUT.OBJID(s) | r | Transferidentifikation des Objekts . |
Die restlichen Objektkomponenten sind abhängig von der
dazughörigen INTERLIS Tabelle (s.a. OUT.TOPIC
bzw.
OUT.TABLE
). Alle INTERLIS Attribute werden als
Komponenten des OUT-Objekts mit dem gleichem Namen erwartet. Die ICS
Datentypen werden wie folgt auf INTERLIS Datentypen abgebildet:
INTERLIS Datentyp | ICS Datentyp |
IRANGE | int |
RRANGE |
|
Text | string |
GRADS | real |
DEGREES | real |
RADIANS | real |
ENUMERATION |
|
COORD2 | point |
COORD3 | point |
POLYLINE | line |
SURFACE | area |
AREA | point (Zentroid) und
area (Fläche) |
Prozedur | ILOUT_OPEN ! [s input][] |
Beschreibung | Öffnet eine neue INTERLIS 1 Datei <input> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | ILOUT_WRITE_OBJECT ! [][] |
Beschreibung | Schreibt das nächste OUT-Objekt in die geöffnete INTERLIS 1 Datei. |
Beispiel |
|
Prozedur | ILOUT_WRITE_SURFACE ! [s Surface-Table][] |
Beschreibung | Schreibt zu einem
Hauptobjekt die Surface in die geöffnete INTERLIS 1 Datei.
Muss nach |
Beispiel |
|
Prozedur | ILOUT_WRITE_SURFACE_LINEATTR ! [s Surface-Table, s Line-Attribute-Name][] |
Beschreibung | Wie
|
Beispiel |
|
Prozedur | ILOUT_WRITE_COMMENT ! [s Comment][] |
Beschreibung | Schreibt eine
Kommentarzeile in den |
Beispiel |
|
Prozedur | ILOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
! Diese ICS Konfiguration kopiert alle von ILIN ! gelesenen Objekte mit ILOUT in in eine .itf Datei. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .itf Input File' FILE_FILTER => itf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .itf Output File' FILE_FILTER => itf FILE_EXISTS => FALSE OPT => output END_MAP MAP ILIN_PARAM INTERLIS_DEF => \models\Grunddatensatz.ili STATISTICS => ON END_MAP MAP ILOUT_PARAM INTERLIS_DEF => \models\Grunddatensatz.ili STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => ILIN,OPT.input END_MAP MAP INOUT I1 => COPY_INOUT0 END_MAP |INCL \script\ilin.mod |INCL \script\ilout.mod PROCEDURE COPY_INOUT0 &OUT MAPCLEAR &IN MAPRESET WHILE &IN MAPSCAN DO => VAR.ATTR => VAR.VALUE IF &VAR.VALUE GET_TYPE = 'ilink' THEN ! ilink in string umwandeln &VAR.VALUE ILIN.GET_ILINK_KEY => VAR.VALUE END_IF &OUT VAR.ATTR VAR.VALUE MAPINS END_WHILE ILOUT_WRITE_OBJECT END_PROCEDURE |INCL \script\run1.prg