Be sure to keep your terminology straight as it will help us respond. A hyperlink and a button are two different controls. You click both, but they are very different. Buttons do not have the same functionality as hyperlinks.
For your hyperlink--yes, the Data Source field allows you to use concat(). Make sure that you have a complete URL using your concat(). I.e. it would need to result in an "http://server/path/file.xml" or "file://drive:path\file.xml". You can add a Calculated Value control with the same concat() to display what the link will go to if that helps.
The % is a special character in addresses that says the next few characers are special and need to be converted to something else that are not normally allowed. For example "%20" represents a space character. The "20" is the hex representation for "32" in decimal, which is the space character in the ASCII character chart.