Search Results for 'script'
- 
		
		Search Results
 - 
		
			
Topic: Script Editor Will Not Paste
Hey all,
For some reason TF5 can copy but not paste (see screenshot). I tested it in Tap Forms Pro which works fine. The option to paste is greyed out, nor can I use commond+V. Anyone else notice this problem?
I tried going into the Mac’s security and privacy settings and allowing TF5 to control the computer, then relaunching but it didn’t do anything.
Hi all—
I’ve got a Tap Forms JavaScript that works as follows:
• From the Coins form, it reads three fields: Coin Type, Year, Mintmark.
• If there’s a match, it looks up matching records in Coin Mintages (there can be multiple) and collects their Variety values.
• It then presents those Variety options in a prompt so the user can pick one, and the choice is written back to the Variety field on Coins.Two issues I’m trying to solve:
1. Prompt includes <unspecified>
• The choice list always includes an extra <unspecified> entry even though I only push actual Variety strings.
• What’s the correct way to prevent that entry from appearing? (e.g., do I need to filter out null/undefined/”” before calling the prompt function, or is there an option/flag in the Tap Forms prompt API that disables an empty choice?)
2. Auto-run when 3 fields are completed
• I’d like this to run automatically whenever Coin Type, Year, and Mintmark are all non-empty on a Coins record—so users don’t have to open the Scripts menu.
• Is there a supported way to trigger a Form Script on field change/record save?
• If not, would a Script field (or a calculated/auto script field) be the right pattern to re-evaluate and prompt as soon as those three fields are populated?======
// Coins → Form Script (current record only; clears Variety on <unspecified>)
// === CONFIG ===
const COINS_FORM_NAME = ‘Coins’;
const MINTAGE_FORM_NAME = ‘Coin Mintage’;const COINS_FIELDS = {
coinType: ‘fld-1231556e0f234de9b2d85f50225b8135’,
year: ‘fld-4b84b047badd4d4cbb4a67ef6839522f’,
mintMark: ‘fld-adb0be16f1a347dbbecc4ef562d779a7’,
variety: ‘fld-2a73d81d137e4f718378819f5e4d54e0’
};const MINTAGE_FIELDS = {
coinType: ‘fld-fdf93db206d141bd956d8c9e7634f25e’,
year: ‘fld-9579d7c74e88414daf27ccbc5d4e0346’,
mintMark: ‘fld-8d72d0971ed34c2c9de6c03d240e9543’,
variety: ‘fld-f76a6eb7ed0c4ae28b77fc6fdf055d53’
};// === Script ===
(function () {
if (typeof record === ‘undefined’ || !record) {
Utils.alertWithMessage(‘No Record’, ‘Run this from a Coins record.’);
return;
}function norm(v) { return (v === null || v === undefined) ? ” : String(v).trim(); }
function eq(a, b) { return norm(a) === norm(b); }var coinType = norm(record.getFieldValue(COINS_FIELDS.coinType));
var year = norm(record.getFieldValue(COINS_FIELDS.year));
var mintMark = norm(record.getFieldValue(COINS_FIELDS.mintMark));if (!coinType || !year) {
Utils.alertWithMessage(‘Missing Data’, ‘Current record needs Coin Type and Year.’);
return;
}var mintageForm = document.getFormNamed(MINTAGE_FORM_NAME);
if (!mintageForm) {
Utils.alertWithMessage(‘Form Not Found’, ‘Could not find form: ‘ + MINTAGE_FORM_NAME);
return;
}var mintageRecords = mintageForm.fetchRecords();
if (!mintageRecords || mintageRecords.length === 0) {
Utils.alertWithMessage(‘No Varieties’, ‘No records in Coin Mintage.’);
return;
}var choices = [];
var seen = {};for (var i = 0; i < mintageRecords.length; i++) {
var r = mintageRecords;
var t = norm(r.getFieldValue(MINTAGE_FIELDS.coinType));
var y = norm(r.getFieldValue(MINTAGE_FIELDS.year));
var m = norm(r.getFieldValue(MINTAGE_FIELDS.mintMark));
var v = norm(r.getFieldValue(MINTAGE_FIELDS.variety));
if (!v) continue;if (eq(t, coinType) && eq(y, year) && eq(m, mintMark)) {
if (!seen[v]) { seen[v] = true; choices.push(v); }
}
}if (choices.length === 0) {
Utils.alertWithMessage(‘No Varieties’, ‘No matching Variety entries found in Coin Mintage.’);
return;
}choices.sort(function (a, b) { if (a < b) return -1; if (a > b) return 1; return 0; });
var title = ‘Select Variety — ‘ + coinType + ‘ ‘ + year + (mintMark ? ‘ ‘ + mintMark : ”);
var prompter = Prompter.new();
prompter.cancelButtonTitle = ‘Skip’;
prompter.continueButtonTitle = ‘Set Variety’;
prompter.addParameter(‘Variety:’, ‘choice’, ‘popup’, choices)
.show(title, function (continued) {
if (!continued) return;// If user leaves the popup on <unspecified> (choice is falsy), clear the field.
if (!choice) {
record.setFieldValue(COINS_FIELDS.variety, ”);
document.saveAllChanges();
return;
}record.setFieldValue(COINS_FIELDS.variety, String(choice));
document.saveAllChanges();
});
})();Hallo,
leider wurde Tap Forms Pro ja nun ein Abo Modell.
Dazu habe ich eine Frage:Was passiert, wenn ich ein Jahres-Abo abschließe, dieses aber nach 1 JAhr kündige, also das Abo nicht verlängere?
Kann ich dann den letzten Software Zustand von Tap Form Pro uneingeschränkt weiter nutzen, oder ist eine weitere Nutzung dann nicht mehr möglich?
Danke für Hinweise dazu.
Gruß
Hello,
Unfortunately, Tap Forms Pro has now become a subscription model.
I have a question about this:What happens if I sign up for an annual subscription but cancel it after one year, meaning I don’t renew the subscription?
Can I then continue to use the last version of Tap Form Pro without restrictions, or will further use no longer be possible?
Thanks for any feedback.
Regards