J'ai un rapport rdlc qui contient un tablix, rien d'autre. Le tableau se développe horizontalement pour indiquer les jours et verticalement pour afficher les groupes.
Le tablix fonctionne comme prévu tant que la largeur de la zone de contenu est égale à la largeur du tablix.
Si j'augmente la taille du contenu à sa taille fixe (environ PageWidth-PageBorders) et exécute le rapport, une page sur deux est une page vide.
Cependant, le tablix utilise une seule page. Chaque page impaire est absolument vide. Il semble que le tablix ajoute son développement horizontal à la largeur du contenu actuellement défini et calcule ensuite le débordement.
La version de reportviewer est 3 (2010 redistribuable)
Quelqu'un a-t-il une solution à ce comportement étrange?
Mettre à jour
Si j'exporte le rapport vers Excel, je constate qu'il existe sur le bon site du tableau matriciel une colonne d'une longueur identique à celle des éléments générés pour les jours. Cela semble vraiment être un bug ou une fonctionnalité que je ne vois pas comment désactiver.
J'ai également essayé de créer la même construction à partir d'une table et le même problème s'est posé, ce qui n'est pas étonnant, car la table est en interne aussi un tableau matriciel.
Mise à jour 1
Si je définis la propriété "ConsumeContainerWhitespace" du rapport sur true, la version de test ci-dessus fonctionne. Mais si je place ensuite d'autres éléments dans la zone "blanche", l'effet se répète.
La définition de la propriété de page ConsumeContainerWhitespace=true
(dans la boîte de dialogue des propriétés, F4) a été utile. Cependant, il était de toute façon difficile de construire le rapport correctement. Au début, cela ne fonctionnait que si j'avais ajouté tout le contenu supplémentaire à l'en-tête et au pied de page. Mais ce n'était pas acceptable. Après beaucoup d’essais, j’ai réussi à faire le rapport souhaité. Cependant, je ne comprends pas vraiment la logique derrière.
Je pense avoir déjà fait de tels rapports (grandissant dans les deux sens, horizontalement et verticalement ensemble) sans aucun problème et je ne sais pas en quoi ce rapport est différent de celui présenté ici. Pour ce rapport, il est définitivement reproductible que la propriété ConsumeContainerWhitespace
- fasse la différence. Mais pourquoi cela ne m’arrive-t-il jamais pour des rapports similaires que j’ai faits, je ne le sais pas. De plus, je ne sais pas pourquoi je devais d'abord faire le tour de la page avant que le moteur de présentation accepte mon dessin.
Le meilleur moyen de résoudre ce problème est, par exemple, pour une page A4 où Width=21 cm
et Height=29.7 cm
Maintenant, Margin Left=1 cm
et Right=1 cm
afin que vous ayez une largeur utilisable de 19 cm.
Lorsque vous avez compris ce calcul de base, cela signifie que votre problème est résolu. Vous pouvez définir les propriétés de taille de page du rapport en cliquant avec le bouton droit de la souris sur la propriété de rapport => ensemble de pages.
Vérifiez le format du corps, essayez de le rendre aussi large et aussi haut que votre format de papier réel, mais réduisez uniquement les marges.
la solution est simple: ConsumeContainerWhiteSpace=True
(vous trouvez ceci dans la fenêtre de propriété pour "rapport"), vous définissez la taille du papier dans les propriétés du menu principal/rapport/rapport par exemple sur "A4", puis vous vérifiez que le format du papier est supérieur à body + header + footer + margins
.
Il y a une confusion dans la conception de la page. Les développeurs penseraient que le rapport en cours de conception est WYSIWYG, mais en réalité, il ne l’est pas !! Microsoft reportviewer prendra votre page conçue comme contenu !! et ajoutez les marges définies à l'extérieur de votre page et vérifiez que votre page ne peut jamais s'intégrer à une page !!
Ainsi, lorsque vous concevez un nouveau rapport, concentrez-vous sur la zone de contenu, la zone client, y compris vos en-têtes et vos pieds de page, et permettez aux marges d'être ajoutées à votre bordure extérieure.
J'avais le même problème jusqu'à ce que je joue avec height et width du corps du rapport. :)
J'ai rencontré ce problème récemment.
La cause première peut être:
le corps de votre rapport contient un rapport vierge en bas de page ou ailleurs.
La solution est:
1, cliquez sur le corps du rapport
2, allez à la fenêtre de la propriété, vous verrez la propriété de la taille du corps
3, vérifiez la taille du corps, vous pouvez trouver un nombre étrange comme 9.6654in, 1.5625in.
cela signifie que vous avez des blancs dans le pied de page, modifiez la taille en hauteur ou en largeur jusqu'à ce qu'il n'y ait plus de blanc que vous puissiez voir.
Veuillez sélectionner "Rapport" dans le sélecteur d'objet en haut de la fenêtre . Et définir ConsumeContainerWhiteSpace = true Si le même problème persiste, la taille de votre rapport rdlc doit être inférieure à celle du corps de votre rapport.
Je travaillais avec un rapport RDLC qui imprimait une page vierge supplémentaire. J'ai essayé toutes les astuces habituelles et tout ce à quoi je pouvais penser, jusqu'à ce que je réalise que le problème était dû à une quantité supplémentaire d'espaces visibles dans la marge de droite du rapport. L'un des objets du rapport (un "rectangle") était un pixel ou deux pixels trop large, ce qui empêchait le redimensionnement de l'espace visible du rapport. Une fois que j'ai supprimé toute la largeur supplémentaire, le rapport a commencé à imprimer avec le nombre de pages attendu.
Visual Studio 2017 (15.7.5) + extension Microsoft Rdlc Report Designer (v14.2)
Le pied de page peut aussi causer le problème. Donc, si vous en avez un, il est préférable de le placer aussi près que possible du contenu principal. Dans ce cas, vous n'avez pas besoin de définir la propriété Body.Height
.
Vous devez définir la propriété largeur du rapport sur la largeur réelle de la page d'impression. Dans mon cas, 6 pouces ont aidé.
Vous devez vous assurer que votre rapport RDLC contient:
- ConsumeContainerWhiteSpace = true (ouvert par clic F4)
- Taille du corps du rapport <= Taille de la page + Taille de la marge. (ouvert par Ctrl + Alt + D)
Mon étiquette 4x2 pouces imprimait 3 pages supplémentaires pour un rapport d'une page.
Pour résoudre ce problème, j'ai réduit l'attribut Body.Size
pour qu'il soit identique ou inférieur au Report.PageSize
moins le Report.Margins
correspondant additionné.
Essaye celui-là,
Assurez-vous simplement que toutes les données nécessaires sont dans le rapport, Sélectionnez ensuite le tableau ou la matrice et faites-le glisser à gauche et, si nécessaire, dans le coin supérieur gauche jusqu'à ce que le problème de votre page blanche soit résolu.
Mais assurez-vous que les cellules sont bien serrées, soyez gentil (j'espère que vous l'avez!)
OK au revoir