Ga naar inhoud
  • 0

Status knop


Leen

Vraag

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

aangepast door Leen
Link naar reactie

14 antwoorden op deze vraag

Aanbevolen berichten

  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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

aangepast door Leen
Link naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...