Entwicklerdokumentation

Wie baue ich Reports?

Um die erweiterten Belegtexte in Reports anzeigen zu können oder mit ihnen arbeiten zu können, müssen zuerst die richtigen Texte gefunden werden.

Hinweis: Wenn in der Einrichtung gewählt wurde, dass die Zeilenbelegtexte direkt in den Belegzeilen verarbeitet werden sollen, werden diese mit den restlichen Belegzeilen direkt angezeigt, ohne dass Sie etwas tun müssen. Um die Kopfbelegtexte müssen Sie sich dann jedoch trotzdem noch kümmern.

Tabellenauswahl

Zuerst muss die richtige Tabelle ausgesucht werden:

  • "kmidt_SalesDocumentText":

    Für alle ungebuchten Verkaufsbelege

  • "kmidt_PstdSalesDocumentText":

    Für alle gebuchten Verkaufsbelege

  • "kmidt_PurchaseDocumentText":

    Für alle ungebuchten Einkaufsbelege

  • "kmidt_PstdPurchaseDocumentText":

    Für alle gebuchten Einkaufsbelege

  • "kmidt_FinanceDocumentText":

    Für alle Mahnungen und Zinsrechnungen

  • "kmidt_IssuedFinDocumentText":

    Für alle registrierten Mahnungen und Zinsrechnungen

  • "kmidt_ServiceDocumentText":

    Für alle ungebuchten Servicebelege

  • "kmidt_PstdServDocumentText":

    Für alle gebuchten Servicebelege

  • "kmidt_ArchSalesDocumentText":

    Für alle archivierten Verkaufsbelege

  • "kmidt_ArchPurchaseDocumentText":

    Für alle archivierten Einkaufsbelege

Filter

Um nun die Texte für den spezifischen Beleg zu erhalten, muss auf diese wie folgt gefiltert werden:

  • "Document Type":

    Die Belegart des zu druckenden Belegs

    Hier werden bei ungebuchten Verkaufs-, Einkaufs- und Servicebelegen die Enums aus dem Standard verwendet:

    • "Sales Document Type"
    • "Purchase Document Type"
    • "Service Document Type"

    Für gebuchte Belege sowie Mahnungen oder Zinsrechnungen sind eigene Enums in unserer Erweiterung definiert:

    • "kmidt_PstdSalesDocumentType"
    • "kmidt_PstdPurchaseDocumentType"
    • "kmidt_PstdServiceDocumentType"
    • "kmidt_FinanceDocumentTypes"
    • "kmidt_IssuedFinDocumentTypes"
  • "Document No.":

    Die Belegnummer des Belegs

  • "Type":

    Der Belegtexttyp

    Dieser ist definiert in einem eigenen Enum "kmidt_DocumentTextType"

    Bei Kopfbelegtexten gibt es folgende Möglichkeiten:

    • "kmidt_Customer" (Für debitorenbezogene Texte)
    • "kmidt_Vendor" (Für kreditorenbezogene Texte)
    • "kmidt_Document" (Für belegbezogene Texte)

    Bei Zeilenbelegtexten gibt es folgende Möglichkeiten:

    • "kmidt_Item" (Für artikelbezogene Texte)
    • "kmidt_Resource" (Für ressourcenbezogene Texte)
    • "kmidt_GLAccount" (Für sachkontenbezogene Texte)
    • "kmidt_FixedAsset" (Für anlagenbezogene Texte)
  • "Attached to Line No.":

    Die Zeilennummer, auf die sich der Text bezieht

    Bei Kopftexten muss bei diesem Feld auf 0 gefiltert werden

    Bei Zeilentexten muss bei diesem Feld auf die zugehörige Zeilennummer gefiltert werden

  • "Text Position":

    Die Textposition des Texts

    Diese wird ebenfalls durch ein eigenes Enum "kmidt_TextPosition" angegeben:

    • "kmidt_Leading" (Für Vortexte)
    • "kmidt_Trailing" (Für Nachtexte)
  • Gültigkeitshaken:

    Jede Belegart hat einen Gültigkeitshaken als Feld in den Tabellen

    Möchten Sie also Belegtexte für einen Verkaufsauftrag finden, so müssen Sie im Feld "Sales Order" auf "true" filtern

Report-Aufbau

Beispiel-Report: 1305 - "Standard Sales - Order Conf."

Report Beispiel

Für die Richtexte wird noch folgendes ergänzt:

Report Ergänzung Rich Texte

Zudem muss der Rich Text in einem Platzhalter gespeichert werden, um die HTML-Formatierung aktivieren zu können.

Eigene Events

Folgende Events stehen in unseren Codeunits zur Verfügung:

"kmidt_CopyDocTextManagement"

  • "OnBeforeReadLines"
  • "OnAfterReadLines"

"kmidt_SalesDocProcedures"

  • "OnBeforeCopySalesDocTexts"
  • "OnBeforeStoreSalesHeaderDocTexts"
  • "OnBeforeRestoreSalesHeaderDocTexts"
  • "OnBeforeCopyFromSalesDocTextToHeader"
  • "OnBeforeStoreSalesLineDocTexts"
  • "OnBeforeSalesDocCheckIfAnyExtText"
  • "OnAfterSalesDocCheckIfAnyExtText"
  • "OnBeforeCustomerCheckIfAnyExtText"
  • "OnAfterCustomerCheckIfAnyExtText"
  • "OnBeforeInsertSalesDocText"
  • "OnBeforeSalesLineCheckIfAnyExtText"
  • "OnBeforeCheckAndInsertSalesLineTexts"
  • "OnBeforeGetSalesTextType"
  • "OnBeforeFindNextPstdSalesDocTextLineNo"
  • "OnAfterCopySalesDocTexts"
  • "OnAfterStoreSalesHeaderDocTexts"
  • "OnAfterRestoreSalesHeaderDocTexts"
  • "OnAfterCopyFromSalesDocTextToHeader"
  • "OnAfterStoreSalesLineDocTexts"
  • "OnAfterInsertSalesDocText"
  • "OnAfterSalesLineCheckIfAnyExtText"
  • "OnAfterCheckAndInsertSalesLineTexts"
  • "OnAfterGetSalesTextType"
  • "OnAfterFindNextPstdSalesDocTextLineNo"

"kmidt_PurchDocProcedures"

  • "OnBeforeCopyPurchDocTexts"
  • "OnBeforeStorePurchHeaderDocTexts"
  • "OnBeforeStorePurchaseLineDocTexts"
  • "OnBeforePurchDocCheckIfAnyExtText"
  • "OnAfterPurchDocCheckIfAnyExtText"
  • "OnBeforeVendorCheckIfAnyExtText"
  • "OnAfterVendorCheckIfAnyExtText"
  • "OnBeforeInsertPurchDocText"
  • "OnBeforePurchLineCheckIfAnyExtText"
  • "OnBeforeCheckAndInsertPurchLineTexts"
  • "OnBeforeGetPurchaseTextType"
  • "OnBeforeCopyFromPurchDocTextToHeader"
  • "OnBeforeFindNextPstdPurchDocTextLineNo"
  • "OnAfterCopyPurchDocTexts"
  • "OnAfterStorePurchHeaderDocTexts"
  • "OnAfterStorePurchaseLineDocTexts"
  • "OnAfterInsertPurchDocText"
  • "OnAfterPurchLineCheckIfAnyExtText"
  • "OnAfterCheckAndInsertPurchLineTexts"
  • "OnAfterGetPurchaseTextType"
  • "OnAfterCopyFromPurchDocTextToHeader"
  • "OnAfterFindNextPstdPurchDocTextLineNo"

"kmidt_ServiceDocProcedures"

  • "OnBeforeCopyServHeaderDocTexts"
  • "OnBeforeServDocCheckIfAnyExtText"
  • "OnAfterServDocCheckIfAnyExtText"
  • "OnBeforeCustomerCheckIfAnyExtServText"
  • "OnAfterCustomerCheckIfAnyExtServText"
  • "OnBeforeInsertServDocText"
  • "OnAfterCopyServHeaderDocTexts"
  • "OnAfterInsertServDocText"

"kmidt_FinanceDocProcedures"

  • "OnBeforeCopyFinChrgMemoHeaderDocTexts"
  • "OnBeforeCopyReminderHeaderDocTexts"
  • "OnBeforeReminderDocCheckIfAnyExtText"
  • "OnAfterReminderDocCheckIfAnyExtText"
  • "OnBeforeInsertFinDocText"
  • "OnBeforeFinChrgMemoDocCheckIfAnyExtText"
  • "OnAfterFinChrgMemoDocCheckIfAnyExtText"
  • "OnBeforeReminderCustCheckIfAnyExtText"
  • "OnAfterReminderCustCheckIfAnyExtText"
  • "OnBeforeFinChrgMemoCustCheckIfAnyExtText"
  • "OnAfterFinChrgMemoCustCheckIfAnyExtText"
  • "OnAfterCopyFinChrgMemoHeaderDocTexts"
  • "OnAfterCopyReminderHeaderDocTexts"
  • "OnAfterInsertFinDocText"

Programmablaufplan

Von den Stammdaten in den Beleg

Allgemeiner Belegtext

Von Stammdaten zu Beleg (Allgemeiner Belegtext)


Debitorenbelegtext

Von Stammdaten zu Beleg (Debitorenbelegtext)


Zeilenbelegtext

Von Stammdaten zu Beleg (Zeilenbelegtext)


Von einem zum anderen Beleg

Von einem zum anderen Beleg