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: |