Hello, I am looking for a way to be able to download some information from Tapforms to put into a spreadsheet for my Wix website portfolio/shop form. I have added a screenshot of what I am trying to achieve. (Image, SKU Number, Name). Currently when I export the information the images go into their own folder and I have to match each one of them up to their information. Is there a way / or scrip that can be made to download all to one document?
I’m not sure if it is a script that is needed or a different way to export. Any suggestions would be helpful.
Many Thanks
Attachments:
You must be
logged in to view attached files.
Hi Brendan,
Thanks for your help
I tried it, but it didn’t work.
I probably didn’t understand how to insert or modify the script.
Here’s a screenshot.
I assumed I had to insert the form name into the script.
Attachments:
You must be
logged in to view attached files.
Hi Pierrot,
Yes, you would need a script to get the counts of the individual forms and searches.
I should make it easier to get those counts, but for now something like this should work:
function getCountsOfFormRecords() {
let theForm = document.getFormNamed("The Form");
let theFormRecords = theForm.getRecord();
return theFormRecords.length;
}
getCountsOfFormRecords();
Hi,
I have a database with 4,400 records spread across several subforms.
I would like to create a table-based form to count the totals of certain fields in the subform records.
Is it possible to retrieve the column count value, and how do I build the form? Is there a script?
Thank you for your help.
Attachments:
You must be
logged in to view attached files.
1.) Is there a way to find the selected cell in a column from a table field? (image attached)
AFAIK, the select state of a cell or row is not exposed.
2.) Can I call a File open window to select a file on my hard drive to get a UNIX file path?
To open Finder, you can use Utils.openUrl("file:///Users/josef/Desktop");. For this to work, you need to set the script access folder.
To get the file path, control-click, middle mouse button, or two-finger click on the file to get the context menu, press the option key and select Copy “xxx” as Pathname.
Then you can write a script that gets the copied Pathname from the clipboard using Utils.copyTextFromClipboard() and proceed with processing it. To trigger the script, you can use a checkmark field like you launch the play in VLC script.
You can automate this further: Create an AppleScript that is selected from the Quick Actions context menu. This script would get the file path and then call a TapForms script using tapformz://script/db-xxxx/frm-xxxx/Test+Script?option1=A&option2=B. Most likely you would have to provide the id of the record and the id of the table row record as parameters. This script would then store the file path in your table.
Sounds like a fun project!
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
Hello
1.) Is there a way to find the selected cell in a column from a table field? (image attached)
2.) Can I cal a File open window to select a file on my hard drive to get a UNIX file path?
I’d like to write a script that can write the path of a file in a selected table cell.
Or by input window, but ideally with a window that let me select the file on the hard drive.
For example:
Open file search window
Get the UNIX path of that file
Add “file://” in front of that path
Look for the selected cell in the column
Write the path in that cel
Attachments:
You must be
logged in to view attached files.
You’re using a custom layout. So you can add a button that will launch a form script.
What you do is get the field value of your table field. This is an array of records. Each record represents a row in your table. Then you just loop over it and clear the checkmark field.
Here’s the form script. You just have to set the ID of the aforementioned fields
function Clear_Checkmarks() {
const table_id = 'fld-xxx'; // id of your DVD Verwaltung table
const table__check_mark_id = 'fld-xxx'; // id of your Gesehen field
let tableRecords = record.getFieldValue(table_id);
tableRecords.forEach((a) => {a.setFieldValue(table__check_mark_id,0)});
document.saveAllChanges();
}
Clear_Checkmarks();
;
-
This reply was modified 7 months, 3 weeks ago by
Daniel Leu.
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
I have a lot of rows in a table field. One of the columns is a checkmark field to take record if I have seen this episode. (image in the attachment)
Now I try to write a script that sets all the checkmarks to false in this table for this series.
I found out how I can change a checkmark field alone, but not when it’s in a table.
Can someone pleas help me.
Ideally I’d like to press a shortcut and all the checkmark fields in this table get set to false.
Attachments:
You must be
logged in to view attached files.
Based on something I already have and use, I propose following:
I’m using a checkmark field to trigger the opening action of a PDF file. You can use the same code to trigger opening your video.
Add two fields to your table, the checkmark field called Open and a script field (use a meaningful name). For usability, place the Open field in the first column. You can hide the script field.
Here is the script code. You have to update the open_id and link_id constants to contain the IDs of the Open field and the Pfad field.
function Attachment_Open() {
const open_id = 'fld-xxx'; // id of the newly created checkmark field
const link_id = 'fld-xxx'; // id of your Pfad field
let open = record.getFieldValue(open_id);
let link = record.getFieldValue(link_id);
if (link && open){
console.log("Opening URL " + link);
link = "file://" + link.replace(/[ ]/g, '\ ')
console.log("Opening URL " + link);
Utils.openUrl(link);
// clear opening flag
record.setFieldValue(open_id, false)
form.saveAllChanges()
}
}
Attachment_Open();
Now, when you click on the Open checkmark, VLC should open your video.
In case it doesn’t work, please open the console and then click on the Open checkmark of one of your videos. Then report the console output.
Good luck!
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
Thank you!!
I have all the series in a table, like in the image attached. Where do I put the script and haw can I call the path in that script from the selected row?
Sorry, I’m all new to this ;)
Attachments:
You must be
logged in to view attached files.
Using a script:
You can use Utils.openUrl(url); to open an external file. Use following scheme to set an url to point to a file on your disk: url="file:///Users/daniel/Desktop/song.mp4".
This will open the file in the predefined handler for that file type. This script can be assigned to a button when using
Using a website field:
You can assign the path using the url format shown above. When clicking on the globe, the file will be opened in the handler for that file type.
So for both cases, you must make certain that the VLC Player is the default player for your iso and mp4 files. If this is not practical, it might be possible to use the VLC url scheme: url="vlc-x-callback://x-callback-url/stream?url=file:///Users/daniel/Desktop/song.mp4"
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
Is there a way to run a file from a path in a field using script?
I try to make a movie database. In a table I have a field with the path to the MP4 or ISO file.
Is there a way to write a script that can make that file run with VLC Player when I press a shortcut or a button or whatever is possible?
I already had the save command and console log. The type-id field is picked up correctly by the colour only changes when I run the script manually. I’d like it to run automatically on changing the colour field using the drop down box. Script shown below.
function Change_record_colour() {
var type_id = record.getFieldValue (‘fld-631813d9eff54787894020691031bc77’);
var red_col = “#ffbac6”;
var white_col = “#caffd4”;
var sweet_col = “#fef3a4”;
var fort_col = “#fdbb9c”;
var spark_col = “#a3ff79”;
var rose_col = “#f4d8dd”;
console.log(type_id);
if (type_id == “Red”)
{record.setRecordColor(red_col);}
if (type_id == “White”)
{record.setRecordColor(white_col);}
if (type_id == “Sparkling”)
{record.setRecordColor(spark_col);}
if (type_id == “Sweet”)
{record.setRecordColor(sweet_col);}
if (type_id == “Fortified”)
{record.setRecordColor(fort_col);}
if (type_id == “Rosé”)
{record.setRecordColor(rose_col);}
form.saveAllChanges();
}
Change_record_colour();
I don’t know how long your objective description is, but maybe you can use markdown to format it.
Here’s a field script that fetches all the activities records and formats them as markdown.
You need to update field ids for the activity form and the respective fields. Additionally, define a summary field in your main form of type markdown.
When you update an activity record, the summary field is updated. The first line is the number and title, followed by the objective. Unfortunately, TapForm 5’s markdown implementation doesn’t support tables.
Hope this helps! Bonne chance!
function Update_Summary() {
// define the field ids
const activities_id = 'fld-xxx';
const activities__number_id = 'fld-xxx';
const activities__title_id = 'fld-xxx';
const activities__objective_id = 'fld-xxx';
const summary_id = 'fld-xxx';
// get activities records
let activities = record.getFieldValue(activities_id);
let md = "# Activities\n\n";
// loop over all activities and create the markdown entries
for (activity of activities){
let number = activity.getFieldValue(activities__number_id);
let title = activity.getFieldValue(activities__title_id);
let objective = activity.getFieldValue(activities__objective_id);
md += `**${number}: ${title}**
${objective}
`;
}
// update markdown field
record.setFieldValue(summary_id, md);
document.saveAllChanges();
}
Update_Summary();
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
Hi Sybille,
On your custom layout, you can adjust the widths of the columns on your Link to Form field to make the related table look a bit nicer. You may also want to print in landscape orientation so you can get more space on the page for your columns.
What does it currently look like? Can you post a screenshot?
Thanks,
Brendan
P.S. I’m moving this topic out of the Scripting Talk forum because it doesn’t have anything to do with scripting as far as I can tell.