1

非常にシンプルなデータベースアプリを作成するためにFileMakerを調べるように依頼されました。アプリケーションは、連絡先情報、組織がホストするイベントに関するいくつかの情報を処理し、連絡先とイベントをリンクし、支払いに関するデータを保存するRSVP情報を処理します。

私が使用したいのは、ユーザーが連絡先(名前/姓の任意の組み合わせ)とイベント(名前/日付の任意の組み合わせ)を検索し、2つのそれぞれのリスト(すべて結果を区別するために、他の情報も表示されます)、いくつかの追加情報を追加して、送信を押します。

これまでに入手した最も近いフォームは、ユーザーがContactIdとEventIdを手動で入力できるフォームです。つまり、ユーザーは最初に別のビューに移動し、レコードを検索して、ID番号をコピーして貼り付ける必要があります。

  • FileMakerを使用して私のビジョンに近づく方法は本当にありませんか?

  • たとえばC#やMsSQLを使用して、新しいカスタムアプリを作成するのがより良いオプションでしょうか?

  • もしそうなら、どうすればこれを請負業者に売ることができますか?その場合、これが私の最初の商用アプリケーションになるので、確立された製品を支持する「安全率」が明らかにあります。そして、新しいアプリを最初から開発するのにはるかに長い時間がかかるため、コストがおそらく増加することについても言及していません。

注:FileMakerの使用経験はありません。ドキュメントを読み込もうとしましたが、特定のニーズに近づくためのチュートリアルを見つけることができませんでした。私はMsSQLの経験が豊富なので、FileMakerだけでなく、データベース管理全般についても知っています。

4

1 に答える 1

5

それを行う方法はたくさんあります。これは、それを機能させるための簡単な方法です。

次のような2つのテーブルがあるとします。

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

それらの間に新しいリンクテーブルを作成します。このテーブルには、必要な追加のRSVP情報も格納されます。

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

FORMテーブルを作成します

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

次のフィールドを連絡先テーブルとイベントテーブルに追加します。

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

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

これは、連絡先のcMatchFieldが次のようになることを意味します。

John
Smith
John Smith
ALL

関係図で、次のようにテーブルを接続します。

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

FORMテーブルに基づいてFORMというレイアウトを作成します。

ContactSearchフィールドとEventSearchフィールドをレイアウトに追加します。PaymentInfoフィールドを追加します。

2つのポータルをレイアウトに追加します。1つは連絡先テーブル用、もう1つはイベント用です。

デフォルトでは、これらの各ポータルにすべてのレコードが表示されます。

スクリプトを作成するか、スクリプトトリガーを使用して、これらの検索フィールドの1つが終了/変更されるたびにレイアウトを更新します。これにより、ポータルが更新され、関心のある関連レコードが表示されます。

ポータルの各行にボタンを追加し、そのポータル行IDにグローバル変数を設定するスクリプトを呼び出します。

例えば:

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

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

レイアウトと新しいスクリプトに別のボタンを追加します。

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

ふぅ。

そして、連絡先、イベントを検索し、フォームを「送信」してさらにRSVPを作成する準備ができているはずです。

FileMakerは楽しいですよね?

于 2009-06-26T10:46:30.907 に答える