Skapa en öppna spara funktion i Filemaker pro advanced

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

Jag skulle vilja skapa en öppna funktion där man kan få upp alla filer i själva filemaker utan själva öppna fönstret.

Går detta?

Kanske ska specificera mer vad jag önskar:

Jag har gjort en databas för att organisera mina historier.

Därför vill jag kunna starta min databas, gå till en öppna funktion och få upp alla historier/ filer som ligger i en bestämd mapp, eventuellt skapad av databas programmet. Alltså alla historier ligger inte i programmet från början utan jag måste öppna upp den historien jag vill arbeta med.

Om jag vill skapa ny historia vill jag spara dess information och senare kunna välja öppna och välja rätt "historia".

Det ultimata vore om man kunde få upp dessa filer/historier direkt i Filemaker databasen utan att ett separat öppna fönster dyker upp.

Detsamma vore även bra för spara funktionen, eventuellt att den sparar utefter tex en titel jag skapat för vad jag kallar min "historia".

Det enda jag hittar idag är spara som - men detta blir hela databasen en gång till. Och när man kör en öppna funktion så öppnas det ännu ett fönster.

Om nån hänger med så vore jag mycket tacksam för hjälp.

Jag är inte säker på att jag förstår, men är det så att du helt enkelt vill kunna söka efter en historia och se resultatet direkt i FileMaker, alltså utan att öppna filen?

I så fall kan du enkelt göra det om dina historiefiler ligger sparade som text. Under arkivmenyn hittar du Importera Poster>Mapp och du väljer där mapp och textfiler så får du sedan ange till vilket fält innehållet i dina textfiler ska importeras.

Om det inte är så du menar måste du nog dessvärre förklara lite mer hur du har tänkt.

Nja inte riktigt så om jag nu förstår dig.

Jag har idag gjort en databas med flera layouts och fält där saker fylls i, sen vill jag kunna spara det jag fyllt i för att kanske öppna en gammal.

Så vad jag vill är att enbart öppna och spara alla records - det finns något åt detta håll med import och export men jag får inte detta att bli smidigt.

Bonus här skulle alltså att även slippa behöva få upp osx egna öppna spara funktion för att göra detta.

Jag är hemskt ledsen, men jag förstår dig inte. Vad menar du med att spara och öppna? VAD är det du vill spara? VAD är det du vill öppna? Vad menas med dina historier? Är det filer, och i så fall av vilken typ?

http://www.troi.com/software/fileplugin.html

Jag förstår inte heller, varken exakt vad du vill göra eller varför, men denna plugin är svaret.

hmm jag förstår om ni inte förstår.

ok jag jobbar med manus och jag har gjort ett manusstruktur program - jag vill kunna öppna upp de olika manusstrukturerna inifrån min filemaker databas. tex jag jobbar med min idé "Alien" när jag är klar vill jag kunna spara den. Sen ska jag kunna öppna upp en ny idé "starwars" och jobba på denna inuti samma filemaker databas.

För det enda jag hittar är att spara som och då sparas all data plus program. Jag vill enbart kunna spara datan och öppna datan inte öppna eller spara hela filemaker applicationen.

Jag vill inte att programmet ska svälja alla mina idéer samtidigt utan att man enbart har en idé inuti programmet i taget.

Alltså precis som det brukar vara i de flesta program.

Ok, så här långt låter det som att du går över ån efter vatten, men det är troligen så att jag fortfarande inte fattar vad du vill göra.

Varje post i FileMaker är så att säga ett eget "dokument" (jag försöker använda dina metaforer här), så genom att bläddra bland posterna så byter du manus (dvs exporterar och importerar en annan manus-fil så att säga). En post innehåller i ett textfält manuset för Alien, nästa post innehåller manuset för Star Wars. Så fort du lämnar posten Alien antingen genom att gå till nästa post Star Wars eller stänga ner databasen så sparar FileMaker automatiskt vad du gjort i manuset för Alien.

Men om du av någon anledning måste ha bara en post i FileMaker-databasen (jag kan faktiskt tänka mig ett par stycken med det är verkligen special ovanpå special) så går det fortfarande att lösa, på två sätt.

1. Du behöver en tabell till som innehåller alla dina manus, vi kan kalla den "Manuslådan". Den tabellen som är grunden för din arbetsmiljö (som bara innehåller en post) kan vi kalla för "Manusskrivbordet" och den innehåller bara en post. Genom att visa i en portal (portal är en typ av objekt som man kan lägga i en layout som visar flera relaterade poster från en annan tabell, jämför orderrader på en order) alla poster som finns i Manuslådan. Genom att "välja" ett manus så skapas en relation mellan Manuslådan och ett visst manus där i och "Manusskrivbordet" och vips så har du enligt dina termer/metaforer "stängt" och sparat manuset du jobbade med och "Öppnat" ett annat. Att välja ett manus gör man genom att ha en relation mellan två fält som innehåller samma info i två databaser, säg att du har tex "ID valt manus" i "Manusskrivbordet"-tabellen och "ID manus" (ett löpnummer) i "Manusslådan".

2. Man kan göra exakt det jag beskriver ovan men istället för att spara manuset som en post i en tabell kan man spara den i en textfil som man importerar, jobbar med i FileMaker, och sedan exporterar tillbaka till filen.

I så fall behöver man lära FileMaker att skriva och läsa filer och du behöver fortfarande en till tabell som kan innehålla dina filnamn och sökvägar så att FileMaker "vet" var manusen ligger och kan visa dig en lista med dem för dig att välja från och importera och exportera till/från rätt fil i filsystemet.

För att lära FileMaker läsa och skriva filer på det sättet behöver du en plugin som heter Troi File Plugin vilket gör detta ganska så lätt, eller så lär du dig lite Applescript. Både Troi File Plugin och Applescript kan ta information i ett fält och klippa ut den och skriva den till en textfil.

Men som du förstår så är det ingen större mening med detta eftersom du då sparar information utanför FileMaker som precis lika gärna och på ett mycket lättare sätt kan sparas och hanteras inuti FileMaker. Men du kanske har någon anledning till att vilja göra detta som du glömt berätta om, tex att en annan applikation skall kunna se/skriva/läsa manusfilen?

Tack för tipsen.

Alltså manusstruktur delen kommer inte att enbart ha en post utan flera och jag kan förstå att man skulle kunna köra allt i samma databas men jag gör denna lilla databas som ett hjälpmedel och känner framförallt mig för osäker på att krångla till detför mig så därför trodde jag det skulle vara enklare att helt enkelt kunna ta in ny data för varje manusidé/ struktur som man jobbar med.

Ok, men det är det allså inte.

Jag har tänkt om - jag kör nog som du säger Taz - känns onödigt att gå över ån efter vatten

Tekniken att välja poster i andra tabeller genom att peta in ett ID i ett variabelfält (ett fält med indexering satt till "global indexering"), som då skapar en relation till en viss post i en eller flera andra tabeller är något du bör undersöka i så fall.

Då kan du ju visa alla dina aktuella manus i en portal eller en popup-meny och sedan i ett manus eller direkt välja en av dem. Förstår du vad jag menar?

Ska tilläggas att det visserligen inte enbart är en post utan det blir rätt många för ett manusconcept - men nu har jag gjort som du säger Taz och ja det var nog enklare att göra på det viset.

Jag hoppas jag inte stöter på patrull framöver.

Jo, jag har förstått att det inte är bara en post. Men det ändrar inget i min rekommendation. Bra att det löste sig till slut.

Tack än en gång Taz.

Nu har jag däremot ett annat problem som jag hoppas kunna förklara.

Vad jag gör är alltså för egen del ett manusstruktur program.

När jag väl valt arbetsnamn kan jag gå till något som heter Beatsheet som är ett antal nyckel scener för att få ihop en historia.

men sen vill jag kunna gå till en annan del "the board" där finns det cirka 40 kort, vissa av dem är fasta utifrån mitt beatsheet men vissa av punkterna i min beatsheet är mer flexibla och kan därför flytta sig mellan korten.

Vad jag gjort nu är att gjort 40 kort där jag på vissa vill få upp två olika värden från mitt beatsheet. Jag trodde detta skulle gå med valuelist men det som händer är att jag antingen inte får något värde eller så får jag även värden från andra manus i min databas.

Kan jag fixa detta?

Grundregeln är att om du har samma snutt av information i två tabeller så kan du relaterade dem till varann.

Låter som om du bör ha en tabellstruktur som är manus, beatsheet, board som huvudsakliga tabeller och sedan manus_beatsheat för att länka samman manus och beatsheat och beatsheat_board för att länka ihop beatsheat och board (om det behövs). Jämför med kunder, artiklar, order, orderrader. En kund kan ha flera order, en order kan ha flera orderrader, det enda man gör är att sätta ID-nummer på allt möjligt och skapa fält i olika tabeller för dessa id-nummer så man kan länka ihop saker med varann.

En post i tabellen orderrad har tex ett fält för ID_Artikel och ett annat för ID_Order.

Att tilldela dessa fält värden eller få posterna att skapas automatiskt gör man med manus och/eller relationer.

Det låter svårt för en nybörjare på filemaker.

Är det så?

Allt är lätt om man kan det.

Det finns böcker och webbsiter och förstås metoden att dela upp problemet i mindre och mindre delar tills delen är så liten så att man vet hur man skall lösa den.

En annan metod är att bjuda någon trevlig hjälpsam FM-utvecklare på kaffe och bakelser eller öööööl tills han berättar allt du behöver veta.

Din fråga är förstås helt omöjlig att svara på för jag vet inte om du vet hur man gör relationer, definierar fält, skapar manus och förstår hur alla dess saker hänger ihop mm.

Jag förstår att den är svår att svara på, jo jag kan lite om FM och jag tror att jag eventuellt kan lyckas bena ut problemet - fast jag vill inte lägga för mycket tid på programmet när jag egentligen borde lägga mer tid på manusskrivandet.

In a perfect world...

Taz du har ingen databas som jobbar med relationer osv så som du tycker att även min borde göra? som man kan kika på för att få lite mer koll.

Sen en till fråga.

Är tabeller/ relationer det bästa sättet eller det enda sättet för att kunna hämta data till ett fält från två andra fält?

Alltså att jag vid ett fält kan välja mellan att använda datan från fält 1 eller från fält 2 genom exempelvis en drop down meny?

Klart jag har en massa sådana databaser men tyvärr ingen jag på ett lätt sätt kan plocka ut releveanta delar ur och få dem att fungera fristående, i alla fall tar det mig en bra stund att göra det på ett sätt som gör att du förstår poängen och därför är jag inte villig att dela med mig någon sådan databasjust nu. Ledsen men så är det. Men det är ett bra uppslag på en artikel på min ofärdiga webbsite om FileMaker.

Sedan vet jag inte om du förklarat vad du vill göra tillräckligt bra för att jag skall kunna lämna ett relevant svar.

Om jag svarar på exakt vad du frågar (vilket nog inte är vad du menar), så är lättaste sättet att sätta ihop data från två fält i ett fält att det senare fältet är ett beräkningsfält med en beräkning såsom denna:

Fält 1 & " " & Fält 2

Exempel:

Förnamn & " " & Efternamn

Eller

Kund::Förnamn & " " & Kund::Efternamn

(det sista exemplet är två relaterade fält).

Man kan även göra villkor i beräkningsfält (vi antar att din drop-down ligger ovanpå ett fantasifullt döpt fält som heter Meny1), en Case-sats innehåller flera villkor efter varandra och när et vilkor hittat som stämmer jämförs inte flera villkor):

Case(
Meny1 = "Grönt"; "Text att visa och " & Gröna fältet ;
Meny1 = "Rött"; "Text att visa och " & Röda fältet ;
Meny1 = "Blått"; "Text att visa och " & Ladidajagärenlitentekanna fältet ;
"Text att visa då inget stämmer")

Relationer är nästa steg om du är med mig så här långt.

Tack Taz. Jag förstår om du inte lämnar ut saker hursom men fråga måste man ändå få göra.

Här kommer två filer med exempel hur mitt tänk är ifall att det skulle vara lättare att hänga med i hur jag vill ha det.

Först är det en layout som jag kallar "beatsheet" där jag idag fyller i ett antal fält 15 st för att vara exakt, idag enbart i ett record.

Sen har vi nästa layout som jag här kallar "card board" med ett flertal kort. Vissa kort kan med automatik få sin info från beetsheet. Medan andra är mer flexibla. Så att jag tex på kort 3 vill kunna genom tex en drop down meny få upp info från tex (Theme och Catalyst) från mitt beatsheet.

Jag har försökt olika varianter men kan inte direkt klura ut det.

Ok, nu fattar jag. Du vill i beatsheet även lätt ordna om dina scener antar jag? Att det i de olika rutorna kan finnas vissa automatiska data (att tex öppningsscen alltid är i första rutan) förstår jag också och att man lätt skall kunna fylla i vissa saker från värdelista och andra i form av text.

Det är inte toklätt att göra allt det där men fullt görbart.

Här kommer ett par pekare i rätt riktning- Bland FileMakers layoutverktyg finns portaler, det är en konstruktion som visar flera poster från en relaterad databas, dessa kan tyvärr inte scrolla i sidled, bara i höjdled. Men här är en kul grej - man kan ha många portaler för samma relation i samma layout, man kan även visa x antal relaterade poster , alltså kan man välja endast att visa en och man kan även i varje portal ange första post att visa och dessutom sortera i vilken ordning de relaterade posterna visas. Alltså kan du lägga ut 30 portaler med ett par fält i varje, du sorterar alla på samma sätt (fallande på innehållet i ett nytt fält: ordningsnummer) och alla portaler visar endast en post. Den första visar med start från post 1, den andra visar med start i post 2, den tredje visar .... Då får du alltså relaterade poster som scrollar i sidled istället för vertikalt.

Komplettera med 60 (nja, 58 för att vara exakt) knappar som kör samma manus men som skickar med olika parametrar, -1, +1, -2, +2, -3, +3 osv. Parametern -3 motsvarar att man på post tre klickat på minusknappen för att flytta post 3 till post 2 och vice versa.

Det finns flera sätt att göra detta, ett är att använda sig av fraktioner, om man klickade på -3, hoppa till tredje posten via en relation som går på ordningsnumret, subtrahera 1,5 från värdet i ordningsfältet (dvs värdet blir då 1,5 istället för 3), sortera alla hittade poster på ordningssiffran, (1, 1.5, 2, 4, 5 osv), gå till första, loopa igenom alla, tilldela dem nya siffror, 1, 2, 3, 4 osv, då har 2 och 3 bytt plats.

I övrigt skapar du värdelistor med hjälp av relationer eller fasta värden eller beräkningsfält.

För att fylla i värden automatiskt, använder du dig av manus och/eller länkdata (se fliken automatiska data i fältets egenskaper).

Lycka till!

Oj. du verkligen kanon Taz - jag ska försöka mig på det du säger, kommer troligtvis att stöta på patrull men...

tack för hjälpen åter en gång.

Nu har jag återigen en liten fråga. Jag skulle vilja kunna markera vissa kort på något sätt med olika färger. Bara en liten röd markering, blå eller grön. Det kan vara en fyrkant, en cirkel osv.

Hur kan man lösa detta?

Tekniken med Reg och Rel_X:
Detta är en generell beskrivning av en teknik som FileMaker-utvecklare använder sig av, som alla FileMaker-utvecklare bör kunna.

För att lagra vissa saker, tex kundens adress, telefonnummer, nästa fakturanummer, nästa kundnummer, kundens logo så att man bara behöver ändra dessa uppgifter på ett ställe i ett stort affärssystem mm så skapar man en extra tabell med endast en post. Andra tabeller har sedan en sk konstantrelation mellan sig själva och denna inställningstabell som jag brukar döpa till Reg (andra namn är inställningar, Settings, Parametrar, system, admin osv...).

En konstantrelation är en hyggligt ny uppfinning i FM, man kan numera länka ihop vilka två fält som helst med varandra (tex ID_Kund med tex Orderdatum). Man gör det för att relatera alla poster i en tabell med alla poster i en annan tabell och syftet med detta är att man skall kunna skicka data mellan olika tabellers variabelfält. Som i sin tur kallas så för att de används oftast för att lagra variabler, men av någon anledning så heter detta "Global indexering" i inställningarna för numeriska, text, datum mfl fält. Ett fält med Global indexering är ett variabelfält.

Men då jag tycker det är väldans osnyggt att länka ihop ID_Kund med tex Orderdatum och göra det med en relation av typen "X" (vilket iofs är full möjligt och tekniskt korrekt), så skapar jag speciella fält i nästan alla mina tabeller som heter RelX, dessa är beräkningsfält med beräkningen "X", beräkningsresultat text. (Alltså innehåller dessa fält endast bokstaven X och inget annat.) Sedan länkar jag ihop RelX i en tabell med RelX med en annan tabell och jag döper relationen sålunda Kunder_Order_RelX (dvs på formen starttabell_sluttabell_fältnamn).

Exempel på användning av gammal dålig teknik: Vill jag skapa en ny order när jag står på en kund så vet jag ju kundnumret. Gammal dålig metod är att kopiera kundnumret, hoppa till order, skapa en ny post, klistra in kundnumret. Det är dåligt av flera skäl och jag tar inte upp dessa här.

Bättre metod med ny bra teknik: jag har en konstantrelation mellan kunder och order, i båda tabellerna har jag några variabelfält som heter VariabelNum1, VariabelNum2, VariabelTxt1, VariabelTxt2 (de är bra att ha i många sammanhang så jag brukar göra några stycken i många av mina tabeller i ett system). Står jag i layouten Kunder så tilldelar jag via Kunder_Order_RelX::VariabelNum1; kundnumret (fältet ID_Kund). Det betyder att i tabellen Order finns nu ID_Kund. Hoppa dit, skapa en ny post, stoppa in i fältet ID_Kund vad som finns i VariabelNum1, verkställ post, hoppa till någon fin layout där användaren kan börja lägga artiklar på denna nya order.

Hur du bygger en visa markeringsbild med hälp av ovanstående teknik
I ditt fall så gör du något liknande, skapa en tabell Reg, skapa i den beräkningsfältet RelX enligt ovan och dessutom fyra, fem containerfält "Bild1", "Bild2" osv...

I layouten för Reg, lägg ut bildfälten, skapa en ny post om det inte redan finns en (du skall bara ha en post i denna tabell), högerklicka på fälten och infoga din gröna boll i bild 1, din röda boll i bild 2 osv...

Skapa sedan fältet RelX i den tabell du vill visa bollarna i och skapa därefter en relation mellan din tabell, vi kan kalla den tabell1 i fortsättningen och Reg, dvs Tabell1_Reg_RelX.

Gå nu till definiera fält i Tabell1, skapa fältet "Markeringssiffra", numeriskt fält.

Skapa sedan ett fält "Markeringsbild_C" (C för Calculation, dvs beräkning). Resultatet av denna beräkning skall vara container och beräkningen skall vara:

Case(
Markeringssiffra=1; Tabell1_Reg_RelX::Bild1;
Markeringssiffra=2; Tabell1_Reg_RelX::Bild2;
Markeringssiffra=3; Tabell1_Reg_RelX::Bild3;
Markeringssiffra=4; Tabell1_Reg_RelX::Bild4;
"")

Sedan kan du lägga ut fältet Markeringsbild_C i din layout och även fältet Markeringssiffra. När du skriver 1 i fältet så visas bild 1, när du skriver 2, visas bild 2 osv...

Lite snyggare är sedan att tilldela fältet Markeringssiffra siffran med manus istället för att man matar in den för hand, då behöver det fältet inte ligga i layouten längre heller.

Lycka till!

Inget svar på detta?

Hej Taz, jag tackar för ditt svar, jag försöker mig på det du skriver och det verkar gå framåt med mitt databas program, inte snabbt men framåt.

1
Bevaka tråden