OceanFinance

Beschreibung
Stellt Währungskurse für Umtausch-Graphen dar sowie deren Export zu verschiedenen Formaten.
Es zeigt, wie man einen Report im Druck-Vorschau-Fenster öffnet, einen Report nach einem anderen gängigen Datei-Format (wie PDF oder HTML) exportiert und auch wie man über Java-Code einen Parameter im Report setzt.
Als Datenquelle benutzt diese Anwendung Daten aus einer Text-Datei (*.vcs) über einen ODBC-Treiber.

Struktur der Anwendung:
  • src - Sourcen des Programmes (Java-Dateien)
  • database - Resourcen, nötig zur Ausführung des Programmes: csv-Datei mit Daten
  • Makefile - Makefile-Script zur Kompilierung der Anwendung
  • build.xml - Build-Datei für Ant, zur Kompilierung der Anwendung
  • .project - eine Projekt-Beschreibung für IDE Eclipse
1. Kompilierung und Ausführung

a) von der Kommando-Zeile

Kompilierung

  • Mit make

    Ändern Sie den Parameter OCEAN in der Make-Datei. Er gibt den Pfad zur OCEAN SDK Library an. Standard-Pfad ist lib/OCEAN_GenRap_SDK_2006R2.jar.

    Führen Sie folgendes Kommando aus:

      make

    Wenn Sie die Anwendung auf einer Linux/Unix-Plattform kompilieren und ausführen, benutzen Sie dieses Kommando:

      make SEPARATOR=:

    (Es ist notwendig, den Separator für CLASSPATH zu ändern)

  • Verwenden von Ant (ant.apache.org)

    Ändern Sie OCEAN in build.xml; es definiert den Pfad zur OCEAN SDK Library. Der Standard-Pfad ist lib/OCEAN_GenRap_SDK_2006R2.jar.
    <property name="OCEAN" location="your-ocean-path"/>

    Alternativ dazu können Sie Ant mit -D Option starten und den Pfad für nur eine Ausführung ändern:
    ant -D your-ocean-path

    Führen Sie das Kommando aus:

       ant

    Wenn Sie die Anwendung auf einer Linux/Unix-Plattform kompilieren und ausführen, benutzen Sie dieses Kommando:

      ant -DSEPARATOR=:

    (Es ist notwendig, den Separator für CLASSPATH zu ändern)

Wenn die Kompilierung ohne Fehler beendet wurde, wird der Ordner OceanFinance/out erstellt und alle kompilierten Klassen sowie andere benötigte Dateien werden in diesen hineingeschrieben.

Ausführen:

Benutzen Sie das run.bat-Script, es wird nach erfolgreicher Kompilierung erstellt.


b) von Eclipse IDE (www.eclipse.org)

Diese Methode benötigt eine installierte und konfigurierte IDE Eclipse Umgebung. Sehen Sie hier, wie Eclipse zu installieren ist.

Öffnen Sie Eclipse und wählen Sie "File | Import..." aus dem Menu.
Wählen Sie "Existing project into Workspace".
In "Project content" nehmen Sie den OceanFinance-Ordner und clicken Sie "Finish".

Öffnen Sie "Project| Properties" und wählen Sie den Java Build Path Teil.
Im Source-Tab sehen Sie die Liste der Quell-Ordner. Dort sollte ein Ordner project_name/src sein. Ist dies nicht der Fall, klicken Sie auf "Add folder" und wählen Sie src aus dem Baum. Speichern Sie die Änderungen mit "Accept" und bestätigen Sie die erscheinende Nachricht mit "Yes".
Im Libraries-Tab klicken Sie auf "Add external JARs", wählen Sie den Pfad zum OCEAN SDK jar und speichern Sie die Änderungen.

Wenn Sie die Option "Build Automatically" nicht ausgewählt haben (im "Project" Menu), wählen Sie "Project | Build Project".

Um die Beispiel-Anwendung in Eclipse zu starten, wählen Sie "Run | Run..." aus dem Menu.
Im "Run"-Fenster geben Sie den Namen für die "Configuration" ein (dies dient nur Informationszwecken) und nehmen Sie com.comarch.ocean.demo.finance.OceanFinance als Main Class der Anwendung. Speichern Sie die Einstellungen mit "Apply" und starten Sie Ihre "Configuration" mit "Run".

2. Benutzung

Die Anwendung stellt den Umtauschkurs für einen gegebenen Zeitraum dar.

Im Hauptfenster der Anwendung können Parameter für den angezeigten Report gesetzt werden:

  • im Abschnitt "Interval" kann man das Zeitinterval definieren, für welches Informationen angezeigt werden sollen
  • im Abschnitt "Currency" wählt man die Währung (USD, CHF, EUR oder all), für die man Informationen angezeigt bekommen möchte
  • im Abschnitt "Ask" or "Bid" entscheidet man sich zwischen Nachfragepreis und Angebotspreis

Nachdem Auswählen der Parameter kann der Report in einem Vorschaufenster betrachtet werden. Ausgehend von diesem Fenster ist es möglich den Report zu drucken.

Ausserdem wird der Report mit den dafür vorgesehenen Schaltflächen auf Bedarf in folgende Dokumente umgewandelt: PDF, HTML, Excel Data Sheet. Anschließend muß der Pfad der Ausgabedatei angegeben werden.

3. Benutzung der GenRap API im Anwendungsquellkode

Die Verwendung der GenRap API Funktionalität ist mit der Instanziierung der "GenRapEngineImpl" Klasse, welche das "GenRapEngine" Interface implementiert, möglich.

Die Funktion "prepareEngine", welche beim Laden des Hauptfensters der Anwendung aufgerufen wird, instanziiert die "GenRapEngineImpl" Klasse und setzt die Parameter wie z.B. Dateipfad des benutzerfreundlichen Schemas (UFN) oder die zu benutzende Datenquelle. In diesem Beispiel sind die Anwendungsdaten in einer Textdatei gespeichtert und der Zugang wird durch einen ODBC Treiber realisiert. Der DBQ Parameter zeigt auf die Textdatei.

 private GenRapEngine prepareEngine() {

//erzeugt eine neue Instanz der GenRapEngine und setzt Parameter
GenRapEngine ret = new GenRapEngineImpl();
ret.setLanguage("en");
ret.setUFNFilePath(Strings.ufn);
//Definition der ODBC Zeichenkette
//der dbq Parameter zeigt auf das Verzeichnis,
//wo die Datenquelle hinterlegt ist
ret.setDataSource("multi::name=Exchange;"
+ "kind=odbc;"
+ "params={kind=driver;name='Microsoft Text Driver (*.txt; *.csv)';"
+ "" + "params={Dbq=" + Strings.dbq + "}}}");
return ret;
}

Ausgehend von der angegebenen Währung wird der dazugehörige Report ausgewählt. Die Reportpfade werden in einer Hash Tabelle gehalten. Zu Beginn einer jeden GenRap Aktion wird der Pfad zum Report mit dem Umtauschkurs für die jeweilige Währung ermittelt und im "engine" Object gesetzt:

	engine.setReportFilePath((String) reports.get(cmd));

"cmd" ist der Schlüssel für die Hash Tabelle und ein Kommando um die Schlatflächen für das Auswählen der Währung zu setzen.

Wenn eine Aktion ausgeführt wird, werden die Parameter "date start", "date stop" und "bid" in der "setParameters()" Funktion gesetzt:

void setParameters() {
int count = engine.getValueParametersCount();
for (int i = 0; i < count; i++) {
if (engine.getValueParameterName(i).equals("Bid")) {
engine.setValueParameterValue(i,
String.valueOf(bidExchange.isSelected()));
} else if (engine.getValueParameterName(i).equals("Start Date")) {
engine.setValueParameterValue(i, startDateField.getText());
} else if (engine.getValueParameterName(i).equals("End Date")) {
engine.setValueParameterValue(i, endDateField.getText());
}
}
}

Um eine Vorschau eines Reportes zu öffnen wird die Methode "engine.view(dialog)" benutzt. Der Dialog is ein "JFrame" Object indem die Vorschau visualisiert wird.

Der Export eines Reportes wird in der Methode "OceanFinanceFrame.export(int type)" realisiert.
Der Typ gibt das Ausgabeformat an, welches in Form einer Konstante der "ExportDialog" Klasse angegeben werden sollte.
Der Pfad der Exportdatei wird im "Engine" Object mit der Funktion "engine.setExportOutFilePath(path)" gesetzt. Daraufhin wird eine der Export-Funktionen "exportToXXX()" aufgerufen.