FlexPro Forum – Discuss Your Topic!

Accessing to calculated datas in VBA

Home > Community > Automation and VBA > Accessing to calculated datas in VBA

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #12889
    HerveM1234HerveM1234
    Participant

    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
    Participant

    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
    Participant

    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.

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.