Accessing to calculated datas in VBA

SupportCommunity Automation and VBA Accessing to calculated datas in VBA

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #12889
    HerveM1234HerveM1234
    Teilnehmer

    Hi,

    What is the best way to access from VBA to datas calculated (or not) in FlexProScript.

    I tried :

    Dim toto1, toto2, toto3
    Set toto1 = ActiveDatabase.RootFolder.Object("Formulas\myformula.FML", fpObjectTypeFormula).Value
    Set toto2 = toto1.X
    toto3=toto2(0) ' acces to the first xvalue of myformula for example

    It seems to work fine

    If I write

    dim toto
    toto=ActiveDatabase.RootFolder.Object("Formulas\myformula.FML", fpObjectTypeFormula).Value.X(0)
    

    it doesn’t work. Why?

    This this code does not work either :

    
    dim toto
    set toto = databases("MyDatabase.FPD").Object("Formulas\myformula.FML").value
    

    Something wrong?

    Thank you for the help

    #8549
    HerveM1234HerveM1234
    Teilnehmer

    Hi,

    What is the best way to access from VBA to datas calculated (or not) in FlexProScript.

    I tried :

    Dim toto1, toto2, toto3
    Set toto1 = ActiveDatabase.RootFolder.Object("Formulas\myformula.FML", fpObjectTypeFormula).Value
    Set toto2 = toto1.X
    toto3=toto2(0) ' acces to the first xvalue of myformula for example

    It seems to work fine

    If I write

    dim toto
    toto=ActiveDatabase.RootFolder.Object("Formulas\myformula.FML", fpObjectTypeFormula).Value.X(0)
    

    it doesn’t work. Why?

    This this code does not work either :

    
    dim toto
    set toto = databases("MyDatabase.FPD").Object("Formulas\myformula.FML").value
    

    Something wrong?

    Thank you for the help

    #9407
    Bernhard KantzBernhard Kantz
    Moderator

    The first example won’t work since “value.X” does not exist for a FlexPro formula object. Instead, you have to use e.g.

    
    Dim toto
    toto = ActiveDatabase.RootFolder.Object("Formula", fpObjectTypeFormula).Value(fpDataComponentX)(0)
    

    Moreover, it is suggested to use early binding, e.g.:

    
    Dim fml as Formula
    fml = ActiveDatabase.RootFolder.Object("Formula", fpObjectTypeFormula)
    
    Dim result as double
    result = fml.Value(fpDataComponentX)(0)
    

    Finally, in the last example you should open the desired database first and should again use early binding. More details about the value property can e.g. be found in the FlexPro Online-Help under Automating Processes | Automation Using FlexPro Visual Basic.

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.