The fundamental difference between what Paul provided you and what is in the file I attached is in Paul's version he leverages the built-in Content Control OnExit event to detect a change in the user's selection in the primary or one of the dependent CCs. The potential problem with that process is the user MIGHT (intentionally or accidentally) fill in the four CCs, then go change the first selection and print/save close without exiting the control. Obviously that will leave an invalid result.

In my method the four CCs are mapped to a customXMLPart and a CustomEvent monitor is used to detect a change in the selection and process the code.

Yes you can add levels, but if you do you will need to add a node for that new level in the customXMLPart and map the new CC to that node. Note the image below shows the XML structure for the existing map in the file I attached. XML Nodes names cannot contain spaces so the underscore "_" is used in place of the space:


CC Map.jpg

You can download CC Tools from here: https://gregmaxey.com/word_tip_pages...rol_tools.html