Jump to content
  • 0

[Custom Functie] Toon lege veldnamen van layout


rmw

Question

Posted

Uit dit draadje de vraag om het volgende met u te delen:

 

Custom functie

EmptyFieldsOnLayout =

/*
Parameters:
theFields: alle te testen velden
itsMe: het veld waarin deze functie wordt aangeroepen mag niet worden getest omdat FM daar niet uit komt
*/

Let ( 
[
xCheckValue = LeftValues ( theFields ; 1 ) ;
xContent = If ( xCheckValue = itsMe & "¶" ; "*" ; GetField ( xCheckValue ) ) ;
xResult = If ( IsEmpty ( xContent ) ; xCheckValue ; "" )
] ;

If ( IsEmpty ( xCheckValue ) ; "" ; 
xResult & EmptyFieldsOnLayout ( RightValues ( theFields ; ValueCount ( theFields ) - 1 ) ; itsMe )
)

)

 

Veld definitie

EmptyFields (niet opgeslagen!!!) =

EmptyFieldsOnLayout ( FieldNames ( Get ( FileName ) ; Get ( LayoutName ) ) ; "EmptyFields" )

 

Let erop dat de functie in bladerstand op een layout met veel velden vertragend werkt. De recursiviteit vraagt het een en ander van FM7

 

rmw

1 answer to this question

Recommended Posts

  • 0
Posted

Voor de mensen die geen Filemaker Developer hebben....

 

De evaluate functie geeft geen ¶ terug dus moeten we extra substitute gebruiken om de * terug om te zetten naar ¶ . De evaluate functie geeft ongeveer hetzelfde als getfield(veld) maar doordat je zowel de naam van het veld wil als de inhoud ervan moet je toch de getfield erbij plaatsen.

 

Je kan er uiteraard ook een customfunctie van maken maar deze functie is trager dan de recursieve functie van rmw.

 

let op het aantal characters in

"\" ; if ( isempty( getfield(myfield)) ; myfield & \"*\" ; \"\" )) & let (myField= \""]

anders zal de functie niet werken!

 

Ook hier moet je de calculation eruit halen

maak een unstored calc met volgende als formule

 

EmptyFields = (calculcation)

 

---------------------------------------------------

Substitute (

 

Evaluate (

 

Let (

 

myfunction = Substitute ( "¶" & FieldNames ( Get ( FileName ) ; Get ( LayoutName ) )& "¶" ;[ "EmptyFields" & "¶"; ""];["¶" ; "\" ; if ( isempty( getfield(myfield)) ; myfield & \"*\" ; \"\" )) & let (myField= \""] ) ;

 

Middle (myfunction ; 65 ; Length (myfunction) - 65 - 17 )

)

)

;"*" ;"¶"

)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...