The following Tech Notes are designed to highlight features in Omnis Studio or to help you with some of the more
common technical problems you might face while developing your Omnis application.
Select a topic:
Most Recent Tech Notes
Created
Loading External macOS Libraries
Aug 2024
TNSQ0043
macOS Notarization
Dec 2023
TNMA0002
macOS Code Signing
Dec 2023
TNMA0001
Importing a CSV file into a list
Nov 2023
TNLS0002
How to swap data in a list
Nov 2023
TNLS0001
Enhancing your Tool Tips
Oct 2023
TNGI0032
Linux System Requirements
Oct 2023
TNLI0008
Running the Linux Installer Unattended
Oct 2023
TNLI0007
Debugging Client-Side Exceptions
Aug 2023
TNJS0015
Testing a JS Client app over HTTPS
Aug 2023
TNJS0014
Using the JavaScript Worker
Aug 2023
TNEX0006
Using the oProcess Worker
Aug 2023
TNEX0015
Using the Python Worker
Aug 2023
TNEX0014
Connecting to SAP HANA with the ODBC DAM
Jul 2023
TNSQ0042
Creating a Relational Grid
Jul 2023
TNJC0018
Omnis JavaScript Client
Building & Customizing the Android app
TNJS0001
Building & Customizing the iOS JavaScript Wrapper app
TNJS0002
Setting up the Omnis App Server
TNJS0003
JavaScript Client Construct Row
TNJS0004
Using the Omnis Synchronization Server
TNJS0005
Debugging JavaScript Client Methods
TNJS0006
Setting up a Server on Amazon Web Services (AWS)
TNJS0007
Error Handling in Remote Forms & Inheritance
TNJS0008
Theming an Omnis JavaScript application
TNJS0009
Motion Background for Remote Forms
TNJS0010
Popup Form for exporting data from a Data Grid
TNJS0011
Import a file into SQLite and create a web or mobile form
TNJS0012
Variable References in Client-executed Methods
TNJS0013
Testing a JS Client app over HTTPS
TNJS0014
Debugging Client-Side Exceptions
TNJS0015
JavaScript Components
Complex Grid
TNJC0001
Subform control
TNJC0002
Data grid control
TNJC0003
Linked List
TNJC0004
Device Control
TNJC0005
Subform Sets
TNJC0006
High Definition Icons
TNJC0007
Trans button
TNJC0008
Adding Ready-made JavaScript components to Omnis
TNJC0009
Using SVG Icons for your Omnis JavaScript apps
TNJC0010
Using SVG Icons for Map Markers
TNJC0011
PDF Printing in the JavaScript Client
TNJC0012
Reading a barcode or QR code in a mobile app
TNJC0013
Integrating AmCharts into Omnis Studio
TNJC0014
Adding Signature Capture to Omnis using a JSON Component
TNJC0015
Toolbar and Segmented Controls
TNJC0016
Bar and Pie Chart Controls
TNJC0017
Creating a Relational Grid
TNJC0018
Omnis Web Development
Setting Secure mode for the Omnis App Server
TNWE0009
Cancelling a long server process from a remote form
TNWE0012
Asynchronous Programming in Omnis
TNWE0014
Direct HTTP access in Omnis
TNWE0016
Using Omnis HTTP Commands
TNWE0018
Creating Dynamic Web Forms
TNWE0027
Linux
How to install Omnis Studio 3.x under Linux
TNLI0001
The Integration of Open Office in Omnis Studio under Linux
TNLI0002
How to run and use Omnis Studio on Linux platforms
TNLI0003
Setting up Omnis on Debian Linux
TNLI0004
How to determine the MAC address under Linux
TNLI0005
OpenSSL Error when launching Omnis Studio on RedHat6
TNLI0006
Running the Linux Installer Unattended
TNLI0007
Linux System Requirements
TNLI0008
Object Orientation and Inheritance
Objects and Object References
TNOO0001
Polymorphism in Omnis
TNOO0002
Using References
TNOO0003
Beginners guide to Abstraction and Inheritance
TNOO0004
Encapsulation of GUI Objects
TNOO0005
Client/Server and SQL Programming - General
Using Bind Variables with SQL Classes
TNSQ0001
Inserting Dates into a Server from Omnis Studio
TNSQ0002
Omnis Studio Examples - SQL
TNSQ0004
Altering Datatypes for the columns in your Omnis SQL table
TNSQ0005
Mapping Character Sets
TNSQ0013
SQL Error Handler
TNSQ0017
Using multiple SQL backends with Omnis
TNSQ0018
Intelligent SQL Search
TNSQ0022
Setting Environment Variables
TNSQ0025a
Table Classes versus Object Classes
TNSQ0027
Omnis Character Mapping Explained
TNSQ0028
Creating Server Tables Automatically
TNSQ0033
Running Asynchronous Tasks Using SQL Workers
TNSQ0035
Oracle
Using Oracle Instant Client with macOS 11 "Big Sur" and Later
TNSQ0010c
Using Oracle Instant Client on Windows
TNSQ0034
Configuring Oracle DAM(s) on Linux
TNSQ0014
Mixing Unicode and Non-Unicode Data Types with Oracle
TNSQ0023
PL/SQL Array Binding with Oracle
TNSQ0026
Making a Proxy Connection using the Oracle DAM
TNSQ0032
Sybase
Connecting to Sybase SQL Anywhere 10/11 from a Mac-Intel Client
TNSQ0016
Connecting to Sybase Adaptive Server Anywhere 11 64-bit Server
TNSQ0021
Connecting to Sybase from Mac OSX
TNSQ0029
Connecting Natively to SQLServer in Omnis Studio 10
TNSQ0036
MySQL
Creating your own SQL session for MySQL
TNSQ0012
Making SSL Connections using the MySQL DAM
TNSQ0030
Using the Dynamic MySQL DAM
TNSQ0039
PostgreSQL
Replacing the PostgreSQL Client in MacOS Big Sur and Later
TNSQ0040
Mapping Extended Characters with PostgreSQL
TNSQ0019
Making SSL Connections using the PostgreSQL DAM
TNSQ0031
ODBC / Omnis ODBC Driver
ODBC Administration with Omnis Studio
TNSQ0015
Omnis ODBC Access Masks
TNSQ0003
Using Outer Joins with OmnisSQL and the Omnis ODBC Driver
TNSQ0007
Using the Microsoft ODBC Driver for SQL Server for Linux and macOS
TNSQ0038
Using the ODBC DAM with macOS 11 and Later
TNSQ0038a
Connecting to SAP HANA with the ODBC DAM
TNSQ0042
OmnisSQL
Automatic Conversion to SQLite in Omnis Studio 10
TNSQ0037
Automatic Conversion to PostgreSQL in Omnis Studio 10
TNSQ0037a
DB2
Non-Visual DB2 DAM and Record Locking
TNSQ0006
JDBC
Making Connections using the JDBC DAM
TNSQ0024
Omnis Libraries
Multiple Libraries and Task Variables
TNLB0001
Omnis Components / Extending Omnis
Using .Net objects in Omnis Studio
TNEX0001
The Omnis Remote Studio Applet (rStudio)
TNEX0002
Using the .NET Objects component
TNEX0003
Displaying progress in FTP Transfer
TNEX0004
Implementing padding in Blowfish Encryption
TNEX0005
Using the JavaScript Worker
TNEX0006
Omnis Headless and Docker
TNEX0007
Loading external frameworks in macOS Catalina
TNEX0008
Loading External macOS Libraries
TNSQ0043
Locating Library Dependencies
TNEX0009
Creating a service for ODB on macOS
TNEX0010
Creating a service for ODB on Windows
TNEX0011
Optimizing Omnis Data File Queries for the ODB
TNEX0012
Addressing the remote code execution vulnerability in Apache Log4j (Security Alert CVE-2021-44228)
TNEX0013
Using the Python Worker
TNEX0014
Using the oProcess Worker
TNEX0015
Creating XML documents with oXML
TNXM0001
Creating Unicode External Components
TNXM0002
Creating Old-Style Unicode External Components
TNXM0003
Animating Objects using the Transform Component
TNXM0004
Omnis Web Services
Using Omnis Studio as a SOAP host
TNWS0001
REST Web Services: implementing a Client
TNWS0002
Getting Started with REST Web Services, Tomcat and Swagger UI
TNWS0003
Web Service Authentication
TNWS0004
REST Web Services HTTP JavaScript Push Example
TNWS0005
Creating Omnis REST API endpoints and deploying them through IIS
TNWS0006
Integrating Omnis Studio with Mailjet using REST
TNWS0007
Integrated Design Environment
Transfering your customised Component
Store between versions of Studio
TNID0001
Naming conventions used in Studio
TNID0002
Documenting your Omnis code
TNID0003
Creating your own Component Store Objects
TNID0004
Adding version info to your application
TNID0005
Changing Built-in Shortcut Keys in Studio 5.0.1
TNID0006
Creating a custom editor for Schema classes
TNID0007
Omnis Studio OS X and App Nap
TNID0008
GUI and Application Design
Cascaded Menu Instances.
TNGI0001
Embedding Styles Within Lists.
TNGI0002
Omnis Tree Control.
TNGI0003
Prompt for Search Class.
TNGI0006
Picture Conversion in Omnis 7.
TNGI0007
Storing JPEGs in a Server Database.
TNGI0008
Scatter Graphs using the $seriesgroupswap property.
TNGI0009
The Deployment Process and FAQ.
TNGI0010
Handling the conversion of a Mac text file to an
ANSI (PC) text file.
TNGI0011
How to drop down a droplist automatically when entering
the dropdown list.
TNGI0012
Studio Event Management.
TNGI0013
Transparent Window Objects
TNGI0014
Dynamic Positioning of Objects
TNGI0015
Programming without the Enter Data command
TNGI0016
Creating your own Omnis desktop
TNGI0017
Using $dataname in Subwindow fields
TNGI0018
Adding colors and icons to lists
TNGI0019
Manually changing the sort order of list lines
TNGI0020
How to display PDF files directly in Omnis Studio
TNGI0021
Re-usable Context Menus
TNGI0022
Using $gridcolumn and $gridsection in Complex Grids
TNGI0023
Translating and/or Replacing Built-in Omnis Menus
TNGI0024
Using the style() function in Tree Lists
TNGI0025
Standard Menu Command
TNGI0026
Using Subwindows in a Tab Pane
TNGI0027
Creating a dynamic search field
TNGI0028
Column Sensitive Context Menus for Headed List Boxes
TNGI0029
Changing the style and color of Tooltips in Omnis
TNGI0031
Enhancing your Tool Tips
TNGI0032
Notation
Expanding And Collapsing A Tree.
TNNO0002
Grid Field Exceptions.
TNNO0003
OLE Automation Notation.
TNNO0004
The ODBC Driver for Datafile Access and $publicdata.
TNNO0005
Using Register DLL and Call DLL.
TNNO0006
Removing duplicate rows from a list.
TNNO0007
Using $filter on a list.
TNNO0008
Proportional sizing of columns in a headed list.
TNNO0009
Tree lists - displaying nodes with a common parent.
TNNO0010
Creating default values in new rows in an extendable
data grid.
TNNO0011
Moving objects on a specific tab of a pane.
TNNO0012
The Notational approach to using FileOps
TNNO0013
$tag and $drawinactive Properties of a Tree list
TNNO0014
Defining a list with up to 400 columns
TNNO0015
Avoiding calculations with NULL
TNNO0016
Using custom properties with $sendall
TNNO0017
Functions
How to use the strpbrk() and strspn()
functions.
TNFN0001
Printing and Reports
LaserWriter8 (MAC OS)
TNPR0001
The job setup dialog
TNPR0002
Printing ranges of pages
TNPR0003
Report Class Prints Itself
TNPR0004
The Page Setup when printing in Omnis
TNPR0005
Horizontal Sliding
TNPR0006
Demonstrating the use of $print in reports
TNPR0007
Save a report as PDF
TNPR0008
Storing Report Job Setup Parameters
TNPR0009
Displaying Subtotals in Reports
TNPR0010
List Programming
How to swap data in a list
TNLS0001
Importing a CSV file into a list
TNLS0002
Omnis Conversion
Converting Omnis 7 applications to Omnis
Studio.
TNCN0001
Preparation of Omnis 7 code prior to conversion.
TNCN0002
Windows
Windows User Access Control (UAC)
TNWI0001
Running the Omnis App Server as a Windows
Service
TNWI0002
Obtaining Crash Reports on Windows
TNWI0003
macOS
macOS Code Signing
TNMA0001
macOS Notarization
TNMA0002
Old Tech Notes
Please click here to access tech notes relating to old or obsolete technologies.