Kaufmännische Software für Handel, Handwerk und Produktionsbetriebe
\ROOT\OBJECTS\DATAOBJECTS\{DataobjectsNamen}
\Actions\{ActionsNamen}\
Der Bezeichner {ActionsNamen} ist ein frei eingebbarer Name, unter dem der neue Menüpunkt in der SQL-Registry eingefügt werden soll. Dieser Name ist nicht der Anzeigename.
Für jeden Menüeintrag wird ein eigener Ordner unterhalb von „Actions“ angelegt. Diese Einträge werden im Extras-Menü der dazugehörenden Bildschirmmaske angezeigt.

In diesem Beispiel wird das Notepad in das Adressmenü integriert. Der Inhalt des Feldes „Match“ wird als Parameter inkl. der Dateierweiterung „.TXT“ an das Notepad übergeben. Auf diese Weise kann eine Textinformation zur angezeigten Adresse eingesehen bzw. gespeichert werden. Im Netzwerk sollte dann ein UNC-Pfad vor den Dateinamen gestellt werden, damit die Textdaten zentral von allen Arbeitsstationen erreichbar sind. Also zum Beispiel: \\Servername\Freigabe\&match%.txt.
Es gibt derzeit zwei unterschiedliche Typen der Action. Ein Typ ist der zum Aufruf von externen Programme mit dem Wert „ShellExecute“ und der andere zur Erzeugung einer CSV-Datei mit dem Wert „CsvExport“.
| Type= { Zeichenfolge } |
EULANDA® unterstützt für die Eigenschaft „Type“ zwei Werte:
|
| CommandText= {Zeichenfolge} |
Hier wird das zu startende
Fremdprogramm mit UNC-Pfadangabe eingetragen.
Benutzen Sie auf keinen Fall
Laufwerksbuchstaben, da die SQL-Registry für das
gesamte Netzwerk gültig ist und die Laufwerke
auf den Arbeitsstationen unterschiedlich
gemapt sein können. Beispiel: |
||||
| Context= { Integer } |
Gibt an, ob der Aufruf eines Fremdprogramms
davon abhängt, ob ein Datensatz selektiert sein
muss oder nicht.
|
||||
| Parameters= { Zeichenfolge } |
Enthält die Parameter, die an das Fremdprogramm übergeben werden können. Neben festen Parametern ist auch die Übergabe von Feldern des aktuell angezeigten Datensatzes möglich. In diesem Fall werden die zu übergebenden Feldnamen in Prozentzeichen eingefügt. Beispiel: Hier wird ein fester Parameter -a mit den beiden Feldinhalten ID-Nummer und Matchcode der aktuellen Adresse übergeben. |
||||
| Title= { Zeichenfolge } |
Ist der Name des Menüeintrags. Der Kurzeintrag wird durch Voranstellen eines kaufmännischen UND-Zeichens markiert. Soll ein Menüname „Müller & Co“ benutzt werden, so müssen zwei kaufmännische UND-Zeichen eingetragen werden. Beispiel: Der Menüeintrag „Mein Notepad“ wird nun in das Extramenü von beispielsweise „Adressen“ eingefügt. Der Menüpunkt ist immer dann aktiv, wenn eine Adresse selektiert ist. |
Die Möglichkeiten des CSV-Exports sind sehr leistungsfähig und vielseitig. Zur Bereitstellung der Daten ist es möglich, komplexe SQL-Befehle zu verwenden, um so neben Feldberechnungen auch Verweise aus anderen Tabellen heranziehen zu können. Zusätzlich lassen sich über Aliase Feldnamen ändern.
Einbindung in das Extramenü
Der CSV-Export wird in das Extramenü eingebunden. Hierbei wird zur Anzeige im
Menü der Wert aus „Title“ verwendet. Über die Einstellung in „Context“ kann
eingestellt werden, ob ein Datensatz am Bildschirm angeigt werden muss und
erst dadurch der Menüpunkt freigegeben wird, oder ob der Export unabhängig
vom angezeigten Datensatz ist. Ist die Ausgabe vom angezeigten Datensatz
abhängig, so kann über eine Variable auf die „ID“ des Datensatzes
zugegriffen werden.
Datenbereitstellung
Die Daten, die exportiert werden sollen, werden über einen SQL-Befehl (CommandText)
ermittelt. Hierdurch kann im SQL-Befehl gerechnet werden, Feldnamen können
neu benannt oder kombiniert werden, und es lassen sich Daten aus
verschiedenen Tabellen mixen.
Bedingungen über Dialoge
Es können Eingabedialoge eingeblendet werden. Hierzu wird „DlgBox“ auf den
Namen eines gültigen Dialogtyps gesetzt. Die Ergebnisse können als Variablen
im SQL-CommandText verwendet werden. Neben Datums-, Zahlen- und Textdialogen
können für die Artikel- und Adressen-Bereiche auch Merkmaldialoge
eingeblendet werden. Diese erlauben die Auswahl der Daten über
Merkmalskombinationen. Die Bedingungen werden als Variablen zur Verfügung
gestellt, die ebenfalls in den SQL-Commandtext eingefügt werden können.
Datenformat
Das CSV-Format selbst kann über Feldtrenner „ColDelimiter“ und Zeilentrenner
„RowDelimiter“ eingestellt werden. Zusätzlich kann eine Zeichenfolge
definiert werden, um Felder mit SQL-Null darzustellen. Bei Texten lassen
sich die Zeichen über „Charset“ in ANSI, OEM und in einer 7-Bit-Darstellung
ausgeben.
Bildausgabe
Da im CSV-Format keine Bilder abgelegt werden können, gibt es über die
Einstellungen der Picture-Felder die Möglichkeit, neben den Daten auch darin
enthaltene Bilder zu exportieren. Das Speicherformat wird über die PictureExtension festgelegt. Hier werden dieselben Formate unterstützt, wie
beim Speichern von Bildern im Bild-Designer. Über den Wert
PictureBinaryField wird der Datenbankfeldname angegeben, der das Bild
enthält. Der Speichername wird über den Wert PictureFilenameField angegeben.
Bei Artikeln würde man hier „ArtNummer“ angeben.
Export-Datei
Die Exportdatei wird über „Filename“ angegeben. Über den „Filemode“ kann
eingestellt werden, ob die Zieldatei ggf. überschrieben werden darf, ob die
Daten angehängt werden sollen usw.
FTP-Übertragung
Werden die Werte für den FTP-Server gesetzt, so sie werden im Anschluss an den
Datenexport automatisch auf einen FTP-Server übertragen. Neben
anonymen FTP-Servern lassen sich auch Provider-Server mit Benutzername und
Passwort ansteuern. Über RemoteDir kann ein Ziel-Ordner auf dem FTP-Server
angegeben werden; dies kann auch ein unsichtbarer Ordner (HiddenFolder) sein. Proxy
werden zur Zeit nicht unterstützt, ebenso muss der PC bereits Online sein.
| Charset= {integer} |
Der Standardwert für Charset ist 0 Beispiel: |
||||||||||
| ColDelimiter= {Zeichenfolge} |
Enthält das Feldtrennzeichen. Ein Feldtrennzeichen
kann aus mehreren Zeichen bestehen. Der Standardwert
ist TAB (Binär 9). Beispiel: |
||||||||||
| CommandText= {Zeichenfolge} |
CommandText enthält den SQL-Befehl, der eine beliebige Feldmenge selektieren kann. Der SQL-Befehl kann als Variablen-Parameter $$ID$$ enthalten. Die Variable $$ID$$ wird während der Laufzeit durch die echte ID des angezeigten Datensatzes ausgetauscht. Alle Felder werden im Delimiter-Format (CSV) in eine ASCII-Datei geschrieben. Über diesen Menübefehl lassen sich beispielsweise Postversand-Daten zum angezeigten Lieferschein in eine Übergabedatei für die Weiterverarbeitung von Paketsystemen wie Easylog® übergeben. Zusätzlich zur Variable $$ID$$ können auch die Variablen $$DLGVALUE1$$ bis $$DLGVALUE6$$ benutzt werden, sofern die Dialogbox mit in die Abfrage eingebaut wird (s.u.). Hinweis Beispiel1: Im ersten Beispiel werden alle Felder zum aktuell am Bildschirm angezeigten Lieferschein ausgegeben. Beispiel2: Im zweiten Beispiel werden die Felder Kopfnummer, Datum und Match aus der Sicht (=View) von Print-Rechnung exportiert, die im entsprechenden Datumsbereich der Variablen liegen. Die Variablen müssen in Großbuchstaben angegeben werden. Ferner müssen die Werte für die Datumsdialogbox gesetzt sein. Hinweis |
||||||||||
| Context= { Integer } |
Gibt an, ob zum Export in eine CSV-Datei
ein Datensatz selektiert, also in der Anzeige sein muss.
|
||||||||||
| DlgBox= {Zeichenfolge} |
Hiermit ist es möglich, vor Ausführung eines
SQL-Befehls eine Dialogbox anzuzeigen. Es werden
verschiedene Dialogboxen angeboten (Datum, String,
Optionen). Die Ergebnisse der Eingabe können als
Variablen in den SQL-Befehl des Select-Befehls
eingefügt werden. Der SQL-Befehl wird in CommandText
übergeben. Unabhängig vom Typ der Dialogbox (Datum, String usw.) sind die Ergebnisse als direkt verwendbare SQL-Variablen nutzbar. Diese lauten $$DLGVALUE1$$ bis $$DLGVALUE5$$. Durch eine Datumsdialogbox lässt sich beispielsweise eine FIBU-Ausgabe für einen bestimmten Zeitraum, z.B. eine bestimmte Woche erzeugen. Hinweis
|
||||||||||
| DlgCaption= {Zeichenfolge} |
Hiermit kann ein Fenstertitel für den Datumsdialog angegeben werden. Beispiel: Die Dialogbox erhält den Fenstertitel „Datumsbereich für Fibuexport“. |
||||||||||
| DlgInfo= {Zeichenfolge} |
Über DlgInfo lässt sich ein Informationstext
im Dialog-Fenster ausgeben, der dem Benutzer eine
bessere Orientierung zu den zu machenden Angaben
geben soll. Beispiel: |
||||||||||
| DlgLabel1= {Zeichenfolge} bis DlgLabel6= |
Je nach Art der in DlgBox verwendeten Dialogbox kann
es ein bis 6 Feldnamen geben. Diese
Feldbezeichnungen werden in der Dialogbox vor das
einzugebende Feld gesetzt. Wird als DlgBox die GetDateDlg benutzt, so kann durch Angabe des DlgLabel2 bestimmt werden, ob die Datumsbox mit zwei Datumsfeldern ausgegeben wird. Beispiel: Erzeugt eine Dialogbox mit den beiden Feldwerten „von“ und „bis“. |
||||||||||
| DlgValue1= {Zeichenfolge} bis DlgValue2= |
Hiermit kann der Vorgabewert der Dialogbox
initialisiert werden.
Die Angabe dieser Felder ist optional. Wird hier nichts angegeben, so werden Boolean-Felder mit FALSE bzw. 0 initialisiert, Textfelder als leeres Feld und Datumsfelder mit dem Tagesdatum. Wird GetOptionsDlg verwendet, so sind die Ergebnisvariablen mit '0' für False und mit '1' für True initialisiert. Sonderfälle für GetDateDlg Beispiel1: In Beispiel 1 wird vorausgesetzt, dass es sich um eine GetDateDlg handelt. Das Feld der Dialogbox wird mit dem 01. Januar 2002 initialisiert. Beispiel2: In Beispiel 2 wird vorausgesetzt, dass es sich um GetOptionsDlg handelt. Der erste Boolean-Wert wird auf True (entspricht '1') gesetzt |
||||||||||
| ExportFieldnames= {Integer} |
Der Standardwert ist 0. Beispiel: |
||||||||||
| Filemode= {Integer} |
Der Standardwert ist 0. Beispiel: |
||||||||||
| FtpServer= {Zeichenfolge} |
Die exportierte CSV-Datei kann anschließend auf
einen FTP-Server upgeloaded werden. Es darf kein
Protokoll und kein Pfad angegeben werden. Werden über „Picture...“ auch Bilder ausgegeben, so werden diese ebenfalls per FTP-Protokoll übertragen. Nach der Übertragung wird eine Protokolldateien mit Statusmeldungen gespeichert, sofern dies mit „FtpWriteLog=1“ angegeben wurde. Wurde „ShowFinish=1“ gesetzt, so wird eine Abschlussmeldung angezeigt, die neben der Anzahl übertragener Dateien auch den Dateinamen des Journals mit Pfadangaben anzeigt. Beispiel: |
||||||||||
| FtpRemoteDir= {Zeichenfolge} |
Wenn die Daten nicht in das Rootverzeichnis des
FTP-Servers kopiert werden sollen, so kann hier der
Pfad angegeben werden. Pfadangaben beginnen immer
mit einem Slash („/“). Beispiel: |
||||||||||
| FtpUsername= {Zeichenfolge} |
Wenn der FTP-Server zur Autorisierung einen
Benutzernamen benötigt, so tragen Sie diesen hier
ein. Beispiel: |
||||||||||
| FtpPassword= {Zeichenfolge} |
Wenn der FTP-Server zur Autorisierung ein Passwort
benötigt, so tragen Sie dieses hier ein. Beispiel: |
||||||||||
| FtpWriteLog= {Integer} |
Hierüber kann bestimmt werden, ob ein Logjournal mit
dem Dateinamen FtpLog.txt im Ordner des
Hauptprogramms nach einer FTP-Übertragung
gespeichert werden soll.
Beispiel: Der Standardwert ist 0, es wird kein Log geschrieben. |
||||||||||
| Filename= {Zeichenfolge} |
Enthält den Dateinamen einer CSV-Datei, die erzeugt
werden soll. Beispiel: |
||||||||||
| NullValue= {Zeichenfolge} |
Enthält eine Zeichenkette, die als Feldinhalt
ausgegeben werden soll, wenn das Datenbankfeld den
SQL-Wert NULL enthält. Standardmäßig werden diese
Felder als Leerfeld ausgegeben. Beispiel: |
||||||||||
| PictureBinaryField= {Zeichenfolge} |
Kombinierter Bilder-Export über die CSV-Dateiausgabe. Die Registryeinträge mit „Picture...“ bestimmen, ob bei einer CSV-Ausgabe auch Bilder exportiert werden. Es werden alle Dateiformate unterstützt, die auch im Bild-Desiger gespeichert werden können. Werden alle Registryeinträge mit „Picture“ initialisiert, so werden zur CSV-Datei in denselben Ordner die entsprechenden Bilddateien mitgespeichert. Für den Export von Bilden enthält diese Variable den Tabellen-Feldnamen des Bildfeldes. In der Regel wird dies der Name „Bild“ sein. Das Vorschaubild heißt in der Regel „BildPreview“. |
||||||||||
| PictureFilenameField= {Zeichenfolge} |
Für den Export von Bildern enthält diese Variable den Wert für den Dateinamen des zu exportierenden Bildes. Bei Artikeln wird dies in der Regel „ArtNummer“ und bei Adressen „Match“ sein. | ||||||||||
| PictureDropFile nameField= {Integer} |
Bestimmt, ob beim Export der CSV-Datei und der
Bilder, das Feld, das für die Dateinamen der Bilder
benutzt wird, in die CSV-Datei exportiert werden
soll oder nicht. In der Regel wird man das Feld
exportieren.
Der Standardwert ist 0 und somit wird dieses Feld auch exportiert. |
||||||||||
| PictureExtension= {Zeichenfolge} |
Bestimmt, welcher Bilddateityp erzeugt werden soll. Die Extension wird mit führendem Punkt angegeben, also zum Beispiel „.JPG“. Anhand der Extension wird das zu speichernde Bild entsprechend kodiert. | ||||||||||
| Postfix= {Zeichenfolge} |
Enthält eine beliebige Zeichenfolge, die am Ende der CSV-Datei ausgegeben werden soll. Hier könnten zum Beispiel Informationen stehen, um die CSV-Daten als Webseite darzustellen. | ||||||||||
| Prefix= {Zeichenfolge} |
Enthält eine beliebige Zeichenfolge, die am Anfang der CSV-Datei ausgegeben werden soll. Hier könnten zum Beispiel Informationen stehen, um die CSV-Daten als Webseite darzustellen. | ||||||||||
| Retrys= {Integer} |
Enthält die Anzahl Wiederholversuche, eine CSV-Datei
zu erstellen. Zwischen jedem Versuch, die Exportdatei
zu erzeugen, wird eine Pause von einer Sekunde
eingehalten. Der Standardwert für die Anzahl der
Versuche beträgt 3. Beispiel: |
||||||||||
| RowDelimiter= {Zeichenfolge} |
Enthält das Feldtrennzeichen. Ein Feldtrennzeichen
kann aus mehreren Zeichen bestehen. Der Standardwert
ist CRLF (Binär 13,10). Beispiel: |
||||||||||
| ShowFinish= {Integer} |
Zeigt nach Abschluss des Exports eine Meldung mit
der Anzahl der exportierten Datensätze an.
Der Standardwert ist 0. |
||||||||||
| StartMessage= { Zeichenfolge } |
Diese Meldung wird als Frage ausgegeben und vor dem Export angezeigt. Der Benutzer hat die Möglichkeit, den Export zu bestätigen oder die Aktion abzubrechen. Beispiel: Standardmäßig wird keine Frage vor dem Export angezeigt. |
||||||||||
| Title= { Zeichenfolge } |
Ist der Name des Menüeintrags. Der Kurzeintrag wird durch Voranstellen eines kaufmännischen UND-Zeichens markiert. Soll ein Menüname „Müller & Co“ benutzt werden, so müssen zwei kaufmännische UND-Zeichen eingetragen werden. Beispiel: Der Menüeintrag „Easylog“ wird nun in das Extramenü von beispielsweise „Rechnungen“ eingefügt. |
Die meisten Parameter dieses Action-Typs werden über den Registrywert „Data“. Hierbei handelt es sich um eine INI-Datei. Folgende Einträge werden unterstützt
| ProcName= {Zeichenfolge} |
Der Name der aufzurufenden SQL-Prozedur Beispiel: |
| InParams= {Zeichenfolge} |
Eine Semikolongetrennte Liste aller
Eingabeparameter. Als Parameterwerte sind einfache
SQL-Konstanten und Feldnamen des aktuellen
Datensatzes erlaubt. Den Feldnamen muss dabei ein
Fragezeichen vorangestellt werden. Es kann auf alle Felder des aktuellen Datensatzes zugegriffen werden. Daneben sind noch folgende drei Variablen zulässig:
Beispiel: |
| Hint= {Zeichenfolge} |
Ein kurzer Hilfetext, der beschreibt, was die
Prozedur macht. Dieser Text wird momentan noch
nicht ausgewertet Beispiel: |
|
PreWarning= {Zeichenfolge} |
Eine hier angegebene Warnungstext wird vor der
Ausführung der Prozedur angezeigt. Der Anwender
erhält hierdurch die Möglichkeit den Vorgang noch
abzubrechen. Über Platzhalter der Form %feldname%
kann dabei auf Felder des aktuellen Datensatzes
zurückgegriffen werden. Beispiel: |
| OkayMsg= {Zeichenfolge} |
Meldung, die bei Erfolgreicher Ausführung angezeigt
wird. Hierbei können auch Platzhalter für
Prozedurausgabeparameter verwendet werden. Beispiel: |
| ErrorMsg= {Zeichenfolge} |
Meldung, die bei einem Fehler angezeigt wird. In der
nachfolgenden Zeile wird außerdem noch ein
relevanter SQL-Fehlertext angezeigt. Die Prozedur
könnte beispielsweise einen Fehler wie folgt
auslösen:RAISERROR('Der Auftrag wurde bereits gebucht',16,1)
Beispiel: |
|
ReturnValueError= {Zeichenfolge} |
Standardmäßig wird ein Prozedurrückgabewert ungleich
Null als Fehler angesehen. Falls die aufzurufende
Prozedur ein anderes Fehlerschema implementiert kann
man dies hier hinterlegen. NOERROR heißt, dass der
Rückgabewert nicht geprüft wird. NEGATIVEERROR
bedeutet, dass nur negative Werte als Fehler
interpretiert werden. Beispiel: |
| SqlErrors= {Zeichenfolge} |
wird nicht mehr verwendet |
|
ReturnValues= {Zeichenfolge} |
Für einen speziellen Rückgabewert kann hier ein
gesonderter Fehlertext hinterlegt werden. Wenn
mehrere Rückgabewerte überprüft werden sollen, so
können Sie beispielsweise die Prozedur in eine
weitere Prozedur gekapselt und dort mit RAISERROR
arbeiten. Beispiel: |
|
RefreshCurrent= {Boolean} |
Hierdurch wird der aktuelle Datensatz nach Ausführen
der Prozedur aktualisiert.
Beispiel: |
|
RefreshLookup= {Zeichenfolge} |
EULANDA© puffert sogenannte Lookup-Datenmengen im
Arbeitsspeicher. Diese werden zum Anzeigen in
Auswahlfeldern benötigt; beispielsweise die
Rabattgruppen im Artikelstamm. Falls die
Prozedur eine Tabelle modifiziert, die von einer
Lookup-Datenmenge benötigt wird, so kann über
diesen Parameter ein Aktualisieren des Puffers
erzwingen. Beispiel: |
|
SelectObject={Zeichenfolge} SelectId= {Integer} |
Nach erfolgreicher Ausführung der Prozedur wird auf
den angegebenen Datensatz verzweigt. Es müssen stets
beide Werte angegeben werden. Diese Technik wird
beispielsweise beim Umwandeln eines Auftrags in
Lieferschein wie folgt angewandt: Beispiel: |