Söka i flera fält samtidigt + Relationsfråga

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1

Hej på er,

Jag kör Filemaker 10 Advanced och har två frågor:

1)
Jag har en databas med endast en tabell.
I denna har jag flera fält.

Jag vill göra en layout där jag endast har ett fält att fylla i text, och en sök-knapp.
Sedan vill jag få upp alla resultat som innehåller sök-ordet i något utav fälten.

Har kollat in denna tråd, men fastnar lite efter att jag gjort ett beräkningsfält.
http://www.99.se/filemaker/248758-skapa-fri-soekfunktion.html

Sedan fattar jag det som att den lösningen inte är optimal, finns det bättre vis att lägga upp detta på?

2)
Jag har en annan databas med flera tabeller: lager/order/orderrader/företag/kontakter/produkter och kanske någon till.

Jag har relaterat "foretag_ID" inuti Lager med samma fält i Företag och kan på så sätt märka upp varje lagervara med vilken kund som äger den, och sedan se en specifik lista inuti varje kund-profil med exakt vad denna kund har i vårt lager med en portal. Superbra.

På samma sätt vill jag knyta ett ID inuti Kontakter med ett fält i Företag och göra en portal som visar vilka personer som jobbar i respektive företag.

Men då får jag meddelandet "Det kan inte finnas mer än en relationsväg mellan två tabeller i diagrammet. Ytterligare en förekomst av en av tabellerna måste läggas till diagrammet".

Gör jag detta får jag det ej att fungera. Hur ska jag lösa detta?

EDIT:

Fråga 2 löste jag genom att plocka bort en annan relation mellan Kontakter och "orderrader" som inte rörde någon av fälten. Varför löste det problemet, det har väl inget att göra med saken? (men tydligen har det ju det)

Senast redigerat 2009-02-15 19:15

1. Det finns flera sätt, men bättre. Tja, vet för lite om ditt system. Du kan här söka på "portal filter" så hinnar du en annan teknik.

Man kan även tänka sig att märka posterna som hittas med något och visa märkta poster i en portal eller lista, men den tekniken är bara bra när när antalet poster är lite mindre. Men är man villig att vänta en liten stund mellan sökningar för att få en bättre vy på dem, så kan det vara värt det.

2. När du skapar tabeller så får du i relationsdiagrammet en sk tabellförekomst. Men vad du missat är att man kan lägga in samma tabell om och om och om igen i relationsdiagrammet. Så du försöker dra ett streck mellan två tabeller som redan har ett streck sig emellan, det är det FM protesterar mot. Finns det _strecket_ redan så finns det redan. Du måste dra ett streck mellan två tabellförekomster som inte redan har streck emellan sig.

I ditt fall skall du klicka på knappen i nedre högra hörnet i relationsdiagrammet "Lägg till tabellförekomst" (knappen med ett plustecken på) och sedan välja tabellen Kontakter. Dra den till att vara i närheten av företag (lägg den på högra sidan om tabellförekomsten för Företag) och dra sedan ett streck från företag till kontakter, så skapar du en ny relation.

Döpa relationer
När vi är på ämnet så döp dina relationer till något vettigt. En relation från Företag till Kontakter på ID_Företag bör heta [I]Företag_Kontakter_ID_Företag[/]. Om du undrar varför kanske denna lista gör det klarare?

Företag_Order_ID_Order
Företag_Fakturor_ID_Företag
Företag_Produkter_ID_Företag
Företag_Inställningar_Rel_X
Order_Orderrader_ID_Order
Order_Företag_ID_Företag
Orderrader_Företag_ID_Företag

osv osv. Det blir väldigt lättjobbat när systemet växer.

/Ola

Tack för svaren!

1)
Ska kolla på portalfilter, trodde inte det tillät mig att skriva fri text och söka genom flera fält. Men det kan man alltså?

2)
Jo, alltså jag la till en ny tabellförekomst som du skrev - men då dök relationerna ej upp i portalen. När jag tog bort den "störande" relationen och gjorde relationen "som vanligt" så fungerade det dock.

Vad kan det bero på?

Ursprungligen av Taz_1999:

1. Det finns flera sätt, men bättre. Tja, vet för lite om ditt system. Du kan här söka på "portal filter" så hinnar du en annan teknik.

Man kan även tänka sig att märka posterna som hittas med något och visa märkta poster i en portal eller lista, men den tekniken är bara bra när när antalet poster är lite mindre. Men är man villig att vänta en liten stund mellan sökningar för att få en bättre vy på dem, så kan det vara värt det.

2. När du skapar tabeller så får du i relationsdiagrammet en sk tabellförekomst. Men vad du missat är att man kan lägga in samma tabell om och om och om igen i relationsdiagrammet. Så du försöker dra ett streck mellan två tabeller som redan har ett streck sig emellan, det är det FM protesterar mot. Finns det _strecket_ redan så finns det redan. Du måste dra ett streck mellan två tabellförekomster som inte redan har streck emellan sig.

I ditt fall skall du klicka på knappen i nedre högra hörnet i relationsdiagrammet "Lägg till tabellförekomst" (knappen med ett plustecken på) och sedan välja tabellen Kontakter. Dra den till att vara i närheten av företag (lägg den på högra sidan om tabellförekomsten för Företag) och dra sedan ett streck från företag till kontakter, så skapar du en ny relation.

Döpa relationer
När vi är på ämnet så döp dina relationer till något vettigt. En relation från Företag till Kontakter på ID_Företag bör heta [I]Företag_Kontakter_ID_Företag[/]. Om du undrar varför kanske denna lista gör det klarare?

Företag_Order_ID_Order
Företag_Fakturor_ID_Företag
Företag_Produkter_ID_Företag
Företag_Inställningar_Rel_X
Order_Orderrader_ID_Order
Order_Företag_ID_Företag
Orderrader_Företag_ID_Företag

osv osv. Det blir väldigt lättjobbat när systemet växer.

/Ola

1. I din fråga så skrev du inte fritextsökning, du efterlyste olika söktekniker. Portal filter är en sökteknik som är alldeles fantastiskt bra i vissa sammanhang, otroligt dålig i andra. Så är det även med den lösningen du länkade till att sätta ihop flera fält och göra en sökning i det enda fältet. Och så är det även med den sista metoden jag pratade om, den är bra och dålig den med.

Portal filter kan arbeta med flera fält, men du berättar inget om vad det är som dina användare kommer att leta efter. Alltså kan du inte få vettiga svar på vilken sökteknik som kan vara bäst och hur man bygger den.

Att söka i en databas som innehåller sammanfattningar av vetenskapliga avhandlingar är inte samma sak som att söka efter artikelnummer/namn/pris för att sätta ihop en order till en kund, vilket i sin tur inte är samma sak som att visa en kund vilka hus i en mäklares som uppfyller vissa krav som inte är samma sak som att söka i en databas över meteorologiska data som heller inte är samma sak som att söka i en databas över teknisk support. Ok, de första och sista kanske är en smula lika varandra.

Vad du menar med fritextsökning är en annan intressant sak, FileMaker arbetar med en sökmetod som heter begins with, dvs den söker i början av ordet. Men Portal Filter bygger på relationer och är därmed inte en sökning, i brist på bättre ord kan man kalla det för matchning. Det är därför som Portal Filter är så vansinnigt snabb jämfört med sökning, men man måste söka på exakta saker.

Begins with innebär också att FileMaker kommer att hitta ordet/delen av ordet i början av alla ord i de fält du söker i.

Sedan kan det vara en dum ide att använda ett enda sökfält (FileMaker är INTE Google) för du kommer vanligen att få för många träffar och det finns vissa tycker av sökningar du inte kommer att kunna göra med ett enda sökfält.Om du tex tossar ihop förnamn, efternamn och ort i ett enda sökfält så kommer du att när du söker på "Anna" "Andersson" "Stockholm" hitta alla Anna, alla Andersson och alla som bor i Stockholm.

Det bör istället tänka så att dina användare behöver utbildas (varför inte lägga in lite sökhjälp i systemet, så ser de hjälpen när de behöver den), och erbjuda flera sökmetoder: både flera fält och ett fält. Informera om hur flera sökposter med uteslut och intervall och söksymboler fungera. Erbjud en sorts snabbsök/snabbmatchning som är portal filter osv.

2. Om du hade angett en relation på en portal, tar bort den i relationsdiagrammet, måste du "välja om" den på portalen. Det gör du genom att dubbelklicka på portalen (varsom helst men inte på första raden eller på scrollisten). FileMaker är inte tankeläsare.

Notera att om du ändrar relation i en portal påverkar det inte vilken relation som är vald på fälten som ligger i första raden (man får bara lägga fält i första raden).

Det verkar som om du tror att saker och ting i FileMaker sitter ihop på ett annat sätt än de gör? jag tror också att det som är fel är hur du använder FileMaker. Jag föreslår du kollar i hjälpen, eller ber någon titta på när du gör saker. Det är i foruminlägg inte lätt att se exakt hur du gör, vad du klickar på osv... Jag tror det är där det blir fel.

1)
Jag köper att det inte är en bra lösning i 99% av fallen.
Men just i detta fall behöver jag faktiskt kunna söka genom alla fält med bara 1 textfält.

Databasen innehåller nämligen saker som man behöver utan att man ofta vet vad man behöver, och då vet man inte alltid vilka fält man ska söka bland på en gång. För att slippa söka bland flera fält vore det toppen att bara kunna skriva ett sökord och få upp allt som har med det ordet i något utav fälten.

2)
Nej, nu missförstår du mig tror jag. Så här är det:

Tabell "Kunder", fält "kund_ID" länkas med:
Tabell "Lager", fält "kund_ID"

På så sätt ser jag vid varje kund vad de har i lagret.
Om jag tar bort relationerna och gör så här...

Tabell "Kunder", fält "kund_ID" länkas med:
Tabell "Kontakter", fält "kund_ID"

...så ser jag i en portal vilka kontakter som jobbar hos den kunden.

Men om jag inte tar bort relationerna innan jag skapar de sistnämnda relationerna (med en ny tabellförekomst som du skrev) så dyker inget upp i portalen - även om jag "väljer om" den.

Steg 1 är att kolla att data faktiskt finns innan man kollar något annat. Leta reda på en kund, kolla att det finns kontakter på en kunden, kolla att det står samma id på kunde som det står på kontakterna. Detta gör man genom att helt enkelt söka.

Sedan verkar du tror att en relation "stör" en annan relation, det är en missuppfattning, så fungerar det inte. Du behöver alltså inte ta bort något.

Om din portal (där du varit noga med att välja om portalens relation och välja om även den relation som fälten i rad 1 i portalen har) inte visar några träffar, så finns det flera saker till att kolla:

1. Din layout visar poster från en viss specifik tabellförekomst i relationsdiagrammet. I ditt fall så skall layouten alltså visa poster från Kunder (om du sedan relaterar just Kunder i relationsdiagrammet till just Kontakter). Har du kollat detta?

2. I relationsdiagrammet skall Kunder ligga till vänster och Kontakter till höger. "Du står i Kunder och tittar mot Kontakter" är hur man brukar formulera punkt 1 och 2 tillsammans. Med frasen "du står i kunder" menar man att layouten visar poster från tabellförekomsten Kunder i relationsdiagrammet. Det är alltså inte samma sak som tabellen kunder. De relationer som fungerar för tabellförekomsten kunder är de snören som löper från tabellförekomsten kunder till andra tabellförekomster. Så layouten Kunder där du vill se dina kontakter är alltså inte på något sätt hjälpt av att du lägger till en Kunder 2 och relaterar Kontakter till den. Vill du att det skall fungera får du skapa en ny layout som visar poster från Kunder 2 istället. Är du med på detta?

3. I portalen måste övre vänstra ankarpunkten i fältet som ligger i portalens rad 1 ligga innanför det hörn som bildas av portalens översta och vänstra linje. Detsamma gäller nedre högra ankarpunkten som måste ligga innanför portalradens första rad och de linjer som bildas av rad 1's nedre linje och högra linje. Du signalerar inte att du kollat sådant?

4. I relationsdiagrammet kan du mycket väl ha lagt in en annan tabell än just kontakter. Det är lätt hänt. Dubbelklicka på tabellförekomsten både för kunder och kontakter så poppar det upp vilken tabell det faktiskt är. Det är den som är markerad i rutan. Har du kollat detta?

Tack igen för svaret.
Jag har tyvärr inte tillgång till databasen just nu, får kolla i morgon.

Men, bara för att förtydliga: Det funkar finfint om jag plockar bort en av de andra relationerna, så felet ligger inte i att jag t ex lagt det på sniskan i portalen. Men det funkar ju inte, så något har jag gjort fel.

Kollar i morgon.

1
Bevaka tråden