Söker bättre sökning - skulle spara mycket kod!

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2009-09-09 13:12

Hello,
När jag bygger mina script i manushanteraren vill jag ibland skapa sökningar med hjälp av innehållet i en $$Variabel. Finns det någon lösning att få in värdet direkt i "sök" eller i "utför sökning" - funktionerna...?

Får bara "ut" $$variabelns egen-namn i "sök" eller i "utför sökning"

Som det är då måste värdet i $$variabeln i stället "landa" i ett fält -
(som för uppgiften också måste skapas i tabellen-dessutom måste ny layout ibland skapas som ansluter relationen för tabellen - om den inte finns redan, vilket alltid inte är fallet) ...slut på lång parantes....
- för att därefter kopieras och klistras in i det fält som slutligen sökningen skall utgå ifrån (och söka poster efter) - mycket kod och krångel - alldeles i onödan, om jag får säga...

Jag är väl bekant med "relationer" och "gå till relaterad post" som löser många problem av liknande karaktär....men inte alltid...

Tacksam för svar och idéer.. 2lazy - för att komma på något själv.... / 2Lazy

Senast redigerat 2009-09-09 14:42

Lösningen är att utföra manusstegen:

Manuell felhantering
Sök (dvs inte "Utför sökning" och bort med kryss för kom ihåg sökposter. Detta steg placerar alltså FileMaker i sökläge)
Tilldela fält (peta in värdet av variabeln i valfritt fält)
Skapa eventuellt flera sökposter
Tilldela fält där med
Utför sökning (bort med kryss för kom ihåg sökposter)
Felhantering passar bra här - om antalet hittadeposter är noll, visa dialogruta, visa alla poster osv...

Lycka till!

/Ola

  • Medlem
  • Stockholm
  • 2009-09-09 14:28

Den lösningen står i mitt eget inlägg

Tack Ola, för ditt svar.

Förtydligande

Alltså finns det något trix att ta in VÄRDET från en $$-variabel direkt i denna meny (förutom att skriva in det manuellt)

Det fiffiga vore om något GET (xxx) - kommando eller liknande talade om för FM att översäta innehållet i $$variabeln - direkt

/ det skulle spara mycket kod, tid och tänk vid programmeringen. / 2lazy

Senast redigerat 2009-09-09 14:40

Om du provar att göra som jag säger så får du det resultat du vill ha.

(Tillägg: Du tror att du skall göra på ett visst sätt, men det stämmer alltså inte. Det "ställe" där du vill ha värdet är alltså bara och endast och uteslutande för fasta värden du kan skriva på tangentbordet då du skapar manussteget. Du skall göra som jag säger för att kunna få det dynamiskt).

Senast redigerat 2009-09-09 16:13
  • Medlem
  • Stockholm
  • 2009-09-10 12:20

TAck - då vet jag

Får fortsätta göra som tidigare alltså, eller peta in variabelvärdet i fältet som sökvärde genom "tilldela fält". Och sen söka därifrån (utföra sökning).

Jag trodde "tilldela fält" skrev ett varaktig värde i fältet, så funkar kommandot som "infoga sökvärde" när FM står i "sök" utan att kvarlämna något värde i fältet (bearbeta), så sparar jag några steg med kod, med en lika bra lösning - som den jag sökte...

/ tusen tack fr 2Lazy

Tilldela fält i bearbeta-läge skriver i fälten i databasen. När du lämnar posten så sparas det. Du kan även utföra manussteget "Verkställ post" för att få tex relationer att vakna till direkt. Man kan alltså i regel inte tilldela fält och sedan läsa av något relaterat som är beroende av det fältet man tilldelat något i, före man gett FileMaker chansen att uppdatera databasen med nya värdet.

Om du i ett manus sätter FileMaker i sökläge så kan du alltså skapa så många och så olika sökposter du vill och söka på dynamiska och/eller fasta värden i kombination, med just tilldela fält. Du kan även utesluta poster. (Du vill ha alla kunder som handlat för mer än ett visst belopp, men inte de som bor i Stockholm tex).

Sökningar man gör med manus kan även utesluta poster, förfina sökning, utföra flera sökningar efter varandra, gå till relaterade poster och söka där, hitta något och använda det som sökparameter. Man kan göra mycket.

  • Medlem
  • Stockholm
  • 2009-09-30 21:41

En parantes om detta bara.

Värdena kommer ibland från en "generator-tabell", som genom sin funktion saknar relationer till alla tabeller som vi ska utföra sökningen i.
Men det funkar ju att sätta in ett värde från en $$Variabel i "tilldela fält" och sen låa utföra t ex "utökad sökning" - och därigenom blir det samma sak som att införa värdet direkt i "utökad sökning".

Lat som man är så ville jag hoppa över ett programsteg och gå "pang på röbetan". Vi får nöja oss med "näst bästa lösningen" och ta det i två steg.

Tack för tipsen / 2Lazy

Tips: Man kan även basera en relation på globala fält (på vänster sida). Ett manus skulle alltså kunna peta in en variabel i ett variabelfält, verkställa posten och därmed kan man räkna ut eller läsa av något.

Man kan även peta in flera värden i samma globala fält, med returtecken emellan. Vill man tex titta på flera relaterade poster i ett kundregister, för att räkna ut något, och dessa har tex ett kundid från 1000 och framåt, så skulle ett fält som innehåller

1010
1032
1045
1103

Alltså visa fyra kunders poster via relationen, baserat på det fält som innehåller ovanstående siffror. På denna relation kan man sedan göra saker som Count, Sum, och andra funktioner.

1
Bevaka tråden