====== 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 #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