2010-05-19 4 views
6

J'ai une classe qui contient quelques propriétés dont une Liste <> d'objets enfants.Relier l'objet avec List <> à Crystal Report

Exemple simple:

public class LineItem 
    { 
     public string Name { get; set; } 
     public decimal Amount { get; set; } 
    } 

    public class Invoice 
    { 
     public string Name { get; set; } 
     public DateTime CreatedDate { get; set; } 
     public List<LineItem> LineItems { get; set; } 
     public Invoice() { ... } 
    } 

Je suis en train de lier cet objet (facture dans l'exemple) à un rapport Crystal (en utilisant le concepteur de rapport de cristal VS2008) et pendant que je les propriétés simples (nom, CreatedDate) pour apparaître dans Field Explorer, la collection enfant ne le fait pas. J'ai essayé d'utiliser un ArrayList (comme suggéré (How can I use strongly typed lists as the datasoruce for a Crystal Reports) mais cela n'a pas fonctionné

Répondre

1

Après un peu de recherche et d'expérimentation, je n'ai pas réussi à lier le rapport à un objet personnalisé qui contenait une collection enfant. en utilisant un objet .Net I en page le rapport à l'aide d'un shema XSD et lors de l'exécution d'un fichier généré XML et de la source de données du rapport sur les coûts à un DataSet que je construit selon la méthode .ReadXML.

var exportData = new XDocument(....); 
var dataSet = new System.Data.DataSet(); 
dataSet.ReadXml(exportData.CreateReader()); 

var report = new ReportDocument(); 
report.Load("..."); 
report.SetDataSource(data);