CC Non Profit 1.25

edit SideBar

How to I Change the Look of CC Nonprofit or Change the “Tabs” Like Blank and About?

All the interface objects, like the tabs and rounded corners used in CC NonProfit, are stored in global fields. you can access these field directly on the About / Interface tab of CC NonProfit. (A second layout, “Interface”, contains the actual container objets pasted onto the layout as a backup.) Many of these graphics need to be edited in Photoshop as they are not FileMaker objects. Aside from the contents of these global fields, you can edit the layouts in CC NonProfit just as you’d edit any other FileMaker layouts. (From ScriptMaker, run the “Show Status Area” script to gain access to the layout stat bar.)

The names of each tab (”Setup”, “Blank”, etc.) are stored in global text fields and are editable right on the About / Interface tab of CC NonProfit.

Note: if you’ve made a clone of CC NonProfit, the graphics in these global fields will be erased. Simply return to the Interface layout (layout no. 2) and select each graphic from the layout, enter browse mode, and paste it into the global field to the left of each graphic. Be sure to do this when you have “sole access” to the file: most reliably done by taking the file off FileMaker Pro Server. Globals reset on a multi user system do not persist past that “session” and will be gone when you next reopen the file. (You can also just import records into your clone from the interface table of a non-cloned file.)

How Do I Show the Status Area?

Perform the “Show Status Area” script from the Scripts Menu. Don’t forget to remove this script from the menu before you deploy CC NonProfit.

If you’d like to lock the status area, or change the window behavior (including zoom levels) you can do so by editing the “Adjust Window” script step in CCHierarchy.fp7

How Do I Secure CC Nonprofit?

CC NonProfit ships without any passwords or security in place. You’ll likely want to add some basic security to this system before you deploy it. In most cases this will mean simply adding to CC NonProfit whatever security you have in place in your existing solutions.

There are just a few additional things you might want to keep in mind.

First, we strongly suggest that you edit the adjust window script in CC NonProfit to lock the status area instead of just hiding it.

Additionally, if you plan to use the Navigation Layout Options and Security section (Pro Versions only), make sure that you create privilege sets in CC NonProfit that match those used in the rest of your system. You can then use the security options in the lower left of the Hierarchy tab to restrict some menu items to certain privilege sets.

Note that you can test the Privilege Set aspects of CC NonProfit without actually creating any privilege sets. Simply use the “Test As” feature in the Navigation Layout Options section of the Hierarchy tab.

How Can I Change the Icons Beside a Hierarchy Item?

You can navigate to the “Settings” section of the Setup tab to maintain a list of potential icons. Simply paste new icons into the icon field or put your cursor in that field and select “Picture” from the “Insert” menu. If you use the insert menu, be sure that you unchecked the option to store only a reference to the image. (Icons should be about 16px square).

You may create nearly any number of icons; these are associated with Hierarchy items using the “icon” name field in the upper right of the Hierarchy tab. Simply select an item from he Hierarchy and then change its icon name in the right section of the screen under “Edit Selected Item”.

Icons with transparent backgrounds (such as images saved in the .png format) work best when a hierarchy item is highlighted and its background turns green. (Note that if you want to change this highlight color, you’d do that in the “interface” section of the About tab.

Can I Print the Hierarchy?

Sure. A “Print Hierarchy” button can be found in the lower border of the hierarchy portal on the Hierarchy tab. This button executes a Go To Related Record command to build a found set matching the hierarchy portal before entering Preview Mode and printing.

How Can I Search for Hierarchy Items?

There is no real interface for searching for these items. You can, however, go behind the scenes to the “Hierarchy Items” layout and perform searches there. That is a simple reference layout based on the Hierarchy table occurrence; you could also build new layouts based on the same table occurrence, creating a more attractive search screen- perhaps on the “Blank” tab above.

What Is Navigation?


The Pro version of CC NonProfit allows you to use the hierarchy as a dynamic navigation system, assigning each hierarchy item with a FileMaker layout. Example files that come with CC NonProfit show you how to use CC NonProfit to and Back and Forward buttons to your solutions.

To get an overview of how this works using the sample data which comes with CC NonProfit, open the “Navigation Example” section of the hierarchy. Below that you’ll see an item called “Jobs”. Clicking on that item will make it active in the right hand side of the screen under “Edit Selected Item”; below the “Navigation” section you’ll see that this item is linked to a File and a Layout. Click “Go To Item” below these fields and you’ll see the example Jobs file open up.

Notice that this Jobs file has a back, menu, and fwd button in its header. Click “menu” to see a small version of the hierarchy which is designed to work as a floating navigation palette for your solutions. (This is just a different layout in the hierarchy file shown in a new window.) Once this mini window is open, you can click on other items within the Navigation example section to see how the floating palette can let you navigate through your solution.

You can also click on the tabs at the top of the Jobs file to navigate to other sections of this example system; notice that even as you navigate using these tables the floating menu “keeps up”, always recording your current location. It even keeps up when you use go to related record step as when you click on the arrow beside a job’s client.

Check out the “Button Tab” and “Go to...” scripts in these example files to see how you need to tell the Hierarchy system where you want to go.

File & Layout Names

Navigation works by associating a File name and a Layout name with a hierarchy item. These items have to be spelled exactly as they are in the target files and CC NonProfit has some self-checks in place to help you with that. Providing that the target file is open, CC NonProfit will show a “No Such Layout” warning in red if it can’t find the combination of filename and layout name you’ve entered. Note that you should not include the .fp7 extension when specifying file names.

CC NonProfit supports navigation within single file solutions or across multiple files. In the Navigation Example which comes with CC NonProfit Contacts and Clients are in a different file from Jobs.


In most FileMaker solutions you end up navigating around using things other than the main menu (our floating navigation palette), using things like tabs or Go to Related Record commands. In such instances you need to tell the hierarchy where you want to go by specifying a unique hierarchy record. Rather than having to know the unique ID numbers of your destination records in the hierarchy, you should assign each navigation destination a unique nickname: something you can keep in your head and easily call when writing scripts in other files. Take a look at the “Button Tab” and “Go to Related Company” scripts in our demonstration Jobs file for examples of how this nickname is used. When you’re writing your GoToRelatedRecord scripts you can also turn on “reveal nicknames” on the Setup screen to see each item’s nickname beside it in the menu.

Going Further: Shortcuts and Layout Options

You can associate find criteria with your navigation options so that hierarchy records can represent found sets or individual records within your solution. See the FAQ entry “What are Shortcuts” for more information.

CC NonProfit also lets you link hierarchy items with FileMaker’s privilege sets. In this way you can hide certain hierarchy items from users based on the FileMaker privilege set. When using the hierarchy for navigation you can also change layout behavior based on privilege sets, controlling the status area as well as the use of the New, List, Find, etc. buttons you’ll see in the header of our demonstration files. See the FAQ entry “What are Layout Options & Security” for more information.

Are There Any Shortcuts in CC Nonprofit?

Yes there are.

When opening and closing items on the hierarchy, you can hold down different keys to affect the hierarchy’s behavior. Hold down the shift key to select multiple items. When clicking on a closed item, holding down the Alt (option) key will open all that item’s children when the item itself if opened.

When creating a New Item, holding down the shift key creates a child of the selected item. (Normally, new items are created as peers of the selected item.)

Are There Any Limits to the Number of Items / Levels I Can Have in the Hierarchy?

Free Version

The free version is limited to 5 levels deep and no one item may have more than 999 siblings. By “5 levels” we mean something like this:

Level 1

   Level 2 sibling 1
   Level 2 sibling 2 
      Level 3
         Level 4
           Level 5 sibling 1
           Level 5 sibling 2

Pro Version

The Pro Version can have up to 25 levels and any one item may have no more than 999 siblings. You can create more records than these limits indicate, but the hierarchy will not sort reliably once these limits are exceeded. Note that at 25 levels deep, the hierarchy takes quite a bit of room from left to right to display each item: taking even more room with legal notation turned on.

When using the “Partition” attribute of the Pro Version, each Partition must have at least one member in level 3 or above.

What Changes Do I Need to Make to My Files to Use CC Nonprofit’s Navigation?

Adding Navigation to Your Solution. The procedures here are nearly the same in the Free and Pro version, though the Free Version’s navigation lacks the “back” and “fwd” buttons of the Pro Version as well as the Pro Version’s hierarchy driven “new”, “list”, “find” etc. buttons.

  1. Quick Start ##

Experienced developers can add navigation to your solution in 5 quick steps. More detailed instructions follow below. You'll also want to read "Gong Further" at the end of this entry for some more information about adding navigation to your file(s). You'll perform the following steps once for each file in your solution (CC NonProfit can navigate through single file or multi-file solutions)...

1. Create a File Reference for CC NonProfit in your file. Name the reference "Hierarchy". Create one table occurrence from the HierarchyGlobals table in the CCHierarchy file. Leave that table occurrence named "HierarchyGlobals"; you do not need to make any relationships to this table occurrence.

2. Import the Navigation Scripts into your file from the example file "Clients". Select all the scripts from "## Hierarchy Navigation..." through "Button Tab". These will import without errors and you don't have to edit any of them.

3. Add your file to the "Navigate (Go to File)" script in CC NonProfit. You'll duplicate or edit one of the existing ElseIf steps for each file in your solution, performing your newly imported "Navigate" script in each case.

4. Create Navigation Records for your Solution in CC NonProfit. Navigate to the Hierarchy Tab of CC NonProfit and create one new record for each layout you'd like to navigate to in your solution. Remember that you can rename and resort these later. For each item add a file name, layout name, and nickname in the Navigation section. Remember that your file name should not include the .fp7 extension.

5. Add buttons to your file. Copy the "Back", "FWD", "New", "List" etc. buttons from the example file and paste them into your file. These items won't require any editing. For any buttons you already have that you'd like to turn into navigation buttons, simply edit these buttons to perform the script "Button Tab" in your file: for a script parameter, send the hierarchy's nickname of the navigation record you'd like to go to.

That's It!

  1. More Detailed Instructions ##

What You'll Need.

Almost all of the items you need to add to your solution can be copied or imported from one of the Demonstration files. In this Example we'll be hooking up the Simple Tabs example so you'll want to have moved CC NonProfit to the same folder as the solution you'll be working on (so that CC NonProfit is right next to your files). You'll also want to (temporarily) move the Demonstration files folder to this same location (so that the Demonstration Files folder is right next to CC NonProfit, which is right next to your files). Now you can open CC NonProfit and open your solution; the "Clients" and "Jobs" files from the Simple Tabs example will open automatically.

Note that you can edit the "Upon Opening" script in CC NonProfit to prevent these example files from opening each time you open the hierarchy.

1. Create a Table Occurrence for "Hierarchy Globals" in your file.

Click File / Define File References from FileMaker's File menu and the click New. Click Add File in the upper right and select CC NonProfit from the file dialog presented. Once you've selected the file, name the reference "Hierarchy" where it says "File Reference Name" and click OK at each of the screens until you're back at your solution. Go to the relationship graph in your solution and click the green plus-sign button in the lower left of the screen; this will begin the process of creating a new table occurrence on your graph. From the "Specify Table" window, change the "File:" to be CCHierarchy and select the "HierarchyGlobals" table and click "OK".

2. Import the Navigation Scripts.

Open the ScriptMaker in your solution and select "Import". Select the file "Clients" from within Demonstration Files / Navigation / Simple Tabs. Place a check mark beside all the scripts from "## Hierarchy Navigation..." through "Button Tab" and click OK. These scripts will all import without errors and you don't have to edit any of them.

3. Edit the "Navigate (Go to File)" script in CC NonProfit.

Since CC NonProfit has to actually call scripts within your files, you'll have to add a file reference for your solution to CC NonProfit. Once you've done that edit the "Navigate (Go to File)" script in CC NonProfit. Highlight the last pair of ElseIf / PerformScript lines in this script. With both lines highlighted click "Duplicate"; you'll now edit the duplicated lines. Edit the ElseIf line so that your file name follows the equals sign (your file name should be in quotes and should NOT have the .fp7 extension). Now edit the Perform Script line. Highlight that line and click "Specify"; change the file name at the top of the dialog to be the name of your file (from the file reference you created at the beginning of this step). Then select the script "Navigate" from your file (you imported this script into your file in the previous step). Leave the script parameter alone. Note that if you have a multi-file solution, you'll need to repeat this procedure, creating an ElseIf / PerformScript pair for each file in your solution.

4. Create Navigation Records for your Solution in CC NonProfit.

Navigate to the Hierarchy Tab of CC NonProfit and select the last top level item in the hierarchy. Click "New Item" to create a new, top level item. Name this item "My Solution". Now, with this new item selected, hold down the shift key and click "New Item" again to create a child of that "My Solution" record. This record will represent the first layout in your solution- remember that you can rename and reorder these hierarchy items later. For now, just create entries for a few layouts to make sure everything is working. Using the fields in the right half of the Hierarchy tab, give this item an Item Name that you'd like to see in your solution's menu. Then, in the navigation section, add a file name, layout name, and nickname in the Navigation section. Remember that your file name should not include the .fp7 extension. If you enter a file name or layout name incorrectly, CC NonProfit will tell you it can't find the item so be sure to spell your file and layout names correctly. (The record's nickname is what you'll be referencing when you ask to navigate to this item from your solution in the next step.)

Once you've added an item, click "Go to Item" beneath the Navigation options in the right hand side of the Hierarchy tab. This will let you test that you've added everything correctly. The most common error at this point is having misspelled the file name in the script editing from Step 4. Go back and double check that if you have errors.

Continue adding hierarchy records for the remaining layouts in your solution.

5. Add Buttons to Your File(s).

Copy the "Back", "FWD", "New", "List" etc. buttons from the example file and paste them into your file. These items won't require any editing and will work as soon as they are pasted into your file. You'll want to place these on every layout you'll navigate to, so eventually you'll want to edit the look and feel of these to match your solution. For now, just paste them as-is onto a few layouts so you can play around with this.

For any buttons you already have that you'd like to turn into navigation buttons, simply edit these buttons to perform the script "Button Tab" in your file: for a script parameter, send the hierarchy's nickname of the navigation record you'd like to go to. Take a look at the "Contacts" and "Jobs" buttons as an example.

For buttons that need to Go to Related Records, take a look at how we've done this in the Client's file. Navigate to the Client's "tab" in the example file and check out the button pointing to contacts in the contact's portal. That arrow calls the "Go to Related Contact" script in our example file; if you look at that script we simply perform a traditional GoToRelatedRecords script step before adding our "Button Tab" script step with the destination nickname as a parameter.

That's It!

  1. Going Further ##

List Views. The Simple Tabs example uses a very basic conceit to move from Form view to List view; it assumes that your list view follow your form views in layout order. If that isn't the case, you'll want to reorder your layouts or go into the Button List script and change it around. Other navigation examples in CC NonProfit use hierarchy records to define list view layouts- this also puts list views in the Back stack- so feel free to check out those Button List scripts for ideas. The approach taken in Simple Tabs is nice and economical; it also keeps your list views out of the menu, which can be nice.

Dynamic Tabs. The simple tabs example assumes that you'll be using static layout objects as your navigation buttons to move from file to file within your solution- or that you'll be relying solely on the hierarchy menu to navigate around your solution. The two "dynamic" navigation examples allow the hierarchy to draw tabs in your solution files: tabs that you can use to move from layout to layout. Incorporating one of these dynamic examples into your files is very similar to the steps outlined above. There are a few differences in each step, however, and those are enumerated below (these steps are the same for both the Dynamic Tabs and the Dynamic "Aqua" Tabs examples):

Step 1. Since the dynamic examples draw tab graphics that are stored in the Interface table of CCHierarchy, you'll need to add a table occurrence for the Interface table as well as one for the Hierarchy Globals table. Name this table occurrence "Interface"; you don't need to create any relationships to it.

Step 2 and 3. There are no changes to these steps.

Step 4. You'll create your hierarchy records much the same as in step 4. However you'll also be using the check box at the bottom of the Navigation section labeled "Make this a tab of...". Once this is checked, the selected item name will be one of the tab names within its parent's section. The code in CC NonProfit supports up to 10 tabs per section (per parent record) but our example files only show 7 tabs. Play around with the demonstration files to see how these tabs work: note that tabs respect the sort order of the hierarchy.

Step 5. The basic difference here is that in addition to adding the "Back", "New", etc. buttons, you'll be copying and pasting the actual tabs as well, along with the found count navigation display and arrows.

Step 5 part 1. Get ready for this by creating a field like ClientRecordNumberCalc in each data table in your solution... you can find the definition for this field in the Demonstration files. This is the field used to display the current record number and the current found set count (1 out of 245, etc.) Note that this is a repeating calculation: be sure to define it to have two repetitions and to return the type "number"). The field's definition is not table specific, so you can just paste the definition in without editing it. Be sure to edit the field's storage options and set the field to "Do not store calculated results."

Step 5 part 2. When you copy and paste your objects you can paste all the tabs as well. Note that these tabs do not need to be edited at all, even the button actions associated with them will resolve correctly. The only thing that won't resolve correctly are the record number strings between and to the right of the previous and next record arrows. Double click on these and select the correct "...RecordNumberCalc" field for the table the current layout is based on. When you edit the second occurrence of this field (the one to the right of the "next" record arrows) be sure to select "Field Format" and show the 2nd repetition of the field (from repetition 2 to 2).

Step 5 part 3. While the tabs will be correct as soon as they are pasted in, you have to navigate through the hierarchy at least once before the tabs will work. To do this, enter browse mode and click the menu button. Select one of your layouts in the hierarchy and, having navigated to it, your tabs will be loaded and you'll be all set to go. Note that this has to happen each time you open your solution (the tab names have to be loaded into the hierarchy 's global fields) so you'll want to create an Upon Opening script like that used in the Example files to "pre-navigate" as the system opens. In a sense, this script is just using the hierarchy to determine which layout the system should open to.

That's It!

What Are Shortcuts?

Shortcuts add a whole layer of additional behavior when navigating to a hierarchy item. The navigation attributes of a hierarchy item allow it to navigate to any layout, in any file containing the “Navigate” script. Adding shortcuts allow you to perform one of two actions when you arrive at that layout. You can execute a find request or set any number of fields on the destination layout.

Both actions are accomplished by creating “criteria” record in the form FieldName=”Value”. Like this...

ClientName=”ABC Labs”

...note that there are no spaces on either side of the equals sign and that the value being set is enclosed in quotes. Radio buttons at the bottom of the shortcuts section determine if this criteria will be used to perform a find or set field values.

You can use the Set Field option, for instance, to set global fields on the layout you’re navigating to. For instance, you may be navigating to a dashboard layout that will show Open Jobs based on their status. You can now have separate hierarchy records (separate menu items) for each of the statuses you might want to look for on that dashboard (hierarchy records like “Open Jobs”, “Late Jobs”, etc.).

Create new shortcut items by clicking on the plus side to the right of the shortcuts section. As you’re entering criteria, CC NonProfit will do its best to check the syntax you’re entering to make sure that you’re referencing fields and operations that are valid. Note that you can enter FileMaker expressions intro your shortcut criteria, like this...

JobDueDate=”>” & Get(CurrentDate)

... but you can not enter field names to the right of the equals side. There are a few other things to keep in mind. The Navigate script uses the tab order to move from field to field in order to enter field value and find criteria. So, you'll need to make sure that the fields in your shortcut criteria are a) on the layout, and; b) in the layout’s tab order. Also, field names on the layout must be unique; that is, related fields on the layout can not have the same name as other fields on the layout. Thus, you can have "Project::Name" and "Contact::Name" on the layout as FileMaker won't be able to tell them apart when building the find request.

If you need to see more of the criteria you’re entering (and more of the red error codes, if any) you can click on the “more” button above the shortcuts portal.

Layout Options & Visibility


CC NonProfit can be configured to change its behavior based on the Privilege Set Name of the logged in user. You can hide or reveal hierarchy items based on who is logged in. You can also change the behavior of layouts referenced by CC NonProfit’s navigation, choosing to show or hide the status area and showing or dimming the New, List, Find, Dupe, and Delete buttons. All of these behaviors can change depending on who is logged in. Best of all, you can test the behavior of your menu and interface by using a “Test As” privilege set without re-logging in.

A Note About Security.

CC NonProfit is not a security system. It is best used an interface layer over FileMaker’s built-in security scheme. For instance, if you wish to prevent users of a given Privilege Set from deleting records in a table, you should set that up IN FileMaker’s access privileges. Then, setting up the same thing in CC NonProfit can let you users know when they can delete records or not (the delete button will dim when they can’t). CC NonProfit lets you manage these aspects of your interface, while FileMaker’s built in Access Privileges should be used to manage you’re actual security.

Getting Started: Defining Privilege Sets.

The privilege sets referenced in CC NonProfit need to to mirror those in FileMaker’s Access Privileges. So, begin by creating Privilege sets in your solution, and then move to the Maintenance area of CC NonProfit to create the same privilege sets there. You don’t need to create a record for the [Full Access] privilege set as CC NonProfit doesn’t evaluate it’s Layout Options when someone is logged in as [Full Access]. (Unless, that is, you have indicated that you’d like to “Test As” a different privilege set.)

Visibility (Show in Menu)

Click the “Show in Menu” check box beside all those items that you wish to show up in the menu for each privilege set you’ve defined. You can preview your work by selecting a Test As privilege set and then toggling an item in the menu (toggling “resets” the menu).

Note that turning visibility off for an item will prevent all that item’s children from showing in the hierarchy as well. However, it won’t necessarily prevent someone from arriving at one of those layout through a direct navigation call, such as through the script “Go ( by Nickname )”. To prevent that, mark each item that should be inaccessible to Privilege Set to “Don’t show in menu” and don’t simply rely on having marked the item’s parent.

Additionally, setting items to "Don't Show In Menu" won't change the outlining or legal notation of items. So, if you have items I.A., I.B., and I.C., and have I.B. set not to show, the menu will show I.A. and I.C. in outline mode. Similarly, partitioning the hierarchy will also not change an item’s legal notation.

How Can I Limit the Depth of the Hierarchy?

You may wish to limit the depth of the hierarchy so that you don’t have hierarchy items moving off towards the right edge of your layouts as the hierarchy gets to deep.

To limit the depth of the hierarchy, make the following changes:

1. Children are created when you hold down the shift key when clicking “New Item” on the hierarchy editor. Examine the script “New Hierarchy Item” in CCHierarchy.fp7.

2. After the first “IF” statement in that script add a new If / EndIf statement. If the statement is true, beep and show a custom dialog saying that you can not create children of the current items as the hierarchy is limited in depth.

3. The “IF” statement you’re testing for would be if “Hierarchy::HrcyLevelCalc = 3” where “3” is the limit you’d like to set to the hierarchy.

How Can I Replace the “Turn Down” Arrows With Some Other Image?

Simply go to the “Interface” section of the Setup tab and paste new graphics into the 2nd and 3rd repetitions of the field IntHierarchyArrowGlob. Repetition 1 should always be blank, repetition 2 holds the “item-is-open” icon, and repetition 3 holds the “item-is-closed” icon.

Be sure to do this when you have “sole access” to the file: most reliably done by taking the file off FileMaker Pro Server. Globals reset on a multi user system do not persist past that “session” and will be gone when you next reopen the file.

Why Are Some Layout Elements Locked?

On very complicated layouts we lock items so that you don’t accidentally move or delete them when working on other items. You can easily unlock any layout object by selecting it and choosing “unlock” from the “Arrange” menu.

Can I Use Text Formatting in the Hierarchy?

Yes. Any formatting attributes you apply to the Item Name in the hierarchy editor will be preserved when the hierarchy item is displayed.

You can also modify the hierarchy so that text styles are automatically applied to items at certain levels. You may want all your top-level items to be bold, for instance. To do this, find the term “Trim ( HrcyName )” in the HrchyNameDisplayCalc field in CCHierarchy.fp7

You’ll replace this term with a case statement like this:

Trim( Case ( HrchyLevelCalc = 1, TextStyleAdd ( HrcyName ; “Bold” ) ; HrchyLevelCalc ≥ 3, TextSize ( HrcyName ; 9 ) )

This example would make the top level items bold and reduce the font size of items in levels 3 and lower.

Can I Make an Items Icon (Or Turn-Down Arrow) a Separate Button From the Item’s Name?

Not really. The only way to do this would be to make the icons or arrows stay flush to the left of the hierarchy and not follow the indent of hierarchy items. We believe that following the indent is more attractive and makes the hierarchy easier to read, but this does require that we have a lot of “potential” field repetitions for the icons / arrows and making them all into a button would be about the same as making the whole row into a button.

How Do I Delete a Hierarchy Item?

You’ll find a red “Delete Item” button to the upper right of the Hierarchy Editor on the Hierarchy Tab. Simply select an item in the hierarchy and click “Delete Item”.

What Are Privilege Sets?

“Privilege Sets” represent defined sets of permissions and access rights for your FileMaker databases. They are set up using the Define / Accounts & Privileges menu in FileMaker Pro. For more information about creating privilege sets, search FileMaker Pro’s built in help for “Privilege Set.”

You can elect to show or hide hierarchy items based on the privilege set of the logged in user. When using CC NonProfit as a navigation engine, you can also change layout behavior based on privilege sets. To do this you’ll need to teach CC NonProfit about your privilege sets by creating one record for each privilege set on the Settings section of the Hierarchy’s About tab.

Once you’ve done that, open the “Navigation Layout Options & Visibility” portal in the lower left of the Hierarchy tab. This will let you define additional options for each hierarchy item in each privilege set.

Additional Item Attributes: Partitions and Values.


There may be occasions where you want to display only part of the hierarchy; here is where partitions come in. By assigning some hierarchy items to one partition, and some to another, you can in effect have more then one hierarchy, For instance, this lets you use the hierarchy both for Navigation, and for a list of Job Statuses. Furthermore, if you choose to manage your value lists in the hierarchy, you can use partitions to keep them all separate: each value list getting its own partition name,

To see how partitions work, select a partition name in the Partition Filter at the top of the Hierarchy portal on the hierarchy tab. Selecting a partition name will restrict the hierarchy portal to those items with the same hierarchy name. You can also see an example of this in the “Launch Navigation Example (Simple Tabs)” script where we use a partition to show just the one menu example we’re interested in.

You may find the hierarchy easier to manage if each partition has at least one top level member. However, this need not be so: partition members must have at least one member at the 3rd level or higher. For example, our Value List example has the item “Job Statuses” in the same partition as the rest the items in that value list. Thus, “Job Statuses” appears at the head of the list. You may like the way that looks, but you could remove the “Job Statuses” item from that partition and the value list example would still work since the items “Open Statuses” and “Closed Statuses” are in the 3rd level. Each partition must have at least one member at the 3rd level or above for the partition to function.

A couple things to keep in mind: a) an item will not show up in a partition just because its parent does- every item you wish to have in the partition must have the partition name; b) items may have more than one partition name, provided those names are separate by carriage returns; c) create new partition name on the Settings screen of the Setup tab.


Values are an optional attribute of a hierarchy item. They can be used to pass information from a hierarchy selection into other systems: for instance, when selecting a client from a list might need to return the client’s ID. Alternately, these values can be used to hold foreign keys when you may need to import record into and out of the hierarchy.

Additional Item Attributes: Files & Media.

Using the fields in this section, you can have hierarchy items open URLs instead of going to layouts within FileMaker.

In a similar fashion, you can associate hierarchy items with files or folders on your hard drive (or on mounted drives). The script called by the “Insert File” button on the Hierarchy tab stores only a reference to the file in question: this allows you the option of opening either the associated file itself or opening its enclosing folder. Note that in multi-user scenarios, all your users will need the same absolute path to any documents you reference in order to open them through the hierarchy.

Hierarchy items may be associated EITHER with Navigation options OR with File & Media attributes. (If an item has both navigation and file/media attributes, the navigation attributes take precedence.)

What Does “Reveal Nicknames” Do?

When navigating around your own solutions, you can script your navigation using simple one line scripts that refer to your destination by its hierarchy IDX or by its hierarchy nickname. An example of how simple this can be is offered by the “Button Tab” script in the Simple Tabs example’s Client file.

When you’re writing these scripts you may find it helpful to have a “cheat sheet” listing all your hierarchy items and their nicknames / IDXs. (This way you can more easily remember if your Job’s Data Entry screen is nicknamed “job” or “jobs”.) Simply turn “Reveal Nicknames” on and the hierarchy (and your menu) will show each item’s hierarchy IDX and hierarchy nickname in parentheses beside the item’s name.

What Is the Portal Rows Section On the Settings Screen For?

While FileMaker 7 prevents portals from “popping” back to the top after you’ve scrolled them, many common actions in FileMaker can still cause this kind of portal pop. CC NonProfit uses some simple scripts to make sure that the currently selected hierarchy item is always visible in the hierarchy portal.

An example is the “Manage Portal Scroll” script in this file. In order to make the scroll look as nice as possible, we need to know how many portal rows are visible on the layout in question. Since there is no way to get this information from FileMaker directly we have set up a field for this on the settings screen. Simply record the number of portals rows for any layout on which you’d like to scroll a hierarchy portal.

Note that if you decide to use something like this “Manage Portal Scroll” script in your own file, you’ll likely just want to hard code the number of portal rows you’re using. We’ve made ours based on this settings field as we have a lot of hierarchy examples here and we want them all to scroll nicely using a single script.

Can I Pass a Value When a Hierarchy Item Is Selected?

Sure. In fact, both the Value Lists, and Project List examples make use of the “Value” attribute of a hierarchy item in. The value of a selected item is set to Hierarchy:HrcyKeySelectedItemValueGlob1 (or HrcyKeySelectedItemValueGlob2 if you’re running a second hierarchy). Since these are global fields, you can access them without relationships in any file that has a table occurrence for “Hierarchy” on its graph.

Check out the Value Lists, and Project List examples to see how we pass this value in two different contexts.

Do I Have to Print the Hierarchy Arrows if I Want to Print Icons?

No. On the Settings screen of the About tab simply turn off “Include Arrows on Printed Hierarchy.” Of course if you don’t want icons OR arrows to print, simply edit the printing layout, select the field “HrchyArrowAndIconCalc1” and set “Do Not Print Selected Objects” under Format / Sliding and Printing.

How Many Navigation Tabs Does CC Nonprofit Support?

The tabbed interface examples included with CC NonProfit let you build tabs on your layouts based on hierarchy items (see Hierarchy / Examples / Navigation / Dynamic Tabs and Dynamic “Aqua” Tabs). We have included global fields and code for 10 tabs, though some of our example files use fewer tabs on each layout. There is no real reason for this limit except that we like to limit the number of choices a user is presented with at any one time. You can increase this limit by

a) adding additional global fields in Hierarchy globals along the lines of GlobTabName01, and GlobTabIDX01.

b) adding more If() and SetField() steps for these new fields in the “Navigate (Load Tabs)” script in this file.

Note that when we’re speaking of tabs here, this is different from the “depth” of the hierarchy: search this FAQ for “levels” to learn about how many items and levels the hierarchy supports.

How Can I Delete a Shortcut’s Find Request?

There is no delete button (no trash can) beside these find requests on the Hierarchy tab (there just isn’t much room in that portal). However, if you click the “more” button right above this portal of find requests, you’ll arrive at a large version of this portal that provides more space for editing find requests along with a trash can icon for deleting them.

Why Can’t CC Nonprofit Find a File?

If you’re getting a “Can’t Find File” message it is likely because the hierarchy can’t find one of the Demonstration Files. It may be that you have moved or renamed the demonstration files without editing or removing the file references to those files. If you don’t want to remove the file references completely, you can simply remove references to those files from the Upon Opening and Upon Closing scripts in the hierarchy; with that done you’ll only be prompted for the files when trying to define fields or edit the Navigate (Go to File) script.

How Do I Sort Hierarchy Items?

Navigate to the Hierarchy tab of CC NonProfit and select an item that you’d like to sort and click the green “Sort” button at the top of the Hierarchy Items portal. All items which are peers (siblings) of the selected item will then be highlighted in gray: these are the items that you can sort relative to each other. Note that if you sort an item that has children, its children will sort with it and follow it in the sort order.

Each item available to be sorted (those items highlighted in gray) will have a sort number beside it representing its current sort value. Simply change or add decimals to these numbers to reflect the sort order you’d like to see. Click OK when you’re done and the items will take on the new sort order.

Note that the sort order of hierarchy items is not per-user. The order of hierarchy items are attributes of the items themselves and are shared among all users; you can not sort the hierarchy differently for different users.

Search the FAQ for “un-nest” to learn more about moving items to be children of other items (Pro Version only).

How Can I Move Items From One Place to Another in the Hierarchy?

The Pro Version of the Hierarchy lets you move items around, making them children of other items, nesting and un-nesting them within different nodes of the hierarchy.

This works very much like sorting items does; be sure to search the FAQ for “Sort” to learn more about manipulating the appearance of the hierarchy.

To move an item first navigate to the Hierarchy tab of CC NonProfit and select the item that you’d like to move (the selected item will now be green). Click “move” at the top of the Hierarchy Items portal; the selected item will now turn gray. Next, navigate through the hierarchy as you need to until you find the place where your like to move your selected item. When you click on a destination item you’ll see it turn gray was well and its display will read “To here”. If you don’t select the correct item the first time, don’t worry, you can select a different item without incident.

At this point clicking OK will move the “from” item to be a peer (a sibling) of the “to” item. The item will be move into the sort order directly after the “to” item. Note that you can move an item from any place in the hierarchy to any other place, from a deeply nested location to the top level, or from being nested within one item to being nested within another. In this way you can nest and un-nest items. Also note that all an items’ children will move with it.

This is very cool feature and very easy to use once you get the hang of it. The only thing to remember is that there already needs to be a hierarchy item at your destination before you move an item there. That is, if you want to make an existing item a child of item X, and item X has no children yet, you’ll need to create a child of item X, move your item beside this newly created child, and then delete the item you’d created.

Finally, note that item attributes are not changed when an item is moved: items will keep any partition or visibility attributes they might have even if they are moved to nest within items of a different partition or visibility.

Can I Rename the CCNonProfit File?

Yes. It is best to do this by hand, however, and not to use FileMaker Developer. FMD isn’t very good with files separated into separate folders as the Demonstration Files for the hierarchy are. Here is the best way we’ve found to rename the CCNonProfit file.

First, open the hierarchy as normal and select each of the demonstration files form the Window menu: rename the file reference to CCHierarchy there first (even though there is no renamed file yet- just edit the path to CCNonProfit.fp7 to reflect the new name). This will beep at you and say it can’t find the file- don’t worry about it and just escape past that.

Once you’ve renamed all the file references to CCNonProfit.fp7 in the demonstration files, close the solution and rename the CCNonProfit.fp7 file itself.

That’s It!

How Do I Delete All the Sample Data in CC Nonprofit?

You’ll want to show the status area and enter layout mode, navigating to the “Hierarchy Items” layout. That is a simple form layout based on the Hierarchy table occurrence. On that layout you can search for and delete records, perform replaces, etc.

Can I Place a Hierarchy in My Own File?

Sure. Click on the Examples tab and navigate to page 2 to see the “Project List example. This example shows a hierarchy running in another file and contains instructions for adding one to your own files. (This example is only included in the Pro Version of CC NonProfit.)

Why Can’t I See All the Hierarchy Items; Some Are Cut Off On the Right?

CC NonProfit supports hierarchies up to 25 levels deep. Since the hierarchy offsets each level by a few pixels, very deep hierarchies can easily extend way off to the right (turning on legal notation extends them even further). Furthermore, many examples in this file show narrow hierarchy portals to save screen real estate, assuming that for many users, few hierarchies will go beyond 6 or 7 levels deep.

In short, if your item are getting cut off on the right you need to widen the hierarchy in layout mode, or un-nest (move) some of your items so the hierarchy isn’t as deep.

When widening the hierarchy, there are a few things to keep in mind. In layout mode select the repeating field which holds the items’ turndown arrows. Select Field Format and make sure this field shows as many repetitions as you expect to need when displaying the hierarchy (show one repetition for each level you expect to see). You’ll also find a container field behind the hierarchy item’s name; be sue to widen that as well when you’re widening the hierarchy portal.

Can I Add Icons to Other Buttons Besides “Find”?

The Dynamic Tab navigation examples in the Pro Hierarchy have a little magnifying glass icon next to the “find” button. This is the only one of the toolbar buttons that has an icon, though it need not be the only one.

The code for adding additional icons is already in place, just create global container fields for the actual icons in the Interface table of CCHierarchy.fp7 and then edit the calc "GlobNavLayoutButtonDisplayIconsCalc" in the HierarchyGlobals table to reference the additional container fields you’ve created. Finally, copy the field used for the magnifying glass and paste different copies of this beside the other buttons changing the repetition number as needed.

What Are the Images On the Individual and Group Detail Screens For?

On each of the Contact Management detail screens, there is a field for storing an image of the item in question. This is useful for a reference, or for printing directories.

To place a new image in the field on either layout, simply right-click on the field, and select “Insert Picture” from the contextual menu that pops up.

What Is the Little Green Plus Sign Next to This List?

Next to many lists is a little green “+” in a circle. This is a button designed to add a new record to the list it is next to. This new record will need to be filled out either in a pop-up dialog box or in the list it appears in, but it will already be linked to its appropriate “parent” record.

In some instances a list may not have a button to add a record next to it. In these cases you may be able to type directly into the list to add new records. (There should be a blank row at the bottom of the list to add your new record in) It is also possible that you cannot add records here, you may be looking at a review list where record creation is not appropriate.

How Do I Add More Addresses to a Group?

At the bottom of the group address list, there is always a blank row where a new address can be added. For multi user environments, there is no worries, each user has their “own” blank space for adding new records.

What Is the Blue Arrow Next to Some Items For?

The blue arrow in the system will always take you to the record it is pointing to. So if there is a blue arrow next to a person’s name, clicking the arrow will take you to that individual’’s record.

How Do I Add More Todos to an Individual?

At the bottom of the ToDo list, there is always a blank row where a new ToDos can be added. For multi user environments, there are no worries, each user has their “own” blank space for adding new records.

Can I Attach a Document to a Publication Record?


There is a box in the upper right corner of the “Publication Detail” screen that you can place any document you like in. Just right-click on the box and select “Insert File” from the contextual menu that pops up.

How Do I Write My Own Letters With System Data in Them (Merge Letters) ?

There is the ability to write letters and documents using the data in the system, what are commonly called “merge documents”. If you go to the “Letter Design” section of the system, you will see an interface for doing so.

There are a number of default entries in the lower right hand corner for adding system data to the letter. Clicking print will show you a preview of the letter and let you print it if you desire.

How Do I Add New Individual Types?

Individual types are pulled from the contents of the field. So you can type any value in there you like, and it will automatically be added to the list if the value was not already an option.

If you want to remove an item from the list, simply make sure that value isn’t assigned to any individuals, and the value will vanish from the list.

How Do I Enter My Organization’s Name and Logo?

On the preference screen, there is a place to enter both your logo and organization name.

There is also a preview of how it will look on the letters you send. You can toy with spacing to use both a logo and name if you like as both are displayed on the letter template. To use your own, preprinted letterhead, simply leave both fields blank.

What Is the Difference Between Groups and Individuals?

Groups and individuals are different in a couple ways. One is in the information they hold. Individuals are designed to hold information directly related to a person. Name, title and that sort of information. Individuals also have contact information information storable for them. Phone, fax, e-mail and the like are all enterable.

Groups are a way to gather a set of individuals together under one heading. It may be a family, a company, a committee or some concept of your own. The address information is stored at the group level, so each group can have any number of addresses.

Can I Store Custom Names for an Individual?

Yes! Each individual has a place to store several names.

There is the full name field, which is a combination of all the first, middle and last names, along with title, prefix and suffix in a prearranged manner.

There is also the “AKA” field, which you can use as a nickname field. In the sample data, there is an individual named “William C. Bowman” but he uses his middle name in everyday conversation, so we put “Court” in that field.

The system also stores a name specifically to be used on envelopes. This is the field that appears on the print envelopes option on the “Letter Design” screen.

Finally, you can store a name for any purpose you design. There is one additional field that you can use for any purpose, and label it appropriately. The label for this field, as with many others, is on the “Preferences” screen.

Can an Individual Be a Member of More Than One Group?

Architecturally, no.

This is an intentional simplification to make individual management easier. However many of the things you may be tempted to make groups, could be more easily managed as flags.

Each group and individual can have a number of customizable flags set for them.

For example if you have families or companies as your group concept, and people are either the employees or members of the household, and you want to represent a particular board, you can create a flag for “Board Member” and check it for each individual that is a member of that board.

Or if you wish to have a committee structure, you could assign a field to committee, and populate the value list with committee names, selecting all the committee’s that individual is a member of.

The possibilities are endless.

Can I Have Custom Flags for My Groups or Individuals?

Yes, each group and individual can have a number of customizable flags set for them.

Both the individual and group tables have 5 fields and 5 flags that can have custom labels assigned to them. The labels are set on the preferences screen, and are the same for each individual or group.

The flags are simple check boxes, so they can be flagged as either true or not. In the sample data, we have assigned two of them at the group level, one to “Donor?” and one to “Active?”. You can change those labels and any other in “Preferences”.

The fields are set to be value lists, and the list will automatically expand to include any values already typed in it. So for the sample data, in individuals, there is on field set to “Year Joined”, and there are 4 options, 2000, 2001, 2002 and 2003. To add a new year, make a new record and put 2004 in it and it will now be in the list for all records.

How Many Addresses Can I Have Per Group?

The system supports an unlimited number of addresses per group. One address can be marked the main address, and that one will be used for printing envelopes or address information at the individual level.

How Many Contact Numbers Can I Have Per Individual?

The system supports an unlimited number of contact numbers per individual. One number can be marked the main address, and that one will be used for displaying as the default contact number wherever the individual appears outside of their main layout (the group detail for example).

Can I Create New Reports?


If you log in (See Security) using master password access, you will be able to create new reports. This feature is only available to users who are using FileMaker Pro, not to users who have purchased the single user version that does not require FileMaker.

There are four steps to creating a new report in the system:

1. You need to have a report layout. You can either create a new layout, or duplicate one of the existing report layouts and modify it. The built in reports can be found by going into layout mode and scrolling down the layout menu until you see “R E P O R T I N G L A Y O U T S”

There is plenty of good information on how to make a new layout in FileMaker’s built in help, accessible under the help menu above.

2. The second step is to create a script to use to run your report. Again you can create your own, or you can modify one of the existing ones. Our printing scripts are in the “## Printing Scripts ##” section of the ScriptMaker.

3. The third step is just for full system integration. You will need a report generation screen, like the ones you see when you click on one of the reports in the “Main Menu”. This is just another layout, and again you can either make your own, or duplicate one of ours.

There are several selection criteria on ours, these do not need to be duplicated, nor do the previews, but the structure is there to do so if you wish.

4. The final step is the only tricky one. When you are logged in as a developer with the master password, you will notice that there is a new section in the “Main Menu” called Maintenance. If you click on it it gives some other categories, one of which is Hierarchy.

Click Hierarchy, this takes you to a screen where you can modify the main menu structure. You will need to create a new menu item, and point it to your report generation layout. The easiest way to do this is to duplicate one of the existing report menu items and change the layout to your layout name, and give it a new “Item Name” and “Nickname”.

There is help on the screen for doing this, and there are FAQ entries on this process in the development FAQ visible by clicking the “Show development FAQ entries” check box above.

What Security Is Built in the System, and What Are the Accounts and Passwords?

The system ships with three accounts, each assigned their own access level.

1. Developer - Full Access 2. Admin - Everything but menu modification and the master access (This is logged in by default) 3. Volunteer - Limited access

None of these accounts have a password, and you can change any of this if logged in with the full access account.

Can I Add Individuals to a Publication or Letter in Batches?

Yes. The batch add button below the distribution list will do just that.

It will allow you to add the found set of individuals to the distribution list. If you want to change the found set, or create a new one, it will give you the option to do that as part of the add process.

How Can I Create a “Mail Merge” Letter?

There is the “Letter Design” layout in the “Communication” section that will allow you to do just that.

You can add individuals to the distribution list, and then design a letter with links to the individual data built right in. There is a sample letter in the system to show you how it works.

Clicking any of the “Insert” options will add a tag for the data in question wherever your cursor is in the letter you are designing.

When you print the letter it will print one letter for each individual in your distribution list.

What Is “Default Address” For?

The default address is the address from the group, if one exists, that that individual uses for mailings and envelopes. If nothing is set in this field, then the group main address is used.

Does Every Individual Have to Belong to a Group?

No, you can create an individual without linking it to a group. You will need to type a group name in the group field on the “Individual Detail” screen to add a default address, but the group need not exist as a record.

If no group exists for an individual, the green arrow next to the group name will not be visible, since there is no group to go to, and there will only be one address accessible for that individual, but apart from that, there are no other problems.

What Is the “@” Symbol in Some Lists of Individuals?

The “@” symbol in individual lists signifies that that individual has an e-mail address marked as main. This would indicate that that individual is able to receive an e-mail correspondence.

How Do Custom Preference Flags Work?

Some kind of description goes here.......

Edit - Print - Search
Page last modified on February 23, 2011, at 09:08 AM