you can have an open script (everytime the database starts) to check from where is tha database opened (ipad or pc) and with get system platform you tell filemaker to show or hide the toolbar etc.
To limit the access you can do it in many ways you could limit all access to the toolbars design your own buttons and limit it by your layouts or you could make privilege sets with whatever you want
Thanks Michael! I figured out the open window script, as far as hiding the toolbars and setting the current view to Browse Form.... But I haven't figured out how to make a privilege set that locks a user out of "Find" and "Table" modes/views... Can you perhaps direct me in the right direction, when creating a new privilege set, how to disable "Form" and "Table" view?
Thanks for your help!
Set up a user account for the user as follows.
1. Choose File menu > Manage > Security.
2. In the Manage Security dialog box select the Accounts tab and click New.
3. In the Edit Account dialog box, for Account is authenticated via, choose FileMaker.
4. Enter an account name and password for the account.
5. (Optional) Choose User must change password on next login to force the account user to choose a new password the first time they log in. (If the account is shared by multiple users this could lock out all other users who share the account).
6. For Account Status, make the account active. Users cannot open a database using an inactive account name and password.
7. (Optional) For Description, enter a description of the account. For example: “This account is shared by
multiple users and should not force a password change upon first login”.
8. For Privilege Set, select “Read-Only Access”.
9. Click OK.
10. In the dialog box that appears, enter an account name and password that is assigned the Full
Access privilege set, and click OK.
You don't privilege sets here. Check out some of the tabs in the Layout Setup dialog. Under views, you can turn off Table. And, you might add a script trigger to return immediately to Browse mode if somone enters Find mode. You should be able to use one script for all layouts where you don't want someone getting into Find mode. Alternately, you could use Custom Menus to accomplish both tasks, but that might be more involved than you need.
Thanks Tim and Debi!
Tim: I'm looking just to lock a user into a certain view mode (but with permission to enter data into records)....
Debi, thanks! I think this is what I'm looking for.... How would I write the script to return someone to browse when entering find mode, just write a script trigger from start-up of first window, but is there a function that returns to browse mode, If(viewmodefind,etc...)?
Thanks so much for the assistance, I was unaware of the layout setup suggestions you gave me, and that has helped a great deal!
Ryan, there are a couple of ways to do this. Your script to check prevelidge set or actual account name (look at the get functions) and if they are someone that should have browse only then change the mode in the next script step.
You could also just remove the appropriate menu items (for the find bits) - affects all layouts, no scripting, removes it from the status area at the bottom, easy to implement.
For the script trigger part:
First you'll need a script. You cannot make script triggers out of single steps, as you can with buttons; but your script could just be a single step: Enter Browse Mode.
Then, from Layout mode, go to each layout where you want users NOT to go to Find mode, and use the Script Trigger tab (in Layout Setup) to assign your new scipt to the OnModeEnter for Find mode. Your user will likely see the screen flash before being dumped back to Browse mode whenever trying to access Find mode, hopefully that's not a problem. Do this for all layouts where you want this behavior.
A couple of issues are bound to come up here:
1. This does not stop them from using QuickFind, but if you've turned off the Status Toolbar, this shouldn't be a problem.
2. What about when YOU want to go into Find mode? You will probably need to do some branching at the start of the script. Something along the lines:
IF Get ( AccountName ) = "Ryan" // *** see below
Enter Browse Mode
*** There are many conditions you could choose to evaluate here, depending on your preferred approach. If you are always logged in as Ryan, and noone else is, something along the lines above should work. Otherwise, if you do decide to use privilege sets, you could do something like: (if) Get ( AccountPrivilegeSetName ) ≠ "[Full Access]". (That's a not-equal sign in case it gets mangled.) Lots of other ways, too: you could set a global, and I'm sure others on the list can come up with additional ideas.
For scripting: You can find all the possible script steps on the left side of a new script. Once you pull one to the list on the right, you can resequence it by dragging, and check out each step's particular options using the buttons at the bottom. Oh - and if you're starting into calculations, check out the Get series that does not show up alphabetically; you need to pick that category from the functions type drop down at the top right of the Calculation engine (at least until you memorize them all :-) ). Explore and have fun!
Like Nick Chapin, it's much easier to do this by creating a Custom Menu. It's also easier to maintain, and less likely to fail in case you forgot to add a script somewhere.
But if you want to do a script, Get (WindowMode) calculation helps:
If you have layout script triggers, then you can assign it to OnModeEnter.
Then somewhere in the script use this:
# If in anything but browse mode switch to Browse Mode.
If [ Get ( WindowMode ) ≠ 0 ]
Enter Browse Mode
Like Debi said, you can change each layout view in Layout Setup.
Get (LayoutViewState) can help.
You can use it in a layou script trigger, OnViewChange.
Then somewhere in the script do this:
# If not in List view, then switch to list view
If [ Get ( LayoutViewState ) ≠ 1 ]
[ View as List ]