Benutzerdefinierte Datenfelder exportieren

Igrafx Professional kann Objekte mit Daten hinterlegen: Ein Doppelklick auf ein Symbol blendet die »Eigenschaften« ein. Unter »Benutzerdefinierte Daten« können Sie über »Einrichten« Felder hinzufügen. Allerdings kann man diese nicht einfach auslesen. Dazu müssen Sie Visual Basic nutzen. Starten Sie Igrafx Professional, wählen Sie ein »Basic Diagram« und dann »Tools | Visual Basic | Visual Basic Editor«. Im Fenster für Projekte öffnen Sie das »Diagraml« und definieren zuerst folgende Variablen: Dim igxDocument As igrafx3.Document Dim igxDiagram As Diagram Dim igxShape As Shape Dim igxCustomDataDef As CustomDataDefinitions Dim line As Recordset Dim AnObject As Object Dim i As Integer Const ForReading = 1, ForWriting = 2, ForAppending = 3 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim fs, f, ts, s Dim defval As CustomDataValue Set igxDocument = Application.ActiveDocument Set igxDiagram = Application.ActiveDocument.ActiveDiagram Set igxCustomDataDef = igxDocument.CustomDataDefinitions Dann legen Sie mit den Methoden »CreateObject« und »CreateTextFile« die Textdatei an: Set fs = CreateObject("Scripting.FileSystemObject") fs.CreateTextFile "C:\temp\testl.txt" Set f = fs.GetFile("C:\temp\testl.txt") Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault) Die letzte Set-Anweisung öffnet die Datei zum Schreiben. Fügen Sie zuerst eine Spaltenüberschrift mit »Write« ein: ts.write "Name" For Each AnObject In igxDocument.CustomDataDefinitions ts.write "," & AnObject.Name Next Die erste Spalte erhält den Titel »Name«; so läßt sich der Inhalt zuweisen. Die Bezeichner können Sie über »AnObject.Name« lesen. Die Werte trennt ein Komma. Zuletzt fügen Sie einen Umbruch und eine Leerzeile ein: ts.write vbCrLf ts.write vbCrLf Nun müssen Sie mit einer Schleife die Objektinformation lesen und in die Textdatei schreiben. Eine If-Then-Abfrage sorgt dafür, dass nur Shapes übertragen werden. For Each AnObject In igxDiagram.DiagramObjects If AnObject.Type = igxObjectShape Then ts.write AnObject.Shape.Text For i = 1 To igxDocument.CustomDataDefinitions.Count ts.write "," & AnObject.CustomDataValues.Item(CInt(i)).Value Next End If ts.write vbCrLf Next Nachdem Sie die Werte in die Felder im Chart eingefügt haben, können Sie das VB-Script ausführen und das Ergebnis in der Datei TEST1.TXT im Ordner »C:\Temp« überprüfen. Diese Datei können Sie dann ganz einfach in Access oder Excel importieren. CHIP-Code IGRAFX