views:

843

answers:

2

Hi,

1) I have a ReportViewer control on a page that's linked to a ServerReport (I'm using ASP.NET 2.0). The report displays fine, but the 'Export' link is present but disabled and the 'Select a format' drop down list (that's normally visible when you view the report in Reporting Services) isn't there. Any ideas? The ShowExportControls property is set to true.

2) Also, when I click the print icon in the ReportViewer control, IE asks me if I want to install 'Microsoft SQL Server'. I click Install and then it displays a messagebox saying 'Unable to load client print control'. I'm using IE7 and Vista.

Many thanks,

Anthony

+1  A: 

The first part I don't know, but the second can be the ActiveX used to print. When you press that print button, it is calling an ActiveX control on the client's machine to be able to print.

If this control is not yet installed on the client machine, it is downloaded and installed if you have enought rights. So it is the rights management.

Try to login as an admin user and try to print. If it goes well, you can logout and login as a standard user and print again. It worked for us on XP+IE6 and XP+IE7. Finally we used SCCM to install the control to all machines.

Biri
+1  A: 

Thanks Biri. I reckon part 2 is probably a Vista UAC / Admin issue.

I've found a solution for part 1 - it's not ideal - but it works. I found the 'Select a format' Drop Down List was visible in Firefox, but not IE7. I viewed source and saw the DDL was there in the HTML, but the width was set to 96% in the inline style, and for some reason this causes the DDL to not be visible!

I had to use a little bit of Javascript on my .aspx page (after the ReportViewer control):

<script type="text/javascript" language="javascript" >
    var elem = document.getElementById("ctl00_cphContentPlaceHolder_ReportViewer1_ctl01_ctl05_ctl00")

    if (elem) {
        elem.style.width = 160;
    }
</script>

N.B. I'm using Master Pages, and the DDL is deep within the ASP.NET control, hence the nasty string - you'll have to find the Id of the DDL in your code yourself.

Hope that might help somebody!

Anthony