Jump to content
  • 0

Go to layout


hans erik

Question

Posted

Als je naar een layout switcht, verander je toch ook altijd de context naar de bijbehorende Table Occurrence? Niet met Go to layout ($naam) dus!

 

Ik heb een bestand met een flink aantal layouts, waaronder een aantal 'referentie layouts'. Dwz voor elke tabel is er altijd een Table Occurrence met een vaste naam en een layout met die zelfde naam. Bijvoorbeeld een tabel 'personen' heeft dus altijd een TOC met de naam 'a_personen' een een layout 'a_personen'. Je kunt dus altijd de inhoud van die tabellen op die manier inspecteren en ook voor executeSQL is het handig omdat die layout er TOC er altijd is en nooit een andere naam krijgt.

 

Maar nu heb ik een script waarmee ik een set layouts wil openen in table view, voor inspectie/onderhoud/ontwikkeling. Ik wil dat het script in één keer door een lijst met layoutnamen wandelt en 1 voor 1 die layouts opent. Dat werkt dus niet:

 

 

Set Variable [$layoutnames; Value:"tabel1¶ tabel2¶ tabel3¶ tabel4¶ tabel5"]

Set Variable [$DeltaL; Value:50]

Set Variable [$DeltaT; Value:50]

Set Variable [$L; Value:150]

Set Variable [$T; Value:120]

Set Variable [$B; Value:400]

Set Variable [$H; Value:180]

Set Variable [$H; Value:180]

Set Variable [$n; Value:1]

#

Loop

Set Variable [$currlayout; Value:GetValue ($layoutnames ; $n )]

New Window [Name: $currlayout; Height: $H; Width: $B; Top: $T; Left: $L; Style: Document]

View As [View as Table]

Set Variable [$tabel; Value:$currlayout &"(" & $currlayout & ")"]

Go to Layout [$tabel]

Set Variable [$L; Value:$L + $DeltaL]

Set Variable [$T; Value:$T + $DeltaT]

Set Variable [$n; Value:1 + $n]

Refresh Window []

Exit Loop If [$n > ValueCount ($layoutnames)]

End Loop

#

Het script loopt wel, maar alle vensters laten dezelfde content zien.

 

Staat niks over in de handleiding. Is dit een feature of een vette bug? Of doe ik iets fout?

4 answers to this question

Recommended Posts

  • 0
Posted
Set Variable [$tabel; Value:$currlayout &"(" & $currlayout & ")"]

 

Volgens mij zit het hier in. Als je de layoutnaam berekent. (let op dat het niet het layout nummer is!!). Heb je het

&"(" & $currlayout & ")"
niet nodig.

de scriptstap wordt dan uiteindelijk Go to Layout ("tabel1"). FM ziet zelf welke tabel er aan gekoppeld is, dat hoef je niet op te geven.

  • 0
Posted

Gebruik maken van debugger en dataviewer moet toch snel duidelijkheid geven of de layoutnaam wel correct is?

 

Ik heb diverse van dit soort scripts lopen en zo stabiel als het maar kan zijn.

 

Filemaker opent een nieuw scherm, mocht het naar layout moeten springen die niet bestaat, dan blijft hij lekker staan.

 

Note: ik heb wel eens problemen gehad omdat ik een Folder dezelfde naam gaf als een echte Layout. Dan springt hij ook niet over naar de juiste layout, blijft hij ook lekker staan.

Die fout maak ik dus nooit meer.

  • 0
Posted

Bij het instellen van de variable $layoutnames (1e regel v/h script) zie ik spaties staan na elke paragraph. Dat betekent dus dat de 2e value " tabel2" is i.p.v. "tabel2". Idem voor tabel3, tabel4, tabel5.

 

Misschien kloppen dus deze layoutnamen niet.

 

Kan het dat zijn?

  • 0
Posted

@hbrendel,

 

Die 'spatie' is de oorzaak, ik had de items in de scripteditor allemaal op een andere regel geplaatst, voor de overzichtelijkheid. Maar daarmee voeg je dus een karakter toe, dat tot een niet-bestaande layoutnaam leidt..

 

Ik heb nog even geprobeerd, en met

Set Variable [ &currlayout ; value: (trim(GetValue ($layoutnames ; $n ))]

gaat het wel goed.

 

Dank voor de suggesties.

 

HE

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