Je cherche à intégrer Crystal Reports 2008 dans une application Windows Forms. Je voudrais éviter les connexions directes de mon application client à la base de données, tout en donnant à l'utilisateur l'expérience de rapport "complète". Est-il possible que Crystal Reports 2008 exécute un rapport sur un serveur dans un contrôle client Windows Forms côté client, similaire à Microsoft Reporting Services?Rapport côté serveur dans Crystal 2008?
Répondre
Je ne sais pas si c'est exactement ce que vous recherchez, mais je peux penser à 2 façons vous pouvez truquer il:
- Vous pouvez configurer votre rapport afin que la « base de données » est un Fichier XSD, sans aucune connaissance du backend réel. Ensuite, au moment de l'exécution, vous poussez les données dans le rapport.
// Création d'une instance à l'exécution appropriée à votre environnement - exemple seulement:
ReportClass rc = new ReportClass();
rc.Load (crystalReportFileName);
rc.SetDataSource (myIEnumerableData);
CrystalReportViewer crv = new CrystalReportViewer();
crv.ReportSource = rc;
// Afficher la visionneuse de cristaux.
2 - Vous pouvez faire la même chose que 1 sur un serveur (quelle que soit l'approche de la base de données), puis enregistrez le rapport et exportez-le au client.
// Certains services côté serveur/méthode etc
public byte [] GetMyReport() {
ReportClass rc = new ReportClass();
rc.Load (crystalReportFileName);
rc.SetDataSource (myIEnumerableData);
rc.SaveAs (serverSideFile, True); // True est essentiel pour enregistrer les données avec le rapport
retour ....// convertir le fichier créé à un tableau d'octets Je suppose que
}
// côté client
octet [] = rep Server. GetMyReport()
ReportClass rc = ..... // convertir représentant de retour à un rapport de cristal
CrystalReportViewer CRV = new CrystalReportViewer();
crv.ReportSource = rc;
Ce n'est pas vraiment ce que vous demandez, mais Crystal Reports Server effectue des rapports côté serveur. À la baisse, c'est énormément cher.
http://www.businessobjects.com/product/catalog/crystalreports_server/
Est-ce que Crystal Reports Server se connecte réellement aux bases de données pour obtenir les données de rapport * du serveur *? Ou fournit-il simplement l'hébergement d'un fichier .rpt qui est traité sur le client? – JoshL
Je ne peux pas ajouter un commentaire à ce qui précède que je n'ai pas de points, mais espère que cela aide. Crystal Reports Server exécute des rapports lui-même sur les sources de données, l'idée étant que les clients sans rapports Crystal ou accès aux données peuvent exécuter des rapports via le Web ou que le serveur exécute des rapports planifiés et envoie les résultats. Je ne sais pas si vous pouvez l'intégrer bien.
Cela semble être le plus proche de ce que je suis après. Je vais devoir tester pour voir si l'expérience de l'interface utilisateur du rapport souffre du tout pour l'hébergement d'un rapport pré-rempli au lieu de le remplir dans l'interface utilisateur. – JoshL