Zim IDE Overview

Unlock the Power of ZimIDE:

Streamlined Development Process: ZimIDE integrates essential development tools into a single environment, simplifying the workflow and boosting productivity.

Enhanced Collaboration: Support for multiuser development allows teams to work together seamlessly, improving efficiency and project outcomes.

Comprehensive Platform Support: With compatibility across multiple platforms, ZimIDE ensures that your applications can be developed and deployed in diverse environments.

Continuous Improvement: ZIM Corporation’s commitment to ongoing development means that ZimIDE will keep evolving with new features and enhancements, keeping you at the forefront of technology.

Experience the Power of ZimIDE: Transform your Zim application development with ZimIDE. Whether you’re designing complex GUIs, managing multiple databases, or collaborating with a team, ZimIDE provides the tools and features you need to succeed. Try ZimIDE today and see the difference it can make in your development process.


ZimIDE at a Glance

The Zim Integrated Development Environment (ZimIDE) is a comprehensive tool designed for creating graphical user interfaces (GUIs) for Zim database applications. It enhances and integrates the functionalities of three previously separate development components:

  • Zim Painter
  • Zim Development Center
  • Data Dictionary Browser

ZIM Corporation is dedicated to the ongoing development and enhancement of ZimIDE and the Zim language, ensuring continuous evolution with new features and improvements.


General Features:

  • Local and Remote Application Development: Develop applications both locally and remotely with ease.
  • Multiuser Application Development: Support for collaborative development in multiuser environments.
  • Design and Edit Forms and Displays: Create and modify forms and displays for both GUI and TUI applications.
  • Platform Support: Compatible with all Zim 9.50 platforms, including Windows, Linux, iOS, and Android.
  • Multiple Database Connections: Connect to multiple databases simultaneously.
  • Data Dictionary Browsing: Browse the entire data dictionary through the Tree View Tab Page.

Graphical User Interface Designer:

New UI Objects for Zim 9.50:

  • Grid Control: Enhanced from Zim 7.x.
  • Tab Control and Tab Page: Managed automatically by the client, requiring no extra Zim code.
  • Tool Strip: New addition for streamlined UI design.

New Attributes for Form Fields:

  • Anchoring: Control the positioning of form fields.
  • Docking: Manage the alignment and docking of form fields.
  • Attributes Tab Page: Configurable to be always visible for easy access.

Simultaneous Object Editing: Create and edit multiple objects at the same time. Modern Tabbed Interface: Each Form, Display, Window, Menu, and Document stays open in its own tab page for efficient multitasking.


Document Editor:

Specialized Editor: Embedded editor designed for Zim application programs and other documents. Syntax Highlighting: Customized for the Zim language to improve readability and reduce errors. Region Expanding and Contracting: Easily manage code regions for better organization. Custom Editor Support: Set a custom editor to tailor the development environment to your specific needs and preferences.

$editor Object:

  • Syntax: $editor
  • Return Value: A character string that can be reset by an application program.
  • Description: The name of the text editor software for editing programs. By default, $editor is set to the name of an editor commonly used on the current operating system or to the value of the editor in the registry. Since Zim-X 9.50, the default editor is set to “IDE”. The name should include the full disk path if necessary, and special file path indicator characters can be used. The value of this object is used by the EDIT command.
  • Example: let $editor = "c:dosedit.com"

Database Viewer Tab Page:

Simultaneous Database Browsing: Browse every database currently connected to the development environment in a single tab page.


Technical Overview:

Integration of Development Components:

  • Zim Painter: A powerful tool for designing and editing graphical user interfaces.
  • Zim Development Center: Provides a comprehensive environment for developing and managing Zim applications.
  • Data Dictionary Browser: Allows developers to browse and manage the data dictionary with ease.

Multiuser and Remote Development:

  • Local and Remote Development: ZimIDE supports both local and remote development, enabling flexibility and collaboration.
  • Multiuser Support: Facilitates collaborative development, allowing multiple users to work on the same project simultaneously.

Platform Compatibility:

  • Cross-Platform Support: ZimIDE is compatible with Windows, Linux, iOS, and Android, ensuring that applications can be developed and deployed across diverse environments.

Advanced UI Design:

  • New UI Objects: ZimIDE introduces new user interface objects such as Grid Control, Tab Control, and Tool Strip, enhancing the design capabilities.
  • Form Field Attributes: New attributes like anchoring and docking provide greater control over form field positioning and alignment.

Efficient Development Interface:

  • Tabbed Interface: The modern tabbed development interface allows developers to keep multiple forms, displays, windows, menus, and documents open simultaneously, improving multitasking and efficiency.

Enhanced Document Editing:

  • Embedded Document Editor: The specialized editor for Zim application programs offers syntax highlighting and region management, making code editing more efficient and error-free.
  • Custom Editor Support: Developers can set a custom editor, allowing for a personalized and optimized development experience.

Comprehensive Database Management:

  • Database Viewer: The Database Viewer Tab Page allows developers to browse all connected databases simultaneously, streamlining database management.

 

About Zim Integrated Server

Zim Client/Server Architecture

Zim 9 operates under a robust client/server architecture, where Zim Server serves as the central hub. Clients, including Zim, Zim Thin Client (ZIMTC), and ZimExplore, connect to Zim Server to access and manage databases.

Key Features:

  1. Single Instance Management:
    • Only one instance of Zim Server can run on a machine, but it can manage multiple databases simultaneously.
  2. Database Connectivity:
    • Databases under the same Zim Server can connect using the CONNECT command, enabling data sharing and interaction. The DISCONNECT command terminates this connection.
  3. Flexible Client Deployment:
    • Clients can operate on different machines and operating systems, such as Windows or Unix, providing flexibility in application deployment.
  4. Heterogeneous Environments:
    • Supports mixed environments, allowing Windows clients to access Unix-hosted databases and vice versa. This setup can include simultaneous operation of clients on both Windows and Unix.
  5. Data Accessibility:
    • Data from one database can be made visible to applications running on another database, ensuring full concurrent control and safety.

Connectivity Options:

  • Single Zim Server: Connect databases managed by the same Zim Server.
  • Multiple Zim Servers: Connect databases managed by different Zim Server instances on separate machines.
  • Chained Connections: Establish connections between multiple databases across different servers.

Benefits:

  • Cross-Platform Applications: Run Zim applications on different machines from the server, such as a Windows application interfacing with a Unix-based Zim Server.
  • Integrated Environments: Combine graphical interfaces on Windows with text-based information on Unix, enhancing user experience and operational efficiency.
  • Secure Data Sharing: Retrieve and update data across databases with full safety and concurrent control.

This guide provides detailed instructions on implementing and utilizing connectivity between Zim databases. For more information, please refer to our comprehensive documentation.

ZimServer

Starts and stops the Zim Server program.

Linux Syntax

[nohup] zimserver [-k] &

Windows NT Syntax

[start] zimserver [-k] [-i] [-s [-e] [-u]

Parameters

-koptional parameter to gracefully stop Zim Server
-ioptional parameter to install Zim Server as a Windows Services
-soptional parameter to start an already installed Zim Server from the Windows Services
-eoptional parameter to stop the execution of a started Zim Server from the Windows Services
-uoptional parameter to uninstall Zim Server from the Windows Services

Comments

Before starting Zim Server, ensure that the ZIM environment variable is set to point to the directory where ZIMSERVER was installed.

ZimServer must always be started with the Administrator’s (root) privileges.

Tracing and logging information is outputted to zimsvlog.zim.

After starting Zim Server, you should see a message stating that Zim Server has started or it has failed to start. In the latter case, you can check the reason for Zim Server not starting in zimsvlog.zim.

When stopping Zim Server, a message will follow indicating that Zim Server was terminated.

WARNING: Always stop Zim Server using the -k parameter. If you do it in a different way, Zim Server might not be able to finish an ongoing checkpoint of committed transactions to disk. Depending on the size of some configuration parameters, the checkpoint procedure might take several seconds after all transactions have finished and after all users have been disconnected. Even though the next time you start Zim Server it checks for unfinished checkpoints (and finishes them), if you copy or backup files from the database at this point you might get files in an intermediary and inconsistent state.

To make sure that your databases are consistent in case you mistakenly stopped Zim Server not using the correct procedure, just start Zim Server again and then stop it in the recommended manner.

UNIX

ZIMSERVER can be started by manually entering the above command or the command line can be inserted into your system’s start-up script. ZIMSERVER should always be started using NOHUP. NOHUP ensures that the Zim Server process continues to run even if you log out. The ‘&’ at the end of the command line enables you to enter more commands at your terminal after the server has been started.

If you use NOHUP, some special output from ZIMSERVER goes to a file called nohup.out located in the directory that was current when the NOHUP command was executed. As with the file zimsvlog.zim, nohup.out is always added to and can become very large. You should check its size from time to time, archive it (if you wish), and erase it. The NOHUP also allows you to close the Unix session without exiting ZimServer as well, that is, ZimServer keeps running in the background, provided that you have used the symbol “&”.

Windows

The server can be started from a shortcut on the desktop, in a text console window, or using the start command from a console window. When using any of these startup methods, the output is displayed in the startup window.

Also, Zim Server can be installed as a Windows Service using -i parameter. After installing Zim Server a Windows Service, you can control Zim Server from the Services window or from the command prompt.

net start zimserver                    To start the service from the command prompt

net stop zimserver                     To stop the service from the command prompt

PLEASE NOTE: If you start ZimServer as a service you should use the service option to stop the server instead of using the -k parameter.

To remove ZimServer from Windows services you will need to use -u parameter.

The zimsvlog.zim file

The log file zimsvlog.zim, located in the directory pointed to by the ZIM environment variable, records all events happening with Zim Server like, its start, its end, errors, tracing, and other information.

You can browse its contents using a text editor or using ZIMEXPLORE.

After some time using Zim Server, this file can become very large. You should check the size of it from time to time, archive it (if you wish) and erase it. It can be erased at any time, even when Zim Server is running. Next time Zim Server needs to log some information, the file will be recreated.

Server Log

Viewing the Server Log

The Server Log utility displays the contents of the Zim Server log file: zimsvlog.zim.

The column headers in the Server Log grid are described in the table below:

HeaderDescription
DateThe date the message was added to the log
TimeThe time the message was added to the log
TypeThe type of message: Information, Error, Warning
CodeThe message code. Information messages start with 9 and Error messages start with 2
SourceThe process that originated the message: ODBC Driver, ZIMServer
Log IDCurrently not used (default: 000000)
MessageThe messaged issued by the process

Filtering the Log

Right-click on Server Log and then click on Filter to access the server log filter

The Log File Filtering dialog will pop-up. Use it to limit the number of and the types of messages displayed in the Server Log grid.

Limiting the number of lines displayed in the log file

The following drop-box options are available to limit the number of lines displayed in the log file: (Last 500 lines; Last 1000 lines; Last 1 hour; Last 24 hours; Last 7 days; and Entire Log File );

Limiting the type of messages displayed in the log file

The following options, described in the table below, are used to enable or disable the displaying of specific types of messages:

 

Check BoxDescription
Include informational messagesWhen checked, messages of type Information will be displayed.
Include warningsWhen checked, messages of type Warning will be displayed.
Include errorsWhen checked, messages of type ERROR will be displayed.
Automatically refreshThe utility continues to update the server log display in real time, according to the selected filter parameters.

NamedSets

Defines named sets. A Named Set is a programming object that identifies the components of a set that is used regularly in an application.  Named sets reduce the amount of code needed to run your application.  For example, if you are creating a database with an Customers Entity, you may want to have a set called “sMyCustomers”.  Find all Customers -> sMyCustomers.  So now that you have an Object called sMyCustomers, you can reference it anywhere if you program by calling the set.  If you add a new Customers record, you will have to add the new record to the set like this:

Find all Customers -> sMyCustomers
Add 1 Customers let Name = ... (include all of your customer fields) -> sAdded
Find sMyCustomers UNION sAdded -> sMyCustomers

This is a fast and simple way of updating the Named Set sMyCustomers without having to query the entire Entity again.

Establishing a Named Set

Call up the Zim IDE, select NAMED SETS from the DataBases menu, and use the tools of the Zim IDE Development to define the desired set.

Creation of Named Set step by step:

Roles

Defines alternative names for entity sets, relationships or for subsets of an object’s members.

A role is a programming object that provides an alternative name for a data object or for a subset of the members of a data object.

Establishing a Role

Access the Zim IDE, select ROLES from the DataBases menu and use the Zim IDE Development tools to define the desired role.

Creation of Roles step by step:

Directories

 

A directory is an application object. Application directories are used to organize the objects defined in the Object Dictionary for the application.

Establishing an Application Directory

 

Call up the Zim IDE, select DIRECTORIES from the DataBases menu, and use the tools of the Zim IDE Development to define the desired directory.

Creation of Directory step by step:

 

 

Variables

Describes global variables. A variable is a programming object that provides a method of handling temporary data required for various purposes during application execution.

Zim provides a number of pre-defined system variables and sets or resets their values at various times.  For details, consult your Language Reference.

Establishing a Global Variable

Call up the Zim IDE, select VARIABLES from the DataBases menu, and use the tools of the Zim IDE Development to define the desired Variables.

Creation of Variables step by step:

 

EntitySets

Defines database files.

An entity set is a data object or a repository for some portion of the data managed by the application.

Establishing an Entity Set

Call up the Zim IDE, select ENTITY SETS from the DataBases menu, and use the tools of the Zim IDE Development to define the desired entity set.

Creation of Entity Sets step by step:

 

 

Documents

Defines external files or devices.

A document is a programming object which identifies, to Zim, a line-oriented device or text file in your operating system, giving you the means to access that device or file in your application programs.  A document may be unstructured (e.g., containing straight text or a program), or it may be structured (e.g., containing tabular data in discrete fields).

Establishing a Document

Call up the Zim IDE, select DOCUMENTS from the DataBases menu, and use the tools of the Zim IDE Development to define the desired document.

Creation of Documents step by step:

 

 

pt_BRPortuguese