Filtrerade portaler är en nyhet i FileMaker Pro 11. Du har en relation men kan med olika ”filter” visa en delmängd av de relaterade posterna i portalen och har också möjlighet att visa flera portaler med olika innehåll från samma relation. Ett problem uppstår dock när du vill summera ett värde i de relaterade posterna. En relation kan t.ex. filteras med datum så att endast relaterade poster senare än ett angivet datum visas, och du kan låta en FileMaker-användare ändra datum efter önskemål. I exemplet kan användaren ange ett datum och endast visa de relaterade rader i portalen där datumet är senare än det angivna.
I bilden visas portalen med alla relaterade rader. Observera att summa av värdena, som visas nedanför portalen, är102. Summan beräknas med hjälp av formeln:
Sum(Portalrader::Värde)
där Portalrader är namnet på relationen.
Jag sätter ett filter på portalen för att endast visa de portalrader som är senare än angivet datum i fältet Datum. Dubbelklicka på portalen i layoutläget och klicka sedan på knappen Ange till höger om kryssrutan Filtrera portalposter.
<
<
<
Lösningen är att använda statistikfält! Redan i FileMaker 7 gick det att använda statistikfält för att summera portaler och det fungerar precis lika bra som beräkningsfält med funktionen Sum. Definiera ett statistikfält i tabellen med de relaterade posterna (i mitt fall tabellen Portalrader) som är en summa av fältet Värde.
<
Statistikfältet behöver veta vilket urval som ska beräknas. Gå till layoutläget och placera det i en portal som bara visar en rad och ange samma filter på denna portal som den andra. De båda portalerna får då samma urval av relaterade poster, i den ena portalen visas posterna radvis och i den andra visas endast statistikfältet från första raden.
<
Ladda ner exempeldokument här: SummeraPortal.zip (15,95 kb)
Uppdatering 2011-09-06: Om du vill visa antal rader i portalen lägger du till ett statistikfält i tabellen Portalrader (i exemplet) som istället för att beräkna ”Summa av Värde”, beräknar ”Antal av id_portalrad”. Placera sedan statistikfältet för antal i samma portal som ”Summa (statistik i portal)”. När du definierar ett statistikfält som räknar antal ska du alltid se till att fältet som antalet beräknas med är ifyllt, i det här fallet är det ett id-nummer som automatiskt får ett löpande nummer.