GetFieldsOnLayout
Gibt eine Liste der Felder in einem Layout als JSON-Daten zurück.
Format
GetFieldsOnLayout ( LayoutName )
Parameter
LayoutName – ein Textausdruck, der den Namen des Layouts darstellt. Wenn LayoutName ein leerer String ("") ist, wird das aktuelle Layout verwendet.
Zurückgegebener Datentyp
Text
Ursprung in Version
22.0
Beschreibung
Diese Funktion gibt ein JSON-Objekt zurück, das Informationen zu Feldern im angegebenen Layout enthält, auf die eine Suche zugreifen kann.
Felder, die eines der folgenden Kriterien erfüllen, werden ausgeschlossen:
-
Das Feldobjekt befindet sich außerhalb des Layoutbereichs (siehe Platzieren und Entfernen von Feldern in einem Layout).
-
Die Bedingung Objekt ausblenden, wenn ist erfüllt und Im Suchenmodus anwenden ist ausgewählt (siehe Aus- und Einblenden von Layoutobjekten).
-
Für Feldeingabe ist Suchenmodus nicht ausgewählt (siehe Gestatten oder Verhindern der Dateneingabe in Felder).
-
Feld in Schnellsuche einschließen ist nicht ausgewählt (siehe Konfigurieren der Schnellsuche).
-
Die Berechtigungen für das aktuelle Konto haben keinen Lesezugriff (siehe Bearbeiten von Datensatz-Zugriffsrechten).
-
Das Feld ist ein Statistikfeld, ein Variablenfeld oder ein Containerfeld (siehe Definieren von Statistikfeldern, Definieren von Variablenfeldern (Felder mit globaler Speicherung) und Erläuterung von Containerfeldern).
Das zurückgegebene JSON-Objekt hat die folgende Struktur:
{
"layout_name": "LayoutName",
"felder": {
"TabellenAuftreten::FeldName1": {
"typ": "string",
"beschreibung": "Feldanmerkung oder -kommentar (optional)"
},
"TabellenAuftreten::FeldName2": {
"typ": "zahl"
}
}
}
-
Der Schlüssel
layout_nameenthält den Namen des Layouts. -
Das Objekt
felderenthält Schlüssel-Wert-Paare für jedes zugängliche Feld. -
Der Schlüssel jedes Felds ist dessen voll qualifizierter Name (z. B. TabellenAuftreten::FeldName).
-
Der Wert jedes Felds ist ein Objekt mit einem
typ-Schlüssel (zahl, wenn der Datentyp des Felds eine Zahl ist, andernfallsstring). -
Ein optionaler Schlüssel
beschreibungwird hinzugefügt, wenn für das Feld im Dialogfeld „Datenbank verwalten“ eine Anmerkung (siehe Definieren von erweiterten Feldoptionen) oder ein Kommentar (siehe Definieren und Ändern von Feldern) definiert wurde. Wenn ein Feld beides enthält, wird die Anmerkung als Wert des Schlüsselsbeschreibungverwendet. Wenn ein Feld nur einen Kommentar enthält, wird dieser verwendet. Wenn eines der beiden mit[LLM]beginnt, wird das Präfix[LLM]entfernt, um die Abwärtskompatibilität mit der Tag-Konvention[LLM]zu gewährleisten, die in Versionen vor FileMaker 26.0.1 verwendet wurde.
Hinweise
-
Diese Funktion verwendet dieselben Kriterien wie der Scriptschritt „Suchen mit natürlicher Sprache“, um zu bestimmen, auf welche Felder eine Suche zugreifen kann und welche Feldinformationen zurückgegeben werden.
Beispiel 1
Gibt ein JSON-Objekt zurück, das die Felder beschreibt, auf die eine Suche im Layout „Produkte” zugreifen kann.
JSONFormatElements ( GetFieldsOnLayout ( "Produkte" ) )
Wenn das Produktlayout diese Felder enthält:
| Feldname | Anmerkung | Kommentar |
|---|---|---|
|
Erstellungsdatum |
Erstellungsdatum für Produkt |
|
|
Preis |
Preis des Produkts in USD |
|
|
ProduktID |
Primärschlüssel, der ein Produkt eindeutig identifiziert |
Produkt-ID |
|
Produktname |
|
[LLM] Beschreibender Name des Produkts |
|
Status |
|
|
|
g_BenutzerFavoriten |
Variablenfeld mit den bevorzugten Produkten des aktuellen Benutzers |
Die Funktion gibt zurück:
{
"felder" :
{
"Produkte::Erstellungsdatum" :
{
"beschreibung" : "Erstellungsdatum für Produkt",
"typ" : "string"
},
"Produkte::Preis" :
{
"beschreibung" : "Preis des Produkts in USD",
"typ" : "zahl"
},
"Produkte::ProduktID" :
{
"beschreibung" : "Primärschlüssel, der ein Produkt eindeutig identifiziert",
"typ" : "zahl"
},
"Produkte::ProduktName" :
{
"beschreibung" : "Beschreibender Name des Produkts",
"typ" : "zahl"
},
"Produkte::Status" :
{
"typ" : "string"
}
},
"layout_name" : "Produkte"
}
Beachten Sie Folgendes:
-
ProduktID: Der Schlüssel
beschreibungenthält die Anmerkung (der Kommentar wird ignoriert). -
ProduktName: Die
beschreibungenthält den Kommentar mit dem entfernten Präfix[LLM](keine Anmerkung vorhanden). -
Status: Kein Schlüssel
beschreibungwird angezeigt (keine Anmerkung oder Kommentar vorhanden). -
g_BenutzerFavoriten: Das Feld wird ganz weggelassen (globale Felder sind für eine Suche nicht zugänglich).
Beispiel 2
Gibt eine Liste aller Felder im aktuellen Layout und eine Liste aller Felder im aktuellen Layout zurück, auf die über eine Suche zugegriffen werden kann. Dies kann auf Bereiche hinweisen, von denen Sie nicht wussten, dass sie für eine Suche nicht zugänglich sind.
SetzeVar (
[
layoutFelder = FeldNamen ( Hole ( DateiName ) ; Hole ( LayoutName ) ) ;
sucheFelder = JSONListKeys ( GetFieldsOnLayout ( Hole ( LayoutName ) ) ; "felder" ) ;
sortierteLayoutFelder = SortValues ( layoutFelder ; 1 ) ;
sortierteSucheFelder = SortValues ( sucheFelder ; 1 ) ;
$$ergebnis = "Alle Felder im aktuellen Layout:" & ¶ & sortierteLayoutFelder & ¶ &
"Von diesen sind die folgenden Felder für eine Suche zugänglich:" & ¶ & sortierteSucheFelder
] ;
$$ergebnis
)
Mögliche Ausgabe, die in $$ergebnis für das Layout „Produkte“ gespeichert ist:
Alle Felder im aktuellen Layout:
Erstellungsdatum
Foto
Preis
ProduktID
ProduktName
Status
Von diesen sind die folgenden Felder für eine Suche zugänglich:
Produkte::Erstellungsdatum
Produkte::Preis
Produkte::ProduktID
Produkte::ProduktName
Produkte::Status