Got calculated values on your InfoPath browser form? Do they involve filters and/or complex formulas? Surprised to find out that as soon as you're ready to publish your form, there goes the Design Checker error on the taskpane --- "Control binding is not supported"
Hilary, one of our InfoPath experts, blogged something about this - here's her post. She suggested a workaround of manually modifying the form source files which wondefully works. Her readers asked if there's a way to do this without tinkering with the source - there is indeed! And it is easy... read on!
To reproduce the scenario and better understand when this issue actually occurs, create a simple form by following these steps:
- Add a repeating table with 2 columns.
- Add a calculated value control and set it to display the repeating group's field1 node - we know that this will display only the first row's field1 value, but we won't care about that for now.
- Go to File > Design Checker --- no errors, good! Not surprising, but good.
- Add another calculated value control - the value this time will be the field1 node filtered when field2 is not blank. So you'd select Calculated Value from the Controls menu > click on the fx button > Insert Field or Group > select field1 > Filter Data > Add > field2 is not blank > click OK five times.
Here's what we have so far:
Let's preview the form to make sure it's working so far...
- Close Preview and click Refresh on the Design Checker pane - still no error...
And here's where we try reproducing the issue - we'll make that design checker error appear...
- Right-click on the first calculated value's control and select Calculated Value Properties > click on the fx button and just click OK twice to close it without changing anything - just humor me here, ok? Now click Refresh again - no error.
- Repeat the same actions on Step 6, this time with the second calculated value --- so look at the formula in the properties dialog box, don't change anything and hit OK to close it.
Click Refresh --- bam! There's your error.
At this point, we'll wonder - is it a bug in InfoPath? I don't know. But here's where I think Hilary's observation comes to play - it might've already added that "xd:binding" attribute in the xsl file as soon as we clicked OK, InfoPath thinking that we "modified" it. If you Undo once from that last step and refresh again, the error will go away. But who can keep track? (Note to self: don't click OK in edit mode dialogs when I really did not change anything - there's a Cancel button after all!)
The solution, aside from manually modifying the source files, is to ---- delete the calculated value and add a fresh one! Yes! But before you delete, make sure to grab your formula first - copy it, so that you won't need to rebuild it on your fresh calculated value as you can just paste the expression in the formula box. Now that's easy enough, at least for me.
So we know that this will occur everytime you'd go to the formula and edit it (what a pain). Again, who can keep track? The goodness left in this is that InfoPath will still be friendly enough to point all instances of this error when it's time to publish your form. So keep working, just keep adding your calculated values, modify them all you want. When you publish, you'd end up with 10 or more errors like this, but when you click on each, your cursor will point to the exact calculated value that needs to be recreated. You can then fix them all at once.
Hope this helps...