إنشاء "نماذج معقدة" في FileMaker - هل هذا ممكن حتى؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

لقد طُلب مني البحث في FileMaker لإنشاء تطبيق قاعدة بيانات بسيط جدًا.سيتعامل التطبيق مع معلومات الاتصال، وبعض المعلومات حول الأحداث التي تستضيفها المنظمة - وهذا هو ما أواجهه حاليًا - معلومات الرد على الدعوة التي تربط جهات الاتصال والأحداث، بالإضافة إلى تخزين بعض البيانات حول الدفع.

ما أرغب في استخدامه هو نوع ما من النماذج حيث يتمكن المستخدم من البحث عن جهة اتصال (أي مجموعة من الاسم الأول/الأخير) وحدث (أي مجموعة من الاسم/التاريخ)، حدد كل منهما من القائمتين المعنيتين (حيث تكون الكل يتم عرض معلومات أخرى أيضًا لتمييز النتائج)، أضف بعض المعلومات الإضافية واضغط على إرسال.

أقرب ما حصلت عليه حتى الآن هو نموذج يمكن للمستخدم من خلاله إدخال معرف جهة الاتصال ومعرف الحدث يدويًا، مما يعني أنه يتعين عليه أولاً الانتقال إلى طريقة عرض أخرى والبحث عن السجلات ونسخ/لصق أرقام المعرفات.

  • هل هناك حقًا طريقة للاقتراب من رؤيتي باستخدام FileMaker؟

  • هل سيكون الخيار الأفضل هو إنشاء تطبيق جديد مخصص باستخدام C# وMsSQL على سبيل المثال؟

  • إذا كان الأمر كذلك، كيف يمكنني بيع هذا للمقاول الخاص بي؟وبما أن هذا سيكون في هذه الحالة أول طلب تجاري لي، فمن الواضح أن هناك "عامل أمان" يتحدث لصالح منتج راسخ.ومن ثم لم نذكر حتى أن التكلفة سترتفع على الأرجح، لأن تطوير تطبيق جديد من الصفر سيستغرق وقتًا أطول بكثير.

ملحوظة:ليس لدي أي خبرة سابقة مع FileMaker.لقد حاولت قراءة الوثائق، لكنني لم أتمكن من العثور على أي برامج تعليمية تقربني من احتياجاتي المحددة.لدي خبرة كبيرة في MsSQL، لذا فأنا أعرف هذا وذاك عن إدارة قواعد البيانات بشكل عام - ولكن ليس في FileMaker.

هل كانت مفيدة؟

المحلول

هناك الكثير من الطرق للقيام بذلك.هذه طريقة سريعة لتشغيله.

لنفترض أن لديك جدولين مثل هذا:

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

قم بإنشاء جدول ارتباط جديد بينهما يقوم أيضًا بتخزين معلومات الرد الإضافية التي تريدها.

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 for Contacts سيبدو كما يلي:

John
Smith
John Smith
ALL

في مخطط العلاقة، قم بتوصيل الجداول كما يلي:

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

قم بإنشاء تخطيط يسمى FORM استنادًا إلى جدول FORM.

قم بإضافة الحقلين ContactSearch وEventSearch إلى التخطيط.أضف حقل معلومات الدفع.

أضف بوابتين إلى التخطيط، أحدهما لجدول جهات الاتصال والآخر للأحداث.

بشكل افتراضي، يجب أن تشاهد كافة السجلات في كل من هذه البوابات.

اكتب برنامجًا نصيًا، أو استخدم مشغل البرنامج النصي، الذي يقوم بتحديث التخطيط عند خروج/تعديل أحد حقول البحث هذه.من المفترض أن يؤدي ذلك إلى تحديث البوابات وإظهار السجلات ذات الصلة التي تهتم بها.

أضف زرًا إلى كل صف في المداخل واستدعاء برنامج نصي يقوم بتعيين متغير عام لمعرف صفوف البوابة هذا.

على سبيل المثال:

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

أوف.

ويجب أن تكون جاهزًا للبحث عن جهات الاتصال والأحداث و"إرسال" النموذج لإنشاء المزيد من الردود على الدعوات.

FileMaker ممتع، أليس كذلك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top