2017

Mar

14

Av Rolf

Rullistaegen3För några veckor sedan skrev jag om hur du kan göra en egen rullista med hjälp av en portal och en popover. Min kollega Robert kom direkt och berättade hur han brukade göra för att göra portalen än mer lik FileMakers nedrullningsbara listor med hjälp av transparens. En egen rullista behöver inte heller bara innehålla en rad utan det kan finnas bilder och olika textutformningar med information från flera fält. Helt enkelt ett eget utseende.

I det här exemplet fortsätter jag utöka exemplet från Sök med SQL där resultatet visades i en portal och exemplet med egen rullista.

Roberts förbättring är att göra hela portalen genomskinlig, så att både popovern och portalen i den är helt genomskinliga. De portalrader som innehåller ett värde visas med vit bakgrund vilket får effekten att portalen krymper när antalet rader är färre. Det är en ”synvilla”, i verkligheten är både portal och popover alltid lika stora.

Jag har sedan tidigare två tabeller i databasen, en tabell för att visa själva sökresultatet (Portalsök) och en tabell som innehåller ett antal Bilmärken med information om tillverkningsland. Det är relaterade poster från tabellen  som visas i sökportalen. Sökningen görs med triggers och SQL, läs gärna mer om det i föregående exempel.

I exemplet vill jag visa bilmärket i fet stil och landet under i kursiv stil. Om jag t.ex. hade haft en bild på bilmärket (det kanske kommer senare?) kunde jag även visat den. I en portalrad kan du visa alla fält från den relaterade tabellen. Jag sätter in fälten som mergefält i ett textobjekt som jag placerar i portalraden (som inte syns då den är genomskinlig).

Rullistaegen1

Jag använder villkorlig utformning för att göra bakgrunden vit med formeln:

 Bilmärke::Bilmärke ≠ ""

Det gör att bakgrunden blir vit endast då det finns innehåll i portalraden, annars är den genomskinlig. Det får funktionen att portalen krymper när färre bilmärken hittas.

Jag väljer ett bilmärke med piltangenterna och för att veta vilken rad i portalen jag befinner mig på måste den markeras. Eftersom jag placerat en text med vit bakgrund över så syns inte FileMakers egen markering.

Jag använder istället samma teknik som i ett tidigare exempel för att markera aktiv rad i portalen. Tekniken utnyttjar funktionen Get (Postnummer) och egenheten att funktionen beräknas på portalraderna om den används i en relaterad tabell. Jag lägger därför till beräkningsfältet Postnummer i tabellen Bilmärken med följande formel:

Get (Postnummer)

Jag utökar den villkorliga utformningen på textobjektet i portalen så att när portalraden är aktiv portal visas det blå bakgrund istället för vit.

Rullistaegen2

Det som återstår är att se till att variabeln $$nr (som används i formeln för den villkorliga utformningen) uppdateras med numret på aktiv portal, det gör jag i de manus-triggers som går mellan raderna när jag trycker på pil upp eller ner.

Du kan se en film här:

Exempeldatabas kan du ladda ner här: Rullistasokegen.fmp12

Skriv en kommentar

Din epost-adress stannar hos oss.