Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » dependant, nested tables
dependant, nested tables [message #902881] Mon, 20 August 2012 21:38 Go to next message
sam detweiler is currently offline sam detweilerFriend
Messages: 22
Registered: August 2012
Junior Member
I have two datasources

1. all workitems in the system, grouped by project (data field)
2. all links between workitems, even across groups.

I have 4 data sets

1. all workitems that meet report parameter input
2 & 3. all sources and targets data set (1 each) that lists the
appropriate link end, these are passed the selected
workitems from dataset 1.
4. a list of workitems that are ONLY the other end of the links from the
selected project, when they are in a different project.
this dataset is passed the list of items from links set via a javscript variable

all this works fine.

now, I want to make a report of all items in dataset 1,
AND while doing that, insert the data from dataset 4 ONLY where appropriate

item 9
item 10
item 14
-----linked item 92
-----linked item 105
item 87
item 43
item 197
-----linked item 207

I have three javascript arrays..

1. all the id's from 1
2. all the id's from 2 & 3 combined
3. all the ids of 1 that match 2 & 3
2 & 3 are in the same 'push' order.

in the layout editor I positioned dataset 4 as part of the row presentation of dataset 1. and changed the input binding on this table to a custom function.
(I see that this is wrong.. I need to filter the master set by my subset)

linkedItems[linkedToItems.indexOf(row["WI_ITEMID"])];

this works fine, except.. when the incoming dataset 1 workitem id does not have any linked children.. then this returns 'undefined' (cause indexOf() is -1)..

what I want to have happen is that if the above double lookup fails, do NOT spend any time trying to find database children.. they don't exist.. this birt client is on the other side of a slow phone line, and the wasted lookup takes 20 minutes.
there are only 4 workitems of 200 that have links..

without the nested table the report presents in 5-8 seconds.

[Updated on: Mon, 20 August 2012 21:55]

Report message to a moderator

Re: dependant, nested tables [message #902892 is a reply to message #902881] Mon, 20 August 2012 23:26 Go to previous messageGo to next message
sam detweiler is currently offline sam detweilerFriend
Messages: 22
Registered: August 2012
Junior Member
so, maybe I am a lot closer than I thought..

dataset 4 has the 3 workitems that are cross linked.
this has a fixed input

so how do I filter this dataset? what does a filter return to make it effective?

I see and use field not equal

i have an added parameter 'other'.. by default = it is ""; and all workitems put in as the primary parameter come out..
so, what is the filter result supposed to be? for a parameter field?
Re: dependant, nested tables [message #903027 is a reply to message #902892] Tue, 21 August 2012 17:01 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Sam

Can you give some more detail on what is in data set 4?
If it only has three values, I would nest this dataset under table tied
to data set 1 and then filter it to only show values if one of its
fields matches the outer table row value.

Jason

On 8/20/2012 7:26 PM, sam detewiler wrote:
> so, maybe I am a lot closer than I thought..
>
> dataset 4 has the 3 workitems that are cross linked. this has a fixed input
> so how do I filter this dataset? what does a filter return to make it
> effective?
> I see and use field not equal
>
> i have an added parameter 'other'.. by default = it is ""; and all
> workitems put in as the primary parameter come out..
> so, what is the filter result supposed to be? for a parameter field?
Re: dependant, nested tables [message #903066 is a reply to message #903027] Tue, 21 August 2012 19:25 Go to previous messageGo to next message
sam detweiler is currently offline sam detweilerFriend
Messages: 22
Registered: August 2012
Junior Member
Ok, let me try to explain a little deeper
workitems table, and links table

1. dataset 1 = a list of all objects (workitems) where project_name = 'xyz' (id,uuid, summary), create javascript array with all the UUIDs matching selected records.
(using onfetch javascript function call to update matchingProjectItems array)
2. links table, has type (text), source(uuid), target(uuid)
datasets 2 & 3, process the links table, given the result set from 1. (passed as a joined() javascript array of uuids in the parameter field)
dataset 2 returns type and source, when target is passed in. ("'"+matchingProjectItems.join("','")+"'"), uses javascript onfetch function call to update linkedItems array
dataset 3 returns type and target, when source is passed in. ("'"+matchingProjectItems.join("','")+"'"), uses javascript onfetch function call to update linkedItems Array
this process makes a single list of uuids, which have one of the objects in results set 1 above as one end of the link, AND
the project name is NOT the same as the report parameter project name.
so, the javascript array contains, 3 UUID strings after all the links are processed.
dataset 4 is a list of objects, with a passed in list (joined javascript array of UUIDs from step 2.) "'"+linkedItems.join("','")+"'"
now,

I want to present dataset 1 (outer table), of objects whos project name matches
AND conditionally present those items from dataset 4.
note that dataset 4 has only the UUID NOT included in the set of records in dataset 1.
they have to be looked up indirectly.. unless there is a better way

[Updated on: Tue, 21 August 2012 19:29]

Report message to a moderator

Re: dependant, nested tables [message #903077 is a reply to message #903066] Tue, 21 August 2012 20:21 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Sam,

Maybe I am missing something but why did you have to use js arrays? why
not used nested tables? Say data set 1 tied to a table 1, where you do
not have to show any of the data values but all the values are already
available to any nested table. If you want to do a skype session let me
know.

Jason

On 8/21/2012 3:25 PM, sam detewiler wrote:
> Ok, let me try to explain a little deeper
> workitems table, and links table
>
> 1. dataset 1 = a list of all objects (workitems) where project_name =
> 'xyz' (id,uuid, summary), create javascript array with all the UUIDs
> matching selected records. (using onfetch javascript function
> call to update matchingProjectItems array)
> 2. links table, has type (text), source(uuid), target(uuid)
> datasets 2 & 3, process the links table, given the result set from 1.
> (passed as a joined() javascript array in the parameter field)
> dataset 2 returns type and source, when target is passed in.
> ("'"+matchingProjectItems.join("','")+"'"), uses javascript onfetch
> function call to update linkedItems array
> dataset 3 returns type and target, when source is passed in.
> ("'"+matchingProjectItems.join("','")+"'"), uses javascript onfetch
> function call to update linkedItems Array this process makes a single
> list of uuids, which have one of the objects in results set 1 above as
> one end of the link, AND the project name is NOT the same as the
> report parameter project name. so, the javascript array contains, 3
> UUID strings after all the links are processed. dataset 4 is a list of
> objects, with a passed in list (joined javascript array of UUIDs from
> step 2.) "'"+linkedItems.join("','")+"'" now,
> I want to present dataset 1 (outer table), of objects whos project name
> matches AND conditionally present those items from dataset 4.
> note that dataset 4 has only the UUID NOT included in the set of
> records in dataset 1.
> they have to be looked up indirectly.. unless there is a better way
Re: dependant, nested tables [message #903089 is a reply to message #903077] Tue, 21 August 2012 21:53 Go to previous messageGo to next message
sam detweiler is currently offline sam detweilerFriend
Messages: 22
Registered: August 2012
Junior Member
why? cause I don't know any better?! I look at nested tables and I still don't know how to solve it..

in this first test there are 82 objects in dataset 1, and 3 objects in the scanned combined dataset 4

of the 3 items in set 4, they are linked to 2 items in set 1

skype.. sounds interesting.. sure

I'm near Austin, tx
Re: dependant, nested tables [message #903093 is a reply to message #903089] Tue, 21 August 2012 23:21 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Sam

Send me an email at jasonweathersby at windstream dot net and we can set
it up to do a skype.

Jason

On 8/21/2012 5:53 PM, sam detewiler wrote:
> why? cause I don't know any better?! I look at nested tables and I still
> don't know how to solve it..
>
> in this first test there are 82 objects in dataset 1, and 3 objects in
> the scanned combined dataset 4
>
> of the 3 items in set 4, they are linked to 2 items in set 1
>
> skype.. sounds interesting.. sure
>
> I'm near Austin, tx
Re: dependant, nested tables [message #903780 is a reply to message #903093] Sat, 25 August 2012 21:12 Go to previous messageGo to next message
sam detweiler is currently offline sam detweilerFriend
Messages: 22
Registered: August 2012
Junior Member
so, I want to try to reduce the impact on the system a little bit.

is there a way to make a dataset filter an OR instead of an AND..

I have the lit of primary records I care about..
I now want to find the tiny set of secondary records that reference the primary

the secondary data set is

type
source
target

where source could be the reference to one of the primarys
or target could be one of the primarys,
or both could be one of the primarys

so what I want is a single sql stmt, to preload all the results. this might end up being a couple hundred records in 100,000 records.

select * from links where source in list or target in list.

where list is a javascript array joined to a string, 'entry1','entry2'...'entryn'
or the collection of records (all at once) from the search of the primary table with the report parameter match. built by sing Total.count() to fetch the primary table.

Re: dependant, nested tables [message #904032 is a reply to message #903780] Mon, 27 August 2012 15:33 Go to previous message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Sam

From a birt filter angle you could use an in filter and apply two
filters, but this will not reduce the impact as the 100000 rows will
still have to be brought back by the data engine to let it filter those
rows.

Jason

On 8/25/2012 5:12 PM, sam detweiler wrote:
> so, I want to try to reduce the impact on the system a little bit.
>
> is there a way to make a dataset filter an OR instead of an AND..
>
> I have the lit of primary records I care about..
> I now want to find the tiny set of secondary records that reference the
> primary
>
> the secondary data set is
>
> type
> source
> target
>
> where source could be the reference to one of the primarys
> or target could be one of the primarys,
> or both could be one of the primarys
>
> so what I want is a single sql stmt, to preload all the results. this
> might end up being a couple hundred records in 100,000 records.
> select * from links where source in list or target in list.
>
> where list is a javascript array joined to a string,
> 'entry1','entry2'...'entryn'
> or the collection of records (all at once) from the search of the
> primary table with the report parameter match. built by sing
> Total.count() to fetch the primary table.
>
Previous Topic:Where to place Properties file for multiple MAXIMO reports
Next Topic:Getting max date when joining a table to itself
Goto Forum:
  


Current Time: Sat Nov 09 01:27:17 GMT 2024

Powered by FUDForum. Page generated in 0.04114 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top