Zugriff auf Daten und Objekte

23.08.2021

Sie können in FPScript nicht nur auf lokale Variable zugreifen, sondern auch auf externe Datensätze und Berechnungsergebnisse. Wenn Sie einen Namen wie z. B. "Datenreihe" verwenden, geht FPScript wie folgt vor, um das dem Namen zugehörige Objekt zu finden. Zunächst wird geprüft, ob es eine vordefinierte Konstante mit diesem Namen gibt. Dann wird geprüft, ob eine lokale Variable mit diesem Namen in der Formel deklariert wurde. Ist auch dies nicht der Fall und handelt es sich bei der FPScript-Formel um eine Funktion mit Argumenten, so wird geprüft, ob eine Argument-Variable mit dem Namen existiert. Wenn keine dieser Suchen zu einem Ergebnis führt, wird nach einem Datensatz oder einer Formel mit dem angegebenen Namen gesucht. Die Suche findet hierbei in dem Ordner statt, in dem sich die Formel befindet. Hat dieser Ordner jedoch einen aktivierten Unterordner, so wird dieser vorrangig durchsucht. Wenn es sich bei dem gefundenen Objekt um eine Formel handelt, dann wird diese, wenn nötig, berechnet und das Ergebnis zur Verrechnung entnommen.

Pfadname

Der Pfadname eines Objektes bezeichnet seinen genauen Ort innerhalb der Projektdatenbank, in der es sich befindet.

Absolute Pfadnamen geben den Weg vom Wurzelordner der Projektdatenbank bis zum gewünschten Objekt an. Die Namen der Ordner werden hierbei als Folge aufgeführt, wobei jeder Ordnername mit einem '\' abgeschlossen wird. Da der Wurzelordner keinen Namen hat, wird für diesen nur '\' geschrieben. Deshalb beginnen alle absoluten Pfadnamen mit einem '\'. Das folgende Beispiel lokalisiert das Objekt "Datensatz" im Unterordner "Messung1" des Ordners "Analyse":

\Analyse\Messung1\Datensatz

Der Unterordner "Messung1" selbst wird wie folgt angewählt:

\Analyse\Messung1

Dieser Zugriff liefert alle im Ordner befindlichen Datensätze als Liste und zwar in der Reihenfolge, in der Sie in der unsortierten Objektliste angezeigt werden.

Hinweis   Wenn sich im obigen Beispiel im Ordner "Analyse" ein Datensatz "Messung1" befindet, dann erfolgt der Zugriff auf diesen Datensatz und nicht auf den gleichnamigen Ordner. Um auch in diesen Fall auf den Ordner zuzugreifen, müssen Sie die Namenserweiterung '.fld' anhängen.

Ein im Wurzelordner befindliches Objekt "Datensatz" wird wie folgt adressiert:

\Datensatz

Wenn der Pfadname Sonderzeichen, z. B. Leerzeichen, enthält oder mit einer Ziffer beginnt, dann muss dieser in einfachen Anführungszeichen angegeben werden:

'\Analyse\Messung A\Datensatz'

'\01\Datensatz'

Wenn auf Objekte zugegriffen werden soll, die keine Datensätze, Formeln, Analyseobjekte oder Ordner sind, muss eine Namenserweiterung angegeben werden:

\Analyse\Dokument.doc

Auf den aktivierten Unterordner eines Ordners kann mit dem Schlüsselwort ActivatedFolder zugegriffen werden, welches nicht mit einem '\' abgeschlossen wird:

\Analyse\ActivatedFolder

Relative Pfadnamen geben den Weg zum Zielobjekt von dem Ordner aus an, von dem aus der Zugriff erfolgt. '.\' bezeichnet hierbei den Ordner, aus dem der Zugriff erfolgt, und '..\' bezeichnet dessen Vaterordner, also den in der Ordnerhierarchie darüber liegenden Ordner. Folgendes Beispiel greift auf einen Datensatz zu, der sich im Nachbarordner "Messung2" befindet:

..\Messung2\Datensatz

Dies liest den Namen des Ordners aus, aus dem der Zugriff erfolgt:

.\.Name

Auf einen Datensatz, der sich im Unterordner "Messung1" befindet, wird wie folgt zugegriffen:

Messung1\Datensatz

Um auf ein Objekt zuzugreifen, das sich im selben Ordner befindet, brauchen Sie nur den Namen anzugeben:

Datensatz

oder

Arbeitsblatt.wks

Relative Pfadnamen beginnen nie mit einem '\' sondern entweder mit '.\' oder mit '..\' oder mit dem Namen eines Unterordners.

Zum einfachen Erstellen einer Liste von Objekten können Sie die Platzhalter '*' und '?' in Pfadnamen verwenden:

'\Messung*\Signal'        entspricht [\Messung1\Signal, \Messung2\Signal, ...].

Verwenden Sie den Platzhalter '*' für eine beliebig lange Zeichenfolge und den Platzhalter '?' für ein einzelnes Zeichen.

Hinweis   Wenn Sie einen absoluten Pfadnamen oder einen relativen Pfadnamen, der mit '.\' beginnt, verwenden, dann bleiben eventuell aktivierte Unterordner unberücksichtigt, d. h. der Pfadname bezeichnet immer exakt das spezifizierte Objekt, auch wenn dieses durch ein gleichnamiges Objekt im aktivierten Unterordner überlagert wird.

Indirekter Zugriff

Der Indirektionsoperator ($$) bietet die Möglichkeit, mittels einer Zeichenkette mit dem Objektnamen auf Objekte zuzugreifen. Das folgende Beispiel zeigt eine häufige Anwendung:

Name= InputText("Bitte geben Sie den Namen des Datensatzes ein")
Integral($Name$)

Objektreferenz

Eine Objektreferenz ist ein Verweis auf ein Objekt in FlexPro, z. B. auf eine Formel oder einen Ordner. Über eine solche Objektreferenz können Sie einerseits auf den Wert der Objektreferenz zugreifen und andererseits auf die Eigenschaften des Objektes, z. B. auf dessen Name oder Kommentar. Wenn Sie einen Pfadnamen auf ein Datenobjekt in FPScript verwenden, dann repräsentiert dieser den Wert des Datenobjektes, liefert also keine Objektreferenz. Um eine solche zu bilden, müssen Sie die Set-Anweisung oder das As Object-Schlüsselwort verwenden:

Dim Obj = Datensatz As Object

oder

Set Obj = Datensatz

Der Indirektionsoperator ($$) liefert dagegen auch bei Datenobjekten eine Objektreferenz:

Dim Obj = $"Datensatz"$

ist äquivalent zu:

Dim Obj = Datensatz As Object

Wenn ein Pfadname nicht auf ein Datenobjekt verweist, sondern z. B. auf einen Ordner, dann repräsentiert dieser eine Objektreferenz. Die folgenden Anweisungen sind also äquivalent:

Dim Obj = Ordner.fld As Object

oder

Dim Obj = Ordner.fld

FlexPro wertet eine Objektreferenz automatisch aus, wenn für weitere Berechnungen der Wert benötigt wird. Mit dem Value-Operator können Sie eine Objektreferenz explizit auswerten:

Dim Val = Value $"Datensatz"$

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren