Makros sind sehr flexible Werkzeuge, um wiederkehrende Datenbankabfragen oder Funktionsfolgen zu speichern und auf Knopfdruck auszuführen. Erfahrene Anwender können komplexe eigene Funktionen gestalten und im GeoAS Netzwerk nach dem Motto: "Ich brauche da noch einen Knopf ..." zur Verfügung stellen. Ein Makro kann auch als eine Erweiterung des MapBasic-Fensters und des SQL-Auswahl-Fensters verstanden werden.
Mit dem Makro-Manager können unterschiedliche Makros unter verschiedenen Namen gespeichert und bei Bedarf wieder aufgerufen werden.
Die Verwaltung der Makros erfolgt im Makro-Manager.
Dieser Manager verwaltet ausführbare Funktionen, die in Menüs eingebettet oder in Schaltflächenleisten auf eine Schaltfläche gelegt werden können (Ausnahme: MultiEditor). Die Zuordnung erfolgt über die Zuweisung eines existierenden Menünamens und/oder eines Schaltflächenleistennamens mit einem Symbol (Schaltflächen-Symbol).
(vergrößern)
|
Neu
|
Legt eine neue Manager-Funktion an.
Der Name kann direkt in der Tabelle eingetragen und/oder geändert werden.
|
Überschreiben
|
Eine bestehende Manager-Funktion wird mit veränderten Einstellungen überschrieben.
|
Löschen
|
Der ausgewählte Eintrag wird gelöscht.
|
Kopieren
|
Der ausg
ewählte Eintrag wird mit seinen kompletten Einstellungen kopiert und unter einem neuen Namen gespeichert.
|
|
Name
|
Name der Funktion, frei wählbar.
Optional:
•Ein "-" (Minuszeichen/kurzer Bindestrich) vor einem Namen erzeugt eine horizontale Trennlinie im Menü und dient zur besseren Abgrenzung. (Ausnahme ist der MultiEdtor, da er nur Hauptmenüs (Automenü) erzeugen kann.) •Funktionen können auch automatisch beim Öffnen oder Schließen einer Datengruppe ausgeführt werden. Dazu muss der Name AutoStart bzw. AutoEnde lauten und eine Gruppe muss zugeordnet sein. Es sind beliebig viele Start- Ende- Funktionen zulässig. AutoStart und AutoEnde können nur in den Managern Darstellung, Ansichten, Thema und Makro eingesetzt werden. •Die Menünamen können auch Parameter für die Verwendung der F-Tasten oder STRG-, Alt-, Shift-Tasten beinhalten.
Windows Menücode
|
Anwendung
|
/W {Buchstabe | %Nummer}
|
Tastatur-Shortcut für die angegebene Taste
Beispiele: MeinMenü /WZ oder MeinMenü /W%113
|
/W# {Buchstabe | %Nummer}
|
Tastatur-Shortcut für die angegebene Taste inkl. die Shift-Taste
Beispiele: MeinMenü /W#Z oder MeinMenü /W#%113
|
/W@ {Buchstabe | %Nummer}
|
Tastatur-Shortcut für die angegebene Taste inkl. die Alt-Taste
Beispiele: MeinMenü /W@Z oder MeinMenü /W@%113
|
/W^ {Buchstabe | %Nummer}
|
Tastatur-Shortcut für die angegebene Taste inkl. die Strg-Taste
Beispiele: MeinMenü /W^Z oder MeinMenü /W^%113
|
%Nummer: %112 = F1-Taste, %113 = F2-Taste, usw.
|
|
Ordner
|
Dieses Feld ist nur sichtbar, wenn die Ordner-Option über das Management eingeschaltet ist. Es ist nur lesbar und wird automatisch durch die Auswahl einer Gruppe gefüllt.
|
Gruppe
|
Bindung der Funktion an eine Datengruppe. (Ausnahme: MultiSQL und MultiEditor)
Allen berechtigten Benutzern, die diese Gruppe geladen haben, erhalten die Funktion.
Die Zuordnung einer Manager-Funktion zu einer Gruppe ist optional.
|
Menü
|
Bindung der Funktion in ein Menü. (Ausnahme: MultiEditor)
Das Menü muss bereits existieren. Es werden keine neuen Menüs angelegt. Erfolgt keine Zuweisung, wird die Funktion unter dem entsprechenden Manager gelistet.
Die Zuordnung einer Manager-Funktion zu einem Menü ist optional.
Menünamen können auch Untermenüs enthalten. Beispiel Baum\Suchen. (Ordner und Gruppen müssen spezifiziert werden.)
Das funktioniert aber nur für Untermenüs in Developer-Fachmodulen.
|
Werkzeugleiste
|
Bindung der Funktion an eine Schaltfläche in einer Schaltflächenleiste. (Ausnahme: MultiEditor)
Die Schaltflächenleiste muss bereits existieren. Es wird keine neue Schaltflächenleiste angelegt.
Die Zuordnung einer Manager-Funktion zu einer Schaltflächenleiste ist optional.
|
Werkzeugicon
|
Aus mehreren Bibliotheken kann ein Symbol/Icon für die Schaltfläche ausgewählt werden. (Ausnahme: MultiEditor)
Die Zuordnung einer Manager-Funktion zu einem Werkzeugicon ist optional.
(vergrößern)
|
(vergrößern)
|
(vergrößern)
|
|
Sort
|
Bei mehreren Eintragungen kann eine Sortierreihenfolge festgelegt werden.
Der Manager-Funktion, die im Manager-Menü als erstes aufgelistet werden soll, wird eine "1" zugeordnet. Der nächstfolgenden Manager-Funktion wird eine "2" zugeordnet, usw.
|
Zugriffsrecht / Exklusive Benutzer
Der Ersteller einer Funktion erhält das exklusive Zugriffsrecht. Keinem anderen Benutzer steht die Funktion zur Verfügung. Der Administrator kann über das GeoAS Management jedoch die Exklusivität erweitern oder aufheben. Er kann weitere exklusive Benutzer oder Benutzergruppen zuordnen oder er kann alle zugeordneten Benutzer entfernen und die Funktion dadurch allen Benutzern zur Verfügung stellen.
: Dieses Symbol zeigt an, dass die entsprechende Managereinstellung exklusiv einem Benutzer zugeordnet ist.
: Dieses Symbol zeigt an, dass die entsprechende Managereinstellung nicht exklusiv einem Benutzer zugeordnet ist, sondern von mehreren Benutzern ausgeführt werden kann.
|
Export/Import von Managereinstellungen
Für folgende Manager können die Einstellungen in eine externe Konfigurationsdatei exportiert bzw. wieder importiert werden. (Diese Funktion ist beispielsweise dafür geeignet, Manager-Einstellungen an externe GeoAS Installationen zu übertragen.)
•Darstellung •Makro •Ansichten •Thema •Fenster-Set
(vergrößern)
Mit der Schaltfläche Datei zuordnen kann eine Konfiguration aus einer externen Datei importiert und dynamisch dem entsprechenden Eintrag zugeordnet werden.
Mit der Schaltfläche Datei exportieren kann eine Konfiguration in eine externen Datei exportiert werden.
Mit der Schaltfläche Dateizuordnung entfernen kann die dynamische Zuordnung aufgehoben werden.
|
|
Syntax
Der Makro-Editor ist mit einer erweiterten Syntax für Feldfunktionen, Schlüsselworte und Variablen versehen.
•Feldfunktionen sind als Platzhalter zu verstehen und werden mit dem Zeichen # vor und hinter der Feldfunktion vom übrigen Makrotext abgesetzt. •Sämtliche Feldfunktionen eines Makros werden nach Aufruf des Makros in einem Dialog zur Dateneingabe bereitgestellt. •Pro Makro können maximal 10 Feldfunktionen benutzt werden. •Es müssen keine Feldfunktionen benutzt werden. •Die Schlüsselworte lösen bestimmte Ereignisse aus oder steuern den Makroablauf •Variablen dienen der Zwischenpufferung von Werten, auf die im späteren Makroablauf zugegriffen werden kann. •Damit im Makro-Manager auf Grafikattribute (Centroid, Area, ObjectLen, etc.) zugegriffen werden kann, wird beim GeoAS-Start ein globales Koordinatensystem gesetzt, entsprechend dem ersten Layer im Hauptkartenfenster. Sofern dies nicht das gewünschte Koordinatensystem ist, kann es im Makro mit set coordsys... explizit gesetzt werden.
Öffnen Sie den Makro-Manager. Klicken Sie auf Neu und füllen Sie den neuen Datensatz aus. In das Textfeld können Sie den Makrotext direkt eingeben oder aus einer Textdatei einlesen. Über ein Makro kann auch direkt ein Zusatzprogramm (*.mbx, *.wor) gestartet werden. Dazu wird die Programmdatei genauso wie eine Makro-Textdatei ausgewählt.
Um ein Makro auszuführen, wählen Sie über das Menü bzw. die Schaltflächenleiste die gewünschte Funktion aus.
Makros können auch automatisch beim Öffnen oder Schließen einer Datengruppe ausgeführt werden. Dazu muss der Name AutoStart bzw. AutoEnde lauten und eine Gruppe muss zugeordnet sein. Es sind beliebig viele Start- Endemakros zulässig. AutoStart und AutoEnde können in den Managern Darstellung, Ansichten, Thema und Makro eingesetzt werden.
|
(vergrößern)
|
#Text#
|
Dialog-Editfeld und Beschriftung 'Text'
|
#Text:Baum#
|
Dialog-Editfeld und Beschriftung, aber mit einem voreingetragenem Wert 'Baum' im Editfeld
|
#selection#
|
Schlüsselwort! Vor Makroausführung wird gecheckt, ob eine Selektion da ist
|
#Baum:selection#
|
Schlüsselwort! Vor Makroausführung wird gecheckt ob eine selection aus der Tabelle 'Baum' da ist
|
#Text:Baum;Grün;Test#
|
Dialog-Pulldown-Feld, mit fixer Werteliste
|
#Text:Baum;Grün;Test:ListBoxHeight=50#
|
Dialog-Listbox, mit fixer Werteliste und Listboxhöhe (in Pixeln). Beispiel
ControlSpacing=3
TextWidth=60
select * from Flurstücke where Gemarkung in ("#Gemarkung:(Gemarkungen.Gemarkung):ListBoxHeight=30#")
and Flur in ("#Flur:1;2;3;4:ListBoxHeight=40#")
|
|
#Text:(Tabelle.Spalte)#
|
Dialog-Pulldown-Feld, die Werteliste wird aus Tabelle.Spalte bestimmt
|
#Label:Checkbox,T#
|
Kann einer Variablen einen Boolean-Wert über eine Checkbox zuweisen.
Label ist freier Text zur Beschriftung der Textbox.
Die Bedingung T/F (True(False) bestimmt. ob die Checkbox standardmäßig angehakt oder nicht angehakt ist.
Beispiel
log1=#Testbox:Checkbox,T#
|
Gibt es auch für SELECT Befehle, siehe nachstehend
|
#Label:Checkbox,F,T#
|
Kann in einem Select-Befehl einen Boolean-Wert über eine Checkbox zuweisen.
Label ist freier Text zur Beschriftung der Textbox.
Die 1. Bedingung T/F (True/False) bestimmt, ob die Checkbox standardmäßig angehakt oder nicht angehakt ist.
Die 2. Bedingung definiert die Bindung auf genau einen Wert T (True) bzw. F (False). Trifft er zu, wird er berücksichtigt, ansonsten ignoriert (entweder/oder). Die Bedingung ist optional und macht nur Sinn, wenn mehrere Checkboxen in einem Dialog genutzt werden.
Beispiel
select * from TABELLE where
Feld1 in (#Label1:Checkbox,F,T#)
and Feld2 in (#Label2:Checkbox,F,T#)
and Feld3 in (#Label3:Checkbox,F,T#)
|
|
#Text:(Tabelle.Spalte):ListBoxHeight=50#
|
Dialog-Listbox, die Werteliste wird aus Tabelle.Spalte bestimmt, mit Listboxhöhe (in Pixeln). Beispiel
ControlSpacing=3
TextWidth=60
select * from Flurstücke where Gemarkung in ("#Gemarkung:(Gemarkungen.Gemarkung):ListBoxHeight=30#")
and Flur in ("#Flur:1;2;3;4:ListBoxHeight=40#")
|
|
#Datum:curdate()#
|
Dialog-Editfeld und voreingetragenem Systemdatum
|
#Zeit:time(12)#
|
Dialog-Editfeld und voreingetragener Systemzeit (12 / 24 Std)
|
n = vorgegebene Syntax n = Schlüsselwort n = Platzhalter n = frei definierbar
|
end public
|
End-Marke des vorgeschalteten 'public' Makro-Blocks.
Das Makro wird in zwei einzeln und nacheinander ausgeführte Teile gesplittet, und es werden zwei separate 'run command' ausgeführt. Der vor end public stehende Teil darf keine Feldfunktionen (#) erhalten. So kann man vorab Bedingungen schaffen, die für den Rest des Makros erforderlich sind, z. B. für die Feldfunktionen im Dialog oder für Description und Helpfile. Ohne end public wird das Makro mit einem einzigen 'run command' ausgeführt.
|
SelectionCheck(Tabelle)
|
prüft, ob eine Selektion auf Basis der angegebenen Relation existiert. Gibt eine Meldung aus, wenn dem nicht so ist und bricht die Ausführung des Makros ab. Beispiel: SelectionCheck(Baum)
|
SelectionCheck(Tabelle:n)
|
prüft, ob eine Selektion auf Basis der angegebenen Relation existiert mit genau n Zeilen. Gibt eine Meldung aus, wenn dem nicht so ist und bricht die Ausführung des Makros ab. Beispiel: SelectionCheck(Baum:1) -> Es muss genau ein Baum selektiert sein.
|
Closetable(Tabelle)
|
schließt die angegebene Relation. Beispiel CloseTable(Baum)
|
GetUserName
|
fügt den Username des angemeldeten Benutzers an die Stelle der Feldfunktion ein (Platzhalter, keine Variable). Ggf. müssen daher " " gesetzt werden.
Beispiel: str1="GetUserName" note str1
|
Autokartei
|
ruft die Standard-Karteikartenfunkton von GeoAS auf (wie rechte Maustaste)
|
ZoomSelection
|
entspricht Auswahl-zentrieren (zoomt auf Objektgröße)
|
ShowSelection
|
entspricht Auswahl-suchen (behält den Zoombereich)
|
SetFrontwindow(Fenstername)
|
Funktion, um ein existierendes Fenster zum Frontwindow zu machen.
Beispiele:
SetFrontwindow(Hauptfenster)
SetFrontwindow(Bäume Kartenfenster)
|
PathTemp
|
Variable, liefert den Temporärpfad zurück
|
TextWidth
|
legt die Breiten der Control-Beschriftungen auf dem Auto-Dialog fest (in Pixeln).
Beispiel: TextWidth=30, Default ist 75
|
EditWidth
|
legt die Breiten der Editfelder, Pulldowns und Listboxen auf dem Auto-Dialog fest (in Pixeln).
Beispiel: EditWidth=100, Default ist 100
|
ControlSpacing=3
|
Abstand zwischen den Controls auf dem Auto-Dialog (in Pixeln)
|
Description
|
bringt vor Ausführung des Makros einen Beschreibungstext mit der Möglichkeit die Fortführung abzubrechen. Eine Description kann nur im Public-Bereich definiert werden (also VOR end public)!
Beispiel:
description(Wollen Sie wirklich die Festplatte neu formatieren?)
HelpFile(GeoAS6_Hilfe.pdf)
end public
str1="#Ihr Name lautet#"
note str1+"! Sie haben soeben die Platte neu formatiert!"
|
Helpfile
|
Auf dem Description-Dialog UND auf dem Feldfunktionen-Dialog erscheint eine [?]-Schaltfläche zum Öffnen der Hilfedatei. Die Hilfedatei kann ohne Pfadangabe im GeoAS-Dir oder im Help-Dir liegen. Eine Absolutpfadangabe ist auch möglich. Es sind alle Formate zulässig. Die Hilfedatei wird so geöffnet, wie sie auch per Doppelklick im Dateiexplorer geöffnet werden würde.
Ein Helpfile kann nur im Public-Bereich definiert werden (also VOR end public)!
|
RunGeoASMenu(ID)
|
Führt eine GeoAS Funktion aus, die eine Menü-ID hat.
Beispiel: RunGeoASMenu(20011), startet die Formularvorlage.
Liste der Menü-ID's
Menu-ID
|
GeoAS Funktion
|
20058
|
Alle Relationen speichern
|
21022
|
Als Formular speichern
|
202
|
Ausschneiden
|
10812
|
Ausschnittsbereich festlegen
|
22018
|
Auswahl editierbar schalten
|
814
|
Benutzerdef. Beschrift. löschen
|
112
|
Drucken
|
204
|
Einfügen
|
10420
|
Excel Export....
|
610
|
Fenster neuzeichnen
|
609
|
Fenster speichern unter...
|
20011
|
Formularvorlage
|
21029
|
Formularvorlage bearbeiten
|
22007
|
Gesamtansicht
|
20010
|
Karte plotten
|
22013
|
Kartenfenster öffnen
|
22012
|
Kartenfenster speichern
|
22015
|
Kopie speichern und öffnen
|
106
|
Kopie speichern unter...
|
203
|
Kopieren
|
809
|
Kosmet. Objekte speichern
|
810
|
Kosmet. Layer löschen
|
205
|
Löschen
|
304
|
Markierung aufheben
|
702
|
Neue Zeile
|
206
|
Nur Kartenobjekte löschen
|
21028
|
Plot schließen
|
21021
|
Plot-Voreinstellungen
|
103
|
Relation schließen
|
105
|
Relation speichern
|
309
|
Statistik berechnen...
|
20071
|
Temp. Relationen schließen
|
1607
|
Umwandlung in Bereiche
|
1604
|
Umwandlung in Polylinien
|
119
|
WFS öffnen…
|
118
|
WMS öffnen…
|
1605
|
Zusammenfassen...
|
21100
|
Text-Label Menü für selektierte Objekte. Das zu beschriftende Fenster muss aktivs ein.
|
21101
|
Text-Label Menü für alle Objekte. Das zu beschriftende Fenster muss aktivs ein.
|
|
BrowseDialog(Tabelle)
|
Öffnet den GeoAS Tabellendialog. Der Aufruf muss am Ende des Makros stehen und darf nur einmal vorkommen.
Beispiel:
select * from Gebäude where Beschreibung="Schuppen" into test
BrowseDialog(test)
|
BeginSQL
... FROM {Tabelle}
... INTO NeuerName
... NoSelect
... DoLink
... Hide
... Autocol
EndSQL
|
Sofern Daten aus einer externen Datenbank geöffnet sind, kann der SQL-Befehl auch direkt an die Datenbank geschickt werden. Besonders bei großen Datenmengen ist dies bedeutend performanter, als die heruntergeladenen Daten zu benutzen. Zur Nutzung solcher SQL-Befehle müssen die Daten in einer Datengruppe des GeoAS Managements enthalten sein. Zunächst ist unter Pfade ein Datenbankpfad zum SQL-Server einzutragen, der auf die zu öffnenden SQL-Daten verweist. Danach sind die Tabellen per Datenbankpfad zu einer Datengruppe hinzuzufügen. Durch Öffnen der Datengruppe in GeoAS ergibt sich automatisch ein Live-Zugriff mit Cache, der für einen folgend beschriebenen SQL-Befehl benötigt wird.Die Anweisung kann in jedes beliebige Makro integriert werden. Mehrere Anweisungen hintereinander sind zulässig. Achtung: Innerhalb des Begin-End-Blocks muss die Syntax der jeweiligen Datenbank berücksichtigt werden.
FROM: Der SQL-Befehl benötigt zwingend mindestens eine FROM Anweisung mit Angabe der Tabelle in geschweiften Klammern. Bsp. FROM {Altlasten}
INTO: Mit INTO wird nicht wie bei einer Datenbank üblich ein physischer View erzeugt sondern lediglich der Name der Query in GeoAS festgelegt (MapInfo Logik).
NoSelect (optional): Ist der Parameter NoSelect gesetzt, wird das Ergebnis in GeoAS nicht selektiert.
Hide (optional): Ist der Parameter Hide gesetzt, wird das Ergebnis nur in der Datenbank unter dem vergebenem Namen (Into) vorgehalten und nicht in GeoAS geöffnet. Diese Variante kann für Zwischenergebnisse benutzt werden, wenn mehrere SQL-Befehle abgesetzt werden und ein Folgebefehl auf dieses Zwischenergebnis zugreifen soll.
DoLink (optional): Als Standard wird die Abfrage als neue, temporäre Tabelle geöffnet. Der optionale Parameter DoLink überträgt die Selektion wieder auf die Ausgangstabelle, die temporäre Tabelle wird geschlossen. Dolink funktioniert nur mit kartierbaren Relationen. DoLink und Hide schließen sich gegenseitig aus.
Autocol (optional): Das Schlüsselwort Autocol wird mit allen im GeoAS Management für die angefragte Tabelle definierten Spalten als Auflistung ersetzt. Auf diese Weise wird sichergestellt, dass keine unzulässigen Spalten zurückgegeben werden.
Variablen: Die Verwendung der Makro-Variablen (z.B. int1) ist zulässig. Damit die Datenbank diese erkennen kann, müssen Sie durch ein vorangestelltes '@'-Zeichen gekennzeichnet werden. Das '@'-Zeichen darf nur innerhalb der BeginSQL-EndSQL-Anweisung verwendet werden.
Beispiel:
SelectionCheck(Flurstücke:1)
str1=Selection.Index1
BeginSQL
Select * FROM {Altlasten} where index1=@str1 INTO Test NoSelect DoLink
EndSQL
browse * from test
Beispiel Versiegelung:
SELECT * FROM Versiegelung_Flächen
Kann in GeoAS nicht geöffnet werden, da zwei grafische Spalten existieren.
SELECT autocol FROM Versiegelung_Flächen
Funktioniert, weil die zweite grafische Spalte im GeoAS Management als versteckt deklariert wurde.
|
AutoShade(...)
|
AutoShade erzeugt eine dynamische thematische Karte für Flächen- oder Linienobjekte. Dazu kann entweder eine Farbtabelle oder ein automatischer Farbverlauf benutzt werden. Vor und nach AutoShade sind auch andere Kommandos zulässig. AutoShade darf aber nur einmal innerhalb eines Makros vorkommen.
Farbtabelle: Die Farbtabelle ist eine MapInfo-Tabelle und fix vorgegeben: \Lib\Shade\ColorTable.tab. Sie kann zusätzlich zur ID-Spalte beliebig viele Spalten haben. Jede Spalte entspricht einer eigenen Farbtabelle und enthält die Farbwerte gemäß der Brush/Pen-Definition von MapInfo. Die Farbwerte sind NICHT attributgebunden. Sie werden nacheinander benutzt, sortiert nach der Spalte ID. Die Anzahl der (gefüllten) Zeilen ist unerheblich, es kann lange und kurze Farbtabellen geben. Übersteigt die Anzahl der Attribute die Anzahl der verfügbaren Farbwerte, wird wieder von oben angefangen. Mit dem Zusatzprogramm UpdateColorTable.MBX (liegt im GeoAS Hauptverzeichnis) können thematische Karten aus dem Thema-Manager in die ColorTable überführt werden.
Farbverlauf: Durch Angabe zweier MapInfo-Farbwerte (von - nach) kann jeder beliebige Farbverlauf erzeugt werden. Die gesetzten Farbwerte können über das GeoAS Menü Optionen > Zusatzprogramme > aktiven Stil zeigen ermittelt werden.
Syntax 1: AutoShade(Tabellenname,Spaltenname,Spaltename in Farbtabelle)
Syntax 2: AutoShade(Tabellenname,Spaltenname,vonFarbwert,nachFarbwert)
Beispiel 1: Fartabelle
AutoShade(Flurstücke,Flur,Solid)
Flur ist eine Spalte der Tabelle Flurstücke. Solid ist eine Spalte in der ColorTable.
Beispiel 2: Farbverlauf
AutoShade(Flurstücke,Flur,255,13172735) Dunkelblau -> Hellblau
AutoShade(Flurstücke,Flur,16711680,65280) Rot -> Grün
Beispiel 3: Sämtliche Möglichkeiten eines Makros stehen zu Verfügung. Der Aufruf könnte also auch mit Feldfunktionen kombiniert werden und so aussehen:
AutoShade(#Tabelle:Flurstücke#,#Spalte:Flur#,#Farbtabelle:Full;Solid;Light#)
|
Variable
|
Datentyp
|
Str1 – Str9
|
String
|
Int1 – Int9
|
Integer
|
Dec1 – Dec9
|
Float
|
Dat1 – Dat9
|
Date
|
Log1 – log9
|
Logical
|
Ali1 – Ali9
|
Alias
|
Obj1 – Obj9
|
Object
|
|
Im Makro stehen eine Anzahl bereits vordefinierter Variablen zur Verfügung. Diese Variablen können direkt genutzt werden und müssen nicht per dim- /undim-Anweisung verwaltet werden. Pro Datentyp sind 9 Variablen definiert. Innerhalb einer BeginSQL-EndSQL-Anweisung muss den Variablebnamen ein '@' vorangestellt werden.
|
n = Schlüsselwort n = Platzhalter n = Variable
|
In einen Makro-Code können beliebige Kommentare in eckigen Klammern […] eingefügt werden, die sich nicht auf den Makrolauf auswirken.
Nach jeder öffnenden Klammer "[" wird die nächstfolgende schließende Klammer "]" gesucht. Wenn eine schließende Klammer fehlt, wird am Makroende eine temporäre schließende Klammer gesetzt und der gesamte Text bis zum Makroende als Kommentar interpretiert.
|
Beipiel:
[Makro zur Ermittlung der Hoehendifferenz]
Int1=100
Select * from MeineTabelle where H=#Hoehe
[Hoehe ist Integer]
Int2=selection.H-int1 [Das ist das Endergebnis]
Note int2
|
Hinweis
|
•Bitte beachten Sie beim Erstellen von Makros, dass ein Limit von 30000 Zeichen (je Makro) nicht überschritten wird.
Dieses Limit gilt sowohl für Makros, die unmittelbar in das Textfeld des Makromanagers eingetragen werden als auch für Makros, die per externer Textdatei verlinkt werden.
Bei textintensiven Makros empfehlen wir, diese per MapBasic in eine *.mbx-Datei zu kompilieren. Die *.mbx-Datei kann dann über den Makromanager als Makro verlinkt werden. |
Beispiel 1
Es soll ein beliebiges Anzeigefenster geöffnet werden (vergleichbar mit <Fenster><Neues Anzeigefenster>):
browse * from #Tabelle#
|
Beispiel 2
Es soll ein bestimmtes Anzeigefenster geöffnet werden
Browse * from #Tabelle:Baum#
Im Textfeld ist die vordefinierte Relation bereits eingetragen
|
Beispiel 3
Eine Selektion soll mit bestimmten Werten aktualisiert werden
update #Bäume:selection# set Prüfer="#Prüfung durch:Fritz Müller;Peter Meier#",
Prüfdatum="#Prüfdatum:CurDate()#",Uhrzeit="#Zeit:time(24)#",Bemerkung="#Bemerkung#"
(Vor Ausführung wird geprüft, ob tatsächlich Bäume selektiert sind.)
|
Beispiel 4
Eine Datenbankabfrage soll flexibel sein
select Baumnummer,Baumart,Strasse from Bäume where Vitalität="#Vitalität:gesund;geschädigt;abgängig#" and Prüfdatum<"#Prüfung vor dem#" into Vitalitätsliste noselect
browse * from Vitalitätsliste
|
Beispiel 5
In manchen Fällen müssen die Felder der Makro-Steuerelemente mit Werten gefüllt werden, die beim Öffnen des Makro-Eingabedialogs noch nicht bekannt sind. Daher kann man im Makros einen Teil abgrenzen, der vorab ausgeführt wird. Das Schlüsselwort 'end public' schließt diesen Teil ab.
Mit der Verwendung der vordefinierten Variablen lassen sich Werte zwischenpuffern und im weiteren Makroverlauf wieder anwenden.
|
|