2009-04-30 4 views
1

J'ai un tableau Dundas utilisé dans un rapport SSRS avec un code personnalisé dans le PostInitilize événement qui ressemble à ceci:SSRS Dundas Code personnalisé Non exécution

foreach(CustomLabel curLabel in chartObj.ChartAreas[0].AxisY.CustomLabels) 
{ 
    curLabel.GridTick = GridTick.None; 
    curLabel.Text = Convert.ToString(Convert.ToInt32(curLabel.Text) - 10); 
} 

Son prend chaque étiquette d'axe et réduit la valeur par 10.

Cela fonctionne très bien sur ma machine, il fonctionne même bien sur le serveur de production dans le visualiseur de rapports. Mais lorsque ce rapport est exécuté en tant qu'abonnement, le code ne s'exécute pas. Le rapport génère très bien mais les étiquettes d'axe sont inchangées.

Comment cela est-il possible? Qu'est-ce qui différencie l'exécution d'un rapport en tant qu'abonnement? Après beaucoup de recherches, j'ai découvert la solution à cela.

Répondre

1

Le problème est que la version de Dundas sur ma machine de développement était légèrement plus récente à celle en production (2.2 v 2.1). Cela provoque l'assemblage de code à ne pas faire confiance je suppose. (mais uniquement en cas de fonctionnement sans surveillance?)

La solution évidente consiste à mettre à niveau le serveur ou à rétrograder mon ordinateur de développement afin que les numéros de version correspondent. Je ne pouvais pas toucher à l'installation sur le serveur, et la rétrogradation de ma propre machine prendrait du temps et serait ennuyante. Mais il y a une autre solution.

Recherchez une machine avec la version correcte de dundas installée, ouvrez le rapport dans Visual Studio, ouvrez le code, créez un superficiel (comme ajouter une ligne vide ou un commentaire) puis compilez le code. Ce rapport contiendra désormais l'assembly 'correct'. Déployez ceci sur le serveur, et tout devrait fonctionner.

Questions connexes