Get my own changes from my last branch into this one
The new SourceGrid.dll that I checked in in my previous branch caused some Finance screens to fail to load correctly - notably GLBatch and Recurring GL Batch.  The basic cause was down to the rowChange event now being based on the Selection.Focus method which does not normally give rise to events before the grid has been shown.  So in the previous commit I changed the SelectRowInGrid call to be in RunOnceOnActivation.  This is not really any good because a lot of the Finance code wants to set up user controls etc in their constructors and rely on the fact that we know the details for the row.  So the simplest fix was to change the grid Focus method so that we still fire the SelectionChanged event even before the grid is active.  I will remove the SelectRowInGrid call from the RunOnceOnActivation method in the templates and insert it at the end of the constructor.

In addition the Finance modules subscribe to some other grid events that I had not checked and which can produce a stack overflow.  So I had to add a specific suppress events parameter to one more call in the grid internal code.

Finally I modified my row selection code to preserve the active column when selecting a row.  This became necessary for the Analysis Values grid on the GL Transactions screen - which relies on being able to focus clolumn 1 for the edit-in-place combo box.
Some changes to GL Batch screens to work with the new SourceGrid.  Some of these screens called grid.Selection.Focus directly and that is not now possible without causing a cascade of events and a stack overflow.  Instead it is necessary to call ReselectGridRowAfterSort in order to avoid this.

Also added a status bar text item for the analysisAttributes grid so it is easier to see that the grid has the focus when tabbing around controls.

Also added some code to prevent un-necessary events firing off during LoadBatches.  This has greatly reduced the time taken to load the GL Batch screen.
These two screens displayed the wrong record count when first loaded.  This was because they have the LedgerNumber setter which loads the data after the constructor call to set the record count.  The fix is to ensure that the LedgerNumber setter has a call to UpdateRecordCountDisplay().  I have looked through other screens that have this setter but have not found any others that need changing.
Added 5 more filter/find screens and updated the wiki.metadata.xml.  Note that the layout of the MaintainBudget screen has been changed in order to maximise the height available for the filter/find panel.  The options that require a text box for each of 12-14 periods now display these boxes in three columns rather than two.  It actually makes the layout simpler, while keeping the screen within the 800x600 limit.
merge trunk into my branch
Now that I have fixed the SourceGrid from the previous branch I can revert the CreateBatchAndPost test to what it was before
uncrustify
merge from lp:~alan-paterson/openpetraorg/dev0001853_finish_filter_find
fixes for filter find