hi,
I try to load nearly a million records to my data structure and page those records using ultrawinGrid only 1000 at a time. This helps me avoid System.OutOfMemory exceptions which could cause otherwise trying to load them directly to an ultrawingrid.
But I have a functionality to export this grid (the entire pages and not 1000 pages alone) to excel. In order to achieve this, I programatically create an ultraWinGrid, and use an ultraDatasource to point to my already loaded data structure. Although I set up my ultraGrid.Datasource property to this ultraDatasource, I am not able to export it using ultraGridExcelExporter. Should I call InitializeRow on all the rows in the programatically created ultrawinGrid?
Thanks for the help in advance.
Shankar
Hi Mike,
I keep track of ultragrid row count and call export on the same workbook by adding and setting an active worksheet before calling export method. The Export method is called based on the total row count instead of this last row exported and I use skip row option as had mentioned in the earlier post (Export to multiple tab sheets in excel).
I am attaching a snapshot indicating the value of e.CurrentRowIndex property. You can see that it has already crossed 65640
We are using NetAdvantage 2008 for .Net (Infragistics 2008 Vol1 CLR 2.0). Please let me know if there is a workaround.
ThanksShankar
Attached Image:
Hi,
Well, it may depend on what your member variable is keeping track of, but that sounds like a bug. I can't see any reason why the event should keep firing for rows that are not actually being exported.
The grid might actually have to loop through the rows, anyway, but it shouldn't be firing the event at the very least. What is the CurrentRowIndex that is passed into the event? Does it show a number greater than 65,535? That would be really odd - since if you tried to access that row in the work sheet, it would raise an exception.
Hi Mike,Sorry if I did not explain that right. There was another post where you explain exporting to multiple tab sheets and I was refering to it. Below is the link to the posthttp://news.infragistics.com/forums/p/36060/210139.aspx#210139In the above post, you had mentioned about tracking how many records have been exported using an ultragrid member variable. This was my question. Currently I use a member variable in my class to keep track of grid's row count and how many times I need to call Export and use that. Regarding looping through records 4 times question, I observed the following,I used ultraGridExcelExporter's RowExported event to get last row exported index. And I had around 250000 rows in my ultraGrid. I would assume that UltraGridExcelExporter's RowExported event should have stopped after 65,535 rows in my ultraGrid. Instead it kept going till all records in my ultraGrid (250000 rows). Afterwhich EndExport event is triggered. I create a loop to handle exporting rows to multiple tab sheets in Excel. As I said, if there are 250,000 rows in my grid, I would end up looping through 250,000 4 times, before I export all rows to 4 different excel worksheets. So I was asking if there is a way around it.Hope I explained this better this time.
Hi Shankar,
shankarchandru said:You had mentioned in the other post to use a ultragrid variable to keep track of how many rows got exported, I was trying to handle this with a member variable which works for me, but if you could clarify more on this, it would be helpful, since I don't need to keep a track of this.
Huh? :)
I'm not sure what post of mine you are referring to, so I'm afraid I don't understand what you are trying to keep track of or why.
shankarchandru said:Also ultraGridExcelExporter loops through all the rows even if we have TruncateData option. This means, it is actually going through all the rows in the datasource associated in the Grid. This might be a performance issue. Let say I have around 250,000 rows that Load on Demand, then when I export this to excel, excel exporter would be looping through 250,000 rows atleast 4 times.
I don't think there's anything that can be done about this. The grid has to create all of the rows and fire InitializeRow for the rows in the export layout before it ever starts exporting them to Excel. So there's no way to know that the data will be truncated until after the rows are already created.
Hey Mike,
You had mentioned in the other post to use a ultragrid variable to keep track of how many rows got exported, I was trying to handle this with a member variable which works for me, but if you could clarify more on this, it would be helpful, since I don't need to keep a track of this.
Also ultraGridExcelExporter loops through all the rows even if we have TruncateData option. This means, it is actually going through all the rows in the datasource associated in the Grid. This might be a performance issue. Let say I have around 250,000 rows that Load on Demand, then when I export this to excel, excel exporter would be looping through 250,000 rows atleast 4 times.
Is there another workaround for this?
Thanks