I don’t do too much work with InfoPath these days. But these InfoPath case conversion rules have been pretty handy in the past.
This is more of a reference than anything else.
UPPERCASE Conversion Rule
translate(., “abcdefghijklmnopqrstuvwyxz”, “ABCDEFGHIJKLMNOPQRSTUVWYXZ”)
First Letter To UPPERCASE Conversion Rule
concat(substring(translate(., “abcdefghijklmnopqrstuvwxyz”, “ABCDEFGHIJKLMNOPQRSTUVWXYZ”), 1, 1), substring(., 2, string-length(.) – 1))
lowercase Conversion Rule
translate(., “ABCDEFGHIJKLMNOPQRSTUVWYXZ”, “abcdefghijklmnopqrstuvwyxz”)
In each case we use the translate function. Translate replaces single characters with other single characters. It can also be used to remove remove single characters.
These InfoPath case conversion rules are applied to the data in the current field (as indicated by the dot “.” character).
Hopefully though, you’ll never need to use these rules anymore since InfoPath has pretty much died (and a very welcome death as well).
If you find those relatively new Microsoft products not powerful (or fully-featured) enough for your use-case, consider third-party offerings from K2 or Nintex. Or, perhaps just spin your own forms solution using custom .NET coding.