Hi Venkatzeus,
sorry for the delay Venkatzeus. I used Skarn´s idea and it worked ok. Well, more or less... Locally I could scroll, but on the server... The performance was not very good with the paging we implemented. After this first tests, my project manager decided to switch to Silverlight and we have not worked with InfoPath anymore. Unfortunately, I have deleted our proof of concept, so I won´t be very helpful. However, I will try to describe you what we did to achieve scrolling on our forms.
If your data source is SQL -that is, a stored procedure- you could use "SELECT column1, column2, row_number() over (order by MyChosenColumn) as RowNumber FROM tblXXX" to get some kind of paging on your source data. After that define one field ( I would call it "LastSelectedIndex") which will keep the first index of the last loaded "page". Let´s assume that you want to show 10 rows every time.
The start value for LastSelectedIndex should be 0. Then you could define a rule for the loaded data, something like "load all data where RowNumber < 11".
Then you could place two buttons "back" and "next" with the following rules.
BACK -> 1st Rule: "LastSelectedIndex = LastSelectedIndex - 10 "
2nd Rule: Load Data "SELECT all data FROM MyDatabaseTable WHERE RowNumber BETWEEN LastSelectedIndex AND LastSelectedIndex - 10
NEXT-> 1st Rule: "LastSelectedIndex = LastSelectedIndex + 10 "
2nd Rule: Load Data "SELECT all data FROM MyDatabaseTable WHERE RowNumber BETWEEN LastSelectedIndex AND LastSelectedIndex + 10
I hope this can help you. I am sure you´ll manage to create your own paging. Good Luck!