2009-06-22 6 views
1

On m'a demandé de regarder dans FileMaker pour créer une application de base de données assez simple. L'application traitera les informations de contact, certaines informations sur les événements hébergés par l'organisation et - et c'est là où je suis actuellement en difficulté - les informations de RSVP qui relient les contacts et les événements, ainsi que des données sur le paiement. Ce que je voudrais utiliser est une sorte de formulaire où l'utilisateur peut chercher un contact (tout combo de prénom/nom de famille) et un événement (tout combo de nom/date), sélectionnez chacun de deux respectifs listes (où toutes les autres informations sont également affichées, pour distinguer les résultats), ajoutez des informations supplémentaires et cliquez sur soumettre. Le plus proche que j'ai obtenu jusqu'à présent est un formulaire où l'utilisateur peut entrer manuellement un ContactId et EventId, ce qui signifie qu'il/elle doit d'abord aller à une autre vue, rechercher les enregistrements, et copier/coller le numéros d'identification.Création de "formulaires complexes" dans FileMaker - est-ce encore possible?

  • Est-ce qu'il n'y a vraiment aucun moyen de se rapprocher de ma vision en utilisant FileMaker?

  • Une meilleure option serait de construire une nouvelle application personnalisée en utilisant par exemple C# et MsSQL?

  • Si oui, comment puis-je le vendre à mon entrepreneur? Comme ce serait dans ce cas ma première application commerciale, il y a évidemment un «facteur de sécurité» qui plaide en faveur d'un produit établi. Et puis nous n'avons même pas mentionné que le coût augmenterait probablement, car développer une nouvelle application à partir de zéro prendrait beaucoup plus de temps.

Remarque: Je n'ai aucune expérience antérieure avec FileMaker. J'ai essayé de lire la documentation, mais je n'ai pas trouvé de tutoriel qui me rapproche de mes besoins spécifiques. J'ai assez d'expérience en MsSQL, donc je sais ceci et cela sur la gestion de base de données en général - mais pas sur FileMaker.

Répondre

4

Il existe de nombreuses façons de le faire. C'est un moyen rapide de le faire fonctionner.

Disons que vous avez deux tables comme ceci:

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

Créer une nouvelle table de lien entre eux qui stocke également les informations RSVP supplémentaire que vous voulez.

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

Créer une table FORMULAIRE

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

Ajoutez les champs suivants aux contacts et événements tables:

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

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

Cela signifie que le cMatchField des contacts ressemblera à quelque chose comme ceci:

John 
Smith 
John Smith 
ALL 

Dans le schéma de relation, relier les tables comme ceci:

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

Créer une mise en page appelée formulaire basé sur la table FORM. Ajouter les champs ContactSearch et EventSearch à la mise en page.Ajoutez le champ PaymentInfo.

Ajoutez deux PORTALS à la mise en page, un pour la table Contacts, un pour les événements.

Par défaut, vous devriez voir tous les enregistrements dans chacun de ces portails.

Ecrivez un script ou utilisez un déclencheur de script pour actualiser la mise en page lorsque l'un de ces champs de recherche est Quitté/Modifié. Cela devrait rafraîchir les portails et vous montrer les enregistrements qui vous intéressent.

Ajoutez un bouton à chaque ligne dans les portails et appelez un script qui définit une variable globale à cet ID de lignes de portail.

Par exemple:

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

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

bouton Ajouter un autre à la mise en page et un nouveau 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 

Oeuf.

Et vous devriez être de retour, prêt à rechercher des contacts, des événements, et "soumettre" le formulaire pour créer plus de réponses.

FileMaker est amusant, hein?

+0

Whoa! J'avais espéré pouvoir le faire de manière plus simple - la seule raison pour laquelle j'ai envisagé d'utiliser FileMaker pour ce projet était d'éviter d'avoir à écrire du code moi-même et de pouvoir compter sur des logiciels déjà stabilisés et nettoyés. . S'il y a beaucoup de «vrai programmation» à faire, je ferais aussi bien d'utiliser une technologie que je connais. C# et MSSQL, on y va ... =) Mais de toute façon, merci beaucoup pour votre temps et vos efforts! Vous avez maintenant été récompensé! =) –

Questions connexes