2016-03-30 3 views
0

Wir suchen nach einer Dokumentation, um List Drilldowns List & in unsere Berichte zu integrieren.Suche nach List & Label Drilldown Dokumentationen oder Proben

Die offizielle Dokumentation ist wirklich schlecht in meinen Augen. Wir haben einige Codeschnipsel von ihrer Unterstützung, aber nur mit nicht typisierten Daten und ohne Kommentare.

object[] restrictions = new Object[] { null, null, null, "TABLE" }; 
DataTable table = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, restrictions); 

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(new OleDbCommand("SELECT * FROM [" + tableName + "] WHERE OrderID > 11040", onn)); 

object[] restrictions1 = new Object[] { null, null, null, null }; 
DataTable table1 = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Foreign_Keys, restrictions1); 

ds.Relations.Add(new DataRelation(relationName, ds.Tables[parentTable].Columns[parentCol], ds.Tables[childTable].Columns[childCol])); 

Wir wissen nicht, warum sie eine Reihe von null verwenden Objekte hier und wie Berichte mit IEnumerable<MyClass> zu erzeugen, wie angefordert. Am Ende hat das nicht geholfen und wir sind immer noch auf der Suche, wie man typisierten Daten einen Bericht mit Drilldown-Daten übergeben kann.

Vielleicht kann jemand hier helfen und einige Best Practice-Erfahrungen bieten?

Antwort

1

Die Snippets, die Sie eingefügt haben, sind nicht LL-spezifisch, sondern eine generische Methode zum Analysieren von Tabellen und Beziehungen über ADO.NET. Angenommen, Sie haben einen IEnumerable<Customer> wo die Customer-Klasse nach dem Vorbild der

class Customer 
{ 
    //Constructor 
    public Customer(int customerID, string companyName, string contactName, string address, string city) 
    { 
     CustomerID = customerID; 
     CompanyName = companyName; 
     ContactName = contactName; 
     Address = address; 
     City = city; 
     OrderList = new List<Order>(); 
    } 

    public List<Order> OrderList { get; set; } 

    // The CustomerID should not be available in the designer 
    [Browsable(false)] 
    public int CustomerID { get; set; } 
    public string CompanyName { get; set; } 

    // Set display name, which should be used in the designer 
    [DisplayName("Name")] 
    public string ContactName { get; set; } 
    public string Address { get; set; } 
    public string City { get; set; } 
} 

// The "Order" class represents a single order of a customer 
class Order 
{ 
    //Constructor 
    public Order(int orderID, DateTime orderDate, string shipName, string shipCountry, double price) 
    { 
     OrderID = orderID; 
     OrderDate = orderDate; 
     ShipName = shipName; 
     ShipCountry = shipCountry; 
     Price = price; 
    } 

    public int OrderID { get; set; } 
    public DateTime OrderDate { get; set; } 
    public string ShipName { get; set; } 
    public string ShipCountry { get; set; } 
    public double Price { get; set; } 
    // Explicitly set a barcode field type 
    [FieldType(LlFieldType.Barcode_EAN128)] 
    public string PriceEan 
    { 
     get { return Price.ToString(); } 
    } 
} 

alles, was Sie in der Regel definiert ist, zu tun haben, ist

using (ListLabel LL = new ListLabel()) 
{ 
    LL.DataSource = MyCustomerList; 
    LL.Design(); 
} 

Dies gibt Ihnen alle Funktionen, dort, einschließlich Drill-Down usw. von der Customer bis zur Order Klasse. Ich habe auch Beispiele für die verfügbaren Attribute hinzugefügt, um die Ergebnisse zu optimieren.

+0

Das ist der Code, den ihre Unterstützung mir gab .. ;-) – Ben

+0

Hat mein Snippet dann geholfen? Wenn nicht, können Sie versuchen, spezifischer in Ihrer Frage zu sein? Wenn Sie Beispielcode benötigen, versuchen Sie das ObjectDataProvider-Beispiel, es zeigt, wie an zahlreiche Objektdatenquellen zu binden, einschließlich 'IEnumerable ' – JBartlau

+0

das Problem in unserem Fall sind die Grundlagen. Wir wissen nicht, wie wir unsere typisierte Struktur für Drilldowns entwerfen müssen. Wir haben jetzt eine Idee, wie man Drilldowns mit DataSets verwenden kann, aber wir haben keine Daten in DataSets, wir haben vollständig gefüllte Objekte in Sammlungen. Wir wissen, dass wir 'LL.DataSource' verwenden müssen, aber ... nicht, wie die DataSource gleich aussehen sollte. Wir finden keine einfache Stichprobe, um zu verstehen, wie die Datenstruktur aussehen muss. – Ben

Verwandte Themen