Pad specificaties

Pad versus letterlijk pad

In een expressie kan een pad staan, of een letterlijk pad.

Constructie Omschrijving Interne naam
[aanvrager/naam] Dit is een verwijzing naar een formulierveld door middel van het pad aanvrager/naam. Bij evaluatie vervangt Smartforms het pad door de waarde van dat veld. Path
$[aanvrager/naam] Dit is een letterlijk pad. Een letterlijk pad kan bijvoorbeeld gebruikt worden in een select expressie wanneer het nodig is het pad zelf te specificeren en het niet de bedoeling is dat Smartforms dit vervangt door een formulierveld. Literal path

Een pad relatief maken

Bovenstaande specificatie [aanvrager/naam] is het volledige pad naar het formulierveld.

Door het bewerken van het formulier kan het nodig zijn het pad aan te passen. Als het veld bijvoorbeeld wordt verplaatst en binnen een groep met de naam control_5 wordt gezet dan wordt het pad [control_5/aanvrager/naam].

Dat het nodig is het pad aan te passen kan voorkomen worden. Het pad kan relatief gemaakt worden. Bijvoorbeeld [.] geeft aan: het huidige veld, bijvoorbeeld het naam veld.

Het pad is relatief ten opzichte van het veld waarvoor de Smartforms expressie gebruikt wordt die het relatieve pad [.] bevat.

In onderstaande voorbeelden zijn de paden steeds relatief ten opzichte van het naam veld.

Voorbeeld Geadresseerd veld Toelichting
[.] Naam De . adresseert het huidige veld.
[./../voorletters] Voorletters De . maakt het pad relatief ten opzichte van het huidige veld. De .. adresseert het bovenliggende veld aanvrager. Dit veld heeft zelf geen bruikbare inhoud. Vanaf dit veld adresseert voorletters het genoemde onderliggende veld.
[../voorletters] Voorletters Dit is een verkorte notatie van [./../voorletters].
[../../aanvrager2/naam Naam tweede aanvrager De ../.. stapt van naam naar het bovenliggende veld aanvrager, vervolgens naar het dáárvan bovenliggende veld,  en dan via aanvrager2 naar de naam van de tweede aanvrager.
[..] Aanvrager Dit is wel mogelijk maar het geadresseerde veld aanvrager bevat geen bruikbare veldwaarde.
[./naam] - Dit levert een fout op. De . adresseert het huidige veld naam, en vanaf daar wordt geprobeerd naar een onderliggend veld naam te stappen. Feitelijk vraagt dit om [aanvrager/naam/naam], een veld wat er niet is.
$[.] - Dit levert een fout op. Een letterlijk pad kan niet relatief gemaak worden.

User defined controls

Het relatieve pad heeft onder meer een toepassing bij de user defined controls. Het gebruik van zo'n samengestelde control levert een groeperende control op, bijvoorbeeld control_5. Als Smartforms expressies gebruikt worden dan zou het in veel gevallen nodig zijn de paden aan te passen. Met relatieve paden is dat niet nodig.