Search the help documentation

Search:

Can't find what you are looking for? Use the Feedback tab in your app to submit an issue, or email support@ qrimp.com.


idnamedescriptionParentTopic
deleteedit1323Changing the Look and Feel of Your AppYou can change the colors, fonts, logos and more in your Qrimp app.Display and Design
deleteedit16Notification Subscriptions<!--<nobreak>-->
<p>Set up notifications in your Qrimp app to send an email to a user when data is added, deleted or edited. For example, you can set up an email to a sales rep when a table is updated.</p>

<h3>Adding Notifications</h3>
<p>To subscribe a user to a notification, go to Admin > Notification Subscriptions. Click the Add New Icon <img src="/icons/crystal_project/32x32/actions/edit_add.png" />.</p>

<p>Choose the table you want to send a notification for.</p>
<img class="border" width="300px" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/867d5c7f-48c4-4d82-8f51-3a3a8a68e988-custom%20notifications%20screen%201.png">

<p>Choose which operation triggers the notification. The most common operation is insert, which is when someone adds a new record to a table.</p>
<img class="border" width="300px" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/a0f6b54d-ccaa-4bfd-93ad-4daf13586bf8-custom%20notifications%20screen%202.png">

<p>Choose the user who will get the notification.</p>
<img class="border" width="300px" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/51cbd38d-9324-4cdb-bcc9-c5be69dae2c1-custom%20notifications%20screen%203.png">

<p>Then choose a notification message. You can see and edit the content of a notification message by going to Admin > Notification Templates. (See also: [Notification Templates]).</p>
<img class="border" src="/attachments/developer.qrimp.com-1941ee44-967d-422c-8622-b802f1a72ddd/notifications%20screen%204.png">

<h3>Customized Notifications</h3>
<p>You can get very specific about when to send a notification. For example, you may wish to only notify a sales rep, if a website visitor creates a new order with an order type of "Wholesale".</p>

<p>To customize, go to your list of user notifications and click the link that says "customize". Enter the parameters for your notification. Now the user will only get this notification when that specific criteria is met.</p>
<p>You will see an option at the right to "Customize filters for this notification subscription". Click the link then [Search] to further restrict notifications. For example, you could choose to only receive an Email notification when someone inserts a Project into the Projects table with the word "Human Resources" in it.</p>
<!--</nobreak>-->
Communicate and Share
deleteedit91Check POP3 Email AccountsAdd Qrimp's <a href="http://en.wikipedia.org/wiki/Pop3">POP3 Email</a> account checker to display your email addresses with a message count in brackets beside the name of the email address, like this:

name@mywebmail.com (7 new)
mynickname@mydomain.com (10 new)

You can set up each email address to link to the sign in page for the email provider. Depending on your provider, you may also be able to add automatic sign in when you click on the link.

You must be a site admin to add POP accounts.

Go to Admin > POP Email Accounts.

In the name field, enter the text for the link. You can use the email address name ie: "name@mywebmail.com" or something like "My Web Mail Account".

In the userid drop-down list box, select the user who will check the account.

Enter the POP Server ie: mail.myprovider.com. If you are unsure what your POP Server address is, check email provider's help files.

In the popusername field, enter the email address, ie: name@mywebmail.com

Enter the actual current password for the email account. If you are creating a POP Account for someone other than yourself, you will have to get them to do this. The password will always be displayed as stars (**********) to every user.

Enter the url of your email service (the page you visit to check your account). If your provider allows for automated sign in using a url, you can enter the specified url, and use square bracketed field names to populate the required user-specific information from the Qrimp POP Email Accounts table, as follows: [ popusername] [ poppassword]

Do not enter anything in the lastupdatedate field. It will update automatically.

Enter 0 in the messagecount field.

That's it.
Communicate and Share
deleteedit130Share DataShare data lets you add data to your [dashboard], copy data into other records in your app, other Qrimp app, and even other websites.

<h2>Adding an item to your dashboard</h2>
See [Portals].

<h2>Sharing data</h2>

There are two ways to get to the share data interface: the link below the [grid view]...
<img class="border" src="/attachments/8991a71b-cb52-4121-8511-b678f0ca813a/ShareDataLink.png" />

...and the Open Share icon in the [Content Header]</h2>
<img src="http://www.qrimp.com/blog/2008-06-27_0646.png">

When you click the link or the icon, you will see the following popup:

<img class="border" src="http://www.qrimp.com/blog/2008-06-27_0652.png">

You will see two boxes with HTML. The HTML on the left is for sharing within your app. The HTML on the left is for sharing on the web.

<h2>Copy and Paste HTML</h2>
Copy and paste a snippet of [HTML] code. You do not have to understand HTML to do this, but please go slowly and be sure to select and copy ALL of the text in the box!

You can paste this in a [portal], a [field template] a description box, or any other [text area] in your app. Experiment! If something doesn't work, you can delete it.

This snippet of HTML code pulls in the data and the view (see: [Views]) and determines whether you are sharing an individual item or the whole table.

<h2>Sharing data internally</h2>
To share data within your Qrimp App, copy the text (Ctrl+c) from the first share data script and paste it (Ctrl+v) into any text field in any table. The table you have selected will magically pop into that area. The text field must be pasted into a table that is in the same app as the HTML.

<h2>Sharing data externally</h2>
To embed your data into a separate Qrimp application or display it on another domain, copy the text (Ctrl+c) from the second share data script and paste it (Ctrl+v) into any text field on one of your other Qrimp apps or on any website that allows you to embed HTML and/or scripts.

If [Anonymous Access] is not allowed for your data and you share the code in a publicly viewable area of your app, the data will not be visible (see: [Table Security]).

<h2>Custom HTML Templates for Shared Data</h2>
You can build your own HTML template to format the shared data so that it will appear in your host page exactly the way you want it. Use [square brackets] to insert particular data items into the HTML template.

<h2>Advanced: Sharing data to a local file</h2>
You can paste the code for your shared data into any file that you can view with your web browser (save as .html). The first time you are opening a local file that contains a script to pull in shared data, you will need to be online to access the data (does not apply to [Qrimp Server] users). If your data is not visible to 'Anonymous' users (see: [Table Security]), you will have to log in.

Once you have viewed the data, you can save the HTML to the file before closing for offline viewing.

<h2>Shared Data Display Options</h2>
Use [Query String Parameters] to sort and limit which data is displayed.

Use HTML and <a href="http://www.w3schools.com/Css/">inline css</a> to style your shared data.

<h2>Images in Shared Data</h2>
To ensure that the images and links referenced in your shared data area appear properly wherever you share them, use absolute urls rather than relative urls to reference them within your original table.

<h2>Who can share data?</h2>
The share data link is not visible to all users by default. To allow a group to share data, you must allow [User Groups] to view the export options.

<h2>Open Share Icon</h2>
To simplify the process of sharing data, you can add a module called Open Share Icon available under Admin > Add Module. This module will add an icon to your headers next to the search icon that will open a lightbox with the same content as clicking the share button below the grid view. The Share Icon will be visible on more pages and easier to access than the share link.

<a href="https://www.shareaholic.com/openshareicon/"><img src=/icons/crystal_project/32x32/actions/openshare.png align=absmiddle> Read more about the Open Share Icon</a>

Learn about other [Export Options].
Communicate and Share
deleteedit190Embedding Data in your websiteIf you have a hosted website you can use Qrimp as the database to show data on that website using either EMBED code or IFRAMES.

<strong>Using Embeds</strong>
Most savvy web users have seen the embed feature on news, music or video sharing sites. Embed codes contain HTML that links back to a database and pulls in and displays information in other websites. To learn more, visit the [Share Data] help topic.

<strong>Using IFRAMES</strong>

Before you create your IFRAME, write a query string (see [Query String Parameters]) that displays data the way you want it. Then write an IFRAME where the SRC of the IFRAME is the url to your Qrimp database query string. Then copy/paste the IFRAME into your website to display the results.

<strong>Re-sorting the Data in an IFRAME</strong>
When you want to re-sort the data or query it, you can use JavaScript to update the SRC tag of the IFRAME and the results will be redisplayed automatically. For example:

document.getElementById('results').src='http://mydatabase.qrimp.com/db.aspx?t=products&orderby=productcode';

or

document.getElementById('results').src='http://mydatabase.qrimp.com/db.aspx?t=products&orderby=color';

<strong>Searching IFRAMES</strong>
You can search your IFRAMES BY using a query string with search parameters. For example, to search for products where the product name contained the word "vinyl", you'd do something like this:
document.getElementById('results').src='http://mydatabase.qrimp.com/db.aspx?t=products&productnameop=CONTAINS&productnamequery=vinyl';

Communicate and Share
deleteedit226Messages<!--<nobreak>-->
Install the messaging module to send messages in your Qrimp app. See [Adding Modules]
<h2>Sending Messages</h2>
<p>To send a message, go to Messages > Compose New.</p>
<img class="border" src="/attachments/developer.qrimp.com-8012de89-2af9-4047-813a-6abbc9eb3f5e/messages%20screenshot%201.png">

<p>Select the user(s) to send the message to by clicking a username, or enter an email address into the users box. Messages sent to external recipients via email will not be logged in the Messages table by default.</p>
<img class="border" src="/attachments/developer.qrimp.com-9ada4505-9b33-4f8c-81dc-8c78b4efbe81/messages%20screenshot%202.png">

<h2>Logging messages sent to external email addresses</h2>

<p>To track messages sent to external email addresses go to Develop > Manage Tables. Select the Messages table and click "edit". Add a field called ToEmail with a data type of Email Address.</p>

<h2>Creating Contacts Automatically</h2>

<p>You can set up your Qrimp app to automatically create an entry in your Contacts table when you send an email to a new external contact. If you do not have a contacts table, create a table with at minimum the fields mentioned below. If you already have a Contacts table, go to Develop > Manage Tables, select Contacts > edit, and add the following columns:</p>

Name - Single Line Text 100
Description - Multiline text 500 or greater
Email - Email Address

<p>Now when you send a message to an external email, the Name and Email fields will both show the email address. The description field will indicate that the contact was created from a message from within your Qrimp app. You can edit these fields later with more details.</p>

<h2>Logging Contact Interactions</h2>

<p>If you have or create an Interactions table, you can log interactions with existing contacts using the Qrimp messaging system. First, follow the instructions above for "Creating Contacts Automatically". Then add a table called Interactions, or add the following columns to your Interactions table:</p>

Name - Single line Text 255
ContactId - Pick From Contacts
InteractionDate - DateTime
Description - Multiline Text 5000+

<p>Click the check boxes for auditing and versioning.</p>

<p>Once you've built the contacts and interactions table, messages you send to external users from your Qrimp app will be logged. This data makes a great addition to a CRM and can be very useful on [Reports].</p>

<h2>Messaging about items in your database tables</h2>

<p>To use this feature, you must be comfortable with query string urls.</p>

<p>You can add the ability to see messages about an item in a table. First, add two additional fields to the messages table:</p>

TableId - Pick From Table Settings
ItemId - Number without Decimals

<img class="border" src="/attachments/developer.qrimp.com-afdb0129-7497-4379-854e-61824767abc8/adding%20tables%20to%20messages%201.png">

<p>To send a message about a particular item, you must type in a url table that references the table you are mentioning. If you include a parameter to the tableid and itemid of an entity in your Qrimp App, the message will be created with the tableid and itemid specified. You can create the link like this:
messages.aspx?t=messages&compose=new&tableid=1000&itemid=1</p>

<p>In this case, the message will be logged as being sent about item 1 in the table 1000.</p>
<!--</nobreak>-->
Communicate and Share
deleteedit160Time Zone AwarenessTime Zone Awareness allows you to set your system up so that each user sees the date and time information associated with their data in the correct time zone for their location.

If you are an existing Qrimp user, you will be asked to choose your time zone next time you log in. If not, you will be asked to chose a timezone at your first login.


My Account
deleteedit6The System TablesThe system tables are the core tables that govern the basic functionality of Qrimp applications. Only administrators can see system tables. Some system tables will be hidden from even the administrators, as modifying or deleting these tables can cause serious system errors. The system tables are the Qrimp equivalent to the system tables on your operating system. If you find that you need access to system tables that you do not have permission to edit from your account, please contact support at qrimp.com.

You will probably get along quite well without changing any system tables. Most of them run in the background, but are essential to different parts of the application and the tables you will create. For example, every application has the system table <strong>yesno</strong>. This table one of the default [Look-up Tables] for yes/no drop-down lists in new tables you create. It will be used by any table that has yes/no radio buttons as a data entry option. You can see this when you [Create Tables] and choose your [datatype].

If you are creating admin accounts, you'll want to make sure only expert users have access to these tables.

To learn more about enforcing access rules read [Table Security].
Advanced Development
deleteedit15Site SettingsSite Settings let you change settings for your app.
You can change the size of the icons that appear in the header/footer for your tables.

userid:

stylesheetid:

mailboxid:

mailformatid:

languageid:

regionid:

cityid:

icontheme: This is the folder from which you can set icons for inbuilt icon themes. Two icon sets are available medium icons at 32x32 pixels and mini icons at 16x16 pixels. To change from one size to another, simply replace the 16x16 for 32x32 or vice versa.
Advanced Development
deleteedit22OperationsOperations allow system users to perform actions upon data in your application. Operations are analogous to stored procedures. The five types of operations that users can perform on a database are Create, Read, Update, Delete and Admin.

* Create - Users can create entries in the table.

* Read - Users can view items in the table.

* Update - Users can update existing records.

* Delete - Users can delete information from the table.

* Admin - Full Permission. Users can add and remove fields from the table, rename columns, and rename the table. Admin rights also allow them to control security on the table.

Qrimp has additional default operations such as add notifications, gettree, etc.

To view the operations in your system go to Admin > Operations (<img class="noborder" align="absmiddle" src="/icons/crystal_project/32x32/apps/kfouleggs.png">). Access to the Operations table is restricted to Administrators by default.

To allow your users to perform operations, you must first make sure they have the security privileges to do so. You can control operation privileges using [Table Security].

You can also write your own operations to set up specific functionality based on particular tables, etc. Qrimp has a generic operation statement writing language that should be fairly intuitive to advanced database administrators. Learn more about [Writing Operations] and [Using Operations in urls].
Advanced Development
deleteedit48Square BracketsAn Introduction to Qrimp</textarea>

and produces this:



You can show a "friendly name" for items in the detail view, rather than the id number of the field. (See also [AutomaticIDs]

For example if you have an address table with a foreign key to the states table, when displaying the address, you'd like the state name to be displayed instead of the unique id for the state. To do this, you'd use something like the following:

[states:48] where 48 is the ID of the element to be displayed from the states table.

If this item is being displayed in the grid view, you can dynamically insert the Foreign key ID value into the square brackets like this:

<noeval>[states:[DATA]]</noeval> uses the data in the database for this cell to grab the state name. By default, Qrimp will display this notation in the web page with a link back to the detail page for the table and item specified by [DATA]. To show only the data without the link back to the item, use [states:[DATA]:nolink].

<noeval>[</noeval>t_users:<noeval>[</noeval>DATA<noeval>]</noeval><noeval>]</noeval></textarea> Will pull back a list of users and show the current user.

<h2>Square Brackets and Server Variables</h2>
Here's a <a href="http://www.w3schools.com/asp/coll_servervariables.asp">full list</a> of server variables. You can also read more about <a href="http://dotnetjunkies.com/Tutorial/B3CCB57F-0BBD-4D68-96B0-480B2F1DFC28.dcik">Working with Server Variables</a>.">In Qrimp, you can use Square Brackets "[]" to create links. This is similar to functionality available in Wikipedia and WordPress. Square brackets can also be used to insert server variables and session values, display a field as a select box or radio button and more.

<h2>Creating Links with Square Brackets</h2>
The data in these Help Files is stored in a table called Help Topics. The current record has the Name "Square Brackets". To create a link to the Help Topics table type in <noeval>[Help Topics]</noeval>. To link directly to the Square Brackets record type in <noeval>[Square Brackets]</noeval>. You can also link to a record in a table with square brackets by using the name of the table followed by a colon and the record id, like this: <noeval>
Square Brackets</noeval>.

<h2>Limitations of Square Brackets for Linking</h2>
If there are multiple records in your database with the same name or if the Name field is edited, your square brackets link will not work.

<h2>Links to Default Items</h2>
You can use square brackets in the HTML for links to make links more flexible and generic (see also [query string urls]). Normally when writing the HTML for a url, you would write &t=customers, but if you write <noeval>&t=HelpTopics</noeval> the link will go to the 'current' table or 'default' record. Links with square brackets are most commonly used in [Menus], the [Content Header], [Views] and [Field Templates]. For example, imagine this link: <img src="attachments/developer.qrimp.com-c71d519b-826b-48db-b481-5fcd427c9a14/linkwithsquarebrackets.png" /> is in the Content Header of my customers table. When I click the link, I will go to the create view (view 8) of the customers table. Square brackets pull in the closest item. <noeval>HelpTopics</noeval> will pull in the current table. <noeval>48</noeval> will pull in the current id.

<h2>Square Brackets to pull in DATA</h2>
Use <noeval>[DATA]</noeval> between the a tags to pull in the data from the linked record.

<h2>Square Bracket Select Lists</h2>
When displaying a form with a column or field that is a pick-from (drop-down), Qrimp displays a select box in HTML so the user can choose from the list. Behind this is a template. The template looks like this:

<textarea></textarea>

and produces this:



You can show a "friendly name" for items in the detail view, rather than the id number of the field. (See also [AutomaticIDs]

For example if you have an address table with a foreign key to the states table, when displaying the address, you'd like the state name to be displayed instead of the unique id for the state. To do this, you'd use something like the following:

[states:48] where 48 is the ID of the element to be displayed from the states table.

If this item is being displayed in the grid view, you can dynamically insert the Foreign key ID value into the square brackets like this:

<noeval>[states:[DATA]]</noeval> uses the data in the database for this cell to grab the state name. By default, Qrimp will display this notation in the web page with a link back to the detail page for the table and item specified by [DATA]. To show only the data without the link back to the item, use [states:[DATA]:nolink].

<noeval>[</noeval>t_users:<noeval>[</noeval>DATA<noeval>]</noeval><noeval>]</noeval></textarea> Will pull back a list of users and show the current user.

<h2>Square Brackets and Server Variables</h2>
Here's a <a href="http://www.w3schools.com/asp/coll_servervariables.asp">full list</a> of server variables. You can also read more about <a href="http://dotnetjunkies.com/Tutorial/B3CCB57F-0BBD-4D68-96B0-480B2F1DFC28.dcik">Working with Server Variables</a>.
Advanced Development
deleteedit210Javascript and JQuery in QrimpMake your Qrimp App more dynamic with JavaScript and JQuery.Advanced Development
deleteedit147JavaScript APIThe JavaScript API will allow dramatically expand the capabilities of your system. In this help topic, we are going to spend a little time detailing the functionality you can accomplish rather quickly using a little bit of JavaScript. If you've used [Share Data], you've already done a little bit of JavaScript Programming.

<h4>Background on JavaScript</h4>There are many <a href="http://www.w3schools.com/JS/default.asp">JavaScript Tutorials</a> on the net to help you understand it better. JavaScript is a standard technology and has been in use for many years. We chose to use JavaScript because a lot of developers are familiar with it. Javascript can make your applications more accessible and platform independent.

<h4>Examples</h4>Every Qrimp app comes with some features that are built using JavaScript. [Share Data] for sharing data and [Field Templates] for columns validation are built with Javascript. These validation routines are fairly standard. To try an example, go to Design > Field Templates on the Add New view for many of your tables.

<h4>Extensibility Options</h4>In this Help Topic, we are going to concentrate on some of the techniques you can use to pull data out of Qrimp and use it in your custom programming activities. To get the most out of this topic, you should be familiar with the [Query String Parameters] first.

To make AJAX programming with Qrimp easier, we are using Matt Kruse's AjaxRequest.js from <a href="http://www.ajaxtoolbox.com/">http://www.ajaxtoolbox.com/</a>. If you are familiar with JavaScript and would like to use Dojo, Prototype, or some of the other common libraries in your site, <a href="https://developer.qrimp.com/db.aspx?t=1013&vid=8">Open a Ticket</a> and we will help you with this.

<h4>Retrieving Data with AJAX</h4>Because we are using the <a href="http://en.wikipedia.org/wiki/XMLHttpRequest">XMLHTTPRequest</a> object the following functions will only get data from local urls within your Qrimp app. Attempting to use them with remote URLs will return a security error.

<a name='geturlstring'></a><b>getUrlString(url)</b> This method will download the url and return the content as a string. You can use this function to retrieve a particular value of a particular field for example. Click the button below to retrieve the name of the help topic indicated by the id you enter into the box:

<input type=text size=5 maxlength=5 value="147" id=itemid> <input type=button onclick="document.getElementById('theresult').innerHTML='The name is: '+getUrlString('db.aspx?t=helptopics&id='+document.getElementById('itemid').value + '&_fieldvalue=name');" value="Try It!"> <span id='theresult'></span>

Here is the JavaScript for the example above, click to copy it into your app: <nobr><textarea onclick='this.select()'>
<input type=text size=5 value="147" id=itemid>
<input type=button onclick="document.getElementById('theresult').innerHTML='The name is: '+getUrlString('db.aspx?t=helptopics&id='+document.getElementById('itemid').value + '&_fieldvalue=name');" value="Try It!">
<span id='theresult'></span></textarea></nobr>

<b>getContent(url,element,clearcontent,startmsg)</b> We could have stream lined the above example using this method, which will download the url and insert the content into the page element indicated by the element parameter. Try this example:

<input type=text size=5 maxlength=5 value="147" id=itemid2> <input type=button onclick="getContent('db.aspx?t=helptopics&id='+document.getElementById('itemid2').value + '&_fieldvalue=name','result2',document.getElementById('clearcontent').checked==true,'<img src=/images/ajax-loader.gif align=absmiddle> Retrieving name...');" value="Try It!"> <span id='result2'></span>
<input type=checkbox id=clearcontent> Clear Content

Here is the JavaScript for the Example, click to copy it into your app:<nobr><textarea onclick='this.select()'>
<input type=text size=5 maxlength=5 value="147" id=itemid2> <input type=button onclick="getContent('db.aspx?t=helptopics&id='+document.getElementById('itemid2').value + '&_fieldvalue=name','result2',document.getElementById('clearcontent').checked==true,'<img src=/images/ajax-loader.gif align=absmiddle> Retrieving name...');" value="Try It!"> <span id='result2'></span>
<input type=checkbox id=clearcontent> Clear Content
</textarea></nobr>

<h4>Special Query String Parameters</h4><b>_INDICATESUCCESS=true</b> will tell Qrimp to execute a command only returning only the status of the operation. If the message is a success it will return the value of the EXECUTE_SUCCESS variable, which is "Changes applied successfully." If the operation fails, the exception message will be returned.

<b>_RETURNRESULT=true</b> is used for creating new records or operations on individual items. For example, say you want to create a new record in a database table. If you append _RETURNRESULT=true to the URL querystring parameter list, the system will return just the single value response. For an INSERT operation that creates a new record, that result will be an integer number identifying the ID value of the new record.

Using &_RETURNRESULT=true can be very useful for creating parent child relationships. For example, you may want to create an Expense Report, get the ID of that new expense report, then create new expense line items under that Expense Report.

<b>_RECORDCOUNT=true</b> will return only the number of items that would be returned for a particular query string.

<h4>Special Pages for Programming</h4><b>banner.aspx</b> allows you to perform Mash Up operations that grab information from external websites. Use banner.aspx with the following Query String Parameters:
<blockquote>
<b>?importimage=<i>imageurl</i>&<b>t=</b><i>table</i>&<b>column</b>=<i>columnname</i>&<b>id</b>=<i>itemid</i></b>
This command will retrieve an image from a remote website specified by <i>imageurl</i> and save it into your local Qrimp app. The value for the column specified and corresponding to the particular item indicated by itemid and the table will be set to the url for the local file. This functionality will allow you to ingest remote resources and use them locally within your Qrimp App. The imageurl specified need not be only an image, but could be a text file, html file, etc

<b>?getrgb=<i>imageurl</i></b> will return the average hexidecimal color of a remote image. This is useful for determining, for example, if there are any storm clouds in a weather radar. If the average hex value is close to black, it's a clear day, if it is closer to red, it is very stormy.

<b>?externalurl=<i>urltodownload</i>&starthtml=starthtmlstring&stophtml=stophtmlstring&<b>t=</b><i>table</i>&<b>column</b>=<i>columnname</i>&<b>id</b>=<i>itemid</i></b>
This parameter group will download a remote resource and save the value contained in that resource between the specified start and stop html strings, display it with a link to the original resource, and if the user has rights to update the specified table, save it into the column specified.

This feature is used to create powerful mash ups that persist data from multiple locations around the net. The values saved in these columns can be used in Calculated fields, sorted, and used like any other data entered via the normal routes like HTML forms, etc.
</blockquote>

You can use [Square Brackets] to use values in your database to build custom urls. Watch the <a href="http://www.qrimp.com/demos.html">External Data Sources demo on our Demos Page</a> to get a visual idea of how to do this with Amazon's Online Store.

<b>savedesign.aspx</b>
<blockquote>This page is used to enable drag and drop Field Layouts, but can also be used to update fields in your database for a particular record with a particular value. Here are the query parameters:
<b>savedesign.aspx?<b>ptable</b>=<i>tabletoupdate</i>&<b>id</b>=<i>itemid</i>&<b>f</b>=<i>field</i>&<b>v</b>=<i>value</i></b>

If the update is successful, the value EXECUTE_SUCCESS will be returned. Otherwise, a failure message will be returned.

<h4>Summary</h4>The JavaScript API is a complete set of tools that remove all limits on your application. If you need additional support, please contact Qrimp Support.
Javascript and JQuery in Qrimp
deleteedit179Custom Pagination Look and FeelTo create your own Custom Paging for your system you will have to write some [JavaScript].

First, you will call the subset of numbers from the database that you will want to use to create the custom pagination.

You can call the subset two ways: JSON or XML.

If you use JSON:

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; overflow:scroll white-space: nowrap ;">paginationJson = getUrlString('db.aspx?t=Inventory&vid=73&noheader=true&nofooter=true&_pagingInfo=JSON' + filterQueryString)</div>

This URL will pull the subset of numbers

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; white-space: nowrap ";">{"paginationInfo":{"pageSize":9,"numPages":9,"numRecords":79,"currentPage":1}}</div>

Then you must parse the information. In the example we pull the parser from the Yahoo JavaScript Library.

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; white-space: nowrap ;"> try {
var paginationInfo = YAHOO.lang.JSON.parse(paginationJson).paginationInfo;
}
catch (e) {
alert(e);
}</div>

Finally, you can assign the global variables and begin to manipulate the page to create your own Custom Pagination.

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; overflow: scroll; white-space: nowrap ";">numPages = paginationInfo.numPages;
currentPage = paginationInfo.currentPage;
numItems = paginationInfo.numRecords;
pageSize = paginationInfo.pageSize;</div>



If you use XML you will parse the information differently

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; overflow: scroll; white-space: nowrap ">try //Internet Explorer
{
xml=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try //Firefox, Mozilla, Opera, etc.
{
xml=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
}
}
var url = 'db.aspx?t=inventory&vid=73&qid=3&_paginginfo=true';
xml.async=false;
xml.load(url);
//<paginginfo><pagesize>25</pagesize><numpages>0</numpages><numrecords>92</numrecords><currpage>1</currpage></paginginfo>
document.write('numpages=' + xml.getElementsByTagName("numpages")[0].childNodes[0].nodeValue + '<br>');
document.write('pagesize=' + xml.getElementsByTagName("pagesize")[0].childNodes[0].nodeValue + '<br>');
document.write('numrecords=' + xml.getElementsByTagName("numrecords")[0].childNodes[0].nodeValue + '<br>');
document.write('currpage=' + xml.getElementsByTagName("currpage")[0].childNodes[0].nodeValue + '<br>');
</div>

As you can see XML does its own set of calls for the parsing. IE and other browsers are different so the beginning is checking to see what browser it is. Then the numbers get called in the query string just like JSON. The main difference is the way the strings are parsed.

Now you can manipulate the variables to the your type of Custom Pagination.

Here is an example of a 'footer' Custom Pagination for a shopping cart of items.

<div style="border: 2px black solid; font-family:monospace; background: #f3f3ff; padding: 1em; overflow: scroll; white-space: nowrap ">
function createItemListFooter () {

paginationJson = getUrlString('db.aspx?t=Inventory&vid=73&noheader=true&nofooter=true&_paginginfo=json' + filterQueryString);

try {
var paginationInfo = YAHOO.lang.JSON.parse(paginationJson).paginationInfo;
}
catch (e) {
alert(e);
}

numPages = paginationInfo.numPages;

currentPage = paginationInfo.currentPage;
numItems = paginationInfo.numRecords;

var paginationHtml = "";

for (var i = 1; i <= paginationInfo.numPages ; i++) {
if (i == 1) {
paginationHtml = paginationHtml + "<div id=page" + i + " class=\"selectedPage pageNumber\"><a href=\"#\" onclick=\"displayPage(" + i + ")\">" + i + "</a></div>";
} else {
paginationHtml = paginationHtml + "<div id=page" + i + " class=pageNumber><a href=\"#\" onclick=\"displayPage(" + i + ")\">" + i + "</a></div>";
}
}

if (paginationInfo.numPages > 1) {

paginationHtml = paginationHtml + "<div id=nextButton class=prevNextButtons><a href=\"#\" onclick=\"nextPage()\">Next</a></div><div id=prevButton class=\"prevNextButtons hide\"><a href=\"#\" onclick=\"previousPage()\">Previous</a></div>"
}

document.getElementById("itemListFooter").innerHTML = paginationHtml;
}

function displayPage (pageNumber) {

if (pageNumber != currentPage) {

YAHOO.util.Dom.removeClass("page"+currentPage, "selectedPage");
YAHOO.util.Dom.addClass("page"+pageNumber, "selectedPage");

if (pageNumber == 1) {
YAHOO.util.Dom.addClass("prevButton", "hide");
} else if (currentPage == 1) {
YAHOO.util.Dom.removeClass("prevButton", "hide");
}


if (pageNumber == numPages) {
YAHOO.util.Dom.addClass("nextButton", "hide");
} else if (currentPage == numPages) {
YAHOO.util.Dom.removeClass("nextButton", "hide");
}

currentPage = pageNumber;

displayItemList();

}

}

function nextPage() {
displayPage (currentPage + 1);
}

function previousPage() {
displayPage (currentPage - 1);
}
</div>

This code manipulates the JSON from the above example to create this:

<img src="https://developer.qrimp.com/attachments/664353d5-59b5-4408-90db-7a08300aefe3/PaginationFooter.png">

<img src="https://developer.qrimp.com/attachments/218508a3-c74d-404a-86e4-e52ca0e0cae5/PaginationFooter1.png">
Javascript and JQuery in Qrimp
deleteedit186Retrieving id for new elementsIf you use JavaScript to create a new item, you may want to retrieve the ID of the element just created. To do this, use the _returnresult=true option in the querystring.

For example, submitting a querystring like the following will create a new item in the Person table with a name of Linda.

var id = getUrlString('db.aspx?t=person&name=linda&o=5&_returnresult=true');

You can now use the value in ID to add information to other tables that is related to the person Linda. Like this:

var taskid = getUrlString('db.aspx?t=tasks&name=Register+for+intranet&person=' + id + '&o=5&_returnresult=true');

Javascript and JQuery in Qrimp
deleteedit1302Creating your own error messagesQrimp has several default error messages for when things go wrong. The Qrimp stylesheet also has a class called "error" which is red text by default. You can change this to make it more or less obvious.

<h3>Adding Error Messages</h3>
If you have added custom [JavaScript] or other functionality, you may wish to add your own error messages. To do this go Admin > Error Messages and fill out the required fields.
Javascript and JQuery in Qrimp
deleteedit181PortalsPortals are windows to your data that appear in boxes on your [dashboard]. Your Dashboard is a collection of portal boxes. Each user must add or subscribe to their own set of portals. A user can either add a portal from the [grid view] or subscribe to a portal.

<img class="border" width="500" src="attachments/developer.qrimp.com-1065e4df-66f4-4bb4-b06a-592170c5c577/severalportals.png" />

<h2>Adding a Portal from Grid View</h2>
To add a portal from the [grid view]:

Go to the table you want to get data from > go to the bottom of the grid view > click the link that says "Share".
<img class="border" width="500" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/2e747ef8-e2cd-4287-a53c-a0bff069e41a-add%20portal%20screen%201.png">
A box will appear with a button that says "Add to Dashboard". Click the Add to Dashboard button.
<img class="border" width="500" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/d8b3d7b5-ea0e-41ae-8e7b-f69ff520ecda-add%20portal%20screen%202.png">
Enter a name for your dashboard.
<img class="border" width="500" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/bdc8b545-026b-4fd1-901e-47b4a6c01fa5-add%20portal%20screen%203.png">
Another link will appear that lets you view your dashboard
<img class="border" width="500" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/16d83cf4-6cf0-4ff1-9a22-0658792a4c39-add%20portal%20screen%204.png">
Your portal window has been added.
<img class="border" width="500" src="http://f43a933af7ac34dcec6f-e68f0ae55bed6d6f943b932cc8d70ccb.r3.cf1.rackcdn.com/16ed92a2-04f0-46c2-8de5-037cdb1bd4e4-add%20portal%20screen%205.png">

<h2>Moving Portals</h2>
To move a portal, go to the top right corner of the square. Hover over the icon that looks like two windows <img class="move" src="/c6401/559.png" align="absmiddle" height="16" width="16">". It will turn to a multi-directional arrow <img class="move" src="attachments/developer.qrimp.com-d9b3232d-9b06-4b91-97b4-27c53bbb9207/multi-directionalarrows.png" align="absmiddle" height="16" width="16">. Click and drag the arrow to move the portal to a spot before another portal square. The square you are moving it in front of will turn green.

<h2>Resizing Portals</h2>
To resize a portal, click the magnifying glass icon in the top right <img src="/icons/crystal_project/32x32/actions/viewmag.png" />. You can change it to be large, small or medium.

<h2>Customize Portal Background Colors</h2>
To choose a new background color for a portal, click the palette icon in the top right <img src="/icons/crystal_project/32x32/apps/colors.png" />. Different colors can help you quickly find data that looks the same.

<h2>Advanced: Manually Editing Portals</h2>
To edit a portal, click on the edit icon in the top right corner of the square <img src="/icons/crystal_project/32x32/apps/kate.png" />. This will take you to the edit view of that portal in the Portals table. Note: You can see all of the records in the portals table by going to Design > Portals.

Name: The Name of your portal window. Use a name that describes which data will appear in the portal and how it will appear. For example "Logins by Date", "Unpaid Bills" or "Red Shoes - Thumbnail images". The name you choose will appear in the header of the portal.

Description: Describe your portal to help you remember what it's about.

Template: Copy and paste a [ShareData] script. The ShareData script is much like an embed tag. It links to your data, storing the table id, the sort on your data, search information, hiddencolumns and whatever else you tell it to. Advanced: add styles to your portals by using inline styles in the template field.

Link: The Portal Link specifies where the user will go if they click on the portal header.

<h2>Deleting Portals</h2>
To delete a portal from your home page, click the red X in the top left hand corner. You will be unsubscribed. To resubscribe, simply go to Home and find the link in the top left of the page that says "Add Portal".
Dashboard
deleteedit187Creating a Portal with a Chart<a href="db.aspx?t=HelpTopics&vid=11&id=183">Charts</a> and <a href="db.aspx?t=HelpTopics&vid=11&id=57">Reports</a> make good additions to [portals] as they provide a quick overview of your data.

To add a chart to a portal page, first find the chart of your liking. For the example I'm going to use the most expensive zip codes by county year over year. Before you click the Share button don't forget to copy the script inside the text box. (Shown in figure 2)

<img src="https://developer.qrimp.com/attachments/0ab33145-8a74-4cd7-afa6-4ae6242c25fe/Chart8.png">

After you click the Share button it will take you to a Create portal page.

<img src="https://developer.qrimp.com/attachments/4e51b730-94a0-4e0a-abfe-449d93d4af08/Chart9.png">

After you click the create button you need to add it to your portal page which will be located in the [Header/<strong>Footer</strong>].

<img src="https://developer.qrimp.com/attachments/c1a68be3-2753-462f-a0b7-033e49aadf6b/Portal1.png">

After you add the portal subscription it should look like this:

<img src="https://developer.qrimp.com/attachments/d9b65d72-7919-43a1-b619-ceebe16b7dae/Chart10.png">






Dashboard
deleteedit255Portal SubscriptionsOne way to add [Portals] to your [Dashboard] is to subscribe to them.

Hover over the Dashboard menu tab, then click the sub-menu for 'Portal Subscriptions'. (Note: If you cannot see Portal Subscriptions, please contact your site Administrator to get permission to the menu).

<img class="border" src="/attachments/developer.qrimp.com-0cee567b-66bc-4267-ae29-76b374bc8e02/portalsubscriptions.png" />

Click the checkboxes next to the portals that are of interest to you, then click save. If your user group does not have permission to see that area of the site, the portal window will be blank, and you should delete it.
Dashboard
deleteedit256Adding a Calendar List PortalA list of upcoming events on your [Dashboard] can help you see what you need to do this week. You will need to have the Calendar and Custom Views modules installed (see: [Modules]).

<img class="border" width="600" src="attachments/developer.qrimp.com-14857d23-63f4-4b4c-a3fd-a6a9f85a0a7d/calendarlistportalamongothers.png" />

<h2>Adding a Calendar List</h2>
In your menus, go to > Calendar > Event List

<img class="border" src="attachments/developer.qrimp.com-ba59a75a-cbf8-4706-9d8a-a3b1e44df7ab/clickcalendar.png" />
-------

You will see a list of all events. You need to filter this using custom views, so that you see only today's and future events. You must have the custom views module installed.

<img class="border" src="attachments/developer.qrimp.com-437ea09e-aabb-40cd-b126-e2a87a339bdc/listofeventscalportal.png" width="500">
-------

At the top of the list, click "Add New View".

<img class="border" src="attachments/developer.qrimp.com-88de3bc3-69ca-45ca-a185-6979a2dfa4ab/addcaleventsviewforportal.png " />
-------
Enter a name for your view. "Calendar" will be fine. Don't select it as the default view.

<img class="border" src="attachments/developer.qrimp.com-b928d515-c7ba-4b60-9040-8c05d03ecef0/caleventsviewportal-calname.png " />
-------
Select the "Name", "BeginAt" and "StartDate" columns from the list.

<img class="border" src="attachments/developer.qrimp.com-553e0f3e-4d27-4714-b838-e5c228743f88/namebeginatstartdatecalportal.png" />
-------
Sort by Start Date.

Group by Start Date.

<img class="border" src="attachments/developer.qrimp.com-c971f335-2a91-42d2-b5ae-585a78b2ad25/sortandgroupbystartdatecalportal.png " />
-------
Filter the view. Select "Start Date", "greater than or equal to" and "Today".

<img class="border" src="attachments/developer.qrimp.com-bd3987db-3ef8-4dbf-b6f0-cabc84177b42/filtercalportal.png " />
-------
Select the user groups and users who should be allowed to see this view. There is nothing private in our calendar so we make it available to every user group except anonymous. <em>Note: this will not add the portal for those users or groups. Users can add a portal using [Portal Subscriptions].</em>

<img class="border" src="attachments/developer.qrimp.com-c61e2996-ed40-43d8-9c0c-dda8a42282cf/viewpermissionscalportal.png " />
-------
Save your view.

<img class="border" src="attachments/developer.qrimp.com-d4657e18-4a33-47c3-8be3-a17d2ba150a2/saveview.png" />
-------
You will see your new view. At the bottom is a link to share it. Click the share link.

<img class="border" src="attachments/developer.qrimp.com-a055d3d6-38d8-4a0f-b160-4a3682d137ac/caleventsviewshare.png " />
-------
You will see a link to add to Dashboard. Click the "Add to Dashboard" link.

<img class="border" src="attachments/developer.qrimp.com-561532ae-f328-47cc-b2ae-7a0e63a8ef41/addcalportaltodashboard.png " />
-------
Name your new calendar view. "Calendar" is a good name.

<img class="border" src="attachments/developer.qrimp.com-b3e6d4e2-6717-4e5c-beb7-085cccef27f8/calltheportalcal.png" />
-------
Click the "View Your Dashboard Now" link.

<img class="border" src="attachments/developer.qrimp.com-79941e05-8151-4c16-bd7e-81ac824eea07/viewdashboardnowcalportal.png" />
-------
Your calendar is now a portal window on your dashboard.

<img class="border" src="attachments/developer.qrimp.com-8352611c-34af-4bd0-b11f-52e938f7fafd/callistondashboard.png" />
-------
Dashboard
deleteedit1315Manually Subscribing Users to PortalsYou can 'subscribe' to existing portals.

Go to Design > Portals. You will see a list of Portals. Click the name of the portal you want to subscribe to. On the right, click the top link that says "Portal Subscriptions".

Click the names of the users who should see that portal on their [Dashboard].
Dashboard
deleteedit1327Add My Task List to a PortalA list of tasks on your [Dashboard] can help you see what you need to do this week. You will need to have a tasks table.

In your menus, go to Tasks.

<img class="border" src="attachments/developer.qrimp.com-e9fb95cf-d97d-4c1b-8196-e71bd73a331e/gototasksmenu.png">
----
You will see a list of all tasks.

<img class="border" src="attachments/developer.qrimp.com-91655928-9af7-49a0-be3c-19d658c27e8e/taskslist.png">
----
Search the tasks list for tasks that are assigned to you.

<img class="border" src="attachments/developer.qrimp.com-feb0c8af-bc8b-4307-b95c-30737f509286/tasksassignedtodropdownsearch.PNG" />

Now that you see a list of tasks assigned to you, look at the bottom of the page, below the tasks. There is a link that says "Share". Click the share link.

<img class="border" src="/attachments/developer.qrimp.com-057e6e67-b784-4916-bce7-684f1f5cdeb6/tasksassignedtodemo.png" />
-------

You will see an add to Dashboard button. Click "Add to Dashboard".

<img class="border" src="attachments/developer.qrimp.com-561532ae-f328-47cc-b2ae-7a0e63a8ef41/addcalportaltodashboard.png " />
-------
Name your new tasks portal.

<img class="border" src="attachments/developer.qrimp.com-ac5166f6-5553-4623-89ae-d8bc32c38087/calltheportaltasks.PNG" />
-------
Click the "View Your Dashboard Now" link.

<img class="border" src="attachments/developer.qrimp.com-79941e05-8151-4c16-bd7e-81ac824eea07/viewdashboardnowcalportal.png" />
-------
Your tasks are now a portal window on your dashboard.

<img class="border" src="attachments/developer.qrimp.com-58e4733a-4a82-4b0a-8cc0-9a62c384250f/tasksportal.png" />
-------
Dashboard
deleteedit231Remember MeRemember me is a checkbox you can click when you log in. It tells Qrimp to remember you the next time you access your app from that browser on that computer. By default you will only be remembered on the last browser and device you logged in from. If you click remember me on your laptop and then access the site from your mobile, you won't be remembered when your return to your laptop. If you clicked the remember me check box on a computer or device and then access the site from that same device, you will be remembered, but only on that one device.

<h2>Remember me on Multiple Computers</h2>

If you use your Qrimp app from multiple browsers or devices such as a work computer, your own laptop and your mobile device, and do not want to re-enter your log in information every time, you may wish to install the "Remember me on multiple computers" module. Please do not install if security is a concern. See [Adding Modules]. If you add this module, then Qrimp will remember you across multiple devices and computers.

Being remembered across multiple devices introduces increased possibilities for unauthorized access. If someone logs on at your home while you are at work, then they may be able to see things you don't want them to. If you don't add this module once you log in on a new device, someone using another device will have to log in again. If you add the module though, you could be logged in at home and at work at the same time -- and one of those could be someone else.

<h2>Prevent Session Timeouts</h2>
One great benefit of "Remember Me" is that your session won't be timed out. Without remember me, you are logged out after 20 minutes of inactivity. If you were typing one message for that long the message could be lost when you're asked to log in again. Clicking the remember me check box will ensure you're logged in automatically again when you click the send button and whatever you've been typing won't be lost. <em>Note: Most newer browsers will remember what you have typed into a text area.

<h2>In-App logins: The Admin Screen</h2>

Qrimp has additional password protection for areas of the site that are behind the admin screen. The admin screen is a barrier that requires additional login before granting access to certain sensitive or important features of your app. In order to protect your app in the case that you are logged in and someone else accesses your account (ie: from your computer when you aren't at your desk). Even if you're logged in via a remembered session, you will have to log in again for further access. For example, if you want to create a user, even if you've accessed the site via a remembered session, we'll ask you to log in again.

This will prevent those who shouldn't be accessing your Qrimp app from having too much access. Some areas behind the admin screen are users, table management, portals, modules, queries, and operations.
Logging in
deleteedit238Forgot PasswordIf a user forgets his or her password, it is easy for them to reset it. Go to the login screen (https://myapp.qrimp.net/login.aspx) and click the link that says "login help".

<img class="border" width="300px" src="/attachments/developer.qrimp.com-b32c1468-a08b-4365-96cd-0e222c2f46a8/login%20help%201.png">

Enter the email address the user logs in with, select "Send a link to reset my password" and hit Send. Qrimp will send an email with a link that lets the user reset their password. For security purposes we do not send the actual password.

<img class="border" width="300px" src="/attachments/developer.qrimp.com-b0f77d4f-fdfa-4bf5-a9d0-b265281b8c4b/login%20help%20change%20password.png">
Logging in
deleteedit244Forgot UsernameIf a user forgets or loses his or her username, it is easy to reset.

Go to the login screen (https://myapp.qrimp.net/login.aspx) and click the link that says "login help".

<img class="border" width="300px" src="/attachments/developer.qrimp.com-b32c1468-a08b-4365-96cd-0e222c2f46a8/login%20help%201.png">

Enter the email address the user logs in with, select "Send my username" and click Send.

<img class="border" width="300px" src="/attachments/developer.qrimp.com-b0f77d4f-fdfa-4bf5-a9d0-b265281b8c4b/login%20help%20change%20password.png">

The user will receive an email containing the login information and a link. When the user logs in, they will be prompted to change their password.

<img class="border" width="300px" src="/attachments/developer.qrimp.com-e0f05091-6258-4ec4-91d5-0ae428e6ed92/username%20email.png">
Logging in
go to page: 1 2 3 4 5 6 7 8 9 10 243 records. Showing