2009-06-22 97 views
1

我被要求查看FileMaker来创建一个非常简单的数据库应用程序。该应用程序将处理联系信息,组织托管的事件的一些信息,以及我目前正在挣扎的信息 - 链接联系人和事件的RSVP信息,以及存储关于付款的一些数据。在FileMaker中创建“复杂表单” - 甚至有可能吗?

我想要使用的是某种形式的用户可以搜索联系人(任何组合的名/姓)和事件(任何组合名/日期),从两个相应的列表(其中显示所有其他信息以区分结果),添加一些额外信息并点击提交。

到目前为止,我得到的最接近的形式是用户可以手动输入ContactId和EventId,这意味着他/她首先必须转到另一个视图,搜索记录并复制/粘贴身份证号码。

  • 是否真的没有办法使用FileMaker更接近我的视野?

  • 更好的选择是使用C#和MsSQL来构建一个新的自定义应用程序吗?

  • 如果是这样,我该如何将此卖给我的承包商?因为在这种情况下,这是我的第一个商业应用程序,显然有一个“安全系数”说明了已建立的产品。然后我们甚至没有提到成本可能会增加,因为从头开发一个新的应用程序需要更长的时间。

注意:我以前没有使用FileMaker的经验。我试图阅读文档,但是我一直无法找到任何使我更接近我的特定需求的教程。我在MsSQL方面有相当的经验,所以我一般都知道这个和那些关于数据库管理的知识 - 而不是在FileMaker中。

回答

4

有很多方法可以做到这一点。这是使其正常工作的一种快速方法。

比方说,你有两个表是这样的:

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 

基于FORM表创建一个称为FORM的布局。

添加字段ContactSearch和EventSearch到布局。添加PaymentInfo字段。

将两个PORTALS添加到布局,一个用于Contacts表,一个用于Events。

默认情况下,您应该看到每个这些门户中的所有记录。

编写一个脚本或使用脚本触发器,只要其中一个搜索字段是Exited/Modified,就会刷新布局。这应刷新门户并向您显示您感兴趣的相关记录。

向门户中的每一行添加一个按钮,并调用将该全局变量设置为该门户行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 

Phew。

你应该回来,准备搜索联系人,事件和“提交”表单来创建更多的RSVP。

FileMaker很有趣,呃?

+0

哇!我曾希望能够以更简单的方式做到这一点 - 我考虑使用FileMaker进行此项目的唯一原因是避免自己编写代码,而是可以依靠一些已经稳定并且缺陷清理的软件。如果有这么多'真正的编程'必须完成,我不妨使用我熟悉的技术。 C#和MSSQL,这里我们去...... =)但无论如何,非常感谢您的时间和精力!你现在已经获得奖励! =) – 2009-07-04 22:46:24

相关问题