1) You can setup record level access control that limits what records can be viewed by a user with a given account or privilege set name. Look up "Editing record access privileges" in FileMaker help and pay particular attention to the section titled: "Entering a formula for limiting access on a record-by-record basis".
2) Your iPad users won't be able to print anyway and there is a setting for a given privilege set in Manage | Security where you can disallow printing for a given user for those using a computer to access the file.
Thanks for posting!
PhilModJunk is correct (thanks!) but I'd like to expand on this topic a bit more.
Both options are possible by editing the privilege set. The default privilege sets made available (Read Only, Data Entry and Full Access) aren't editable so you'll probably want to start with a brand new one. To create a privilege set, go to File -> Manage -> Security and click the Privilege Sets tab. From there, click New to create a new privilege set. You'll want to experiment with the settings to get the appropriate level of control for your database but we know you'll at least want to uncheck the Allow Printing option under Other Privileges.
Allowing the user to create new records but not view old records is a little more complicated but still possible. One way to do this would be to limit the record view based on a calculation. To do this, under the Edit Privilege Set dialog (same one that we disabled Allow printing in), select the drop down menu next to Records and choose Custom Privileges. This will give you a new dialog where you can define specific rules for the various functions related to records. For our purposes, just choose the yes option for everything but view. For view, choose limited. This will bring up a Specify Calculation prompt where we can provide a formula for the database to check. If the formula results in true, the user will be able to view that record. If it results in false, they will not have access.
At this point, the calculation needed will depend on your database. Would the user be clicking a submit button when they're done creating a record? If so, you could have that submit button set a field not visible to the user to "complete" and then have your "limited" calculation be something similar to this:
not(FieldA = "complete")
The above means that as long as FieldA doesn't equal the word "complete", the user will be able to access that record. You'll probably also want to omit records that they don't have access to, so your submit button might perform a script that looks similar to this:
Please let me know if you'd like any clarification on any of this.
I work with Mike on this project and I can say that a submit button was something that we didn't think of originally but could be a nice complement to our database. How do we go about inserting the submit button amongst the other fields?
And, just to be super clear, once the iPad user finishes inputting data on a particular record, we need the person inputting to only be able to see the record he or she was working on, no viewing other patients. The iPad user can add another record, but not view any existing records in the database. So, the "Omit Record; New Record/Request" in the calculation field will then limit their access to other patients in the database?
Thanks so much for your help!
You can insert a button by going into layout mode (View -> Layout mode) and selecting Insert -> Button or clicking on the button tool in the status area.
In regards to the users being unable to access any records in the database at all, it's important to note that with the method I outlined above, the user will not be able to access any records that have been "completed" but any records still being edited are fair game. You could change the privilege set calculation to only allow users to view records they've created but not yet submitted. To do this, you would change the calculation from:
not(FieldA = "complete")
not(FieldA = "complete") and FieldB = Get(AccountName)
where FieldB is an auto-enter calculation field. To set FieldB up, you would go to File -> Manage -> Database and create a new text field. From there, click the options button for that field and check the check box for "Calculated value" . This will give you a specify calculation box similar to the one you saw for the privilege set calculation. Here, you'll want the following:
This will put the account name of the user who created the record in this field automatically and, as long as the "Do not replace existing value of field (if any)" option is checked, will keep it there regardless of who else visits that record. So the new privilege set calculation would check to see if the record has not been "submitted" and whether the user attempting to access actually created it originally. If either of these conditions are false, they will not have access to the data.
The script I outlined (Set Field, Omit, New Record) essentially sets FieldA to "complete" which causes the privilege set calculation to result in false meaning the user will no longer have access to the record, Omit the record which will hide it from the end user and then New Record/Request which just creates a new record.
You'll have to forgive me, I've been trying to make this work over the last couple days and I cannot seem to make sense of it.
Using the method you outlined in your first post, I got this far:
1. I inserted a button within form fiew, labeled it "complete"
2. I then made a column titled "mark complete" within the table view of the file.
3. I then went to link that column to the button, so I went to button setup and tried to make it's function "insert text." I selected "go to target field" and clicked the "specify" button to connect it to the "mark complete" field. I then clicked the second "specify" button and put "complete" as to specify what I wanted to be in that field.
That is about as far as I got. When I tried to use the button, it did not mark the field "complete" and I was not able to then use the limited calculation function.
Can you advise as to where I went wrong and how I move forward from here?