OWC drillthrough.htc issue

J

Josh

I have a cube which uses a modifed version of drillthrough.htc to
enable the users to view the detail data in the cube.

Everything works great for all of our users except one. One user's
'spawned' drillthrough window always throws an exception (with a null
exception message) and closes.

I have inserted (slighted editted) the code where the problem occurs
below.

The setupPivotTable() method throws the exception when it tries to set
the DataSource and DataMember of the PivotTable object (which is
created as an object).

Could the document.CreateElement() method be creating a 'bad' object?

Are there any client-side IE security settings which could be
preventing this code from working?

The recordset (rs) does contain data when it returns from the
GetRecordSet() method.

Like I said, only one user is seeing this problem, so I know the code
works (most of the time). The broken user does have IE6 sp1, which
other users also use, but they are using Windows 98 (all other users
have Windows NT/2000/XP)... could Windows 98 be the problem?

Thanks for the help guys,
Josh

------------------------8<-----------------------------------
function spawnContinue()
{
var objPT;

// catch errors in the case the window has disappeared.
// (user has used [X] button to close the spawned window)
try
{

// use IE DOM objects to get the desired layout for the PivotTable

objPT = winChild.document.createElement("<OBJECT style='behavior:
url(SingleRecord.htc);'>");

objPT.classid = "clsid:0002E552-0000-0000-C000-000000000046"
objPT.width = "100%";
objPT.height = "100%";

objPT.AutoFit = false;
objPT.id = 'pt';

if (setupPivotTable(objPT) == false)
{
winChild.close();
winChild = null;
return;
}

}
catch (e)
{
// don't do anything -- we're just trapping errors
// in case the user closes the spawned browser in the middle
// of us doing some work on it.
}
}

function setupPivotTable(ptMe)
{
var rs;

// get the recordset which represents this drillthrough.
// Note this operation may take a lot of time.
rs = dt.Data.GetRecordset();

if (rs == null)
return false;

try
{
//***** Exception thrown here **********
//***** but ptMe says it is an '[object]' **********
//***** when alerted to the screen. **********
ptMe.DataSource = rs;
ptMe.DataMember = "";
}
catch (e)
{
return false;
}

return true;
}
------------------------8<-----------------------------------
 
D

Dan Ricker

Not sure if it's Win98 or something else...

In setupPivotTable add:
alert(ptMe.Version);

Just to see if you get an OWC10 Verions number (or... an
exception here..)

Also add

alert(rs.Fields.Count) to verify that an ADO RecordSet is
actually returned.

With Win98, you could be dealing with several issues:
ADO Version
Analysis Server permisions - Win98 does not always play
well with integrated security

Other than that... ???
__________________
-----
Thx
Dan

Quality is not just the absence of defects, but the
presence of value throughout the entire transaction.


-----Original Message-----
I have a cube which uses a modifed version of drillthrough.htc to
enable the users to view the detail data in the cube.

Everything works great for all of our users except one. One user's
'spawned' drillthrough window always throws an exception (with a null
exception message) and closes.

I have inserted (slighted editted) the code where the problem occurs
below.

The setupPivotTable() method throws the exception when it tries to set
the DataSource and DataMember of the PivotTable object (which is
created as an object).

Could the document.CreateElement() method be creating a 'bad' object?

Are there any client-side IE security settings which could be
preventing this code from working?

The recordset (rs) does contain data when it returns from the
GetRecordSet() method.

Like I said, only one user is seeing this problem, so I know the code
works (most of the time). The broken user does have IE6 sp1, which
other users also use, but they are using Windows 98 (all other users
have Windows NT/2000/XP)... could Windows 98 be the problem?

Thanks for the help guys,
Josh

------------------------8<-------------------------------- ---
function spawnContinue()
{
var objPT;

// catch errors in the case the window has disappeared.
// (user has used [X] button to close the spawned window)
try
{

// use IE DOM objects to get the desired layout for the PivotTable

objPT = winChild.document.createElement("<OBJECT style='behavior:
url(SingleRecord.htc);'>");

objPT.classid = "clsid:0002E552-0000-0000-C000- 000000000046"
objPT.width = "100%";
objPT.height = "100%";

objPT.AutoFit = false;
objPT.id = 'pt';

if (setupPivotTable(objPT) == false)
{
winChild.close();
winChild = null;
return;
}

}
catch (e)
{
// don't do anything -- we're just trapping errors
// in case the user closes the spawned browser in the middle
// of us doing some work on it.
}
}

function setupPivotTable(ptMe)
{
var rs;

// get the recordset which represents this drillthrough.
// Note this operation may take a lot of time.
rs = dt.Data.GetRecordset();

if (rs == null)
return false;

try
{
//***** Exception thrown here **********
//***** but ptMe says it is an '[object]' **********
//***** when alerted to the screen. **********
ptMe.DataSource = rs;
ptMe.DataMember = "";
}
catch (e)
{
return false;
}

return true;
}
------------------------8<-------------------------------- ---
.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top