GetFieldsOnLayout
Retourneert een lijst van de velden in een layout als JSON-gegevens.
Opmaak
GetFieldsOnLayout (layoutName)
Parameters
LayoutName - een tekstexpressie die de naam van de lay-out weergeeft. Als layoutName een lege string ('') is, wordt de huidige layout gebruikt.
Resulterend gegevenstype
tekst
Afkomstig uit versie
22.0
Beschrijving
Deze functie retourneert een JSON-object met informatie over velden in de opgegeven lay-out die toegankelijk zijn voor een zoekopdracht.
Velden die aan een van de volgende criteria voldoen, worden uitgesloten:
-
Het veldobject bevindt zich buiten het lay-outgebied (zie Velden in lay-outs plaatsen en verwijderen).
-
De optie Object verbergen wanneer aan de voorwaarde is voldaan en Toepassen in de zoekmodus is geselecteerd (zie Lay-outobjecten verbergen of tonen.
-
Voor veld-entry, Find-modus is uitgeschakeld (zie Gegevensinvoer in velden toestaan of beletten.
-
Veld voor Snel zoeken opnemen is niet geselecteerd (zie Snel zoeken configureren).
-
De bevoegdheden van de huidige account hebben geen leestoegang (Privileges voor toegang tot records bewerken).
-
Het veld is een samenvattend, algemeen of containerveld (zie Resumévelden definiëren, Globaalvelden definiëren (velden met globale opslag) en Containervelden).
Het geretourneerde JSON-object heeft de volgende structuur:
{
"layout_name": "LayoutName",
"fields": {
"TableOccurrence::FieldName1": {
"type": "string",
"description": "Veldannotatie of opmerking (optioneel)"
},
"TableOccurrence::FieldName2": {
"type": "number"
}
}
}
-
De toets
layout_namebevat de naam van de layout. -
Het object
veldenbevat sleutel-waardeparen voor elk toegankelijk veld. -
De sleutel van elk veld is de volledig gekwalificeerde naam (bijvoorbeeld TableOccurrence::FieldName).
-
De waarde van elk veld is een object met een
typesleutel (getalals het gegevenstype van het veld getal is; anderstekenreeks). -
Er wordt een optionele sleutel voor
beschrijvingopgenomen als het veld een annotatie (zie Geavanceerde veldopties definiëren) of een opmerking (zie Velden definiëren en wijzigen) heeft die is gedefinieerd in het dialoogvenster Database beheren. Als een veld beide heeft, wordt de annotatie gebruikt als de waarde van de sleutelbeschrijving. Als een veld alleen een opmerking bevat, wordt de opmerking gebruikt. Als een van beide begint met[LLM], wordt het voorvoegsel[LLM]verwijderd voor achterwaartse compatibiliteit met de[LLM]-tag-conventie die wordt gebruikt in versies ouder dan FileMaker 26.0,1.
Opmerkingen
-
Deze functie gebruikt dezelfde criteria om te bepalen welke velden toegankelijk zijn voor een zoekopdracht en welke veldgegevens worden geretourneerd als de scriptstap Zoeken op natuurlijke taal uitvoeren scriptstap.
Voorbeeld 1
Retourneert een JSON object dat de velden beschrijft die toegankelijk zijn voor een zoekopdracht in de layout Producten.
JSONFormatElements ( GetFieldsOnLayout ( "Producten" ) )
Als de lay-out Producten de volgende velden bevat:
| Veldnaam | Annotatie | Opmerking |
|---|---|---|
|
CreationDate |
Aanmaakdatum voor product |
|
|
Prijs |
Prijs van het product in USD |
|
|
ProductID |
Primaire sleutel die een product uniek identificeert |
Productcode |
|
ProductName |
|
[LLM] Beschrijvende naam van het product. |
|
Status |
|
|
|
g_UserFavorites |
Algemeen veld met de favoriete producten van de huidige gebruiker |
De functie geeft het volgende resultaat:
{
"fields" :
{
"Products::CreationDate" :
{
"description" : "Aanmaakdatum van product",
"type" : "string"
},
"Products::Price" :
{
"description" : "Prijs van het product in USD",
"type" : "number"
},
"Products::ProductID" :
{
"description" : "Primaire sleutel die een product uniek identificeert",
"type" : "number"
},
"Products::ProductName" :
{
"description" : "Beschrijvende naam van het product",
"type" : "string"
},
"Products::Status" :
{
"type" : "string"
}
},
"layout_name" : "Producten"
}
Let op het volgende:
-
ProductID: De sleutel
beschrijvingbevat de annotatie (de opmerking wordt genegeerd). -
ProductName: De sleutel
beschrijvingbevat de opmerking waarbij het voorvoegsel[LLM]is verwijderd (er is geen annotatie). -
Status: Er verschijnt geen sleutel
beschrijving(er is geen annotatie of opmerking). -
g_UserFavorites: Het veld wordt volledig weggelaten (globale velden zijn niet toegankelijk voor een zoekopdracht).
Voorbeeld 2
Retourneert een lijst met alle velden in de huidige lay-out en een lijst met alle velden in de huidige lay-out die toegankelijk zijn voor een zoekopdracht. Dit kan velden aangeven die niet toegankelijk waren voor een zoekopdracht.
Let (
[
layoutFields = FieldNames ( Get ( FileName ) ; Get ( LayoutName ) ) ;
findFields = JSONListKeys ( GetFieldsOnLayout ( Get ( LayoutName ) ) ; "fields" ) ;
sortedLayoutFields = SortValues ( layoutFields ; 1 ) ;
sortedFindFields = SortValues ( findFields ; 1 ) ;
$$result = "Alle velden in de huidige lay-out:" & ¶ & sortedLayoutFields & ¶ &
"Van deze velden zijn dit de velden die toegankelijk zijn voor een zoekopdracht:" & ¶ & sortedFindFields
] ;
$$result
)
Mogelijke uitvoer opgeslagen in $$Resultaat voor de lay-out Producten:
Alle velden in de huidige lay-out:
CreationDate
Photo
Price
ProductID
ProductName
Status
Van deze velden zijn dit de velden die toegankelijk zijn voor een zoekopdracht:
Products::CreationDate
Products::Price
Products::ProductID
Products::ProductName
Products::Status