2010-09-30 5 views
4

J'ai assemblé plusieurs rapports qui sont restitués exactement comme je le souhaite dans l'aperçu de Visual Studio, mais lorsque je les affiche dans un navigateur Web, ils sont rendus selon les besoins initialement, mais sont rapidement écrasés dans la moitié gauche de la fenêtre du navigateur par le spectateur. Le niveau de zoom est réglé sur 100% - le réglage sur Page Width agrandit le rapport pour remplir la page, mais ne corrige pas les sauts de ligne qu'il a faits lorsque le «squish» initial a lieu.SSRS 2005 ReportViewer réduit mes rapports

Est-ce que quelqu'un sait comment empêcher le visualiseur de faire ce redimensionnement?

De même, le ReportViewer désactive-t-il automatiquement le bouton de maximisation de la fenêtre de son navigateur parent? Je suis tout à fait nouveau à tout cela ....

Merci, Dan

+0

Quel navigateur utilisez-vous, Dan? Peut-être sans surprise pour un produit Microsoft, j'ai trouvé que la sortie du navigateur SSRS est seulement visible dans Internet Explorer. –

+0

Je l'ai essayé dans IE6,7,8, FF3 et Chrome. La même chose se produit dans tous les navigateurs, mais est moins visible dans FF et Chrome – Hmobius

+0

@Mark Il échoue dans Chrome, Firefox aussi. –

Répondre

-1

Après beaucoup plus creuser, j'ai trouvé la solution à mes rapports SSRS diminue. Pour référence, vous devez faire trois choses

  1. Supprimer la déclaration de ma page d'accueil ASPX
  2. false Définir la propriété AsyncRendering du ReportViewer.
  3. Définissez la propriété Largeur de ReportViewer à 100%

Apparemment, il y a un bogue dans SSRS 2005 avec son XHTML moteur de rendu qui est maintenant fixé avec le moteur reconstruire SSRS 2008.

+0

J'ai toujours le même problème. Que voulez-vous dire par l'étape 1 "Supprimer la déclaration de ma page aspx d'hébergement"? – Fandango68

+0

Peut-être la déclaration de largeur? Cela fait longtemps que j'ai utilisé SSRS. – Hmobius

1

La façon dont nous faisons Dans mon entreprise, il s'agit d'insérer un en-tête de page, d'y déposer un composant de ligne, de lui donner la même largeur que le rapport et d'avoir une couleur neutre qui ne sera pas affichée lors de l'exécution.

La solution acceptée ci-dessus ne fonctionnera pas dans tous les cas, en particulier lorsque vous configurez un abonnement pour envoyer le rapport par courrier électronique au client.

+0

J'ai effectivement essayé cela avant de trouver la solution ci-dessous et il a continué à réduire le rapport. – Hmobius

+0

J'avais le même problème que ci-dessus et la réponse acceptée n'a pas fonctionné. J'ai ajouté une ligne couvrant toute la largeur du rapport à l'en-tête et cela a fonctionné pour le repousser sur toute la largeur. – Josh

6

Le problème de réduction de rapport dans CHROME lors de l'utilisation de SSRS 2005 peut être résolu par la solution suivante. Cela fonctionne TOUJOURS, même si vous avez plus d'une page et si vous exportez votre rapport.

Étapes à suivre:

  1. ouvert Pied de page
  2. Faites glisser un rectangle sur elle
  3. Set rectangle Lieu comme:
    • gauche = 0
    • Top = 0
  4. Définir la taille du rectangle comme:
    • Largeur = "la largeur de votre rapport"
    • Hauteur = 0,1

par les paramètres ci-dessus, le rectangle ne sera pas affiché.

+1

Noté, bien que cela se produisait dans tous les navigateurs pour les raisons indiquées ci-dessus. – Hmobius

+1

Comme ça "contourner" – ValidfroM

+0

Cela a sauvé ma journée .... – Lijo

0

Notre solution était d'augmenter le Height et Width par Javascript:

var t1; 
function manageWidthReportViewer(behID) { 
    t1 = window.setInterval("SetWidthForCrome()", 1); 
} 
function SetWidthForCrome() { 

    var mainReportViewer = document.getElementById('iFrameMainReportViewerContainer'); 
    var reportFrame = mainReportViewer.contentWindow.document.getElementById('ReportFramereportViewer'); 
    var report = reportFrame.contentWindow.document.getElementById("report"); 
    if(mainReportViewer.contentDocument.getElementById("reportViewer") != null) 
     mainReportViewer.contentDocument.getElementById("reportViewer").childNodes[2].childNodes[1].childNodes[1].style.float = "left"; 
    if (report!=null && report.contentDocument.getElementById("oReportCell") != null) { 
     report.contentDocument.getElementById("oReportCell").style.width="100%"; 

     window.clearInterval(t1); 
    } 
} 

function SetReportViewerDim() { 
    var controlPanelHeight = screen.availHeight - 210; 

    var mainReportViewer = document.getElementById('iFrameMainReportViewerContainer'); //set 
    mainReportViewer.removeAttribute('height'); 
    mainReportViewer.style.height = (controlPanelHeight-37) + "px"; 

    var reportViewer = mainReportViewer.contentWindow.document.getElementById('reportViewer'); //set 
    reportViewer.style.height = (controlPanelHeight) + "px"; 

    var reportFrame = mainReportViewer.contentWindow.document.getElementById('ReportFramereportViewer'); 

    if (Sys.Browser.name == "Safari") { 
    manageWidthReportViewer(reportFrame); 
    } 

} 
+0

s'il vous plaît faire plus d'explications et moins de collage de code – johannes

Questions connexes