Does tapforms have something to ‘Scripts’ as found in FilemakerPro.
That is, an automated way to run a series of commands?
I updated to version 5 for no particular reason except to support the app and keep current. i didn’t really know what was in it. After a couple of months I tried search again and I was blown away by by the improved functionality. I guess I should read release notes. Outstanding. Thanks. It covers many things I used to export to Pythonista and write python scripts for. As usual the user interface for the new code is cranky and often not intuitive. Since I have lots of issues with Tap forms navigation I find this is consistent with the rest of the product: Outstanding functionality with confusing and opaque user interface. (Someday I’ll figure out how to use Tap Forms on my Apple Watch. I’ve been trying sporadically for a week. I’m sure I will figure it out eventually. Currently I can’t get anything except the watch icon on the document and the empty forms window on the watch.)
So side notes aside the search and filter functionality take an already great data base to a new level.
I have spent a lot of time developing Home Inventory database applications over the years, so thought I could pass on some of that knowledge in this TAP forms template.
The template captures warranty details, Loans of items to other people, the ability to add invoices and other related documents and of course photos.
The Item field is automatically constructed from the Manufacturer, Model No and Description.
Hope you find it useful
Attachments:
You must be
logged in to view attached files.
Superscript can be applied in a regular Text field using PopChar.
Hi Brendan,
sorry to hear all that…
However, before I loose lots of time with the Nearby sync because, forgive me, the manual is a bit terse, I want to clarify some thints. Is it correct that there is no automatic sync with Nearby sync, ie, that I have to initiate the sync manually? (A bit like it was for Bento?)
Also, the sentence
Each device must be on and have the same database document open at the same time in order for Nearby sync to function. The moment you make a change on one device is when synchronization will begin on all your devices.
is not clear to me. Does it mean that I have to make changes on a database (if I want to sync it) while all the devices are on with the corresponding databases open at the same time? It sounds fairly restrictive… It is fine if I have to sync “Bento style”, ie, I have to push a button to get it done, but that description makes me worried…
Are custom layouts a feature of the iOS version yet? I was quite excited when I read in the iOS app description that you can “create and design custom forms exactly how you want to.” But apparently, you don’t mean by “forms” what I would expect: Different ways of viewing your data, as in the Numbers for iOS “Form” view. That you would name your app after this feature made me think that it must be quite advanced at form creation.
By the way; for anyone who wants to pick this up, I’m attaching my Python script. This only does the “easy part” of breaking out the Bento exported simple table columns (which are packed into a single CSV column) to separate CSV files suitable for import as a TapForms related form.
The main manual part after that, that I remember now, was to break into the TapForms DB schema to get the parent form UUID (after importing it), and then going back to edit that into the proper column in the related forms.
The script as presented also has some extra logic to process pick list data, partly to help do some cleanup and translation; but that’s the only part that’s specific to my data.
A lot of this would be much easier to do inside TapForms… but as it didn’t bubble up to the top of Brendan’s priority list a year or two ago when the Bento ship was sinking, and the subject hasn’t really come up a lot since, I doubt it’s going to rate very highly now.
Attachments:
You must be
logged in to view attached files.
I am one of the late migrators from Bento to Tapforms, exactly because i can’t get my simple lists over. Is it possible for a lot less IT-skilfull person to do, what you did? Would it be possible to ask you for a guide in simple words?
When I worked out my procedure in the first place I’d considered trying to package it as a “no touch” conversion process. That would have been really complicated because I needed to do it in several stages. It exported the data from Bento, imported the main form into TapForms so that I could look at the private TapForms sqlite DB tables to pull out table ID numbers which I’d then edit into the related table CVS files.
I had a Python script that would separate the Bento simple list columns into separate CSV files; but everything else (and there was a lot) was manual just because for the volume of data I had that was a lot easier than trying to script it. I’m afraid I didn’t even keep as detailed notes on the process as I should have, which means it’d take me a lot of time to work through it again.
And even if I did all that, now that TapForms 5 is out, with very likely a very different DB schema, I’d have to work through all that before it was useful.
And, in case you haven’t already gotten the right impression from all this, explaining it in “simple terms” would prove difficult!
As much as I’d love to be able to help, I just don’t think that’s practical. Sorry.
Hello David Blutenhof!
You wrote:
TapForms can’t import a “raw” Bento database file. You have to Export from Bento and then Import into TapForms.
For very simple isolated forms, you can just export from Bento as a CSV and import that into TapForms. But it’s best to — and for anything complex you need to — export from Bento as a “template”, including all the data, and then use File > Import Bento Template … to import that template into TapForms.
It worked great for most of my Bento data.
The only problem I had was that I’d used Bento Simple Lists for several critical databases to record multiple values; and TapForms can’t import those. After a lot of experimentation and exchanging information on this forum, I worked out a Python script to massage the Bento export into a form that TapForms could handle. It was a messy multi-step process, but it only had to be done once for each of the forms, and then I was blissfully free of Bento.
Welcome to the Light Side, Padawan.
I am one of the late migrators from Bento to Tapforms, exactly because i can’t get my simple lists over. Is it possible for a lot less IT-skilfull person to do, what you did? Would it be possible to ask you for a guide in simple words?
Best regards
I.M. Petersen, DK
The Time field stores an actual time, not a duration. So that’s the problem here.
What you need to do is write your script so that the duration is generated in seconds. Then import that into a Number field in Tap Forms and then set the Number Format to one of the duration formats, such as HH:MM:SS, etc.
I have the following form that is a component of a set of forms that helps me keep track of my anime library:

Each video file is associated to a record here. If an anime series is 12 eps long, I will have 12 records for it.
To quickly add each episode record, I wrote a script that writes a tab-separated CSV. This is a sample of a CSV it has generated:
Ep Number Storage Fansub Source Resolution Size (MB) Sub Dub Hardsubs Duration Comments
1 OCZ BD 1080p 667 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
2 OCZ BD 1080p 668 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
3 OCZ BD 1080p 705 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
4 OCZ BD 1080p 695 English English,Japanese 0 00:23:29 Imported with eps_generator.sh by Andy Ibanez
5 OCZ BD 1080p 789 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
6 OCZ BD 1080p 631 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
7 OCZ BD 1080p 733 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
8 OCZ BD 1080p 656 English English,Japanese 0 00:23:27 Imported with eps_generator.sh by
9 OCZ BD 1080p 927 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
10 OCZ BD 1080p 937 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
11 OCZ BD 1080p 771 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
12 OCZ BD 1080p 791 English English,Japanese 0 00:23:28 Imported with eps_generator.sh by
Then I try to import it:

Like you can see, all the fields in the “Assign field types” get properly selected. The one gotcha is that I have to manually choose “Time” for “Duration”. But when the records are imported, it has all the information BUT the duration – it is blank.
Am I doing something wrong here?
I exported the records I had added manually and they export the time in the same format I am trying to import it. So I’m not sure if it’s a bug or if I am doing something wrong.
Yes, an Applescript would be useful to extract specific records, but as best I can tell, TF does not support AppleScript.
As the LaTex/HTML export, those may be useful to others, but not me. I want to use the raw data in TF to construct my own HTML/LaTex.
For now, I will just export the file as text using pipe as a delimiter and go from there. Going back the other way may be copy and paste.
That would probably require some AppleScript support or something like that. I do hope to export records as HTML at some point. But probably not LaTex. That’s pretty specialized.
If you use the Export Tap Forms Archive function, Tap Forms generates a .tfarc file which is really just a zip file that contains a .json file with all the data and an associated attachments folder that contains all the media and stuff. So maybe you could write some code to parse that. Might be tricky though.
First, wife and I upgraded to TF 5. Migrated our old TF and learning our way around the new. Much to like. The separation of databases and local syncing make it possible for us to share certain Dbs rather easily. Kudos!
But on to my question. I am starting a new project that consists of a catalogue of texts of medieval MS. There are Note fields that contain the text of the item, plus a good deal of other Text fields that contain other information.
Now since this project is just part of a much larger overall project that will produce LaTex and HTML files, I would like to develop some scripts that can access the records in the TF database and extract certain details. Likewise, I would like to be able to go the other way, namely I have accessed a particular record say, modified the contents of a field for some reaon, and then I’d like the app to send the updated field/record back to TF and back to the particular record.
Yes, I know I can export/import my DB via CSV etc., but this DB will get rather large. It would be rather cumbersome to export all the records, run scripts, and then re-import everything and removing duplicates. It would be handy to be able to somehow interface TF with some custom scripting of some sort. Ultimately I am hoping to auto generate the LaTex and HTML.
Thoughts?
Hi Brendan,
Thank you so much for taking the time to go through this with me. I think this is the best description of Show Inverse Relationships. Perhaps you could put this as a Frequently asked questions.
John