combit List & Label 29 - .NET Hilfe
Einführung in die Programmierung / Weitere wichtige Konzepte / Objektmodell (DOM)
In diesem Thema
    Objektmodell (DOM)
    In diesem Thema

    Während der Designer eine sehr komfortable und mächtige Oberfläche zur Bearbeitung der Projektdateien bietet, kann es oft auch gewünscht sein, Objekt- oder Berichtseigenschaften direkt per Code zu bestimmen. So kann die Anwendung z.B. dem Anwender einen vorgeschalteten Dialog zur Datenvorauswahl anbieten und den Designer bereits mit einem so vorbereiteten Projekt öffnen. Ein Beispiel hierfür zeigt das mitinstallierte Beispiel Simple DOM Sample.

    Der Zugriff auf das Objektmodell ist erst ab der Professional Edition möglich.

    Die folgende Tabelle listet die wichtigsten Klassen und Eigenschaften aus dem combit.Reporting.Dom Namespace auf. Innerhalb der einzelnen Klassen findet sich über die IntelliSense-Unterstützung recht einfach die gesuchte Eigenschaft:

    Klasse Funktion

    ProjectList

    ProjectLabel

    ProjectCard

    Die eigentlichen Projektklassen. Diese stellen das Wurzelelement des Projektes dar. Schlüsselmethoden sind OpenSave und Close.

    Wichtiger Hinweis: Es ist auch möglich beim Öffnen eines Projektes mit DOM zu bestimmen, dass beim Bearbeiten etwaige Fehler ignoriert werden sollen. So ist es möglich auch ohne den Zugriff auf die ursprüngliche Datenquelle die Projektdatei zu bearbeiten. 

    Doch Änderungen an der (Daten)Struktur des Projektes, die auf Formeln oder Variablen/Felder der Datenquelle basieren können hierbei aber nicht berücksichtigt und umgesetzt werden. Denn ohne Datenquelle werden dann die Formeln im Projekt wie Platzhalter behandelt, und somit kann dann die Sektion mit den verwendeten Variablen (siehe LlGetUsedIdentifiers()) nicht korrekt geschrieben werden, wenn Sie z.B. in einer Tabelle weitere Spalten anhängen. Der Inhalt dieser Sektion wird beim Speichern dann unverändert gelassen. Das gleiche gilt für den Fall, dass in einem Berichtscontainer eine neue Tabelle eingefügt wird, die bisher nicht verwendet wurde. Zusätzlich können dabei die DOM Typen einzelner Elemente in der Projektdatei nicht korrekt identifiziert werden.

    Erst wenn auch die Datenquelle im verwendeten ListLabel-Objekt bekannt ist, kann das Projekt mit DOM vollständig und ohne Einschränkungen bearbeitet werden. Nur so können etwaige Formeln etc. interpretiert werden, um den korrekten DOM-Typen zu verwenden.

    <Project>.Objects Eine Auflistung der Objekte innerhalb des Projekts. Die Objekte sind von ObjectBase abgeleitet und verfügen jeweils über eigene Eigenschaften und ggf. Auflistungen (z.B. Textabsätze).
    <Project>.Regions Eine Auflistung der Layout-Bereiche des Projekts. Hierüber kann z.B. eine seitenabhängige Druckersteuerung realisiert werden. Weitere Informationen finden sich auch in Verschiedene Drucker und Kopiendruck.
    ObjectText Repräsentiert ein Textobjekt. Schlüsseleigenschaft ist Paragraphs, der eigentliche Inhalt des Texts.
    ObjectReportContainer Repräsentiert einen Berichtscontainer. Schlüsseleigenschaft ist SubItems, der eigentliche Inhalt des Berichtscontainers.
    SubItemTable Repräsentiert eine Tabelle innerhalb des Berichtscontainers. Diese besteht aus verschiedenen Zeilenbereichen (Lines Eigenschaft), die wiederum verschiedene Spalten (Columns Eigenschaft einer Zeile) haben.