Visual PL/B .Net
The PL/B language has proven itself to be unrivaled in screen, file, and character string manipulation. After being developed by Datapoint Corporation in 1972, it became the first language to support Local Area Networks (LAN) and multiple resource sharing when Datapoint pioneered the networking field with their introduction of ARCNET. The language has been used by well over 100,000 companies, including more than half of the Fortune 500 and most all U.S. governmental agencies. PL/B has further evolved through the work of the ANSI PL/B standards committee, of which SUNBELT was an active participant.
SUNBELT, by including its DESIGNER Product along with PL/B for Windows, has made the Windows interface extremely easy to program. A screen can be designed in minutes rather than hours in other languages. The IDE makes it easy to work on projects and always makes sure that all programs depending on a given module are up to date. And Sunbelt PL/B includes AAM and ISAM file support which other languages do not. The graphical objects are all dynamic and can be positioned at different screen locations based on variables set at program execution time. Many items can also be moved real-time if the 'drag item' feature is enabled. All of the power and flexibility of the PL/B language are combined in a true Windows graphical environment.
This version of the PL/B languange is a complete .Net framework system utilizing Microsoft's Common Language Runtime for increased security. It also gives you complete access to the .Net objects and various assemblies.
DESIGNER - GUI Programming made easy
SUNIDE - Integrated Development Environment
- With DESIGNER, graphical screen design is a snap. The product produces concise, well commented structured source code for almost all graphical objects.
- Objects may be selected from a tool bar and dragged to any screen location, down to the exact pixel. They may be sized to any available size, forced to line up, and replicated to speed up the design process. All object properties, such as COLOR, TAB ORDER, DEFAULT DATA, etc., can be defined within the Designer. Only the properties that are available for a given object are presented for that object, saving the time involved in figuring out, or remembering, what can be done with what object.
- Also, almost all event actions are supported in Designer for near total control over what is done and when it happens in your program. Events may be processed when an object GAINS FOCUS, LOSES FOCUS, has a MOUSE CLICK, MOUSE MOVEd over, is ACTIVATED, DEACTIVATED, CHANGed, INITialized, LOADed, etc. For each of these events, source code can be inserted to handle that specific event directly in the code being generated.
- The beauty of Designer is that it is a true visual screen design tool (what you see is what you get) that will generate the source code to back up the screen, and at the same time, let the programmer incorporate source for handling the screen object events.
General File I/O Support
- Group programs together into projects.
- Compile all programs in a project at the same time, either as a batch or based on dependent files being modified.
- Dependencies automatically generated and shown as a tree view structure.
- Source label map shows all labels in all files for a project. Click on a label and automatically open the corresponding file pointing to the label.
- Integrated page editor.
- Supports colorized source code.
- Integrates with help files for each verb in the language.
- Multiple files open at the same time.
- Copy/Paste between any open file.
- Compile, Execute and/or Debug without leaving the program.
- Interface to all utilities.
AFILE (AAM) File I/O Support
- Support for managed files via TCP/IP message protocols
- FILELIST statement
- Single statement performs multiple operations
- Any number of ISI or AAM files can be associated with a single TXT file
- All ISI keys are built dynamically and inserted into each ISI file
- All AAM keys are built dynamically and inserted into each AAM file
- All changes are rolled back if an error occurs during the statement
- No need for INSERT statement or DELETEK/INSERT sequence
- File Path Direction
- Long File Name support enhanced throughout entire system.
- Multi, on-line directory access
- Files can be in common / global
- EXCLUSIVE, SHARE & READ file access
- FILEPI and PI 0 File Locking
- RECORD LOCKING, manual or automatic
- Text files written in the native o/s format
- Text files may have multiple AAM and/or ISAM key files
- Read any file forward or backward
- DELETE/UPDATE support for FILE variables
- Multiple Spool files
IFILE (ISAM) File I/O Support
- Can PREP an AAM file
- Supports up to 95 keys
- Key fields may overlap and be anywhere
- Deleted record space can be reused
- Updates text and key file without destroying READKG pointers
- Updates actual AAM keys
Other File I/O Support
- Can PREP an ISAM file
- Keys can be up to 99 bytes long
- Supports variable length and space compressed
- Utilizes a self-balancing B-tree
- Partial and/or selective indexing
- Supports DUPlicate and NODUPlicate files
- Deleted record space can be reused
- Optional format can build keys dynamically
- ERASE - Delete named file
- FILEIO - read, write, or update using a single instruction
- FPOSIT - DOS or RMS formats
- POSITEOF - Position file to End of File
- RENAME - Change name of file
- RMS file server support
Variable Handling Features
- Conditional compile directives
- Define data anywhere in source
- Supports local variables/labels
- Supports 2Gig of UDA and 2Gig of code
- LIST and LISTEND
- RECORD and RECORDEND
- FILELIST and FILELISTEND
- TCP/IP support through 'Sockets'
Program Control Features
- DIM sizes up to 64k bytes
- FORM sizes up to 32 digits
- INTEGER sizes up to 4 bytes
- Arrays up to 14 dimensions
- Array indices may be variables
- Supports indirect addressing
- PARSE verb to separate strings of data using ranges of values
- PARSEFNAME statement for parsing file names
- EXTEND has optional length field
- MATCH and SCAN have optional universal match character
- Ability to MATCH two RECORDs
- EDIT allows a negative field to be indicated with parentheses
- MOVE minus overpunched data
- MOVE supports INTEGERs
- CALC an equation using +, -, *, /, (, )
- Support for 3 Parameter math
- Complete set of mathematical functions including ARCCOS, ARCSIN, ARCTAN, COS, COSH, EXP, LOG, LOG10, POWER, SIN, SINH, SQRT, TAN, TANH
- INTEGER support in math & logical operations
- SINSERT inserts into another variable beginning at the formpointer
- SDELETE deletes the logical string, shifting the remainder left
- MOVELS moves a logical string into another logical string
- Signed Numeric option to SORT
- Offset option to SORT to aid in year 2000 problems
Screen I/O Features
- IF/ELSE/ENDIF structured code constructs
- LOOP/REPEAT structured code constructs
- BREAK to terminate LOOP/REPEAT
- CONTINUE to restart LOOP/REPEAT
- SWITCH/CASE/DEFAULT/ENDSWITCH constructs allowed up to 32 levels
- BRANCHF (function key BRANCH)
- PERFORM (indexed CALL)
- PERFORMF (function key PERFORM)
- SETFLAG manually set flags
- FSAVE save and restore flag settings
- Up to 55 function keys supported
- FKEY flag for generic trapping of all untested function keys
- ROLLOUT suspends execution, creating an image file for return
- EXECUTE suspends execution, performs requested task and returns
- BATCH supports true multi-tasking capabilities
- Supports ANSWER/MASTER concept
- Ability to save and restore screen images
- Additional list controls (only a sample):
- *ABSON/*ABSOFF - Absolute keyin
- *CRTON - Read Data from the screen
- *COLOR - Set screen attributes
- *DPI - Set decimal point implied mode
- *EDIT - inline editing of a variable
- *INSERT - Insert mode for use with *EDIT
- *SAVESW - Save current subwindow image
- Windows printer selection dialog
- Supports Print spooling to devices
- PRINT PREVIEW
- Multipage TIFF support
- Graphical OBJECTS (partial list)
- BUTTON - Standard GUI push button
- MOVIE - Standard AVI (Windows) movie
- SLIDER - Slider bar
- MREGION - Mouse Region
- STATTEXT - Static Text, headings, fixed data, etc
- EDITTEXT - Editable text
- CHECKBOX - Gui checkbox
- CHECKGRP - Group of standard GUI check boxes
- FONT - Describes a font and it's associated properties, may be used when a FONT option is used in a CREATE instruction for other types of objects.
- PICT - Object variable for a standard picture resource or file
- MENU - Standard GUI drop-down menu in the main window menu bar
- SUBMENU - A menu attached to an item in another menu
- FLOATMENU - Floating menu (may be displayed anywhere)
- COLLECTION - Allows program defined grouping of objects for setting group properties conveniently
- GROUPBOX - Provides a region enclosed with a border that may have a title associated with it. The GROUPBOX may be overlaid with other objects to provide a custom box area.
- TABCONTROL - Horizontal tabs as in dividers in a filing cabinet
- COLOR - An object variable for a 24 bit color object. This object may be used in creating user objects
- HSCROLLBAR / VSCROLLBAR - Horizontal and Vertical Scroll Bars
- PROGRESS - Progress indicator
- TIMER - Event timer
- COMBOBOX - Standard GUI pop-up menu
- ICON - A standard GUI 32 by 32 pixel icon
- RADIO - Radio Button / RADIOGRP - Linked Radio Buttons
- DATALIST - A standard GUI scrolling list
- LINE - Line
- WINDOW - User definable windows
- DIALOG - A standard GUI dialog, the elements of which are other objects
- SHAPE - Ovals, Rectangles - may be treated like buttons
- LISTVIEW - Enhanced list with headings, moveable and sortable columns, etc.
- TREEVIEW - Enhanced list showing an hiearchial view of data
- Graphical Instructions (a sampling)
- ACTIVATE - "turn on" graphical objects.
- CREATE - define graphical objects.
- DEACTIVATE - "turn off" graphical objects.
- DESTROY instruction removes an item from the screen and releases the data structures.
- DRAGITEM real-time object positioning
- DISABLEITEM - prohibits events for a specified object. The item is still visible to the user, but is dimmed.
- ENABLEITEM - re-establish an object event.
- GETITEM - obtains the name or value of an object item.
- SETITEM - changes the name or value of an object item.
- WAITEVENT suspends program until a trapped event or an action from an object variable occurs.
- EVENTCHECK - checks for a trapped event in the event stack and dispatches that event if found.
- LINKHSCROLL - allows a horizontal scrollbar object to be linked to a PICT or WINDOW object.
- WINHIDE makes the main program window invisible
- WINSHOW makes the main program window visible
PLBCMP is a compiler which generates interpretive code from PL/B source. The generated code is device independent, supporting virtually any terminal or peripheral allowed by the system, and transportable to DOS, UNIX, LINUX, RMS and Windows CE. Sunbelt's SUNED editor and SUNDBUG, an interactive, on-line, symbolic debugger, are included in the package. The package includes the following frameworks:
- PLBNET is the run-time supporting Windows 11, Windows 10, Windows 8, or Windows 7.
- PLBCONET is a Windows 11, Windows 10, Windows 8, or Windows 7 console mode run-time for 32 bit DOS shells. This framework has the same capabilities as PLBNET, it just also has a console for DISPLAY and KEYIN. Any GUI statement or object can also be used with this framework.
Visual PL/B is sold in two versions; a Personal
Version and a Professional Version, both of which include DESIGNER. The Personal Version includes most of the Professional Version features. Additional Professional Version features are:
- Number of concurrently open files increased from 35 to 245
- SQL support via ODBC
- Automatic file sharing
- External Calls
- Dynamically linked subroutines
- Btrieve file support
- Movie support
- Sound clip support
- WINAPI support
- Answer/Master support