.NET: Verwendung der Microsoft Chart Controls in Design und Druck

Gilt ab List & Label 16
Microsoft bietet mit den Chart Controls für das .NET Framework (s. Link) eine Bibliothek mit umfangreichen Charting-Möglichkeiten zum kostenlosen Download an. Darin sind auch einige Charttypen enthalten, die das List & Label Chart-Objekt nicht unterstützt.

Auf dem Weg über ein Designer-Objekt können Sie diese Charts auch innerhalb von List & Label-Berichten verwenden. Fügen Sie hierzu ein neues Designer-Objekt hinzu (Eigenschaft "DesignerObjects" der ListLabel-Komponente) und vergeben Sie einen Namen, eine Beschreibung und ein Icon für das Objekt. Fügen Sie dann folgenden Eventhandler für das DrawDesignerObject-Event (hier C#, VB.NET analog) hinzu:
DesignerObject obj = (sender as DesignerObject);
float scaleFactor = 1;

// Einheit umrechnen
switch (obj.UnitSystem)
{
    case LlUnits.Inch_1_100:
        scaleFactor = 1;
        break;

    case LlUnits.Inch_1_1000:
        scaleFactor = 10;
        break;

    case LlUnits.Millimeter_1_10:
        scaleFactor = 2.54f;
        break;

    case LlUnits.Millimeter_1_100:
        scaleFactor = 10 * 2.54f;
        break;

    case LlUnits.Millimeter_1_1000:
        scaleFactor = 100 * 2.54f;
        break;
}

// Skalierung vornehmen, damit Fontgrößen korrekt übernommen werden
e.Graphics.ScaleTransform(scaleFactor, scaleFactor);

// Ausgaberechteck anpassen
Rectangle drawingRect = new Rectangle(
  new Point(Convert.ToInt32(e.ClipRectangle.Left/scaleFactor), Convert.ToInt32(e.ClipRectangle.Top/scaleFactor)),
  new Size(Convert.ToInt32(e.ClipRectangle.Width / scaleFactor), Convert.ToInt32(e.ClipRectangle.Height / scaleFactor)));

// Chartobjekt (hier: "chart1") ausgeben
chart1.Printing.PrintPaint(e.Graphics, drawingRect);

Links:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c
IDKBTD000775 KBTD000775