5 Replies Latest reply on Sep 22, 2016 4:25 AM by beverly

    Monkeying With Checkbox Set Lists


      Hi all.


      PRIMARY QUESTION: Is it possible to deeply manipulate certain checkbox set list items separately from the the rest of their plain vanilla checkbox-cousins?


      ABOUT ME: FMPA 13, Mac OS X El Capitan, FM Go 15, self-taught novice aspiring to intermediate in ongoing project to provide my teacher/wife with a data management tool which helps her leverage the little time she has.


      Okay, so what do I mean by deeply manipulate?  I have two cases in mind...


      ITEM 1: I have a list of 15 items in a "Students" table formatted as a checkbox set which is populated by a simple value list.  This list is part of a teacher's classroom checklist which, in-turn, is part of a larger FM DB situated on an iOS / iPad platform.  My teacher informs me that, of course, not all checklist items are created equal.  It turns out that one item (value 13 of 15) must be conditionally available to user-manipulation based upon a student's range of age.  If the student is between the ages of three and four (inclusive), the checkbox and its corresponding value is to be dark grey in color and made available to check/uncheck via screen tapping.  If the student is five or older, the checkbox and its value change to light grey color and the checkbox becomes inactive/disabled.


      ITEM 2: I have a couple of other checkboxes in the overall checkbox set which need to look at values in various parts of the DB and then automatically check/uncheck themselves in order to reduce unnecessary manual data upkeep.  My only solution for these was to remove these two values from the associated value list and put just carriage returns in their place, thus leaving two empty spaces in the resulting checkbox set.  I then created two calc text fields, formatted them as checkboxes, and manually slid them into the spaces left over from the carriage returns in the value list.


      This method works but it seems clunky and unpolished.  Plus, it's downright tedious attempting, by trial and error, to get the correct spacing between checkboxes on the Mac to then have the spacing drastically change when the solution is ported to iPad.  The 'fix' winds up looking ugly on the Mac with overlapping checkboxes, etc. in order to have it correctly spaced and justified on iPad.


      So, back to my question.  Is there a way to individually 'cherry-pick' list values formatted as checkboxes, apply calculations to some so they auto-check/uncheck, change box/text coloring on others and make them active/inactive based on related DB values, and leave the remaining 'normal' checkbox set items to function manually?


      Thanks for any ideas you can provide!

        • 1. Re: Monkeying With Checkbox Set Lists

          I suggest that you keep the check box interface concept: one tap selects, a second tap deselects with a visual indicator to show what is selected and throw the actual check box group format out and not use it.


          Set up two tables of related records. One serves as the source of values that you would have originally selected for your value list. The other serves to record whether or not a given value has been selected for a given parent record.


          You use a portal or list view to list the records from the first table to present the user with a list of values. Relationships, portal filtering for portals or performing a find for a list view can control which values appear as options for selection. You set up each listed value as a button that performs a script. You need just one script to handle the select/deselect process. Tapping the button performs a script that checks the second table for the value of the record/portal row where you tapped the button to see if such a record exists and is linked to the current parent record. If no such record is found, the script creates such a record. (check box is selected). If such a record is found, the script deletes it (Check box is cleared).


          Such a set of related records provides reporting options not easy to manage with check box groups and it's possible to change the formatting on individual buttons if necessary. If your list of values won't fit the available space, it's possible to use a portal with a scroll bar to get a scrolling list of values.


          A Hide Object When expression can make an icon appear or disappear based on whether a matching record is found in the second table or not to show whether a value has or has not been selected.

          • 2. Re: Monkeying With Checkbox Set Lists



            Thank you for your extensive reply.  I'm going to review/re-review/re-re-review your post for a day and then attempt to build what you have described.  I figured a better approach was out there, and I figured it might be involved, as your post seems to illustrate...


            I will get back to you in a day or two with a result and perhaps a need for clarification(s).


            You're awesome Phil!  Thanks. 

            • 3. Re: Monkeying With Checkbox Set Lists

              Here's a demo file that can you get you part of the way there. It demonstrates "check boxes with scroll bars"--which is the button as check box method that I'm describing, but in this demo file, the selected values populate a single field, building a return separated list just like clicking check boxes in an actual check box group.


              What I am describing here is actually a bit simpler in some ways as it can be easier to add/delete related records than to add/remove values from a return separated list.


              Adventures in FileMaking #2 - Enhanced Value Selection

              • 4. Re: Monkeying With Checkbox Set Lists

                Oh, I have this file.  You graciously had me look at it for an earlier question I had.  I'll take a look at the "...with scroll bars example.



                • 5. Re: Monkeying With Checkbox Set Lists

                  I have seen some wondrous UI with button bars (vertical or horizontal) that allows "lists" to expand/contract with calculated labels, calculated icons and hiding. Each button can simply be add/remove a value from a field (data + return = value) and thus be a "list". (This list can also be displayed as checkbox should that be desired.) Since the buttons can have conditional formatting applied, you can also use that feature.