Outre le fait qu’il soit ajouté en tant que contrôle visuel sur un formulaire, ReportViewer peut fonctionner en tant qu’objet instancié dans le code sans présence visuelle. Dans ce cas, le contrôle ReportViewer peut servir au rendu de rapports dans n’importe quel format de rendu pris en charge, notamment les
Dans les coulisses du rendu
formats feuille de calcul (.xls), PDF et XML. Vous pouvez ensuite employer les rapports rendus au sein de l’application ou les écrire vers un fichier. Il est également possible d’assurer le rendu de rapports au format EMF (Enhanced MetaFile) et d’envoyer ces derniers directement à une imprimante.
Vous pouvez même effectuer le rendu sous forme d’image et l’utiliser en tant qu’arrière-plan d’un contrôle ou d’un formulaire. Le listing 3 présente le code qui transforme notre exemple de rapport en image d’arrière-plan. Comme le bloc A du listing 3 le montre, le code utilise une sous-routine pour créer une instance du contrôle ReportViewer, fait pointer la visionneuse vers la définition du rapport, puis fournit le dataset requis.
Bien que ce code soit similaire à celui des listings 1 et 2, le reste du code dans la sous-routine diffère de celui vu jusqu’à présent. Comme le montre le bloc B du listing 3, la sous-routine définit une structure XML nommée deviceInfo. Cette structure fournit les informations (par ex., format de page, taille des marges) nécessaires aux différents formats de rendu. Ensuite, le code se prépare pour la méthode Render, laquelle placera les pages du rapport rendu dans une liste de flux (un flux pour chaque page). Les préparations incluent l’initialisation de la liste de flux vers une liste vide et la mise à disposition d’une fonction callback, destinée à créer un nouveau flux pour chaque nouvelle page. La fonction callback, nommée CreateStream, apparaît à la fin du listing 3.
Une fois les préparatifs nécessaires terminés, la sous-routine appelle enfin la méthode Render. Le premier paramètre de celle-ci spécifie le format de rendu. Comme illustré dans le bloc C du listing 3, le format dans cet exemple est Image. Après l’appel de la méthode, vous pouvez employer les flux comme bon vous semble. Dans ce cas, le premier et seul flux est la première page du rapport Employee List, qui est convertie en image bitmap et affectée à la propriété BackgroundImage du formulaire. La figure 3 affiche le résultat.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Data streaming : le nouveau socle stratégique de l’IA en entreprise
- Ransomware en santé : la double extorsion fait exploser la facture en Europe
- Les fuites de données explosent en France, désormais pays le plus touché d’Europe
- L’IA accélère les attaques et expose les identités non gouvernées
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
