FlexPro
HistoryBase
Engineering
Training
Downloads
FlexPro-Support
Wissen
Community
Über Uns
Referenzen
Jobs
Allgemeiner Kontakt
Händlerverzeichnis
FlexPro-Support
DE
EN
FR
Placeholder
Produkte und Lösungen
Support und Downloads
Unternehmen
Magazin
Kontakt
Sprache
MyWeisang

Account Einstellungen

Topic

Apply function to a data folder

Startseite ' Community ' Automation and VBA ' Apply function to a data folder

Anzeigen von 5-Stellen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #35205
    HerveM1234
    Teilnehmer

    Hi,

    I would like to applie a FPS function to every dataset contained in a folder in order to create automaticly a formula for each signal.
    For example, if I have a folder containing 3 signals Va, Vb & Vc, I would like to applie the predifined function RMS_func and create 3 formulas Va_RMS, Vb_RMS, Vc_RMS.

    I’ve read the help file but I’m not able to do that in VBA.

    Thanks for you help

    #35209
    HerveM1234
    Teilnehmer

    Hi,

    I would like to applie a FPS function to every dataset contained in a folder in order to create automaticly a formula for each signal.
    For example, if I have a folder containing 3 signals Va, Vb & Vc, I would like to applie the predifined function RMS_func and create 3 formulas Va_RMS, Vb_RMS, Vc_RMS.

    I’ve read the help file but I’m not able to do that in VBA.

    Thanks for you help

    #35206
    Bernhard Kantz
    Teilnehmer

    There is a manual way to achieve this. Place your function formula (starting with Arguments … and named e.g. _RMS) in the folder and drag the signals onto that formula. This creates for each signal a new formula containing the application of the function on the signal.

    Using Automation this small code sample performs the same task:
    [code]
    Option Explicit

    Const FunctionPath As String = “RMS_func”
    Const FunctionPrefix As String = “_RMS”

    Public Sub ApplyFunction()

    Dim fldSignals As Folder
    Set fldSignals = ActiveDatabase.ActiveFolder

    Dim cllSignals As FpObjects
    Set cllSignals = fldSignals.Objects(fpObjectTypeDataSet)

    Dim dsSignal As DataSet
    Dim fmlApplSignal As Formula
    For Each dsSignal In cllSignals
    Set fmlApplSignal = fldSignals.Add(dsSignal.Name & FunctionPrefix, fpObjectTypeFormula)
    With fmlApplSignal
    .Author = “Macro ApplyFunction()”
    .Formula = FunctionPath & “(” & dsSignal.Name & “)” & vbCrLf
    .ReadOnly = True
    End With
    Next

    End Sub
    [/code]

    #35207
    HerveM1234
    Teilnehmer

    Hi again,

    is it possible to proceed if the folder is containning indifferently Formulas and/or Datasets?

    #35208
    Bernhard Kantz
    Teilnehmer

    If you want to apply your function to only a subset of datasets present in the active folder, you can replace the argument of the folders Objects() property. E.g. your datasets all have names of a specific pattern (like 2014_11_xx_07_yy denoting a measurement from a november day starting a 7 o’clock) you may use a regular expression (“^2014_11_d{2}_07_d{2}.DAT$”) to filter out the desired selection.

    More on regular expressions can be found in the Online Help in the chapter [i]Automating Processes > Automation Using FlexPro Visual Basic > FlexPro Visual Basic Reference > Objects and Collections > F > Folder > Properties > Objects[/i].

Anzeigen von 5-Stellen - 1 bis 5 (von insgesamt 5)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.