- Ulf H
- Medlem ●
- 2004-04-04 15:20
Problem:
Jag har ett Filemaker Pro 7 Register (körs på MacOSX Panther) som inehåller ett antal 1000 bilder. Bilderna är sparade i ett container fält men lagras inte i filsystemet utan i själva registret.
Av säkerhets/backup själ enligt upphovsmakaren av registret.
Jag behöver nu efter vissa sökkriterier extrahera ett antal bilder till (flera 100) till filsystemet för vidare bearbetning. Eftersom det här är i princip ett en gångs jobb så är inte någon Plugin (Heter det så ? någon option, vet att sådana finns)
Så mina alternativ är antingen Manusscript eller AppleScript.
Men jag har lite problem med båda lösningarna. Jag har labbat lite med "Photo Catalog" som följer med
Filemaker och funnit följande:
I FileMaker hittade jag efter lite sökande "Export Field Content". Den fungerar i princip men verkar bara stödja hårdkoddade namn på det jag vill exportera. Alltså jag kan inte dynamiskt ange vilket filnamn bilden ska ha på disken utan antingen måste det hårdkodas i scriptet eller så får jag en popup för varje bild och måste själv mata in namnet på bilden. Jobbigt med flera 100 bilder (även om det är ett engångsjobb vill jag göra en snygg lösning) och vill göra funktionen återanvändbar
Manusscriptet ser ut enligt:
Go to Layout [ "Form with Metadata" (Photo Catalog) ] Go to Record/Request/Page [ First ] Sort Records [ Specified Sort Order: Photo Catalog::Name; ascending Photo Catalog::Date Entered; descending ] [ Restore ] Loop Go to Field [ Photo Catalog::Image ] Export Field Contents [ Photo Catalog::Image ] Go to Record/Request/Page [ Next ] End Loop
Fråga: Går det att dynamiskt hämta namnet på bilden från mitt register och använda som parameter till "Export Field Content" i Filemaker 7
Jag tror att ovanstående script steg kräver ett statiskt namn men kan förhoppningsvis ha fel ?!
Min andra tanke var att använda AppleScript för att exportera bilderna men jag lyckas inte få ihop det heller. Det vore fakiskt en snygg lösning att göra allt från AppleScript och det borde gå. Men jag fattar inte hur jag ska kunna extrahera innehållet i ett Container fält och sedan spara innehållet som en bild
(alltså kombinera det lagrade namnet på bilden i registret med inehållet i container fältet som är själva
bilddatat) och FileMaker dokumentationen har inte hjälpt mig här.
Här är det jag lyckats knåpa ihop med AppleScript.
Loopen verkar gå igenom alla bilder men a) Jag kan inte skriva ut innehållet ur bilden i filen i rätt format
b) write verkar endast stödja text. Finns någon fiffig funktion för att spara en bild från ett container fält
i AppleScript ??
tell application "Finder" set thefolder to "Bilddata" if exists folder thefolder then set thefolder to item thefolder as alias else make new folder with properties {name:"Bilddata"} set thefolder to result end if end tell tell application "FileMaker Pro" sort second layout by {field "Name"} repeat with i from 1 to count of records set TheName to get data first cell set MyName to TheName as string set TheImage to get data second cell set theFile to open for access file (thefolder & MyName as string) with write permission -- -- write TheName to theFile close access theFile end repeat end tell
Kanske är den rätta lösningen en kombination av Manusscript i Filemaker med AppleScript ? Börjar i af att förtvivla och känna mig lite dum i huve..
Så slänger ut problemet här för att se om någon expert på FM har någon smart lösning.
Mvh
/Ulf