Pergunta

I foram convidados a olhar para FileMaker para criar um aplicativo de banco de dados muito simples. A aplicação irá lidar com informações de contato, algumas informações sobre eventos organizados pela organização e - e isso é onde eu estou atualmente lutando -. Informação de RSVP que ligam os contatos e eventos, bem como lojas de alguns dados sobre o pagamento

O que eu gostaria de usar algum tipo de formulário onde o usuário começa a procurar um contacto (qualquer combinação de primeira apelido /) e um evento (qualquer combinação de nome / data), selecione cada de duas respectivas listas (onde todas as outras informações é exibida, bem como, para distinguir os resultados), acrescentar algumas informações adicionais e clique em enviar.

O mais próximo que eu comecei até agora é um formulário onde o usuário pode inserir um ContactId e EventId manualmente, o que significa que ele / ela primeiro tem que ir para outro ponto de vista, procurar os registros, e copiar / colar o id números.

  • Não há realmente nenhuma maneira de se aproximar de minha visão usando FileMaker?

  • Será que uma opção melhor ser a construção de um novo aplicativo, personalizado usando, por exemplo, C # e MsSQL?

  • Se sim, como faço para vender isso para o meu contratante? Como isso seria, nesse caso, a minha primeira aplicação comercial, não é, obviamente, um "fator de segurança" que fala a favor de um produto estabelecido. E então nós nem sequer mencionou que o custo provavelmente aumentar, assim como o desenvolvimento de um novo aplicativo a partir do zero levaria muito mais tempo.

Nota: Eu não tenho nenhuma experiência anterior com FileMaker. Eu tentei ler a documentação, mas eu não tenho sido capaz de encontrar qualquer tutoriais que me levam mais perto de minhas necessidades específicas. Eu estou bastante experiente em MSSQL, então eu sei isso e aquilo sobre o gerenciamento de banco de dados em geral -. Não apenas em FileMaker

Foi útil?

Solução

Há um monte de maneiras de fazer isso. Esta é uma maneira rápida de fazê-lo funcionar.

Vamos dizer que você tem duas tabelas como este:

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

Criar uma nova tabela de ligação entre eles que também armazena a informação de RSVP extra que você quiser.

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

Criar uma tabela FORM

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

Adicione os seguintes campos para os contatos e eventos tabelas:

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

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

Isto significa que o cMatchField para contatos será algo parecido com isto:

John
Smith
John Smith
ALL

No diagrama de relacionamento, conectar as tabelas como este:

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

Crie um formulário de layout chamado com base na tabela FORM.

Adicione os campos ContactSearch e EventSearch ao layout. Adicione o campo PaymentInfo.

Adicionar dois portais para o layout, um para a tabela de contatos, um para os eventos.

Por padrão, você deve ver todos os registros em cada um desses portais.

Escrever um script, ou usar um gatilho roteiro, que atualizará o layout sempre que um desses campos de pesquisa é encerrado / Modificado. Isso deve atualizar os portais e mostrar-lhe os registros relacionados que você está interessado.

Adicionar um botão para cada linha nos portais e chamar um script que define uma variável global para que portal linhas ID.

Por exemplo:

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

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

Adicionar outro botão para o layout e um novo 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

Ufa.

E você deve estar de volta, pronto para procurar contatos, eventos, e "Enviar" a forma de criar mais RSVPs.

FileMaker é divertido, né?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top