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