Domanda

Mi è stato chiesto di cercare FileMaker per creare un'app di database piuttosto semplice. L'applicazione gestirà le informazioni di contatto, alcune informazioni sugli eventi ospitati dall'organizzazione e - ed è qui che sto attualmente lottando - le informazioni RSVP che collegano i contatti e gli eventi, oltre a memorizzare alcuni dati sul pagamento.

Quello che vorrei usare è un tipo di modulo in cui l'utente può cercare un contatto (qualsiasi combinazione di nome / cognome) e un evento (qualsiasi combinazione di nome / data), selezionare ciascuno da due rispettivi elenchi (dove vengono visualizzate anche tutte le altre informazioni, per distinguere i risultati), aggiungi alcune informazioni aggiuntive e premi invia.

Il più vicino che ho ottenuto finora è un modulo in cui l'utente può inserire manualmente un ContactId e EventId, il che significa che deve prima andare in un'altra vista, cercare i record e copiare / incollare l'id numeri.

  • Non c'è davvero modo di avvicinarmi alla mia visione usando FileMaker?

  • Un'opzione migliore sarebbe quella di creare una nuova app personalizzata usando ad esempio C # e MsSQL?

  • In tal caso, come posso venderlo al mio appaltatore? Poiché in questo caso si tratterebbe della mia prima applicazione commerciale, esiste ovviamente un "fattore di sicurezza". che parla a favore di un prodotto affermato. E poi non abbiamo nemmeno menzionato che il costo probabilmente aumenterebbe, poiché lo sviluppo di una nuova app da zero richiederebbe molto più tempo.

Nota: non ho precedenti esperienze con FileMaker. Ho provato a leggere la documentazione, ma non sono stato in grado di trovare tutorial che mi avvicinino alle mie esigenze specifiche. Ho una discreta esperienza in MsSQL, quindi conosco questo e quello sulla gestione del database in generale, ma non su FileMaker.

È stato utile?

Soluzione

Ci sono molti modi per farlo. Questo è un modo rapido per farlo funzionare.

Supponiamo che tu abbia due tabelle come questa:

Contacts     Events 
--------     --------
ContactID    EventID
FirstName    EventDate
LastName     EventDetails

Crea tra loro una nuova tabella di collegamenti che memorizza anche le informazioni RSVP extra che desideri.

RSVP
--------
fk_ContactID
fk_EventID
PaymentInfo

Crea una tabella FORM

FORM
--------
ContactSearch
cContactMatch = Calculation, If(isEmpty(ContactSearch) ; "ALL" ; ContactSearch)
EventSearch
cEventMatch = Calculation, If(isEmpty(EventSearch) ; "ALL" ; EventSearch)

Aggiungi i seguenti campi alle tabelle Contatti ed Eventi:

Contacts
--------
cMatchField = Calculation, Stored, (FirstName + NEWLINE + LastName + NEWLINE + ALL + NEWLINE + Firstname LastName) 

Events
--------
cMatchField = Calculation, Stored, (EventDate + NEWLINE + EventDetails + NEWLINE + ALL)

Ciò significa che cMatchField for Contacts avrà un aspetto simile al seguente:

John
Smith
John Smith
ALL

Nel diagramma delle relazioni, collega le tabelle in questo modo:

FORM
--------
cContactMatch    =   CONTACTS/cMatchText
cEventMatch      =   EVENTS/cMatchText

Crea un layout chiamato FORM basato sulla tabella FORM.

Aggiungi i campi ContactSearch ed EventSearch al layout. Aggiungi il campo PaymentInfo.

Aggiungi due PORTALI al layout, uno per la tabella Contatti, uno per gli Eventi.

Per impostazione predefinita, dovresti vedere tutti i record in ciascuno di questi portali.

Scrivi uno script o usa un trigger di script che aggiorna il layout ogni volta che uno di questi campi di ricerca viene chiuso / modificato. Questo dovrebbe aggiornare i portali e mostrarti i relativi record che ti interessano.

Aggiungi un pulsante a ogni riga nei portali e chiama uno script che imposta una variabile globale su quell'ID di righe del portale.

Ad esempio:

Script: Set Selected Contact ID
Set Variable ($ContactID ; Contacts::ContactID)

Script Set Selected Event ID
Set Variable ($EventID ; Events::EventID)

Aggiungi un altro pulsante al layout e un nuovo script.

Script: Create RSVP
# Check that a contact and event have been selected
If(isEmpty($ContactID) or isEmpty($EventID)
    Exit Script
End If
# Get the payment info that has been entered
Set Variable ($PaymentInfo ; FORM::PaymentInfo)
# Create the RSVP Link record
Go To Layout(RSVP)
Create New Record
Set Field(fk_ContactID ; $ContactID)
Set Field(fk_EventID ; $EventID)
Set Field(PaymentInfo ; $PaymentInfo)
Commit Records
Go to Layout (Original Layout)
# Clear the search fields
Set Field(PaymentInfo; "")
Set Field(ContactSearch; "")
Set Field(EventSearch; "")
Set Variable($ContactID; "")
Set Variable($EventID; "")
Commit Records
Refresh Screen

Uff.

E dovresti essere di ritorno, pronto a cercare Contatti, Eventi e " Invia " il modulo per creare più RSVP.

FileMaker è divertente, eh?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top