Origin - Worksheet oder Workbook?
Wie kann man mit LabTalk feststellen, ob ein Fenster ein Worksheet oder ein Workbook ist?
Wie verwendet man den Befehl exist()?
Erläuterung
Möchte man feststellen, ob ein Worksheet existiert, braucht man den Befehl exist(name). Wenn das Worksheet existiert, liefert er den Wert 2.
Den Befehl exist(name) kann man aber nicht nur für Worksheets verwenden, sondern auch für andere Objekte. Nachfolgend eine Tabelle der Antwortwerte, abhängig vom Typ des gesuchten Objekts.
Wert | Objekttyp |
---|---|
0 | Keines. Name ist nicht definiert |
1 | Data set |
2 | Worksheet |
3 | Graph window |
4 | Variable |
5 | Matrix |
6 | Macro |
7 | Tool |
9 | Notes window |
Im Anhang finden Sie ein kleines Beispiel für die Anwendung des exist-Befehls.
Das Basisobjekt jeden Fensters ist eine Seite.
Eine Seite kann entweder eine Grafik-Seite oder eine Worksheet-Seite sein, wenngleich die Eigenschaften eines Seitenobjekts häufig für eine Grafik-Seite verwendet werden.
Da die Funktion exist(name) in beiden Fällen 2 als Ergebnis ausgibt, hilft sie nicht weiter, wenn man wissen möchte, ob es sich bei einem Fenster um ein Origin Worksheet oder um eine Excel Workbook handelt.
Der folgende Befehl liefert die gewünschte Information: PAGE.EXTINFO:
= 0 für ein Origin Worksheet
= 1 für ein Excel Workbook
Nachfolgend ein Beispiel für die Anwendung des Befehls exist(name):
Wenn es ein Worksheet mit dem Namen Data4 gibt, erscheint ein Fenster mit "Hello Data!".
Existiert kein Worksheet mit diesem Namen, erscheint ein Meldung "Data4 does not exist."
Diese Meldung erscheint auch dann, wenn es ein anderes Objekt mit dem Namen Data4 gibt, da hier die Abfrage hier ausdrücklich ein Worksheet sucht.
if(exist(Data4)==2) {type -b Hello Data4!;} else {type -b Data4 does not exist.;};
Um eine Liste aller Worksheets Ihres Projektes zu erstellen, können Sie folgendes Skript verwenden:
%Z=""; doc -e W {%Z=%Z %H;}; %Z=;
Um nun beispielsweise auf den zweiten Namen in der Liste zuzugreifen, verwenden Sie folgende Skriptzeile:
%A=%[%Z,#2];%A=;
|