Arbeiten mit FlexPro-Projektdatenbanken

07.02.2018
 Automatisierung von Abläufen > Automatisierung mit FlexPro Visual Basic > Arbeiten mit Objekten > Arbeiten mit FlexPro-Projektdatenbanken

Arbeiten mit FlexPro-Projektdatenbanken

<< Klicken, um Inhaltsverzeichnis anzuzeigen >>

  Automatisierung von Abläufen > Automatisierung mit FlexPro Visual Basic > Arbeiten mit Objekten >

Arbeiten mit FlexPro-Projektdatenbanken

FlexPro speichert alle Objekte in einer Projektdatenbank ab. Diese Projektdatenbank können Sie durch Anlegen von Ordnern hierarchisch gliedern. Sie können sich eine FlexPro-Projektdatenbank also wie eine Festplatte Ihres Rechners vorstellen. An die Stelle der Dateien auf der Festplatte treten in einer FlexPro-Projektdatenbank Datensätze, Formeln, Präsentationsobjekte, Arbeitsblätter und Dokumente, die Sie für Ihre Analyse benötigen. Ähnlich wie auf einer Festplatte können Sie in einer FlexPro-Projektdatenbank eine Hierarchie von Ordnern aufbauen, um Ihre FlexPro-Objekte zu organisieren.

Anlegen einer Projektdatenbank

FlexPro kann mehrere Datenbanken gleichzeitig öffnen, die dann in der Databases-Auflistung gehalten werden. Zum Anlegen einer neuen, leeren Datenbank verwenden Sie die Add-Methode der Databases-Auflistung. Die Add-Methode übergibt die neu angelegte Datenbank, so dass Sie diese zum späteren Zugriff sofort einer Variablen zuweisen können:

Dim Doc As Database

Set Doc = Databases.Add

Öffnen einer Datenbank

Mit der Open-Methode der Databases-Auflistung öffnen Sie eine in einer Datei gespeicherte Datenbank.

Dim Doc As Database

Set Doc = Databases.Open("C:\Databases\MyDatabase.fpd", fpOpenModeBackup)

Speichern einer Datenbank

Wenn die Datenbank neu angelegt und seitdem noch nicht gespeichert wurde, verwenden Sie die SaveAs-Methode. Das zweite Argument bestimmt, wie die Datenbank gespeichert werden soll.

Doc.SaveAs "C:\Databases\MyDatabase.fpd", fpSaveModeOneFile

Mit der Save-Methode speichern Sie eine Datenbank, die bereits als Datei geöffnet wurde oder zuvor schon gespeichert wurde.

Doc.Save

Mit der Save-Methode der Databases-Auflistung können Sie alle gerade geöffneten Datenbanken speichern. Für solche, die noch keinen Dateinamen haben, erscheint ein Dialogfeld zu Angabe des Namens.

Databases.Save

Schließen einer Datenbank

Sie können eine einzelne Datenbank mittels ihrer Close-Methode schließen.

Doc.Close fpSaveChanges

Alternativ können Sie alle gerade geöffneten Datenbanken schließen.

Databases.Close fpPromptToSaveChanges

Zugriff auf Datenbanken

Um auf eine Datenbank in der Databases-Auflistung zuzugreifen, verwenden Sie den Pfadnamen bzw. den Namen, der im FlexPro-Hauptfenster angezeigt wird.

Set Doc = Databases("C:\Databases\MyDatabase.fpd")

Mit der ActiveDatabase-Methode des Application-Objektes können Sie auf die gerade aktive Datenbank zugreifen.

ActiveDatabase.Close

Anlegen von Objekten und Ordnern

Mit der Add-Methode des Folder-Objektes können Sie Objekte und Ordner in der Datenbank anlegen. Mit der RootFolder-Eigenschaft des Database-Objektes greifen Sie hierzu auf den Wurzelordner zu.

Dim Fld As Folder

Set Fld = ActiveDatabase.RootFolder.Add("Folder", fpObjectTypeFolder)

Die Add-Methode kann auch andere Objekte hinzufügen und übergibt das neue Objekt als Ergebnis.

With Fld.Add("Series", fpObjectTypeFormula)

    .Formula = "(100, 0.0, 0.1)"

End With

Zugriff auf Objekte

Um auf ein Objekt in einem Ordner zuzugreifen, verwenden Sie die Object-Methode des Ordners. Sie können entweder Objektname und Objekttyp angeben oder nur den Namen mit der dem Typ entsprechenden Namenserweiterung.

ActiveDatabase.RootFolder.Object("Diagram", fpObjectTypeDiagram2D) _

    .Comments = "Measurement 1"

oder

ActiveDatabase.RootFolder.Object("Diagram.2D").Comments = "Measurement 1"

Über die Parent-Eigenschaft, über die jedes FlexPro-Objekt verfügt, können Sie auf das Objekt zugreifen, in dem sich das Objekt befindet, im Allgemeinen ist dies ein Ordner. Folgendes Beispiel greift auf den Kommentar eines Ordners zu, in dem der Datensatz gespeichert ist, der der Objektvariablen "Dataset" zugewiesen ist.

Dataset.Parent.Comments = "Measurement 1"

Objekte in der Datenbank suchen

Mit der Objects-Methode des Folder-Objektes können Sie nach Objekten suchen. Hierbei stehen verschiedene Möglichkeiten zur Auswahl.

Folgendes Beispiel findet alle Datensatz-Objekte, deren Name mit "sig" beginnt.

Dim Objects

Set Objects = ActiveDatabase.RootFolder.Objects("^sig*\.dat$")

Der Reguläre Ausdruck ist wie folgt aufgebaut:

Sequenz

Bedeutung

"^sig"

gibt an, dass der Objektname mit "sig" beginnen muss.

".*"

steht für eine beliebig lange Folge von beliebigen Zeichen

"\.dat$"

legt fest, dass der Objektname mit ".dat" enden muss, d. h. dass das Objekt ein Datensatz sein muss.

Folgendes Beispiel findet ein Datensatz-Objekt "Signal" und ein 2D-Diagramm "Plot".

Dim Objects

Set Objects = ActiveDatabase.RootFolder.Objects("Signal", "Plot.2d")

Folgendes Beispiel findet alle Objekte, bei denen die Origin-Eigenschaft den Wert "Measurement 1" hat.

Dim Constraints As New SearchConstraints

With Constraints.Add

    .SearchItem = fpSearchItemOrigin

    .CompareOperation = fpSearchCompareOpTextIs

    .SearchValue = "Measurement 1"

End With

Dim Objects

Set Objects = ActiveDatabase.RootFolder.Objects(Constraints)

Mit der Objects-Methode des Database-Objektes können Sie auf Objekte in verschiedenen Ordnern gleichzeitig zugreifen. Folgendes Beispiel löscht zwei Objekte.

ActiveDatabase.Objects(Array("\Diagram.2d", _

    "\Measurement1\Signal")).Delete

Mit der Search-Methode des Folder-Objektes können Sie die gesamte Datenbank oder Teile daraus nach Objekten durchsuchen. Das folgende Beispiel sucht nach allen Datensätze, deren Maximalwert größer als 10 ist und verschiebt diese Datensätze in den Ordner "Data Folder".

Dim Constraints As New SearchConstraints

With Constraints.Add

    .SearchItem = fpSearchItemObjectType

    .CompareOperation = fpSearchCompareOpObjectTypeIsKindOf

    .SearchValue = fpObjectTypeDataSet

End With

With Constraints.Add

    .SearchItem = fpSearchItemMaximum

    .CompareOperation = fpSearchCompareOpValueGreater

    .SearchValue = 10#

End With

ActiveDatabase.RootFolder.Search(True, Constraints). _

    MoveTo ActiveDatabase.Object("\Data Folder.FLD")

Share article or send as email:

You might be interested in these articles