1.6
Table Of Contents
- Table of Contents
- Welcome to PlanetPress Connect 1.6.1
- Setup And Configuration
- System and Hardware Considerations
- Installation and Activation
- Installation Pre-Requisites
- User accounts and security
- The Importance of User Credentials on Installing and Running PlanetPress Connect
- Installing PlanetPress Connect on Machines without Internet Access
- Installation Wizard
- Running Connect Installer in Silent Mode
- Activating a License
- Migrating to a new computer
- Information about PlanetPress Workflow 8
- Upgrading from PlanetPress Suite 7.6
- What do I gain by upgrading to PlanetPress Connect?
- Server Settings
- Uninstalling
- The DataMapper Module
- Basics
- Features
- Data Mapping Configuration
- Data Mapping Workflow
- The Data Model
- Data Source (Settings)
- DataMapper User Interface
- Defining Boolean Values
- Defining String Values
- Building String Values
- Defining Integer Values
- Building Integer Values
- Defining Float Values
- Building Float Values
- Defining Currency Values
- Building Currency Values
- Extracting dates
- Entering a date using JavaScript
- Defining Object Values
- DataMapper Scripts API
- The Designer
- Generating output
- Optimizing a template
- Generating Print output
- Saving Printing options in Printing Presets.
- Connect Printing options that cannot be changed from within the Printer Wizard.
- Print Using Standard Print Output Settings
- Print Using Advanced Printer Wizard
- Adding print output models to the Print Wizard
- Splitting printing into more than one file
- Variables available in the Output
- Generating Fax output
- Generating Tags for Image Output
- Generating Email output
- Generating Web output
- Release Notes
- Copyright Information
- Legal Notices and Acknowledgments
The script below is much more efficient: it adds the personalized content to a string called
labelStr and only calls after() after the for loop.
var labelElm = loadhtml('snippets/label.html');
var labelStr = "";
for(var i = 0; i < record.tables.products.length); i++) {
var label = labelElm.clone();
label.find('@ProductLabel@').text(record.tables.products
[i].ProductDescription);
labelStr += label;
}
results.after(labelStr);
Use replace()
When personalizing HTML fragments retrieved from a snippet or from the template itself,
JavaScript's replace() method shows the best performance.
Replace() can only be used on Strings, while the commands loadhtml() and query() return or a
QueryResult, which is a set of strings, like the results object.
A QueryResult allows you to perform DOM manipulations like adding and removing elements,
adding and removing CSS classes etc. When the required manipulations are limited to
find/replace actions, you could change the QueryResult into a string. This allows you to replace
text using the replace() method.
For this, you could use toString():
var labelSnippet = loadhtml('snippets/label.html').toString();
Or you could copy the HTML of the QueryResults to a variable:
var block = results.html();
Example
var labelSnippet = loadhtml('snippets/label.html').toString();
var labelStr = "";
for(var i = 0; i < record.tables.detail.length; i++) {
var label = labelSnippet;
label = label.replace('#', i);
label = label.replace('@product@', record.tables.detail[i].fields
Page 541