Run Form with parameters

GavrilaGavrila Member Posts: 12
Hi all. I have a form and i want to run (pass) it with some parameters. Another words I want to change properties in form depending on external data. It is possible in NAV?

Comments

  • MBergerMBerger Member Posts: 413
    yes, that is possible. Create some functions in the form with which you pass your parameters into global variables of the form, and then run it using code.
    Example : say you added a function SetHideControls ( value : boolean ) to form 50000.
    function HideControls ( Value : boolean )
    begin
      HidecontrolsBoolean := value ;
    end ;
    
    then in the OnOpenForm trigger ( and other places ) you can do something with that global :
    currform.someControl.visible := not(hidecontrols) ;
    ...
    
    In the calling code declare a variable, type form, subtype 50000 and use the following code ( i called if f ) :
    clear(f) ;
    f.SetHideControls(true) ;
    f.run ; // or f.runmodal, whatever you want
    

    in the form you can then do something with the value of
  • GavrilaGavrila Member Posts: 12
    MBerger wrote:
    yes, that is possible. Create some functions in the form with which you pass your parameters into global variables of the form, and then run it using code.
    Example : say you added a function SetHideControls ( value : boolean ) to form 50000.
    function HideControls ( Value : boolean )
    begin
      HidecontrolsBoolean := value ;
    end ;
    
    then in the OnOpenForm trigger ( and other places ) you can do something with that global :
    currform.someControl.visible := not(hidecontrols) ;
    ...
    
    In the calling code declare a variable, type form, subtype 50000 and use the following code ( i called if f ) :
    clear(f) ;
    f.SetHideControls(true) ;
    f.run ; // or f.runmodal, whatever you want
    

    in the form you can then do something with the value of

    Thank you for reply.

    But I need to pass parameters and run form with a record variable.
    Something like that.....
    clear(f);
    f.SetHideControls(true) ;
    f.run(Rec);
    But Forms can not be run as codeunits i.e. CodeunitVariable.RUN(Rec) :( .
  • MBergerMBerger Member Posts: 413
    Gavrila wrote:
    Thank you for reply.

    But I need to pass parameters and run form with a record variable.
    Something like that.....
    clear(f);
    f.SetHideControls(true) ;
    f.run(Rec);
    But Forms can not be run as codeunits i.e. CodeunitVariable.RUN(Rec) :( .
    Have a look in the helpfile for functions like f.setrecord, f.settableview etc.
  • GavrilaGavrila Member Posts: 12
    MBerger wrote:
    Gavrila wrote:
    Thank you for reply.

    But I need to pass parameters and run form with a record variable.
    Something like that.....
    clear(f);
    f.SetHideControls(true) ;
    f.run(Rec);
    But Forms can not be run as codeunits i.e. CodeunitVariable.RUN(Rec) :( .
    Have a look in the helpfile for functions like f.setrecord, f.settableview etc.

    Thanks for help and quick reply in spite of stupid question.
Sign In or Register to comment.