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
programmierung/perl.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: