Diese Website verwendet Cookies sowie Analyse-Software zur Erfassung und Auswertung der Webseiten-Nutzung. Details zur Art und Umfang der Datenerhebung finden Sie in unserer Datenschutzerklärung. Wenn Sie diese Website weiterhin nutzen, stimmen Sie der Verwendung von Cookies zu.

Druckansicht der Seite www.rowisoft.de/handbuch-automatischer_export
Dokumentation zum Warenwirtschaftssystem Rowisoft blue

Automatischer Export

Eine häufige Anforderung an Trigger ist der automatische Export von Daten beim Verbuchen eines Vorgangs. Die so erzeugten Daten können dann z.B. in Fremdsystemen weiterverarbeitet werden.

Im Rahmen dieses Kapitels möchten wir Ihnen deshalb ein solches Skript in einem kleinen Umfang vorstellen: Beim Verbuchen einer Bestellung soll eine vorgegebene Datei erstellt werden, in der die einzelnen Bestell-Positionen enthalten sind.

Die Herausforderung an diesem Skript sind die Bestellpositionen: Während der Trigger ja auf das Ereignis „Verbuchen“ der Tabelle „Vorgaenge“ reagieren muss, benötigen wir trotzdem die mit dem Vorgang verknüpften Datensätze der Tabelle „Vorgangdetails“.

Dazu müssen wir in unserem C++Skript ein „TDBISAMQuery“-Objekt erzeugen, welches wir dann zunächst mit der Funktion „ConnectToDB“ mit der Datenbank verbinden.

In diesem TDBISAM-Query Objekt starten wir dann eine SELECT-Abfrage, die uns alle Positionen der Bestellung zurückgibt.

In einer for-Schleife durchlaufen wir dann alle Datensätze und schreiben diese in die vorher erzeugte String-Liste.

Nach Ende der for-Schleife speichern wir diese String-Liste dann schließlich auf die Festplatte – in unserem Beispiel verwenden wir der Einfachheit wegen nur den Dateinamen „C:\beispiel.txt“.

<cpp
{
 //Zunächst erzeugen wir ein Query-Objekt und verbinden es
 //mit der Datenbank:
 TDBISAMQuery query = new TDBISAMQuery(Application);
 ConnectToDB(query);
 
 //Dann führen wir die SELECT-Abfrage aus
 query.SQL.Text = "SELECT * FROM Vorgangdetails WHERE
                   Auftrag = "+GetTriggerFieldAs("Nummer",
                   "string");
 query.Open();
 
 //Mittels RecordCount erhalten wir die Anzahl der
 //Datensätze aus der SELECT-Abfrage
 int anzahl = RecordCount(query);
 
 //Deklaration der Zähler-Variable für die for-Schleife:
 int zaehler = 0;
 
 //Bevor wir loslegen brauchen wir noch eine String-Liste,
 //die wir später als Datei speichern:
 TStringList ergebnis = new TStringList();
 
 //In der Schleife durchlaufen wir alle Datensätze und
 //schreiben Werte in die String-Liste
 
 for (zaehler = 0; zaehler < anzahl; zaehler = zaehler + 1)
 {
   //Feldtrenner: | (Pipe-Zeichen)
   ergebnis.Add(query.FieldByName("Auftrag").AsString + "|"
                + query.FieldByName("Menge").AsString + "|"
                + query.FieldByName("Artikel").AsString +
                "|" +
              query.FieldByName("Einkaufspreis").AsString);
 
   query.Next();
 }
 
 //Nun speichern wir die String-Liste als Datei:
 ergebnis.SaveToFile("C:\\beispiel.txt");  
 
 //Ganz wichtig: Nie das Aufräumen vergessen, sonst ist
 //irgendwann der Arbeitsspeicher voll!
 delete ergebnis;
 delete query;
}
cpp>

Die URL dieser Seite ist: www.rowisoft.de/handbuch-automatischer_export.html
Gedruckt am Freitag, 23. Juni 2017.
© Copyright by Rowisoft GmbH.
Commercial use prohibited.


Notizen:

pinnery
pinnery.com
pinnery - für Ihre Projekte
Projekt-Software
Perfekt organisiert
Alles mit jedem organisieren! In pinnery erfassen Sie Ihre Aufgaben und teilen sie mit Freunden und Kollegen. Durch die in Spalten aufgeteilte, übersichtliche Darstellung behalten Sie Ihr Projekt immer im Blick.
pinnery ist kostenlos!
Jetzt registrieren!