Dokumenttabellen erstellen
Belegtabellen sind sekundäre Transaktionstabellen, die Einträge für einen oder mehrere Anwendungsbereiche gleichzeitig ermöglichen. Sie sind nur insofern zweitrangig, als ihre Informationen über Erfassungstabellen in die Sachkonten gebucht und nicht direkt gebucht werden. Für die meisten Benutzer sind Belegtabellen das primäre Mittel zur Eingabe einer Transaktion.
Da Belegtabellen für Transaktionseinträge verwendet werden, verfügen sie über mehr Triggercodes zum Überprüfen von Daten als die meisten anderen Tabellentypen.
Die beiden Arten von Belegtabellen sind folgende:
Belegkopf
Belegzeile
Belegkopfzeilentabellen
Eine Belegkopfzeilentabelle enthält die wichtigsten Transaktionsinformationen, die für alle Zeilen im Beleg gelten. Bei einer Verkaufstransaktion enthält die Tabelle „Verkaufskopf“ beispielsweise Hauptinformationen zu Bestellungen oder Rechnungen, z. B. zum Debitor, zu dem die Bestellung oder Rechnung gehört, Buchungsdaten, Versandinformationen und ähnliche Informationen, die für alle Zeilen im Beleg gelten.
Belegzeilentabellen
Eine Belegzeilentabelle enthält detaillierte Informationen zur Transaktion. Beispielsweise enthält die Tabelle „Verkaufszeile“ für eine Verkaufstransaktion Informationen zu jeder Position der Bestellung oder Rechnung. Eine Belegzeilentabelle ist eine Nebentabelle der Belegkopfzeilentabelle
Wie Erfassungstabellen beziehen sich Belegtabellen auf viele andere Tabellen, einschließlich Mastertabellen, Ergänzungstabellen und Nebentabellen. Andere Tabellentypen sind selten mit anderen Belegtabellen verbunden.
Belegtabellennamen
Der Name einer Belegkopfzeilentabelle ist der Name der Transaktion oder des Belegs plus dem Wort Kopfzeile. Die Belegkopfzeilentabelle die Verkaufstransaktionen enthält, heißt beispielsweise „Verkaufskopf“. Jeder Datensatz enthält einen Verkauf, z. B. eine Bestellung oder eine Rechnung.
Beispielsweise wird eine Belegkopfzeilentabelle, die Transaktionen mit Zinsrechnungen enthält, als Zinsrechnungs-Kopfzeile bezeichnet. Jeder Datensatz enthält eine Zinsrechnung.
Der Name einer Belegzeilentabelle ist der Name der Transaktion oder des Belegs plus dem Wort Zeile. Die Belegzeilentabelle die Verkaufstransaktionen enthält, heißt beispielsweise „Verkaufszeile“. Jeder Datensatz enthält eine Zeile aus einem Verkauf, z. B. eine Bestellung oder eine Rechnung.
Beispielsweise wird die Belegzeilentabelle, die Transaktionen mit Zinsrechnungen enthält, als Zinsrechnungs-Zeile bezeichnet. Jeder Datensatz enthält eine Zeile aus einer Zinsrechnung.
Primärschlüssel und andere Standardfelder
Bei den meisten Belegkopfzeilentabellen ist der Primärschlüssel ein Codetypfeld mit dem Namen Nr. und mit der Länge von 20, das die Belegnummer enthält. Einige Belegkopfzeilentabellen enthalten mehrere Belegtypen. Beispielsweise enthält die Tabelle „Verkaufskopf“ Rechnungsbelege, Gutschriftenbelege, Verkaufsauftragsbelege und andere Belegarten. In diesen Fällen hat der Primärschlüssel zwei Felder:
Belegart – Optionsfeld
Nr. - Codefeld der Länge 20
Bei den meisten Belegzeilentabellen enthält der Primärschlüssel zwei Felder: ein Codetypfeld mit der Länge von 20, das die Belegnummer enthält, und ein Feld vom Typ „Integer“ mit dem Namen Zeilennr. Das Codefeld bezieht sich auf die Belegkopfzeilentabelle und wird nach dem Namen dieser Tabelle benannt (ohne das Wort Kopfzeile), gefolgt vom Primärschlüsselfeld dieser Tabelle.
Beispielsweise wird das Feld „Codetyp“ im Primärschlüssel der Tabelle „Zinsrechnung“ Zinsrechnungs-Nr. benannt.
Wenn der Primärschlüssel der Belegkopfzeilentabelle eine Belegart enthält, enthält der Primärschlüssel der Dokumentzeilentabelle die folgenden drei Felder:
Belegart – Optionsfeld
Belegnr. – Codefeld der Länge 20
Zeilennr. - Feld „Integer“
Das Codefeld bezieht sich auf die Dokumentkopfzeilentabelle.
Zugeordnete Seiten
Eine Dokumentkopfzeilentabelle verwendet eine Seite vom Typ „Dokument“, um jeweils einen Kopfzeilendatensatz anzuzeigen, sodass Sie die Informationen in der Kopfzeilentabelle anzeigen und bearbeiten können. Der Seitenname ist auch der Name des angezeigten Belegs.
Beispielsweise wird die Seite mit den Zinskosten aus der Tabelle „Zinskostentabelle“ als Zinskosten bezeichnet. Dieser Ansatz gilt auch dann, wenn die Tabelle mehrere Belegarten enthält, da in diesem Fall die Seite so eingerichtet ist, dass nur Informationen von einem Typ angezeigt werden. Beispielsweise wird die Seite, auf der Verkaufsrechnungen aus der Tabelle „Verkaufskopf“ angezeigt werden als Verkaufsrechnung bezeichnet.
Die Seite enthält Inforegister zum Aufteilen der Felder in logische Gruppen, wodurch Sie die Informationen einfacher bearbeiten können. Eine Belegseite enthält einen Seitenteil, der die Seite mit den Belegzeilen anzeigt.
Eine Belegzeilentabelle verwendet eine ListPart-Seite, um mehrere Zeilendatensätze gleichzeitig anzuzeigen. Der Name der Seite ist der Name des Dokuments, gefolgt vom Wort Zeilen oder Unterformular. Keines der Primärschlüsselfelder ist auf dieser Seite enthalten.
Diese Seite wird mit der Eigenschaft SubPageLink für alle primären Schlüsselfelder mit Ausnahme des Felds Zeilennr. gefiltert, das automatisch von der Eigenschaft AutoSplitKey der Seite bearbeitet wird.
In der Belegkopfzeilentabelle wird auch eine Listenseite verwendet, auf der Sie mehrere Belege gleichzeitig anzeigen können. Der Name dieser Seite entspricht dem Namen der Belegseite, gefolgt von dem Wort Liste. Beispielsweise wird die Listenseite, auf der die Verkaufsrechnungen angezeigt werden, als Verkaufsrechnungsliste bezeichnet.
Die Seite mit der Dokumentkopfzeilenliste verwendet die Eigenschaft CardPageID, um die Belegseite anzugeben, die angezeigt wird, wenn Sie einen neuen Beleg anzeigen, bearbeiten oder erstellen oder wenn Sie auf einen Beleg in der Liste doppelklicken.
Das folgende Beispiel zeigt einen Codeausschnitt der Tabelle „Verkaufskopf“.
table 36 "Sales Header"
{
Caption = 'Sales Header';
DataCaptionFields = "No.", "Sell-to Customer Name";
LookupPageID = "Sales List";
fields
{
field(1; "Document Type"; Option)
{
OptionMembers = Quote,"Order",Invoice,"Credit Memo","Blanket Order",
"Return Order";
}
field(2; "Sell-to Customer No."; Code[20])
{
TableRelation = Customer;
}
field(3; "No."; Code[20])
{
}
field(4; "Bill-to Customer No."; Code[20])
{
TableRelation = Customer;
}
...
}
keys
{
key(Key1; "Document Type", "No.")
{
Clustered = true;
}
}
}
Das folgende Beispiel zeigt einen Codeausschnitt der Tabelle „Verkaufszeile“.
table 37 "Sales Line"
{
Caption = 'Sales Line';
DrillDownPageID = "Sales Lines";
LookupPageID = "Sales Lines";
fields
{
field(1; "Document Type"; Option)
{
OptionMembers = Quote,"Order",Invoice,"Credit Memo","Blanket Order",
"Return Order";
}
field(2; "Sell-to Customer No."; Code[20])
{
TableRelation = Customer;
}
field(3; "Document No."; Code[20])
{
TableRelation = "Sales Header"."No."
where("Document Type" = field("Document Type"));
}
field(4; "Line No."; Integer)
{
}
field(5; Type; Option)
{
OptionMembers = " ","G/L Account",Item,Resource,"Fixed Asset",
"Charge (Item)";
}
field(6; "No."; Code[20])
{
TableRelation = if (Type = Const(" ")) "Standard Text"
else
if (Type = Const("G/L Account") "G/L Account"
else
if (Type = Const(Resource)) Resource
else
if (Type = Const("Fixed Asset")) "Fixed Asset"
else
if (Type = Const("Charge (Item)")) "Item Charge"
else
if (Type = Const(Item) Item;
}
...
field(11; Description; Text[100])
{
}
...
}
keys
{
key(Key1; "Document Type", "Document No.", "Line No.")
{
Clustered = true;
}
}
}
Dokumentverlauf-Tabelle
Dokumentverlauf-Tabellen haben dieselbe Beziehung zu Belegtabellen wie Sachkontotabellen zu Erfassungstabellen. Wenn ein Beleg gebucht wird, kopiert ein Teil dieses Buchungsprozesses die Belegtabellen in die entsprechenden Belegverlaufstabellen. Um diesen Kopiervorgang zu unterstützen, enthält die Belegverlaufstabelle Felder mit denselben Feldnummern, Namen und Eigenschaften wie die ursprünglichen Belegtabellen.
Da Belegverlaufstabellen gebuchte Transaktionen aufzeichnen, können sie vom Benutzer im Allgemeinen nicht bearbeitet werden. Sie können jedoch unter bestimmten Umständen gelöscht werden. Sie können beispielsweise eine gebuchte Verkaufsrechnung löschen, wenn diese gedruckt wurde. Abgesehen von diesen kleinen Unterscheidungen sind Belegverlaufstabellen und -seiten mit Belegtabellen und -seiten identisch.