Search Results for 'script'
-
Search Results
-
Greetings!
I have a form that contains a database of products that are exported to a WooCommerce site. Each item has a number of “attribute” fields that are included when exporting the record data.
The problem I was attempting to solve with the script below is that WooCommerce requires specific titles for CSV columns. I initially named my fields to correspond with the export requirements but quickly found that having to remember that “Attribute 5” equals “Model”, etc. was too cumbersome.
My first crack at a workaround was to rename my fields with logical identifiers, then use MS Excel to rename the exported columns to the terms required by WooCommerce. This worked but still felt like an unnecessary extra task.
I then concocted this script that essentially involves duplicate fields within TapForms itself. One column is named logically (ex: “Model”), while the duplicate is named to accommodate the WooCommerce import requirements (ex: “Attribute 5”). Obviously, the data in both fields need to be identical, so I’m using this script to automatically update certain fields whenever its corresponding field is modified:
function wc_attributes_update() {var year_id = 'fld-bcf37649c9ee4332b7100a9589110f96';
var year = record.getFieldValue(year_id);
var manufacturer_id = 'fld-17e5cb32753f43eea332701c2587d2d6';
var manufacturer = record.getFieldValue(manufacturer_id);
var model_id = 'fld-81bfab5a547e4c59a46fb5c3fb795fbc';
var model = record.getFieldValue(model_id);
var gauge_id = 'fld-28d551114d734843a0e64680575e991e';
var gauge = record.getFieldValue(gauge_id);
var container_id = 'fld-b0c7a9bbb57a40a891c659346fa63ae0';
var container = record.getFieldValue(container_id);
var era_id = 'fld-0101387087f044ddb402ae2111b2a854';
var era = record.getFieldValue(era_id);
var railroad_id = 'fld-c522d3a2b0e245e69f21f8eb3553be83';
var railroad = record.getFieldValue(railroad_id);
var brand_id = 'fld-f2dcf5e1818a4e588863424cc70e9804';
var brand = record.getFieldValue(brand_id);
var collection_id = 'fld-b133cb39179f4083b5377f7f01ecb1ea';
var collection = record.getFieldValue(collection_id);
var tca_grade_id = 'fld-0699ee653f564342855aa82798c88a01';
var tca_grade = record.getFieldValue(tca_grade_id);
var attribute_1_value_s_id = 'fld-722b1a029a2e4e8bbadd9cbf481d060f';
var attribute_2_value_s_id = 'fld-828e1965c3ce4fa88b6a12b2dba89d39';
var attribute_3_value_s_id = 'fld-a3e517222cd143e79323d7e99641c00c';
var attribute_4_value_s_id = 'fld-8480a45102ed499cb00008b4c38625c7';
var attribute_5_value_s_id = 'fld-9c0b1069d7024d46a519749589fef59e';
var attribute_6_value_s_id = 'fld-f95371e7ac824cba92cf80da77c2fd7a';
var attribute_7_value_s_id = 'fld-8651f7fbbfe0429690a9e0175b6eeaa4';
var attribute_8_value_s_id = 'fld-56222dff96644bd9b9b3bd6d72d39db5';
var attribute_9_value_s_id = 'fld-f4be5cac1b5d4ce48805765a2ff47a51';
var attribute_10_value_s_id = 'fld-da36f2e28e1d4a8f8207a8a0e7f6b24d';
record.setFieldValue(attribute_1_value_s_id, year);
record.setFieldValue(attribute_2_value_s_id, manufacturer);
record.setFieldValue(attribute_3_value_s_id, model);
record.setFieldValue(attribute_4_value_s_id, gauge);
record.setFieldValue(attribute_5_value_s_id, container);
record.setFieldValue(attribute_6_value_s_id, era);
record.setFieldValue(attribute_7_value_s_id, railroad);
record.setFieldValue(attribute_8_value_s_id, brand);
record.setFieldValue(attribute_9_value_s_id, collection);
record.setFieldValue(attribute_10_value_s_id, tca_grade);
form.saveAllChanges()}
wc_attributes_update();
While this works surprisingly well with regard to producing a proper CSV export, what I’ve found is that, as it’s currently scripted, the active record is saved immediately any time one of the “paired” fields is edited. This results in a “refresh” of sorts that results in my cursor being returned to the first field of the form. It’s functional, but grossly inefficient for data entry.
I’m convinced there is a better method to perform this function, but having limited scripting experience, I’m hoping some of you that are more agile with TF may offer some better guidance. Since the “duplicate” columns’ ONLY purpose is for exporting (they are all hidden within TF), I tried to create a “form” script that I could execute on-demand prior to export (vs. my current “field” script that executes automatically any time data is added/changed in one of these fields). Sadly, I haven’t been able to get anything even close to doing that thus far.
If there’s a way to have this field replication execute on-demand, or even a “back to the drawing board” alternative strategy, I’d be grateful and eager to hear anyone’s suggestions.
Thanks in advance for any suggestions!
Cheers
Topic: Opening defaults
I see the keys that will do the following on the Mac, but not on the iPhone.
I assume this is probably doable with Scripts, because I don’t see any menu items that does this.
Attached is a screen shot on my iphone of my last database “default view” for a file (FORM) which is akin to your creating an advanced search. Once one of these options is set when the file is opened, it would open with the selected options under a “STARTUP” menu.
I’m specifically interested in the options on the picture which is when the FORM is opened it opens with the last record open for editing.Topic: Simple previous
I’ve applied your “previous_field” script to several Forms and been quite successful, but this is about as simple as you can get and I can’t figure out what I’ve missed. See attached.
Also, does it matter where the script is used: 1) the script in the field window or 2) the script in the Script tab? Is there any difference between the two in the code?
Topic: Formatting text in fields
New user here; replacing old FileMakerPro with Tap Forms. I’m accustomed to “formatting” text within fields, especially for Notes and descriptions and such. That is, bolding words, adding line breaks, etc. I cannot perform any actions within a Text “Notes” field other than typing new text.
This might be a problem with my computer: a 2014 mac mini running High Sierra 10.13.6.; Legacy 32 bit software I can’t yet afford to replace; inexpensive keyboard; who knows?
Any advice would be appreciated!
Yours,
BuckyTopic: Blank value
I can’t find a way (probably not possible) to return a value of “BLANK” instead of a zero.
Is there a way in this equation?
(IFNOTEMPTY(Purchased;MONTHS(Purchased;TODAY());0))/12
Thanks.
Maybe, use the results of this field, call it into another field and and Script it there with an if statement if it is zero, leave it blank?
All those zeros are distracting from seeing my data.Thanks.