Creating Data Sets for clients without using Data Table

Hi everyone,

I’m creating an intake form for referrers to use, which needs to have a group of fields for entering details about the children in the family. These fields besides FName, LName, DOB, also need to have room to enter any behavioural, medications, triggers where applicable for each child.

Normally i use the Data Table for multiple fields i want someone to fillout per Client, so new clients “Rows” can be added. However this time i feel the Columns are not large enough for the subsequent questions, and wanted to create a way to have like a Page of fields, which then can Click Add to add another client.

Is there a way to duplicate the fields, or do i need to create say 10 copies of the field, then have a drop down with how many sets i need created.

Alternatively if there is a way to create a Data Table, then have a question appear along the lines of Additional information for each child.

Hello @JMMSSAU,

Have you tested List or Library control?

I think it perfectly fits your requirements. The records will be added via a form, allowing you to collect all the information needed.

Hi @Margo ,

Thanks for the reply!,

I can’t find the List or Library, im thinking from the link that its a Sharepoint thing, which we dont have. Is there a Forms equivalent?

@JMMSSAU,

I'm sorry, I’m not sure why I assumed you were using SharePoint!

If the Data Table isn't sufficient for your use case, there are unfortunately limited options in Public Forms. Here are a few workarounds that came to my mind:

  • You could add a Text field to the form and ask the user to provide details for each row in the Data Table. You could even prefill that field with names from the table. It’s not the most user-friendly approach, but it is an option.

  • You can create as many field sets as you need, place each in a Grid container, and add a button to reveal the next set when clicked.

Alternatively, we can offer paid support to develop a custom repeating section control for you. If you’re interested, please email us at support@plumsail.com with more details, and we will prepare an estimate based on your requirements.

Hi Margo, thanks for the clarification!!.

I’ve gone with a join of both your suggestions,

I’ve got a Children’s basic details Table where the kids are created, then another Table under medications, and another for other topics. Then came across a script to copy the rows from the table 1 to the others, so that the details can be matched per client as the form goes on.

Works well, and doesn’t require a button to prompt the update/change

(Google AI generated script im sorry…. took a few goes to get the wording right…. sorry to all of the Dev’s writing coding for people ~ Im too lazy and poor)

fd.rendered(function() {
    // Get references to both data tables
    var dataTable1 = fd.control('TABLE1'); // Replace 'Table1' with the actual internal name of your source table
    var dataTable2 = fd.control('TABLE2'); // Replace 'Table2' with the actual internal name of your destination table

    // Handle the 'change' event for the source table
    dataTable1.$on('change', function() {
        // Get the items (rows) from the source table
        var sourceItems = dataTable1.value;

        // Create a new array to hold the data for the destination table
        var destinationItems = [];

        // Iterate through the source table items
        for (let i = 0; i < sourceItems.length; i++) {
            var sourceItem = sourceItems[i];
            
            // Create a new object for the destination table row
            // Map the 'CHILDNAME' column value to the 'MEDCHILDNAMES' column
            var destinationItem = {
                'TABLE2-COLUMN1': sourceItem.TABLE1-COLUMN1 // Replace 'CHILDNAME' and 'MEDCHILDNAMES' with your actual column internal names
            };
            
            // Add other columns if needed
            // destinationItem['OtherColumn'] = sourceItem.OtherSourceColumn;

            destinationItems.push(destinationItem);
        }

        // Clear existing data in the destination table and set the new values
        dataTable2.clear();
        dataTable2.value = destinationItems;
    });
});

Thanks for all your input !!

1 Like