3 hours ago3 hr We have our dialog functions in MBS FileMaker Plugin to quickly show a dialog in a calculation. Usually to show a custom dialog in FileMaker at any time to quickly report something to the user or to quickly ask a question with yes or no. For example we can just ask with a Let statement for whether we should delete a file: Let ( [ _ = MBS("Dialog.Reset") ; _ = MBS("Dialog.SetDefaultButton" ; "Yes") ; _ = MBS("Dialog.SetOtherButton" ; "No") ; _ = MBS("Dialog.SetAlternateButton" ; "Cancel") ; _ = MBS("Dialog.SetMessage" ; "Delete the old file?") ; _ = MBS("Dialog.SetWindowTitle" ; "Backups done") ; _ = MBS("Dialog.Run") ; button = MBS("Dialog.GetButtonPressed")] ; // 0 -> Yes, 1 -> No, 2 -> Cancel button)A few years ago we added a few helper functions for macOS to add some text fields to ask a question and get some data. For example we may ask:The new file name for renaming a fileAsk for user name and password for new accountAsk user for an email, phone number or some other quick valueAsk for some initial values to create a new record.Enter a approval code like TOTPIf someone needs to pick something from a list, you better use ListDialog functions. For the fields, let's make a little script to ask the user for an user name and password with two fields: Set Variable [ $r ; Value: MBS( "Dialog.Reset" ) ]Set Variable [ $r ; Value: MBS( "Dialog.SetAlternateButton" ; "Cancel" ) ]Set Variable [ $r ; Value: MBS( "Dialog.SetDefaultButton" ; "Create" ) ]Set Variable [ $r ; Value: MBS( "Dialog.SetInformativeText" ; "To quickly add an user name and optional a password. If no password is provided, we generate one." ) ]Set Variable [ $r ; Value: MBS( "Dialog.SetMessage" ; "Create new user account for My Solution" ) ]Set Variable [ $r ; Value: MBS( "Dialog.AddField"; "Account name:"; ""; "Name" ) ]Set Variable [ $r ; Value: MBS( "Dialog.AddField"; "Initial password:"; ""; "Password" ) ]Set Variable [ $r ; Value: MBS( "Dialog.SetWindowTitle" ; "Create Account" ) ]Set Variable [ $result ; Value: MBS( "Dialog.Run" ) ]Set Variable [ $name ; Value: MBS( "Dialog.GetFieldText"; 0) ]Set Variable [ $pass ; Value: MBS( "Dialog.GetFieldText"; 1) ]Show Custom Dialog [ $result & ¶ & $name & ¶ & $pass ]Or as Let statement: Let( [ r = MBS( "Dialog.Reset" ) ; r = MBS( "Dialog.SetAlternateButton" ; "Cancel" ) ; r = MBS( "Dialog.SetDefaultButton" ; "Create" ) ; r = MBS( "Dialog.SetInformativeText" ; "To quickly add an user name and optional a password. If no password is provided, we generate one." ) ; r = MBS( "Dialog.SetMessage" ; "Create new user account for My Solution" ) ; r = MBS( "Dialog.AddField" ; "Account name:" ; "" ; "Name" ) ; r = MBS( "Dialog.AddField" ; "Initial password:" ; "" ; "Password" ) ; r = MBS( "Dialog.SetWindowTitle" ; "Create Account" ) ; $result = MBS( "Dialog.Run" ) ; $name = MBS( "Dialog.GetFieldText" ; 0 ) ; $pass = MBS( "Dialog.GetFieldText" ; 1 ) ] ; $result) As you see we can just evaluate a Let to get the variables filled. This is very convenient to show a dialog at the spot in some calculation. If you need more, check out the example on how to make a dialog from a FileMaker layout and put many more controls on the dialog.
Create an account or sign in to comment