Je tente d'obtenir des objets imbriqués pour travailler dans des rapports Microsoft. J'ai téléchargé le code d'exemple de http://www.gotreportviewer.com/objectdatasources/index.html, et il fonctionne correctement.Microsoft signale que l'objet imbriqué datasource donne #Error
J'ai construit la petite application suivante basée sur un Windows Form et leur code, et tout ce que je reçois quand je référence une valeur d'objet imbriqué est un "#Error" à l'endroit où les données devraient apparaître.
Dans le rapport, j'utilise la même syntaxe d'objet imbriqué qui est recommandé sur le site Web:
=Fields!Name.Value.FirstName
Il travaille pour leur application sur mon ordinateur, mais pas pour moi. Je ne peux pas le comprendre! Est-ce que quelqu'un a rencontré ceci, ou sait pourquoi cela se produit?
En outre - et je ne sais pas si cela est lié - je ne peux pas ajouter une seule instance de ClientItem à l'objet LocalReport.DataSources. Ça doit être une liste. Cependant, quand il rend, il montre seulement une ligne de données (#Errored) dans la table sur le rapport.
Toute aide serait appréciée!
namespace ReportTest
{
public class ClientItem
{
public int Id { get; set; }
public ClientName Name { get; set; }
}
public class ClientName
{
public ClientName(string first, string last)
{
FirstName = first;
LastName = last;
}
string FirstName { get; set; }
string LastName { get; set; }
}
public partial class Form1 : Form
{
private List<ClientItem> clients = new List<ClientItem>();
public Form1()
{
InitializeComponent();
PopulateLists();
GenerateReport();
}
private void PopulateLists()
{
clients.Add(new ClientItem { Id = 1, Name = new ClientName("Adrian", "Adesco") });
clients.Add(new ClientItem { Id = 2, Name = new ClientName("Brian", "Briar") });
clients.Add(new ClientItem { Id = 3, Name = new ClientName("Clive", "Cussler") });
}
private void GenerateReport()
{
this.Text = "Report Control Demo";
this.ClientSize = new System.Drawing.Size(950, 600);
ReportViewer reportViewer = new ReportViewer();
reportViewer.ProcessingMode = ProcessingMode.Local;
reportViewer.LocalReport.ReportPath = "TestReport.rdlc";
reportViewer.LocalReport.DataSources.Add(new ReportDataSource("ReportTest_ClientItem", clients));
reportViewer.Dock = DockStyle.Fill;
this.Controls.Add(reportViewer);
reportViewer.RefreshReport();
}
}
}
J'ai un problème très similaire à vous mais l'ajout de 'AllowPartiallyTrustedCallers' n'a pas fonctionné pour moi. Avez-vous d'autres suggestions à ce problème? – meanbunny