Show / Hide Table of Contents

    Informationsboxen / Flashes

    Datei - Informationssysteme

    Eine aktive Heftklammern bedeuten, dass ein Datensatz „angehängt“ ist, d.h. dass eine „Verknüpfung“ zu einem Datensatz existiert. Klickt man „normal“ auf eine Heftklammer, öffnet sich (ganz normal) der angehängte Datensatz im Input (alles wie immer).

    Erstellen einer Informationsbox

    Sofern der Benutzer das Recht "Kann 4D-Skripts erstellen und bearbeiten" hat, kann er Skripts für Informationsboxen erstellen. CTRL+Klick auf An jede aktive (nicht gedimmte) Heftklammer kann eine Informationsbox gehängt werden.

    Klickt man mit gedrückter CTRL+Taste auf eine (aktive) Heftklammer, kann man ein Skript hinterlegen. Das Skript legt fest, welche Informationen in der Infobox dergestellt werden. Grundkonfiguration:

    "InfSys_Related_Record_Load"

    • Mit der Methode „InfSys_Related_Record_Load“ und einer ganzen Zahl (zwischen 1 und 50) als Argument kann man event. hinterlegte Datensätze laden, so dass man auf deren Felder/Werte zugreifen kann.
    • Mit der speziellen Methode „InfSys_Related_Record_Load“ kann man einen „verknüpften“ Datensatz laden, so dass man auf seinen Inhalt zugreifen kann.
    • Die Methode „InfSys_Related_Record_Load“ benötigt eine Zahl als Parameter (hier: InfSys_Related_Record_Load(1)) wobei der Parameter 1 angibt, dass man den Datensatz hinter der Heftklammer Nr. 1 laden will.
    • Man kann also auch im Skript der 1. Heftklammer einen Datensatz der 19. Heftklammer laden, indem man im Skript der 1. Heftklammer „InfSys_Related_Record_Load(19)“ eingibt. Weitere Bemerkungen:
    • Wird auf Felder zugegriffen, welche nicht alphanumerisch sind bzw. welche keinen Text beinhalten (Datümmer, Zahlen usw.), muss der Feldwert mit dem Befehl „String“ eingelesen werden:
    • Beispiele: String([s0_Person]s_Geburtstag) oder String([Beleg]Umsatz) oder String([Artikel]s_Lagerbestand) usw.

    Beispiel 1

    <>Result_Text:="" <>Result_Text:=<>Result_Text+"----------------------------------------"+<>CR <>Result_Text:=<>Result_Text+[r0_Informationssystem]s_Feld__1+<>CR <>Result_Text:=<>Result_Text+[r0_Informationssystem]s_Feld__2+<>CR <>Result_Text:=<>Result_Text+"----------------------------------------"+<>CR

    Das Skript ergibt:

    wobei im Feld [r0_Informationssystem]s_Feld__1  „Zürcher Kantonalbank“ und im Feld [r0_Informationssystem]s_Feld__2 „LTV Gelbe Seiten AG, 8050 Zürich“ steht. Dieses Skript zeigt also nur Informationen aus der Informationssystem selber an und macht deshalb nicht unbedingt viel Sinn – ausser man zeigt in einer derartigen Infobox Informationen aus einem anderen Register desselben Datensatzes im Informationssystem an.

    Beispiel 2

    <>Result_Text:="" <>Result_Text:=<>Result_Text+"-------------Diverse Angaben zur Person-------------"+<>CR <>Result_Text:=<>Result_Text+"----------------------------------------------------"+<>CR InfSys_Related_Record_Load(1)  `=lade den verknüpften Datensatz des ersten Buttons <>Result_Text:=<>Result_Text+"Name:       "+[s0_Person]s_Nachname+" "+[s0_Person]s_Vorname+<>CR <>Result_Text:=<>Result_Text+"Geburtstag: "+String([s0_Person]s_Geburtstag)+<>CR

    Das Skript ergibt:

    wobei die ersten beiden Skriptzeilen nur eine Art „Titel“ darstellen. Auf jeden Fall wurde im obigen Skript mit „InfSys_Related_Record_Load(1)“ der mit der 1. Heftklammer „verknüpfte“ Datensatz geladen und ist im Beispiel bzw. im Informationssystem eine [s0_Person]. Deshalb werden in den folgenden Zeilen des Skripts die Felder [s0_Person]s_Nachname, [s0_Person]s_Vorname und [s0_Person]s_Geburtstag eingelesen, so dass diese Werte in der Infobox angezeigt werden.

    Beispiel 3 (mit Telefonnummer)

    <>Result_Text:="" InfSys_Related_Record_Load(1) `hinter Button 1 steht die Adresse; daraus sollen Infos geholt werden If(records in selection([s0_Adresse])=1) <>Result_Text:=<>Result_Text+"Adresse Arbeitnehmer:"+<>CR <>Result_Text:=<>Result_Text+"---------------------------------------"+<>CR <>Result_Text:=<>Result_Text+[s0_Adresse]s_Adressetikette+<>CR Case of :([s0_Adresse]r_Firma>0) QUERY([r0_Fon_Fax_Mail];[r0_Fon_Fax_Mail]m_Firma=[s0_Adresse]r_Firma) :([s0_Adresse]r_Person>0) QUERY([r0_Fon_Fax_Mail];[r0_Fon_Fax_Mail]m_Person=[s0_Adresse]r_Person) else REDUCE SELECTION([r0_Fon_Fax_Mail];0) end case C_LONGINT($i) <>Result_Text:=<>Result_Text+<>CR+<>CR+"Verbindungen:"+<>CR <>Result_Text:=<>Result_Text+"---------------------------------------"+<>CR For($i;1;Records in selection([r0_Fon_Fax_Mail])) GOTO SELECTED RECORD([r0_Fon_Fax_Mail];$i) <>Result_Text:=<>Result_Text+<>CR+[r0_Fon_Fax_Mail]c_Verbindung+": "+[r0_Fon_Fax_Mail]s_Nummer End for REDUCE SELECTION([r0_Fon_Fax_Mail];0) end if REDUCE SELECTION([s0_Adresse];0)

    • Bearbeiten
    Back to top Generated by DocFX