Language:


Routines - Forms

Forms are more formal printouts such as invoices or delivery notes, intended for sending to third parties (e.g. Customers or Suppliers). You can usually print several different forms from each module.

When you click the [Forms] button in the Navigation Centre or use the Ctrl-D (Windows and Linux) or ⌘-D (Mac OS X) keyboard shortcut, a window will be opened, containing a list of the available forms. The forms available vary with the selected module: the illustration below shows those in the Sales Ledger module:

Choose a form by clicking an item in the list once. If you need to set the page size, number of copies and other printer options for the form, choose 'Page Setup' from the File menu. You can also use this function to choose the printer on which the form is to be printed. These settings will be used whenever you print the particular form until you choose 'Page Setup' once again, or until you choose 'Remove Page Setup' from the Operations menu in the top left-hand corner of the 'Forms' list.

Once you have done this, double-click the form name in the list. A specification window will open, where you can choose the record or records that you want to be printed. For example, when printing Invoices, you can use the specification window (illustrated below) to choose the Invoices that you want to print.

While the specification window is open, you can choose the destination of the printout by selecting one of the Media options at the bottom of the window. If your database is in restricted mode, you can only use the Screen option. You can only use the Fax option on a Windows machine with Fax Services installed. If you need to use the Pdf or Pdf and E-mail options, you may need to use Styles that will embed fonts in the resulting pdf files. You may also need to choose a code page and page setup, which you can do in the Form Properties (the 'Page Setup' function mentioned earlier in this section does not apply when you choose the Pdf or Pdf and E-mail Media options). Please refer here for details about Styles and here for details about Form Properties.

Once you have specified the records that you want to be printed and have chosen a print destination, click [Run] to print the documents.

Threaded Forms

In multi-user systems, a user printing many forms may cause performance to suffer for the other users. If you have a suitable server (i.e. a multiple-core or multiple-processor server), you can use the Forms on Threads option to attempt to optimise the performance for all users. You will find this option on the 'Performance' card of the Optional Features setting in the System module.

Choosing the Forms on Threads option will mean that in most cases form processing on the server will run on a separate thread, reducing the disturbance to other users. The exceptions are forms that write to the database when they are printed. Examples include Invoices, Receipts and Payments, which update the database to prevent repeated printing of the same record, and Open Invoice Customer Statements and Reminders, which can increase the Reminder Level in outstanding Invoices.

You will need to restart the server after changing this option.

Defining Forms

Each document that you print using the 'Forms' function contains two elements, the "Form" itself and the "Form Template". The Form element extracts the relevant information from the database and places it in printable fields, while the Form Template is the graphic layout design of the printed output i.e. it determines where on the page the printable fields will be placed.

Before you can print a form for the first time, you must connect it to a Form Template. The Form Template is the design or layout of the form. You can connect a form to a single Form Template or, if necessary, to more than one. This will be useful if you have several versions of a particular form, to be used on different occasions. For example, you might need a particular form to be able to produce printed output in different Languages determined by the Language of the Customer or Supplier.

To connect a form to a Form Template or Form Templates, follow the steps below. We will illustrate the process using an example in which there are two different invoice layouts, one for French language customers, and one for all other customers.

  1. The first step is to design the Form Templates using the Form Template register in the System module. You can find a full description of this design process here. For the example, we will assume the Form Templates have been named "INVFRE" (for the French language customers) and "INV" (for the others).

  2. Use the [Switch Module] button in the Navigation Centre or the Ctrl-0/⌘-0 keyboard shortcut to choose the module in which the form is to be found. In the case of the Invoice form, this is the Sales Ledger.

  3. Click the [Forms] button in the Navigation Centre or use the Ctrl-D/⌘-D keyboard shortcut. The 'Forms' list window will be opened showing a list of available forms. Highlight the form that you need to connect to a Form Template ('Invoices' in the example).

  4. Select 'Define Form' from the Operations menu (with "cog" icon).

  5. The 'Form Definition' window opens. For this example, specify "INV" as the Form on the first row and "INVFRE" as the Form on the second row:

    In the second row, you should also specify the French language in the Language field ("FRA" in the illustration). This will mean that the "INVFRE" Form Template will be used when you print Invoices with this Language. Do not specify a Language in the first row: this will mean that the "INV" Form Template will be used when you print Invoices with all other Languages.
    In the illustration, the Status in both rows is "OKed". This means an Invoice will only be printed using the "INV" or "INVFRE" Form Template if it has been marked as OK and saved (so that it has been posted to the Sales and Nominal Ledgers). As there is no row with the "Not OKed" Status, it will not be possible to print Invoices that have not been marked as OK.

    In more detail, the fields in the 'Form Definition' window are as follows:

    Seq.
    Use this column if you want to print two (or more) different documents from a single command. For example, you might want to print a Delivery Note and an Invoice together. In this case, you would enter the Delivery Note with Seq. no. 1 on the first row of the grid, and the Invoice with Seq. no 2 on the second row.

    Lang.
    If necessary, enter a Language code in some or all rows. You can use 'Paste Special' (Ctrl-Enter or ⌘-Enter) to select from a list of Languages as set up in the System module. The 'Paste Special' feature is described here. You can also assign a Language to each Customer and/or Invoice. When you print an Invoice with a particular Language, the Form Template that will be used will be determined by the Form Definition row with the same Language. If there is no row with the relevant Language, the first one with no Language will be used. This allows you to ensure that, for example, an English Invoice will be printed for all Customers except those who have been assigned the Language code for French, for whom a French Invoice will be printed.

    Acss. Gr.
    You can assign a particular Form Template to an Access Group. If you have logged in as a member of this Access Group, the system will automatically select the Form Template assigned to your Access Group when you print the form. Use 'Paste Special' to select from a list of Access Groups as set up in the System module.

    Ser No
    You can assign a particular Form Template to a Number Series, so that records with numbers from that series will be printed using the assigned Form Template. For example, if you use different number sequences for Invoices issued from different branches, you can use this feature to print Invoices using different Form Templates depending on the branch from which they were issued, with different address and contact details.

    Form Template
    Enter the Code of the relevant Form Template in this field. This field is case sensitive: you should only use upper case characters. Use 'Paste Special' to select from a list of Form Templates as set up in the System module.

    Printer
    Enter a printer code to send the printout to extra printers defined in the System module (use 'Paste Special' to obtain a selection list). Leave this field blank to use the default printer as selected in the Windows Control Panel or the Mac OS X Print & Scan System Preference.

    Status
    You can use this field if you need different Form Templates to be used when printing records that have been or not marked as OK e.g. you might want to use a Form entitled "Proforma Invoice" when printing an Invoice that has not been marked as OK, and a different Form entitled "Invoice" when printing an Invoice that has. In this case, enter two rows in the 'Form Definition' window, one for the Proforma and one for the standard Invoice, with appropriate Status in each case.

    Enter one of the following values in this field, using 'Paste Special' to check the spelling is correct:
    OKed
    The specified Form Template will only be used when you are printing a record that has been marked as OK.

    Not OKed
    The specified Form Template will only be used when you are printing a record that has not been marked as OK.

    All
    The specified Form Template will be used when you are printing all records.
    You can use this feature as a security measure. If you prevent the printing of records that have not been marked as OK, and you also use Access Groups to specify which users are able to mark records as OK, this will help prevent the fraudulent creation and printing of unauthorised records such as Purchase Orders and Invoices. You can also use Access Groups to restrict access to the 'Form Definition' window. For example, to make sure unauthorised Purchase Orders cannot be printed:

    1. In the 'Form Definition' window for Purchase Orders, set the Status to "OKed" in every row. This will mean that Purchase Orders can only be printed if they have been marked as OK.

    2. Use Access Groups to restrict access to the 'OKing Purchase Orders' Action. This will control who can mark Purchase Orders as OK.

    3. Use Access Groups to deny most users access to the Purchase Order form (i.e. set the Level to "None" for this form). These users will be able to open a Purchase Order and print it, but they will not be able to choose 'Purchase Orders' in the 'Forms' list. As a result, they will not be able to open the 'Form Definition' window for Purchase Orders to change the Status to "Not OKed" or "All".
  6. Click [Save] to save the form definition. In this example, when you print Invoices from now on, the correct Form Template will be selected automatically according to the Language of the Invoice, without further user intervention.

    You can repeat this process for almost every form as required.

You can also use the Language to specify the printer that will be used to print a form. This can include sending the form to a fax machine, if your hardware can support this feature. To do this, enter separate rows in the 'Form Definition' window for printing and faxing. The fax row should have a dedicated Language (e.g. "FAX") in the Lang field.

In this example, Invoices will be printed as follows:
  • The first row determines that Invoices with no Language will be printed using the "INVENG" Form on the default printer.

  • The second row determines that Invoices with the "FRA" Language (French) will be printed using the "INVFRE" Form on the default printer.

  • The third row determines that Invoices with the "FAX" Language will be printed using the "INVENG" Form on the "FAX" printer (fax machine).

  • The last row determines that Invoices with the "FAXF" Language (i.e. Invoices in French that are to be faxed) will be printed using the "INVFRE" Form on the "FAX" printer (fax machine).
You can change the Language in a record before printing it, to ensure it is printed on the correct printer or fax machine.

Individual Forms

Please click the links for details about the individual forms in the following modules:
Go back to: