Makro

Home  Zurück  Weiter

Der Makro-Manager ist ein sehr flexibles Werkzeug, um wiederkehrende Datenbankabfragen oder Befehlsfolgen 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.

Der Makro-Manager kann auch als eine Erweiterung des MapBasic-Fensters und des SQL-Auswahl-Fensters verstanden werden.

hmtoggle_plus1Manager Dialog

Dieser Manager erstellt ausführbare Funktionen, die in Menüs eingebettet oder in Werkzeugleisten auf eine Schaltfläche gelegt werden können.

Die Zuordnung erfolgt über die Zuweisung eines existierenden Menünamens und/oder eines Werkzeugleistennames mit einem Icon.

Managerfunktion
(vergrößern)

 

Neu

Legt eine neue Manager-Funktion an.

Der Name kann direkt in der Tabelle eingetragen und/oder geändert werden.

Löschen

Der ausgewählte Eintrag wird gelöscht.

Kopieren

Der ausgewählte Eintrag wird mit seinen kompletten Einstellungen kopiert und unter einem neuen Namen gespeichert.

Name

Name der Funktion

Gruppe

Bindung der Funktion an eine Datengruppe.

Allen berechtigten Benutzern, die diese Gruppe geladen haben, erhalten die Funktion.

Menü

Bindung der Funktion in ein Menü.

Das Menü muss bereits existieren. Es werden keine neuen Menüs angelegt. Erfolgt keine Zuweisung, wird die Funktion unter dem entsprechenden Manager gelistet.

Werkzeugleiste

Bindung der Funktion an eine Schaltfläche in einer Werkzeugleiste.

Die Werkzeugleiste muss bereits existieren. Es wird keine neue Werkzeugleiste angelegt.

Werkzeugicon

Aus mehreren Bibliotheken kann ein Icon für die Schaltfläche ausgewählt werden.

Icon-Bibliothek
(vergrößern)
Managerfunktion in Werkzeugleiste mit Icon
(vergrößern)
Managerfunktion in Menü mit Icon
(vergrößern)

Zugriffsrecht

Prinzipiell gilt, dass der Ersteller einer Managerfunktion standardmäßig das exklusive Zugriffsrecht auf seine erstellte Funktion hat. Keinem anderen Benutzer steht die Funktion zur Verfügung.

Der Administrator kann über das GeoAS Management jedoch die Exklusivität erweitern und die Funktion weiteren Benutzern bzw. Benutzergruppen zuordnen. Er kann aber auch die Exklusivität generell aufheben, indem er alle zugeordneten Benutzer entfernt. Somit hat jeder Benutzer die Zugriffsmöglichkeit auf die entsprechende Funktion.

Berechtigungen verwalten
(vergrößern)
Berechtigungen verwalten
(vergrößern)

 


hmtoggle_plus1Ein neues Makro speichern

Ö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 eingetragen.

Um ein Makro auszuführen, wählen Sie über das Menü bzw. die Werkzeugleiste die gewünschte Funktion aus.

manager_makro_textdatei.zoom50
(vergrößern)

 

Syntax

Der MakroEditor ist mit einer erweiterten Syntax für Feldfunktionen 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.
Die erweiterte Makrosyntax umfasst neben den Feldfunktionen für die Dialogabfrage auch Schlüsselwörter, die bestimmte Ereignisse auslösen.
Pro Makro können maximal 10 Feldfunktionen benutzt werden.
Es müssen keine Feldfunktionen benutzt werden.

 

hmtoggle_plus1Feldfunktionen

#Tabelle#

Dialog mit Editfeld und Beschriftung 'Tabelle'

#Tabelle:Baum#

wie oben, aber mit einem voreingetragenen Wert 'Baum' im Editfeld

#selection#

Schlüsselwort! Vor Makroausführung wird gecheckt, ob eine selection da ist

#Baum:selection#

Schlüsselwort! Vor Makroausführung wird gecheckt ob eine selection aus der Tabelle 'Baum' da ist

#Tabelle:Baum;Grün;Test#

Dialog mit einem PopUp-Menü (anstatt Editfeld)

#Tabelle1:(Tabelle2.Spalte)#

Dialog mit einem PopUp-Menü (anstatt Editfeld). Die Feldliste wird aus Tabelle2.Spalte bestimmt. Tabelle1 und Tabelle2 können auch identisch sein.

#Datum:curdate()#

Dialog mit Eingabefeld und voreingetragenem Systemdatum

#Zeit:time(12)#

Dialog mit Eingabefeld und voreingetragener Systemzeit (12 Std)

#Zeit:time(24)#

Dialog mit Eingabefeld und voreingetragener Systemzeit (24 Std)

Legende:   vorgegebene Syntax       Schlüsselwort     Platzhalter   frei definierbar

hmtoggle_plus1Schlüsselworte und Variablen

end public

End-Marke des vorgeschalteten Makro-Blocks.

Das Makro wird in zwei einzeln und nacheinander ausgeführte Teile gesplittet, und 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. 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 Aufrührung des Makros ab.

Beispiel: SelectionCheck(Baum)

Closetable(Tabelle)

schließt die angegebene Relation. Beispiel CloseTable(Baum)

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)

PathTemp

Variable, liefert den Temporärpfad zurück

TextWidth

legt die Breiten der StaticControls auf dem Auto-Dialog fest.

Beispiel: TextWidth=30, Default ist 75

EditWidth

legt die Breiten derEditControls auf dem Auto-Dialog fest.

Beispiel: EditWidth=100, Default ist 100

Description

bringt VOR Ausführung des Makros einen Beschreibungstext mit der Möglichkeit zu Canceln.

 

Beispiel-Makro:

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, der die Hilfedatei öffnet. Die Hilfedatei kann ohne Pfadangabe im GeoAS-Dir oder im Help-Dir liegen. Absolutpfadangabe auch möglich. Beide Schalter sind nur im Public-Bereich erlaubt!

RunGeoASMenu(ID)

Führt eine GeoAS Funktion aus, die eine Menü-ID hat.

Beispiel: RunGeoASMenu(20011), startet die Formularvorlage.

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

W&FS öffnen…

118

W&MS ö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.

manager_makro6a.zoom50
(vergrößern)

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.

 

 

Legende:   Schlüsselwort       Platzhalter

hmtoggle_plus1Kommentare im Makro

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

hmtoggle_plus1Beispiele

Beispiel 1

Es soll ein beliebiges Anzeigefenster geöffnet werden (vergleichbar mit <Fenster><Neues Anzeigefenster>):

browse * from #Tabelle#

Manager_Makro1a

 

Manager_Makro1b

Beispiel 2

Es soll ein bestimmtes Anzeigefenster geöffnet werden

Browse * from #Tabelle:Baum#

Im Textfeld ist die vordefinierte Relation bereits eingetragen

Manager_Makro2a

 

Manager_Makro2b

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

Manager_Makro3a

 

Manager_Makro3b

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

Manager_Makro4a

 

Manager_Makro4b

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.

 

Manager_Makro5a