cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Accessing nested report's data

Former Member
0 Likes
2,050

Okay I have a nested report, not a composite so GetChild is of no use, and I'd like to get to the data in the nested report. This kind of thing works very well:

For ll_loop = 1 to dw_1.RowCount()

     la_any = dw_1.Object.d_nested[ll_loop].object.data

     For ll_loop2 = 1 to UpperBound(la_any)

          ll_ref = dw_validation.Object.dw_property[ll_loop].object.ref[ll_loop2]

     Next

Next

The problem is when dw_1.Object.d_nested[ll_loop].object.data has no rows, a System Error occurs. I can't think of a way to check if there are any rows in advance. Long searches of the internet have turned up the following:

If long(dw_1.Object.d_nested[ll_loop].object.DataWindow.FirstRowOnPage) > 0

     This always returns 0 for me and I know I have data in my first few nested reports

IsNull(dw_1.Object.d_nested[ll_loop])

     This is never TRUE

IsValid(dw_1.Object.d_nested[ll_loop])

     This is never FALSE

Anyone have any other ideas this is driving me crazy, it looks like it should be so simple!!!!

Thank you for any help.

View Entire Topic
Former Member
0 Likes

Hi Aron;

  Just a Thought: May I suggest checking to see if their is an array of data first ...

Any   ls_data[]

la_data = dw_1.Object.d_nested.object.data

IF UpperBound (la_data) > 0 THEN

  la_any = dw_1.Object.d_nested[ll_loop].object.data

...

Regards ... Chris

Former Member
0 Likes

Good try Unfortunately it is the dw_1.Object.d_nested.Object.data that causes the crash so you can't get it back into the array in the first place.

Former Member
0 Likes

Hold on maybe I didn't get your code. I'm not sure I understand what you were getting at. Sorry, brain has slowed down, it's been one of those days. Can you explain a bit more?

Thanks.

Former Member
0 Likes

Hi Aron;

   The idea here is that you were trying to access (subscript) a NULL array. Since each of the DWO's buffers are an array, transferring a null array to the variable should not cause it to crash. Then the key is to see if the variable is a null array (ie: upperbound = 0) and then continue (subscript) the DWO's buffer if indeed data is present.

HTH

Regards ... Chris

Former Member
0 Likes

Thanks Chris, I will look at this one tomorrow when my head isn't spinning so much

Former Member
0 Likes

If your in the USA and celebrating Independence Day (July 4th) - you may want to wait another day for your head to stop spinning.  

Happy July 4th to all my US friends (from the Great White North of Canada)!

Former Member
0 Likes

As a Brit (with a Canadian passport) I have to say 'Boo, we should've won!!!'

But "Happy 4th of July" anyway, you hosers

Former Member
0 Likes

Hey, the US guys should thank us for burning the White House down in the war of 1812 (Burning of Washington - Wikipedia, the free encyclopedia ... an example of where the US actually lost a war). Now Mr Obama has some new updated "digs" to work from C/O us.  

PS: Have you hugged you DataWindow today?

Former Member
0 Likes

Hi,

It might be trial and error here, these things can be tricky.

Maybe there is no dw_1.Object.d_nested.Object ? Have you tried IsNull or IsValid?

>> dw_1.Object.d_nested.Object.data that causes the crash

If you don't find a property; and it might not be very elegant, but a systemerror is not a crash and you can capture it locally using a try catch in the loop and continue.

Ben

Former Member
0 Likes

IsNull and IsValid don't seem to be of any use unfortunately, but you're right I could just ignore the error, that may have to be the way to do it.

Former Member
0 Likes

Hi Aron;

  How about wrapping that code in a TRY..CATCH?

Regards .. Chris