문제

매우 간단한 데이터베이스 앱을 만들기 위해 FileMaker를 조사하도록 요청 받았습니다. 이 응용 프로그램은 연락처 정보, 조직이 호스팅하는 이벤트에 대한 일부 정보를 처리 할 것이며, 이곳은 연락처 및 이벤트를 연결하는 RSVP 정보를 제공하고 결제에 대한 데이터를 저장합니다.

내가 사용하려는 것은 사용자가 연락처 (이름/성의 콤보)와 이벤트 (이름/날짜의 콤보)를 검색하는 일종의 형태입니다. 다른 정보도 표시되어 결과를 구별하기 위해 추가 정보를 추가하고 제출을 누르십시오.

내가 지금까지 얻은 가장 가까운 것은 사용자가 ContactID 및 EventID를 수동으로 입력 할 수있는 형태입니다. 즉, 먼저 다른보기로 이동하여 레코드를 검색하고 ID 번호를 복사/붙여 넣어야합니다.

  • Filemaker를 사용하여 내 비전에 더 가까이 갈 수있는 방법이 없습니까?

  • 더 나은 옵션이 C# 및 MSSQL과 같은 새로운 사용자 정의 앱을 구축하는 것입니까?

  • 그렇다면 계약자에게 어떻게 판매합니까? 이 경우 첫 번째 상업용 응용 프로그램이 될 수 있듯이, 확립 된 제품을 선호하는 "안전 요인"이 분명히 있습니다. 그리고 우리는 새로운 앱을 처음부터 개발하는 데 시간이 훨씬 더 오래 걸리기 때문에 비용이 증가 할 것이라고 언급하지 않았습니다.

참고 : Filemaker에 대한 이전 경험이 없습니다. 문서를 읽으려고 노력했지만 특정 요구에 더 가까워지는 튜토리얼을 찾을 수 없었습니다. 저는 MSSQL에서 상당히 경험이 많기 때문에 이것과 데이터베이스 관리에 대해 알고 있습니다.

도움이 되었습니까?

해결책

이를 수행하는 방법에는 여러 가지가 있습니다. 이것은 작동하는 빠른 방법입니다.

다음과 같은 두 개의 테이블이 있다고 가정 해 봅시다.

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

원하는 추가 RSVP 정보를 저장하는 새 링크 테이블을 작성하십시오.

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

양식 테이블을 만듭니다

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

양식 테이블을 기반으로 양식이라는 레이아웃을 만듭니다.

Fields ContactSearch 및 EventSearch를 레이아웃에 추가하십시오. PaymentInfo 필드를 추가하십시오.

레이아웃에 두 개의 포털을 추가하십시오. 하나는 연락처 테이블, 하나는 이벤트 용입니다.

기본적 으로이 각 포털에 모든 레코드가 표시됩니다.

스크립트를 작성하거나 스크립트 트리거를 사용하여 해당 검색 필드 중 하나가 종료/수정 될 때마다 레이아웃이 새로 고쳐집니다. 이것은 포털을 새로 고치고 관심있는 관련 레코드를 보여 주어야합니다.

포털의 각 행에 버튼을 추가하고 해당 포털 행 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