Coding Guideline

The following is not mandatory but shows some best practices:


  • Define constants in Extensions > QFQ > Custom > ...

  • Dynamic values under Extensions > QFQ > Dynamic > ...

QFQ content record

  • Name the record in the header field with:

    • Regular content: [QFQ] ...

    • Content in the left column: [QFQ,L] ...

    • Content in englisch: [QFQ,E] ...

  • The first lines should be comments, explaining what the record does and list all passed variables. Optional variables are indicated by using STORE_EMPTY or STORE_ZERO:

    # Shows list of Persons living in {{country:SE}}
    # {{country:SE}}
  • A good practice is to define all possible STORE_SIP Parameter in a SQL at the beginning and copy them to STORE_RECORD:

    10 {
      # Normalize variables
      sql = SELECT '{{country:SE}}' AS _country
      # List selected persons per country
      20.sql = SELECT FROM Person AS p WHERE LIKE '{{country:R}}'
  • Always comment the queries like shown above.

QFQ Form

  • Mandatory SIP parameter should to be mentioned in Form.requiredNew and/or Form.requiredEdit.

  • If the title of a FormElement isn’t descriptive enough, use tooltip, note or extraButtonInfo to explain to a user.

  • Every Form should show a descriptive title to identify the task and current record. E.g. Not ‘Person’ but ‘Person: John Doe’.

  • Often the length of a pill title if not sufficient, use a tooltip to give a more descriptive hint.