Perl-Commandos
Perl-Scripte können unter anderem dazu dienen unter dem ESS Abläufe zu automatisieren. Der Import bzw. Export von Datensätzen kann so durchgeführt werden oder jede andere Funktion statt aus der Oberfläche (z.B. über Buttons) durch Aufruf der entsprechenden Funktionen ausgeführt werden.
Die unten abgebildeten Funktionen werden unter src/programs/perl/ in der Datei ess.xs mitgeliefert.
Perl-Beispiel-Programme sind ebenfalls in diesem Verzeichnis zu finden.
Beschreibung der Funktionen
Einem Aufruf der Funktionen muss immer 'ESS::' vorausgehen. Dies ist eine Klassenreferenz für die Namen der Funktionen. Die Funktionen sind folgendermaßen aufgebaut:
int update (fd) (Rückgabewert) Funktionsname Übergabeparameter
Datei ess xs:
#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include <stdio.h> #include "libif.h"
MODULE = Ess PACKAGE = Ess
PROTOTYPES: DISABLE
int
update(fd) //bewirkt eine Änderung auf der
int fd //Datenbank
CODE: //(entspricht dem Button F2)
RETVAL = ess_dbupdate(fd);
OUTPUT:
RETVAL
int
delete(fd) //Löscht einen (unreferenzierten!)
int fd //Datensatz aus der Datenbank
CODE:
RETVAL = ess_dbdelete(fd);
OUTPUT:
RETVAL
int
insert(fd) //Fügt einen Datensatz in die Datenbank ein
int fd
CODE:
RETVAL = ess_dbinsert(fd);
OUTPUT:
RETVAL
int
dbnext(fd) //wechselt auf den nächsten Daten-
int fd //satz der aktuellen Maske(blättern)
CODE:
RETVAL = ess_dbnext(fd);
OUTPUT:
RETVAL
int
backtake(fd, sel) //wechselt mit selektierten Daten
int fd //auf den vorherigen Datensatz
int sel
CODE:
RETVAL = ess_backtake(fd, sel);
OUTPUT:
RETVAL
int
godetail(fd, sel) //wechselt auf die Maskenansicht des
int fd //ausgewählten Datensatzes
int sel
CODE:
RETVAL = ess_godetail(fd, sel);
OUTPUT:
RETVAL
int
back(fd) //geht ohne Daten zurück
int fd //auf die vorherige Maske
CODE:
RETVAL = ess_back(fd);
OUTPUT:
RETVAL
int
reset(fd) //löschtden Maskeninhalt
int fd
CODE:
RETVAL = ess_reset(fd);
OUTPUT:
RETVAL
int
next(fd, fn) //Wechseln über Feldverknüpfung in
int fd //verknüpften Datensatz.
char *fn
CODE:
RETVAL = ess_next(fd, fn);
OUTPUT:
RETVAL
int
formscript(fd, title) //ruft das als Parameter übergebene
int fd // Formscript auf
int title
CODE:
RETVAL = ess_formscript(fd, title);
OUTPUT:
RETVAL
int
maskpd(fd, title) //entspricht dem Maskenpulldown;
int fd //wechselt in eine verknüpfte Maske
int title //als Parameter muss ihre Titel-
CODE: //nummer angegeben werden
RETVAL = ess_maskpd(fd, title);
OUTPUT:
RETVAL
int
maskpdbyname(fd, mname) //siehe maskpd
int fd //als Parameter kann der Name der
char *mname //Maske, in die gewechselt werden
CODE: //soll, angegeben sein
RETVAL = ess_maskpdbyname(fd, mname);
OUTPUT:
RETVAL
int
setfield(fd, fn, val) //setzt einen Text in ein Feld
int fd
char *fn
char *val
CODE:
RETVAL = ess_setfield(fd, fn, val);
OUTPUT:
RETVAL
char *
getfield(fd, fn) //holt einen Feldtext
int fd
char *fn
CODE:
RETVAL = ess_getfield(fd, fn);
OUTPUT:
RETVAL
int
gopath(fd, path) //zeigt den Maskenbaum zum aktuellen
int fd //Pfad an
char *path
CODE:
RETVAL = ess_gopath(fd, path);
OUTPUT:
RETVAL
int
connect(host, port, user, pass) //bewirkt einen Verbindungsaufbau
char *host
hort port
char *user
char *pass
CODE:
RETVAL = ess_connect(host, port, user, pass);
OUTPUT:
RETVAL
void
settracelevel(lev) //setzt einen Tracelevel für Debugunsigned
int lev //informationen
CODE:
ess_settracelevel(lev);
char *
getstack(fd) //gibt den aktuellen Pfad (Pointer)
int fd
CODE:
RETVAL = ess_getstack(fd);
OUTPUT:
RETVAL
int
select(fd) //entspricht dem “go“-Button zur
int fd //Suche nach Datensätzen
CODE:
RETVAL = ess_dbselect(fd);
OUTPUT:
RETVAL
int
selectic(fd) //entspricht dem case-sensitiven
int fd //“Go“-Button zur Suche nach
CODE: //Datensätzen
RETVAL = ess_dbselectic(fd);
OUTPUT:
RETVAL
int
order(fd) //
int fd
CODE:
RETVAL = ess_dborder(fd);
OUTPUT:
RETVAL
int
goorder(fd)
int fd
CODE:
RETVAL = ess_dbgoorder(fd);
OUTPUT:
RETVAL
int
goselect(fd) //entspricht dem Suchen-Button;
int fd //geht zur Abgrenzungsmaske
CODE:
RETVAL = ess_dbgoselect(fd);
OUTPUT:
RETVAL
void
disconnect(fd) //bewirkt eine Unterbrechnung der
int fd //Verbindung
CODE:
ess_disconnect(fd);
void
connectinfo(fd) //gibt Information über die Ver
int fd //bindung zum mxd
CODE:
ess_connectinfo(fd);
char *
error() //gibt Fehlermeldung aus
CODE:
RETVAL = ess_error();
OUTPUT:
RETVAL
int
rows(fd) //gibt die selektierte Menge der
int fd //Datensätze aus der Datenbank
CODE:
RETVAL = ess_rows(fd);
OUTPUT:
RETVAL
char *
fieldlist(fd, type) //listet alle Maskenfelder auf
int fd
int type
CODE:
RETVAL = ess_fieldlist(fd, type);
OUTPUT:
RETVAL
char *
apperror(fd) //gibt Fehlermeldung aus Formularen
int fd
CODE:
RETVAL = ess_apperror(fd);
OUTPUT:
RETVAL
char *
appnote(fd) //entspricht den Fehlermeldungen
int fd
CODE:
RETVAL = ess_appnote(fd);
OUTPUT:
RETVAL
void
seterrexit( onoff) //Globale Variable:
int onoff //bewirkt ein Programmende im Falle
CODE: //einer Fehlermeldung
ess_seterrexit(onoff);
int
maxrows(fd, rows) //beschränkt die Datensatzmenge, die
int fd; //angezeigt werden soll.
int rows;
CODE:
RETVAL = ess_maxrows(fd, rows);
OUTPUT:
RETVAL
int
gosurvorder(fd) //geht zur Maske, die eine Übersicht
int fd; //definiert
CODE:
RETVAL = ess_gosurvorder(fd);
OUTPUT:
RETVAL
int
survorder(fd) //definiert die Übersicht
int fd;
CODE:
RETVAL = ess_survorder(fd);
OUTPUT:
RETVAL
int
survey(fd) //gibt eine Übersicht der aktuellen
int fd; //Datensätze
CODE:
RETVAL = ess_survey(fd);
OUTPUT:
RETVAL
int
setsinglemode(fd, mode) //je nach Einstellung wird ein Feld-
int fd; //inhalt sofort an den mxd geschickt
int mode; //oder er bleibt local
CODE:
RETVAL = ess_setsinglemode(fd, mode);
OUTPUT:
RETVAL
char *
getnextfield(fd, flag) //wechselt ins nächste Maskenfeld
int fd;
int flag;
CODE:
RETVAL = ess_getnextfield(fd, flag);
OUTPUT:
RETVAL
int
gosubmask(fd, fn, sel) //wechselt in die Submaske
int fd;
char *fn;
int sel;
CODE:
RETVAL = ess_gosubmask(fd, fn, sel);
OUTPUT:
RETVAL
