Question

On m'a demandé de consulter FileMaker pour créer une application de base de données assez simple. L’application gérera les informations de contact, certaines informations sur les événements organisés par l’organisation et - c’est là où j’ai du mal à résoudre - des informations de RSVP qui relient les contacts et les événements, ainsi que des données de paiement.

Ce que je voudrais utiliser est une sorte de formulaire permettant à l’utilisateur de rechercher un contact (toute combinaison de prénom / nom) et un événement (toute combinaison de nom / date), en sélectionnant chacun dans deux listes respectives. (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 eu jusqu'à présent est un formulaire où l'utilisateur peut entrer un ContactId et un EventId manuellement, ce qui signifie qu'il doit d'abord accéder à une autre vue, rechercher les enregistrements et copier / coller l'identifiant. chiffres.

  • Existe-t-il vraiment un moyen de me rapprocher de ma vision avec FileMaker?

  • Une meilleure option serait-elle de créer 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 existe évidemment un "facteur de sécurité". cela parle 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 préalable de FileMaker. J'ai essayé de lire la documentation, mais je n'ai trouvé aucun tutoriel qui me rapproche de mes besoins spécifiques. Je connais assez bien MsSQL et je connais donc ceci et cela à propos de la gestion de base de données en général - mais pas de FileMaker.

Était-ce utile?

La solution

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 celle-ci:

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

Créez entre eux une nouvelle table de liens contenant également les informations RSVP supplémentaires souhaitées.

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

Créer une table FORM

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

Ajoutez les champs suivants aux tableaux Contacts et Evénements:

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 for Contacts ressemblera à ceci:

John
Smith
John Smith
ALL

Dans le diagramme de relations, connectez les tables comme suit:

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

Créez une mise en page appelée FORM en vous basant sur la table FORM.

Ajoutez les champs ContactSearch et EventSearch à la présentation. Ajoutez le champ PaymentInfo.

Ajoutez deux portals à la présentation, un pour la table des contacts, un pour les événements.

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

Écrivez un script ou utilisez un déclencheur de script pour actualiser la présentation chaque fois que l'un de ces champs de recherche est Exited / Modified. Cela devrait actualiser les portails et vous montrer les enregistrements associés qui vous intéressent.

Ajoutez un bouton à chaque ligne des portails et appelez un script définissant une variable globale correspondant à cet ID de lignes.

Par exemple:

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

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

Ajoutez un autre bouton à 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

Ouf.

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

FileMaker est amusant, hein?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top