Jump to content
  • 0

Status knop


Leen

Question

Hallo,

Ik heb voor verschillende records een knop aangemaakt en deze wordt via een formule in conditional formatting een bepaalde kleur. (wit of rood, zie pic.1) Nu zou het zeer prettig zijn wanneer ik op een gerelateerde layout een ander object kan laten beinvloeden wanneer een knop een bepaalde kleur heeft. (hide bij een witte kleur, show bij een rode kleur, zie pic.2) Laten we zeggen dat wanneer via conditional formatting de knop rood is, dit zichtbaar wordt in het object op een andere layout. Is dit mogelijk zonder dat het bestand al te zwaar wordt? Het gaat om ongeveer 900 records. Ik zat zelf te denken aan een waarde 1 wanneer de kleur rood is en waarde 0 wanneer de kleur wit is, maar ik krijg dat niet voor elkaar.

De reden hiervoor is dat wanneer er een fout is gemaakt in de ene layout, dit op de andere layout wordt weergegeven via dit object.

Alvast bedankt,

Groeten,

Leen

pic. 1.png

pic. 2.png

Edited by Leen
Link to comment

14 answers to this question

Recommended Posts

  • 1
1 uur geleden zei Leen:

Overigens lukt het uitlezen van de status van een object met de hide functie ook niet.

Dat doe je de functie GetLayoutObjectAttribute

GetLayoutObjectAttribute ( "Objectnaam" ; "isObjectHidden" )

Geeft een 1 wanneer het object is verborgen, een 0 als het wordt getoond en is leeg wanneer het object niet bestaat.

 

Over de "hide", daarvan klopt de tekst van de help van FileMaker niet. Er staat: 

Citaat

Als de berekening een fout als resultaat geeft, wordt het object verborgen

Er moet staan:

Citaat

Als de berekening een getal >0 of true als resultaat geeft, wordt het object verborgen

 

Link to comment
  • 0

Bedankt Banach,

Ja, ik weet dat je via tonen en verbergen dit kan doen, maar mij werd geadviseerd om dit niet te vaak te doen omdat dan het bestand dan erg zwaar wordt en met conditional formatting zou ik daar minder last van hebben. Geen idee of dat ook zo is, maar ik denk dat ik het maar aan ga passen en via tonen en verbergen ga proberen. Dank je wel voor je reactie.

Link to comment
  • 0

Ik kan mij eerlijk gezegd niet voorstellen dat een conditie op grond waarvan een object een andere kleur krijgt 'lichter' zou zijn dan het gebruik van een conditie om een object te verbergen. Maar misschien is dat wel zo. Zelf heb ik echter nog nimmer afname in performance gezien door veel (heel veel) objecten een verberg conditie mee te geven. Ik gebruik deze eigenschap dan ook heel vaak en tot volle tevredenheid.

Link to comment
  • 0

Ik denk dat ik het nog niet helemaal begrepen heb, want ik krijg het niet voor elkaar.  Ik heb de GetLayoutObjectAttribute ( "Objectnaam" ; "isObjectHidden" ) als calculatie in het veld "Test " gezet, (optie berekening niet opslaan aangevinkt) het object met de rode uitroepteken "Objectnaam" benoemd, maar het resultaat blijft "0" of het object nu getoond wordt of niet. Zou het kunnen komen omdat het object in een gefilterd portaal staat? 1775611254_Aantekening2020-01-29110427.png.808e5627407c90d40c218e954fc1e143.png

Aantekening 2020-01-29 110326.png

Aantekening 2020-01-29 110325.png

Edited by Leen
Link to comment
  • 0
17 minutes ago, Leen said:

Zou het kunnen komen omdat het object in een gefilterd portaal staat? 

Ja. Gefilterd of ongefilterd portaal maakt daarbij niet uit. Er wordt gekeken naar de eerste regel in het portaal.

Wat je kunt doen is de voorwaarde welke je gebruikt voor het verbergen van het object in de berekening afchecken.

Link to comment
  • 0
7 uur geleden zei Leen:

Dat is denk ik niet te doen Banach, omdat dit van veel factoren afhangt. ? En dit is voor elke object anders.

Aantekening 2020-01-29 114441.png

Het heeft eigenlijk niks met jouw vraag te maken, maar toch: Ik vind formules waarin dezelfde waarde meerdere malen wordt gebruikt altijd een crime om te lezen. Zulke formules probeer ik dan wat leesbaarder te krijgen met een let-functie:

Let ( [ 
	C801 = Dashboard_CAT800::C801 ; 
	RSel = Dashboard_RISICOS::RisicoSelectie 
] ;
	IsEmpty ( RSel ) and ( IsEmpty ( C801 ) or C801 = " --" or C801 = " V" ) 
	or  
	Not ( IsEmpty ( RSel ) ) and ( C801 = "1" or C801 = "2" or C801 = "3" or C801 = "4" )
)

of nóg korter:

Let ( [ 
	C801 = GetAsNumber ( Dashboard_CAT800::C801 ) ; 
	RSel = Dashboard_RISICOS::RisicoSelectie 
] ;
	IsEmpty ( RSel ) and ( IsEmpty ( C801 ) or C801 = " --" or C801 = " V" ) 
	or  
	Not ( IsEmpty ( RSel ) ) and C801  1 and C801  4
)

Zoals gezegd, het heeft niks met jouw vraag te maken :-) 

Link to comment
  • 0

Nee, het heeft er misschien niets mee te maken, maar ik ben er wel blij mee Menno. Sjonge, dat scheelt ook heel veel typewerk als je het zo doet.  Er is als beginner ook nog zoveel te leren. Ik moet er nog een zooitje doen, dus dank je wel man. Super!  ?

Na wat stoeien begrijp ik inmiddels ook hoe de functie GetLayoutObjectAttribute werkt, heb een oplossing voor de vraag en kan verder. Allemaal dankzij dit mooie forum. Allemaal erg bedankt. 

Link to comment

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...