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 geretourneerde JSON-object heeft de volgende structuur:

Kopiëren
{
    "layout_name": "LayoutName",
    "fields": {
        "TableOccurrence::FieldName1": {
            "type": "string",
            "description": "Veldannotatie of opmerking (optioneel)"
        },
        "TableOccurrence::FieldName2": {
            "type": "number"
        }
    }
}
  • De toets layout_name bevat de naam van de layout.

  • Het object velden bevat 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 (getal als het gegevenstype van het veld getal is; anders tekenreeks).

  • Er wordt een optionele sleutel voor beschrijving opgenomen 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 sleutel beschrijving. 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 

Voorbeeld 1 

Retourneert een JSON object dat de velden beschrijft die toegankelijk zijn voor een zoekopdracht in de layout Producten.

Kopiëren
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:

Kopiëren
{
    "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 beschrijving bevat de annotatie (de opmerking wordt genegeerd).

  • ProductName: De sleutel beschrijving bevat 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.

Kopiëren
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:

Kopiëren
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