Just a quick thought... How about a single dropdown field, with all three selections. Then make the displayed values dependent upon the county field. If you want to keep the three separate fields in the db, add a logic hook to set these appropriately on saving - copying over from this new field. Not sure if you can change the label of the single field dynamically, but I suspect it's a simple but of code in the custom record.js and create-action.js files.

Thanks for the thought stevec.The three fields were born out of necessity in 6.2.x and carried over for years... whichever is filled then goes in the out of the box "state" field which is free text via formula. I'm not opposed to changing points of view though.

I considered redoing the dropdowns into one but it's not just a question of creating dynamic dropdowns (I've done that by extending the enum in various modules) the thing is it's a dropdown for US and CA but a freeform text field for other countries. I don't think I can dynamically change field types.

How about this - though it's a bit of a "faff" as we would say in the UK.

Decide which field you're going to use in the second column of the row (if the first column is the 'dynamic' one). Say, "employees" as an example in this case.

Create three similar custom fields - if you can, set the type to non-db so they're not created in the db. Eg, if it's "employees", create employees_us_c, employees_can_c and employees_row_c - but all with the same label.

Either through a 'pre' logic hooks - or customizing the record/create-action JS - set these to the same value as the 'real' employee field.

Now, in the layout, do the previous setup where there is a row for each US/Can/rest-of-world field - but use a standard two-column setup and in the other column, use the corresponding custom field from above.

Set up the dependencies on these region fields - and set up identical dependencies on the custom employee fields.

That will create the illusion of there being one row with the first column changing dependent on the country. Of course, you'll need to add an on-save logic hook - or use a customized view record/create-action JS to set the real employee field to the possibly modified custom version.

There are a few other things to consider - making the custom "employee" fields non-reportable. Also, if you're using the mobile version, it may effect field choices, and whether to use logic hooks or views etc. As the layout may be different.