Ottenere dati sul campo da un database Bento usando Applescript

2

Ho problemi nel recuperare i valori del campo da un database Bento usando Applescript:

Sto usando il seguente codice per ottenere le voci ma non riesco a ottenere le celle o i campi associati alle voci. Qualcuno può indicarmi la giusta direzione:

tell application "Bento"
repeat with i from 1 to count of libraries
    set theName to name of library i
    log theName
    if theName is equal to "Reconnaissance site report" then
        log "The library has been found"
        set theLibraryProperties to properties of library i
        log theLibraryProperties
        tell library i
            repeat with j from 1 to count of entries
                set theEntryName to id of entry j
                set theEntryProperties to properties of entry j
                log theEntryName
                log theEntryProperties
            end repeat
        end tell
    end if
end repeat
end tell
    
posta Ian Turner 16.07.2011 - 19:29
fonte

2 risposte

1

Il dizionario di scripting di Bento è piuttosto sottile. Sembra che campo , voci e celle siano tutti nel dizionario di script di Bento 3 - quindi è difficile dire se sono stati lì da sempre o sono aggiunti per un utilizzo futuro.

Non sono molto abile nel debug di AppleScript, quindi non vedo errori con il codice che hai postato.

Hai provato a scorrere su _source_items_ per campi e celle ? Il dizionario sembra indicare che i dati sono lì e non facilmente accessibili da una collezione . Questo e un sacco di registrazione potrebbe compensare la mancanza di uno strumento interattivo per interrogare il bridge di scripting.

Lo scripting è un elemento di differenziazione delle funzionalità tra Bento e il prodotto Filemaker più completo dalle stesse persone.

Hai provato a usare sqlite3 per leggere il database in ~/Library/Application\ Support/Bento/bento.bentodb/Contents/Resources/Database ?

Lo schema e le tabelle sono tutti aperti a qualsiasi strumento SQL che ti piace. Spero che sia solo questione di costruire la query giusta se preferisci AppleScript (e c'è molto da preferire su questo argomento rispetto allo scripting da riga di comando).

    
risposta data 16.07.2011 - 20:49
fonte
-1

La bicicletta ha qualche buon consiglio, ma aggiungerò alcune informazioni utili speranzose.

La libreria / raccolta selezionata, ognuno dei campi nella libreria deve essere memorizzato nella proprietà 'fields' della libreria.

Durante l'iterazione sulle voci, ogni voce contiene una raccolta di celle in cui il nome di ciascuna cella corrisponde al nome dei campi nella raccolta dei campi

Set myValue to cell "field name" of entry j

Mi dispiace, non posso pubblicare nessun codice reale, scrivendo da iPad.

    
risposta data 15.01.2012 - 23:28
fonte

Leggi altre domande sui tag