Ga naar inhoud
  • 0

Go to layout


hans erik

Vraag

Geplaatst:

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 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:
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
Geplaatst:

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
Geplaatst:

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
Geplaatst:

@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

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