“複雑なフォームの作成” FileMakerで-それは可能ですか?

StackOverflow https://stackoverflow.com/questions/1026317

  •  06-07-2019
  •  | 
  •  

質問

かなりシンプルなデータベースアプリを作成するためにFileMakerを調べるように頼まれました。アプリケーションは、連絡先情報、組織がホストするイベントに関するいくつかの情報を処理します-そしてこれが現在苦労している場所です-連絡先とイベントをリンクするRSVP情報、および支払いに関するいくつかのデータを保存します。

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

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

  • FileMakerを使用して自分のビジョンに近づける方法は本当にないのですか?

  • C#やMsSQLなどを使用して、新しいカスタムアプリを構築する方が良いでしょうか?

  • もしそうなら、どうやってこれを請負業者に売るのですか?これが私の場合の最初の商用アプリケーションになるのと同様に、明らかに「安全係数」があります。それは確立された製品を支持して語っています。そして、新しいアプリをゼロから開発するのに非常に長い時間がかかるので、おそらくコストが上がるだろうということすら言及していません。

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

役に立ちましたか?

解決

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

次のような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つのPORTALSをレイアウトに追加します。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は楽しいですね?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top