Avatar billede jmgranner Juniormester
28. maj 2009 - 07:38 Der er 4 kommentarer og
2 løsninger

xport af ID fra 5.5

Jeg er igang med at skulle oprette et export fra en filemaker version 5.5 som ikke skal opdateres. Export går fint vil csv som det skal blot mangler jeg at få ID med. Det skal være det ID fieldname som ligger i filemaker.
Er der nogle som kan sige hvordan man kan gøre så det kan vælges med over til export?
Avatar billede zordesign Nybegynder
28. maj 2009 - 08:53 #1
Jeg læser dit spørgsmål sådan, at du vil lave et script, der laver eksporten så du får de samme felter med over hver gang.

Eksport er lidt kringlet fra FileMaker før version 7. Du skal starte med at lave eksporten som du gerne vil have den dvs. gå i File > Export Records..., vælge eksportformat og filnavn og vælge de felter, der skal med (her dobbeltklikker du på felterne i listen i venstre side af dialogboksen så de hopper over på højre side)

Herefter laver du dit script og trækker det script-step ind, der hedder Export Records og sørger for, at Restore Export Order er afkrydset. Når du herefter kører scriptet, vil det foreslå de felter, du før udpegede.

Hvis du vil ændre på de felter, der indgår i eksporten, laver du først en ny manuel eksport. Herefter går du ind i redigering af dit eksport-script og trykker OK - FileMaker advarer om, at visse ændringer er ændret siden sidst, og beder dig beslutte, om de arkiverede ændringer skal bevares, eller om de skal opdateres. Vælg "Replace" ud for Export Order, og så er den opdateret.

I FileMaker 7 og nyere kan du direkte i scriptet ændre eksportindstillinger, sorteringsindstillinger mv.

- André
Avatar billede jmgranner Juniormester
28. maj 2009 - 10:43 #2
Jeg har prøvet det du skriver, men jeg kan ikke se hvordan jeg kan få exporteret ID på record, altså det nummer med ud. Der er ikke noget som hedder ID, det field findes ikke. Kan kan ikke få et nummer med ud.
Avatar billede jmgranner Juniormester
28. maj 2009 - 13:26 #3
Det ville være rart hvis det var muligt på en eller anden måde at tilføje et indeks og køre en query igennem, men jeg er altså ikke sikker på om der overhovedet er noget sådant.
Avatar billede zordesign Nybegynder
28. maj 2009 - 23:15 #4
Så misforstod jeg dit spørgsmål - jeg troede, du allerede havde ID-feltet i din database. FileMakers interne ID.

FileMaker opretter et internt ID, som du kan få frem hvis du opretter et nyt felt af typen calculation. I beregningen indtaster du udtrykket Status (CurrentRecordID) - så får du det interne ID med ud. Ulempen ved dette ID er, at du ikke kan ændre på det - det tildeles automatisk og starter ved 1.

Hvis du har planer om at bruge dette ID til noget internt, vil jeg i stedet anbefale at du opretter et felt til dette. Lad det være af typen Number og gå i Options for feltet. Her kan du indstille FileMaker til automatisk at udfylde det med set løbenummer (vælg Serial Number). Hvis du allerede har oprettet poster, som skal have tildelt ID efterfølgende, kan du vise alle poster, klikke ind i feltet og vælge Records > Replace Contents.. og så herfra vælge at udfylde med serienummeret.

- André
Avatar billede jmgranner Juniormester
28. maj 2009 - 23:38 #5
Vi kommer nærmere :)
Beklager hvis jeg fik beskrevet det lidt uklart.

mht. CurrentRecordID
Den melder "This field can not be found"

Jeg prøvede følgende:

Fra Navigationsrubrikken dobbelt-klikkes: Go to Record/Request/Page
Fra Controlrubrikken dobbelt-klikkes: Loop
Fra Fieldsrubrikken dobbelt-klikkes: Set Field
    Herunder redigeres:
    Script Step Options
        Specify target: vælg record_id og klik OK
        Calculated result: skriv (uden citationstegn): "Getfield(ID)" og klik OK
Fra Navigationrubrikken dobbelt-klikkes: Go to Record/Request/Page
    Herunder redigeres:
    Specify: select Next
    Kryds i Exit after last

Men feltet record_id er stadigt tomt, det er nok pga. at ID også er det.... :O)
Avatar billede zordesign Nybegynder
02. juni 2009 - 08:15 #6
Hej Jan

Så kom vi meget nærmere - god bonusinfo!

I stedet for scriptet kan du benytte finde de poster, du skal have sat ID ind på (det er jo dem alle, så en Records > Show All Records er nok det letteste).
Dernæst klikker du i feltet record_id (som er dit nye ID-felt går jeg ud fra) og vælger Records > Replace Contents og vælge Replace with calculated result.
Nu klikker du Specify og taster (uden anførselstegnene) "Status( CurrentRecordID )". Klik OK og klik herefter Replace.

Du kan også rette dit script så at du i dit Calculated result skriver Status( CurrentRecordID ) - det vil også virke, men et script er ikke strengt nødvendigt.

Ingen af disse metoder sikrer at du får en fortløbende ID på nye poster - der skal du ind i dit nye record_id-felt (File > Define FIelds, klik på record_id og klik Options... I fanen Auto Enter afkrydser du Serial Number og sætter Next value så den er 1 over den største værdi, der står i feltet på nogen post lige nu. Du kan vælge at sætte supplerende krav nu du er i Define Fields alligevel - fx Prohibit modification of value, Not Empty og Unique.

GetField-funktionen kan du ikke bruge her - den er beregnet til at tage værdien af et felt (dvs. feltindholdet), men dit problem er jo, at du ikke har nogen værdi at tage..

- André
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester