Rückmelderdaten aus iTrain in LibreOffice Calc importieren

Die Exportieren-Funktion in iTrain exportiert u.a. die Rückmelderdaten ins CSV-Format, welches man in diverse Tabellen-Kalkulationsprogramme wie LibreOffice Calc importieren kann. Die resultierende CSV-Datei enthält aber nur einen Teil der Daten. Um an die kompletten Daten zu kommen, muss der Datenimport in Calc über einen speziellen XML-Filter vorgenommen werden. Das Vorhalten der Daten in einer Tabelle hat den Vorteil, dass man einerseits die Daten besser vergleichen kann, als das in der Eingabemaske von iTrain möglich ist. Andererseits lassen sich die Daten nach bestimmten Kriterien filtern.

Voraussetzungen

Die iTrain-Datei darf nicht im zip-Format vorliegen. Entweder Ihr entpackt die tcd-Datei von Hand oder Ihr speichert sie aus iTrain heraus unkomprimiert ab.

Eine Möglichkeit, wie man auch mit den komprimierten iTrain-Dateien (tcdz) arbeiten kann, hab ich hier vorgestellt.

Da die in LibreOffice enthaltenen XML-Filter mit dem iTrain-Format nicht umgehen können, musste ein eigens für diesen Zweck geschriebener her. Die Anweisungen, wie die Daten aus iTrain ausgelesen und in Calc importiert werden, stehen in einer XSLT-Datei. Ladet Euch diesen Filter hier herunter und speichert ihn an einem Ort Eurer Wahl.

Vorgehensweise

Dieser Filter muss jetzt in LibreOffice integriert werden.

  • dann den Dialog schließen und LibreOffice neu starten
  • Datenimport von Hand

    Öffnet LibreOffice und geht auf das Menü Datei Öffnen. Im sich öffnenden Dialogfeld stellt Ihr das Dateiformat von Alle Dateien auf iTrain-Rückmelder um.

    Die Liste kann unter Umständen sehr lang sein. Dann wählt Ihr Eure iTrain-tcd-Datei aus und klickt auf Öffnen.

    Datenimport per Makro

    Ihr könnt Euch auch ein Makro für den Datenimport anlegen. Das Makro könnte folgenden Code enthalten:

    sub iTrain_Feedbacks_import
    rem ----------------------------------------------------------------------
    rem Variablen definieren
    dim oDlg As Object ,oDoc As Object, sPath As String
    rem Rückgabewerte des Datei-Öffnen-Dialogs
    dim DateiListe() 
    rem Eigenschaften für loadComponentFromURL setzen
    dim properties(0) as new com.sun.star.beans.PropertyValue
    properties(0).Name = "FilterName"
    rem der Name des Filters so wie er in Calc eingetragen ist
    properties(0).Value = "iTrain-Rückmelder"
    rem Dialog zum öffnen der Datei initialisieren
    dim MyFilterListe(0) As New com.sun.star.beans.StringPair
    rem Filterliste füllen
    MyFilterListe(0).first="iTrain Layouts"
    MyFilterListe(0).second="*.tcd"
    rem Pfad setzen
    sPath=ConvertToUrl("/home/uwe/iTrain/layouts")
    rem ######################################################
    rem für Windows z.B.:
    rem sPath=ConvertToUrl("C:\iTrain\layouts")
    rem ######################################################
    rem Dialog anzeigen
    oDlg=createUnoService("com.sun.star.ui.dialogs.FilePicker")
    With oDlg
    	.setMultiSelectionMode(false)
    	.appendFilter("Alle Dateien", "*.*")
    	.appendFilterGroup("iTrain", MyFilterListe())
    	.setDisplayDirectory(sPath)
    	.setCurrentFilter("iTrain Layouts")
    	.setTitle("iTrain Rückmelder importieren")
    End with
    oDlg.execute
    rem Datei öffnen
    DateiListe=oDlg.getFiles()
    doc = StarDesktop.loadComponentFromURL(DateiListe(0), "_blank", 0, properties())
    end sub
            

    Der Vorteil der Makrolösung liegt darin, dass der Datei-Öffnen-Dialog gleich den richtigen Dateifilter enthält und Ihr Euch gleich im richtigen Verzeichnis zur Dateiauswahl befindet.

    Wie Ihr das Makro in Menüs oder Symbolleisten einbindet könnt Ihr hier nachlesen.

    Die fertige Tabelle kann dann so aussehen: