This is a migrated thread and some comments may be shown as answers.

Using Arraylist for Datasource

4 Answers 229 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Leon
Top achievements
Rank 1
Leon asked on 14 May 2008, 05:42 AM
Hi, I have an arraylist, which contains lists of customzied objects
for example ( TPerson )
some properties in the object, link to another object
for example
(TPerson.detail, it will query a record from other table)

However, when i bind arraylist as Datasource
it seems try to get all values also the refereal values (maybe using object persistence), which makes it slow

I use the same object in Grid and it doesn't show that behaviour

any suggestions?

4 Answers, 1 is accepted

Sort by
0
Svetoslav
Telerik team
answered on 14 May 2008, 12:52 PM
Hi Leon,

In order to help you with this issue, we need to examine your report and its data source objects. Please open a  support ticket and attach all files packed in an archive (zip). Once we review it we would be able to provide more info on the matter.

Kind regards,
Svetoslav
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
0
Leon
Top achievements
Rank 1
answered on 15 May 2008, 02:30 AM
It is very hard to demostrate the problem in real case
I think it's more to do with the efficiency then anything else

basically, what happen is that in a clas like

class TPerson
 readonly propery  Name as string
   return "ABC"
 end property
 readonly property OccupationString as TOccupation
  'Requery from other table to get the class 
 end property
 
end clas

and we can get Arraylist of TPerson

when the Report only need the Name but not OccupationString
we can define as
=Field.Name
but the report Engine still try to gather OccupationString

I have wrote a function to convert Arraylist to Datatable, then it's fine
but it losses efficency by quite huge, because looping and checking what's "local" and what "referel"
any suggestions?
0
Svetoslav
Telerik team
answered on 15 May 2008, 07:45 AM
Hi Leon,

If I understand correctly, the getter of the OccupationString property performs a very intensive operation. The Telerik Reporting data processing engine scans with reflection all the available properties and prepare for any further calculations (grouping, filtering, sorting, item binding expressions - if any) which seems to be the reason for slower report processing. The only way to speed up the process is if you avoid performing such a heavy operation in the public properties' getters.

Anyway I will log this in our bug tracking system and we will investigate further, while working on the processing engine of Telerik Reporting.

Best wishes,
Svetoslav
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
0
Leon
Top achievements
Rank 1
answered on 16 May 2008, 01:45 AM
Yes, You have got my problem correctly!
I am currently convert Arraylist of Object to Datatable manually (using reflection to check the type), which will slow down especially there are more than 1000 records
anyway, waiting for your improvement :)
Tags
General Discussions
Asked by
Leon
Top achievements
Rank 1
Answers by
Svetoslav
Telerik team
Leon
Top achievements
Rank 1
Share this question
or