Can you describe the tables, fields and relationships of your database in more detail?
I think that the structure of your database will make what you want very difficult where a design change could make much simpler, but I need to know the basic design of your database to see if I am guessing correctly.
We sell workshops, and we need to regularly run registers of attendance for each course - so each product (workshop) has its own field (displayed as a column in table view). Each of these workshop columns has either 'paid' 'reserved' or nothing in them - so we can see on the register needs to pay etc.
Each customer is entered as a new field - so we have all of their details and then entries in each column that's applicable.
*Each customer is entered as a new record.
As I suspected, the basic structure of your database makes this a difficult, if not impossible thing to do.
You really need a set of tables and relationships that look like this:
Customers::__pkCustomerID = Invoices::_fkCustomerID
Invoices::__pkInvoiceID = InvoiceData::_fkInvoiceID
WorkShops::__pkWorkShopID = InvoiceData::_fkInvoiceID
For an explanation of the notation that I am using, see the first post of: Common Forum Relationship and Field Notations Explained
This design is patterned after the Invoices starter solutions that come with FileMaker 11, 12 and 13.
*In FileMaker 11, InvoiceData is named LineItems
**In the starter solutions of all three versions, Workshops is named Products
A Portal to InvoiceData is used to list each item that a customer has Paid for or Reserved. It takes what you have as multiple fields in the same records and makes them a set of related records with one record for each item that the customer reserves or pays for.
This makes it easy to produce summary reports based on the InvoiceData table that can give you counts of Paid and Reserved entries for each workshop.
Ok thanks for trying to help.
How would you suggest importing my existing data into the new model?
I am happy with importing the customer data into the customer fields - but will there be a way of importing the customer data and preserving which workshops they're each booked into?
It's definitely possible to do that, but you'll need to plan carefully. You'll also need to evaluate my suggested broad outline of a database design to make sure that it will work for you. I may be making assumptions about your business model that are not correct. In some cases, for example, you might not need an invoices table since you seem to be tracking the sale/reserved status of each workshop independently.
Here's a rough outline of the process that might work for you.
a) Define your customer, Invoices and InvoiceData tables and relationships.
b) if you do not have a field in your current table that serves as a unique ID for each customer, add one: Define a number field in the table, put it on a layout based on this table, Show All Records and then use the Serial Number option in Replace Field Contents to add a unique serial number to teach record in your existing table.
c) Go to a layout based on Customers and use import records to import records from your existing table into the customer table. Only import the ID number field into __pkCustomerID and any fields, such as customer name that are specific to the customer. After the Import update the "next serial value" setting on __pkCustomerID to be larger than the largest imported ID number.
d) Now go to the Invoices layout and use Import Records to import data into it to create your Invoices records. Map fields so that your ID field imports into _fkCustomerID. There may not be any other fields to map to your invoice table except maybe a date field if you have one. Be sure to enable auto-enter options during the import so that __pkInvoiceID will have a value in each record created by the Import
e) Define a relationship linking your original table to Invoices by matching _fkCustomerID to the ID field in your original table. Then create and perform a looping script that loops through your original records and uses the __pkInvoiceID of each related invoice record and the presence of data in each of the Workshop fields in turn to create records in InvoiceData with the correct _fkInvoiceID and _fkWorkShopID values.
Thanks for this - I will give it some thought - this is not a job for a tired Friday afternoon.
Thanks for being so prompt and thorough!