Felder aus anderer Datenquelle
Feld aus anderer Datenquelle in Tabelle einbringen - (Ereignismanager-Register: OnCalcFields/Lookup
Beispiel 1:
In der Tabelle im Formular Suchen Aufträge (Menü Verkauf/Auftrag/Suchen) soll das Kreditlimit als "CalcField" in die Tabelle aufgenommen und angezeigt werden.
Sie klicken im Register OnCalcFields/Lookup auf den Button Feld einfügen.

In dem Formular Ereignismanager berechnetes Feld geben Sie die Daten ein.

Feldname, Feldtyp, Feldbreite: In Feldname geben Sie die Bezeichnung für die Spalte ein. Wählen Sie dann den Feldtyp und geben Sie die gewünschte Feldbreite ein. Aktivieren Sie das Kontrollkästchen Feld ist in Grids automatisch sichtbar (sonst über Designer einblenden). Als Betriebsart wählen Sie Lookup in anderer Datenquelle.
Vergleichsfeld, Lookup-Datenquelle, Schlüsselfeld, Ergebnisfeld: Als Vergleichsfeld muss ein Feld aus der Datenquelle gewählt werden, dass die gleichen Daten enthält, wie ein Feld aus der Lookup-Datenquelle. (Beispiel: In einer Datenquelle "A" wird die AdressNr. im Feld AdrNr verwaltet, in der Lookup-Datenquelle "B" wird die AdressNr. im Feld LiefAdrNr verwaltet - dementsprechend müsste also in das Vergleichsfeld: "AdrNr" eingetragen werden und im Schlüsselfeld: "LiefAdrNr".). Hier im Beispiel der Grafik sind allerdings bei Felder gleichlautend.
Die Lookup-Datenquelle (hier "Adressdaten.SuchAdresseSource") ist die Tabelle, aus das Feld gezogen wird.
Schlüsselfeld - siehe weiter oben "Vergleichsfeld"
Als Ergebnisfeld muss der Name des Feldes (aus der Lookup-Datenquelle), dessen Inhalt in die Tabelle aufgenommen werden soll, eingetragen werden.
Ergebnis aus dem Beispiel 1 im Ereignismanager

Beispiel 2:
In der Tabelle im Formular Suchen Bestellungen (Menü Einkauf/Bestellung/Suchen) soll zusätzlich die Faxnummer jeder Adresse angezeigt werden.
In der Datei KomArt sind die Kommunikationsarten gespeichert, wobei z.B. der Bezeichnung "Telefon" die KomArt = 1 fest zugewiesen ist, der Bezeichnung Fax ist die KomArt = 2 fest zugewiesen, danach folgen Internet mit 3, E-Mail mit 4, usw. In der Datei KomVb ist die AdrNr mit dem Feld KomArt verbunden. D. h. in dieser Datei gibt es mehrere Einträge für die gleiche Adresse (AdrNr) - jedoch jeweils mit unterschiedlicher KomArt - je nachdem, welche Kommunikationsart(en) der Adresse zugewiesen wurden.
Damit im Formular Suchen Bestellungen die Faxnummer angezeigt wird, muss u.a. der Festwert (für die KomArt) definiert sein.
Sie klicken im Register OnCalcFields/Lookup auf den Button Feld einfügen. und geben zuerst die Daten für den Festwert ein.
Festwert definieren
Sie wählen die Option Festwert und tragen in das Feld Festwert: 2 ein. In Feldname bestimmen Sie die Definition für den Festwert. Diese Bezeichnung wird später für den Eintrag in das Vergleichsfeld benötigt. Als Feldtyp muss "TFloatField" gewählt werden.

Nachdem Sie den Festwert eingetragen haben, schließen Sie das Formular Ereignismanager berechnetes Feld.
Lookup in anderer Datenquelle definieren
Sie klicken wieder auf den Button Feld einfügen um ein weiteres Feld zu übernehmen (nämlich das Feld für die Faxnummer).
Wählen Sie die Option Lookup in anderer Datenquelle. Geben Sie den gewünschten Feldnamen, den Feldtyp usw. ein. Dann wählen Sie die Lookup-Datenquelle.
Im unteren Bereich wählen Sie das Vergleichsfeld "AdrNr" und ergänzen die Zeile mit der Bezeichnung, die Sie für den Festwert vergeben haben. Die Felder müssen durch ein Semikolon getrennt werden.
Dann muss das Schlüsselfeld angegeben werden. In diesem Fall sind es zwei: AdrNr und KomArt. Auch diese Felder sind durch Semikolon zu trennen.
Das Ergebnisfeld muss KomNr lauten (hier sind die eigentlichen Fax- und Telefonnummern, sowie auch Internetadressen, usw. der Adressen gespeichert.)

Nachdem Sie die Daten für den Festwert und für das Lookup in anderer Datenquelle eingegeben haben sieht das Register OnCalcFields/Lookup z.B. folgendermaßen aus.

Ergebnis aus dem Beispiel 2 im Ereignismanager

Da für den Festwert (hier FestW) das Kontrollkästchen Feld in Grids automatisch sichtbar ... nicht aktiviert war, wird es auch nicht in der Tabelle angezeigt.
Beispiel 3
Es sollen nur Bestände von bestimmten Lagerorten für die Bestandssummierung herangezogen und in einem gesonderten Feld ausgegeben werden.
Beispiel: Nur die Bestände von Lagerort 1 und 3 sollen summiert und ausgegeben werden.
1. Legen Sie die Datenquelle "Artikeldaten.Artikelsource" fest.
2. Wählen Sie das Register OnCalcFields/Lookup und klicken Sie dort auf den Button Neueingabe.
3. Geben Sie in Feldname: "SummeVielLager" ein und wählen Sie als Feldtyp: "TFloatField".
4. Wählen Sie im Bereich Betriebsart: "SQL-Statement" und geben Sie dort die entsprechende Anweisung (siehe nachfolgende Grafik) ein:

5. Schließen Sie nun die Formulare des Ereignismanagers.
6. Rufen Sie die Artikelstammdaten auf und fügen Sie über den Designer das Feld "SummeVielLager" aus der Datenquelle "Artikeldaten.ArtikelSource" ein.
Beispiel - Ausschnitt aus den Artikelstammdaten, Register Lager.

Die Summenzeile zeigt den Bestand aller Lagerorte. Das Feld SummeVielLager jedoch nur die Bestände aus den Lagerorten 1 + 3.
info@visigate.de - visigate© Software GmbH - Bremen - www.visigate.de