In your first senario there is probably not an InitialDataFetch defined on the chart, which means that it will not have any data until you call GetData.
To identify the number of records in a object the hypercube has a Size which indicates the size of the hypercube. Size.Cx indicates the number of columns and Size.Cy indicates the number of rows.
Note that there is a limit of max 10000 elements (NxPage.Left * NxPage.Height) that can be retreived in a GetData.