ORCL Toolbox Online




Oracle

Borland

Copyright (c) 2000-2001 ORCL Toolbox
 


FormsAPI Master V2.0



FormsAPI Master
goDownload

FormsAPI Master helps you leverage the power of the Oracle Forms Open Application Interface to programmatically query, modify and create FMB/MMB/PLL/OLB Modules. It has an easy to learn scripting language (similar to PL/SQL) that gives you full access & flexibility over the Oracle FormsAPI plus some built-in high performance tools for mining and modifying existing modules (Forms Comparer, PowerSearch and Deluxe Forms Report). Once you understand the Oracle FormsAPI (which is not that hard, thanks to the simple script language used and the easy to use helper functions!) and start to leverage the power of the Forms Open API you will not want to miss this tool anymore!

The possibilities with FormsAPI are endless, here are just a few examples of what is possible with FormsAPI Master:

Resize your old 640*480 screens to 800*600 or whatever resolution you like!
Make your application system run on Unix & Windows (lowercase icons, menus and library filenames,etc ...)
Translate all labels, captions, titles, prompts, texts and list items of your forms into another languages and make it multilingual!
Attach and detach libraries
write data-mining reports, for example to see what roles are all defined and used in your menu modules
check your application for "good practices" - every item has a visual attribute assigned, every button/menu item/radio button has a shortcut, etc ...
add a new line of code to the When-New-Form-Instance trigger in every module
replace the in Forms9i obsolete run_product builtin with report-objects
batch compile all your modules
convert boilerplate texts to prompts
patch module information for version control directly into the module
...
Questions?FormsAPI Master F.A.Q.
Check the FAQgo

Some of those scripts are already written and on some others we are working right now. Please have a look at the Scripts Corner for more information about the current status of those scripts!

In normal application development environments you think twice before making global changes to your whole application system that are not absolutely necessary. Mostly it is because if you have to do all the work manually it will take weeks or months .. or is simply impossible to do. This is where FormsAPI Master kicks in, this tool gives you the power to change your whole application system within a few minutes to whatever you want! Think of FormsAPI Master as a tool to increase your development team by 200 junior developers. You will need to tell them exactly what to do (by writing a script) but once they know they will do all the repetetive work for you in minutes.

_____________




FormsAPI Master Script Window

The Scripting Language


FormsAPI Master has an easy to learn but very powerful scripting language built into. The programming language used is Script Pascal which has in fact a very similar syntax to Oracles PL/SQL and thus is very easy to use for all Oracle Forms Developers! The scripting language gives you full access over the Oracle Forms Open API and with this you have all the functionality that Forms Builder offers(to create, change, delete objects).
Instead of manually opening the 500 forms modules of your application system, changing the same thing in it and saving them, you now can write a single small script and apply it to all of your forms modules in just a few minutes. This makes it possible to change global things in your application system you couldn't afford to do before.
Please check the Scripts Corner to see some already existing scripts.



Forms Comparer

DeveloperCompare


DeveloperCompare lets you visually compare all the differences in source and properties between 2 Forms or Reports Modules. You can even say which objects and properties should be compared and which ignored. No more guessing what changes broke the new version - with this tool you know the answer within a few seconds! It's also great for other common structured development practices like Code Reviews, TwoStream Development and Change Management Impacts. The DeveloperCompare utility is a handy tool that every now and then can safe you hours of frustration and work!



PowerSearch

PowerSearch


PowerSearch enables you to search hundreds of modules(forms,reports,text files) for a given text in PL/SQL. The big gist in this search is that it's not just a normal search! Behind the scenes PowerSearch will rewrite your search string into a powerful Regular Expression search like known from Pearl or Grep but specially designed and optimized for PL/SQL. This powerful search will automatically take care for you of the "whitespace" search problem.



Forms Report

DeveloperReport


The DeveloperReport is similar to the Forms Doc functionality inside Forms Builder, just a little bit more flexible - it lets you extract all the objects & properties you want to the screen in a nice colorful report. You then can save the report as text or RTF (rich text format) file.




COM/OLE

The COM/COM+ Interface


FormsAPI Master ships with an COM component for developers that wish to access the power of the Oracle Open API through their own Development tool instead of learning the scripting language of FormsAPI Master. The COM component has been tested with Borland Delphi, Microsoft Visual Basic and VB Script (as in ASP) but since it's a normal COM/OLE object it is expected to work with all development tools capable to work with COM/OLE (yes, even from within Oracle Forms using the OLE2 built-in package).

 

Product History

2.00.0404 30-June-2008
Removed trial limitation to save merged modules from DevCompare
script engine enhancements (faster and more stable)
fixed Reports problem with "REP-0024:Property with name <*> not found!" in reports with group-filter triggers
new script function "CountOfString(s:varchar2; substr:varchar2):number;"
new script function "function GetIdentifierParamType(idx: integer; Par: integer; ParName: widestring): TPLSQLTokenType;" for TPLSQLParser

2.00.0403 10-June-2008
Support for Korean KO16KSC5601 character encoding fixed
increased stability of Text<>Binary conversion of Forms modules
implemented the RepGeneric_GetConstantName function
fixed reading/writing of D2RP_TEXT property in Reports Boilerplates (text sections)
PowerSearch aborted search (silently) when a file in the list of files to search did not exist anymore
added object-path to DiffCompare/Property window

2.00.0402 29-December-2007
Script engine fix for "Set Operations"
Script engine fix for assigning a functions return value to a variable which is also used as input parameter
Script engine enhancement for call-order of unit functions depending on USES clause
Another script engine fix for improved default parameter expression parsing
couple of fixes to the search-box (unique MRU list, etc)
powersearch in known sql files did ignore the PL/SQL Comments option (for sql/pkb/pkd/fnc/prc files).
powersearch replace in record-group queries wasn't working when not connected (tried to reparse column information)

2.00.0401 29-November-2007
script engine fix for using "Default parameters" in procedures/functions

2.00.0400 25-November-2007
ctrim/rtrim/ltrim functions now work with a string of trim characters
Script engine fix: default parameters was not working inside "UNITS"
license check in FormsAPI Master COM/COM+ API was broken
Script engine fix: passing string-by-index to function expecting char was broken
another stability enhancement for script structure (still occasionaly raised exceptions after last fix)
PreviousEOS/PreviousSOL text-parsing function returned position one character off.

2.00.0399 9-November-2007
Mainwindow is now showing the Forms API version in the title
ObjectLib_FindObjByName function now also supports finding library-tabs, not just objects within them.
Script engine fix: boolean evaluation fixed and improved with full conditional evaluation support
Script engine fix: lots of varchar/widechar/string typecasting problems resolved
Script engine fix: exception handling causing "listindex out of bound" in some cases
Script engine fix: passing around indexed properties of objects sometimes caused wrong return values
Script engine fix: handling of multi-indexed properties (like TMemStore.Cells property) works now
exception handling is now logging user-defined exception class names properly
introduced support for "class" types in script structure view
enhanced stability of script structure (occasionaly raised exceptions)
added new setting option to override code snippets/quickcodes file location
Implemented workaround for API_ConvertFile doesn't free memory,#4785
dropped support for dates in the to_char function because sometimes numbers got returned as date-strings
new command line parameter "/SHOWSCRIPTLOG" to show current scriptexecution log

2.00.0398 18-October-2007 <*unreleased*>
FormsColorAPI was using API_ConvertFile that caused memory leak (known bug #4785)

2.00.0397 19-Sepember-2007
DevCompare was causing problems with inherited objects, makeing them unloadable after saving.
Scriptengine, the "for...downto" loop command was not parsing expressions for upper/lower bound
Scriptengine, "IN..SET" operations were not working properly
Scriptengine, VarType function wasn't working

2.00.0396 07-Aug-2007
DevCompare has now a readonly mode (disabled editing/merging) under Tools/Settings/DeveloperCompare
DiffEditor had some problems with displaying correct text-diff results in certain combinations
DevCompare failed with access violation on empty boilerplate text items
fixed, Legacy Forms50 API support was broken
fixed, Legacy Forms60 API did not allow subclassing object

2.00.0395 30-July-2007

DevCompare/Report did not compare/report PropertyClass Properties
resolved issue of running scripts in two (or more) seperate instances of FormsAPI Master at the same time
Fixed another 3 bugs in script engine exception handling. TRY..EXCEPT now allows extended error handling like documented
Enhanced raising user defined exceptions, can now supply an error code in RaiseException/GetErrorCode
Fixed another bug in TMemStore LoadAsCSV truncating the lead 2 characters
TMemStore.Cells propery returned wrong cell-value, added workaround CellsByName if you need to use columnname as column index.

2.00.0394 13-July-2007 <*unreleased*>
TMemStore SaveAsCSV/LoadAsCSV functions were not working correctly

2.00.0393 09-July-2007
scripting engine can now be extended with plug-ins
PVCS API in scripts is now working again in V2.0 (converted it to a plug-in)
fixed exceptionhandling for raising user defined exceptions

2.00.0392 22-June-2007
Scripting engine, Compile time speedup by a factor x3
Advanced PowerSearch searches on boolean didn't work (true=false)
Scripting now supports arrays initialisation with constants "CONST C_TEST : array[1..4] of integer = ( 1,2,3,4 )"

2.00.0391 23-May-2007
added new AddKeyword, AddOperator, AddDatatype methods to TPLSQLParser class.
added "$" and "#" characters to list of valid identifiers characters in the TPLSQLParser class
DevCompare, fixed "missing d2fp_mnu_param constant" exception
Added new script function GetDirList

2.00.0390 16-April-2007
DevCompare security confirmation for saving files with missing attached libraries works opposite (yes<=>no)
DiffWindow/PropertyViewer now remembers window sizes

2.00.0389 22-March-2007
scriptengine fix, accessing characters in a string by index
scriptengine fix, passing dynamic arrays as parameters was broken
scriptengine fix, PCHAR datatype was broken
scriptengine fix, pointing to characters in a string should have been type compatible with PCHAR
new functions to deal with DLL libraries (LoadLibrary,FreeLibrary,GetProcAddress)

2.00.0388 16-March-2007
DevCompare was erroring with oracle forms menu modules
fixed some unicode problems with Item_GetListElement/Item_SetListElement/MenuItem_AddRole/MenuItem_GetRole
IgnoreCase option wasn't handled properly in DevCompare

2.00.0387 8-March-2007
fixed script engine bug with passing parameters of type "VARIANT".
fixed script engine bug with multidimensional arrays.
fixed script engine bug with calling "TYPE" functions.
PowerSearch neglected the "Ignore Comments/Strings" option in text files
fixed problem with multiple units in "USES" compilation.
fixed problem in Blendout_PLSQL_Comment function with open strings over multiple lines
fixed problem with open strings over multiple lines in PowerSearch when "Ignore Comments" was selected.
treat as binary was not working in PowerSearch
fixed problem with ScriptStructure and '(' and ')' strings.

2.00.0386 22-February-2007
Improved resourcemanagement to lessen the EOutOfResources exception
fix endless loop in Replace_PLSQL_WORD on replace with string that contains searchstring
fixed exception propegation from within threaded calls (like for example API_LoadModule)
DiffWindow was setting the property in the wrong module when applying changes
fixed subclassing proplem when module has been loaded from a temporary copy

2.00.0385 04-February-2007
Replace_PLSQL_WORD function was still broken
TPLSQLParser interpreted '(*' as multiline comment start (which is ok for PASCAL but not PL/SQL)

2.00.0384 04-February-2007
fixed Find/Replace_PLSQL_WORD functions
logfile from command line can now be surpressed by using /NOLOG parameter

2.00.0383 29-January-2007
Fixed object library compare bug (tree display causing access violation with library tab objects)
fixed TOraSession, should now return unicode data properly when used with an oracle OCI 8i client (and later)
New function UTF8ToWide/WideToUTF8 to convert to/from UTF8.

2.00.0382 22-January-2007
Fixing TrialLimit bug on saving Forms modules
Enabled missing Generic_Create function support for Forms50/52/60
INTEGER parameterfields on ParameterScreens lost values on script re-runs
fixing the ResizeScript compilation bug.

2.00.0381 17-January-2007
DevCompare HTML saves didn't align multiline source code properties correctly
Printing from DevCompare didn't work in Microsoft IE7
DevCompare/Report and the PowerSearch file/directory edits added double-quotes around the filenames
fixed command line support for running scripts

2.00.0380 15-January-2007
PowerSearch in directories did not match fileextensions with different upper/lower case characters.

2.00.0379 4-January-2007
fixed FormsAPI context thread problems, broke functions like "Font_StringSize" and some others
saving DevCompare results didn't work (filename wasn't passed in correctly)

2.00.0378 27-December-2006
added support for the CONST procedure parameter syntax
another couple of compile time enhancements
improved script editor typing speed
fixed bug with nested try..except
improved script-structur viewer - now shows more information
script-structur viewer now highlights current node depending on editor position
added WideLineSeperator (character #$2028) support to the TPLSQLParser class
fixed TOraSession for oracle connections was using the default home instead of the Forms home

2.00.0377 22-December-2006
SetLength function for strings was broken
some changes to make running FormsAPI Master on a server install smother
fixed memory leak with "STRING" datatype
full support for script defined object classes

2.00.0376 11-December-2006
Removed "Beta" from titles/captions
codesense was broken for classes without a ":"

2.00.0375 8-December-2006

fixed bug with UNITS scripts not compiling correctly
"Treat as Binary" option in PowerSearch caused missing search results
codesense was broken for classes

2.00.0374 4-December-2006
script syntax now allows "()" and "[]" to access array properties
couple of speed enhancements for script compilation
fixed missing comment open tag "{" when alone on a single line in the script editor
fixed normalize_cflf function - using normal CR(#13) and LF(#10) character instead of WideLineSeperator(#8232)
Increased the maximum stacksize to fix the EStackOverflow exception in DevCompare
fixed missing return value from the TRegExpr.Match property
added another couple of functions to the TPLSQLParser class (load/save/FindEx regular search expressions)
new functions NormalizeTabs, BlockIndent, BlockUnindent
fixed logadd function, not anymore ignoring spacing of the first line and handling tabs correctly

2.00.0373 29-November-2006

fixed DevCompare exception when opening the Diff-Window
fixed bug introduced with 372 that breaks function declarations
GetPreviousWord function returned wrong position for next search

2.00.0372 28-November-2006
fixed sl.strings[1] := sl.strings[2] bug when assigning indexed properties directly
fixed PropExplorer/DevCompare pop-under message dialogs (on library/reference module missing)

2.00.0371 23-November-2006
added new TPLSQLParser class (to easy parse and manipulate PL/SQL Code)
fixed search dialogs in editors - regular search engine used made searches containing unescaped characters like "(.[\" tricky.
imlpemented the color-settings page to configure the highlighter for scripts
fix access violation with opening script from second instance
fixed another couple of records in arrays bugs.
add autocomplete for d2fp/d2rro/etc constants
check that all screens work with 96/120 DPI (small/large fonts)
now showing d2fc/d2rc constants in PropertyExplorer instead of just number values
improved structure view further - had problem with "var" parameters parsing
Now checking for code after the last "end" of the main program begin..end block and display an error if anything found!
translated some more of the fileroutines to be able to use unicode in filenames
RemoveDirectory has another optional parameter to be able to delete directories with files

2.00.0370 17-November-2006
fixed rtrim/ltrim/ctrim functions not returning anything
fixed the "like" function, no more access violations.
when focuse was on the pagecontrol search/replace didn't work in some script editor
removed doublequotes in file/path names on parameterscreen (happened when they have spaces in the path/file)
integer values on parameterscreens did set the wrong min/maximum value
LogAdd function was trimming left side of messages which made intention of text somewhat a problem, fixed that
added "LongInt" and "real" datatype.. it's the same as "Number/Integer" and "Float"
fixed internal AdjustLineBreak routine, affected LogAdd calls with "OutOfMemory" error and unexpected script termination
fixed bug with default parameters not working with varchar2 datatypes
fixed bug with "continue" function
fixed memory overwriting bug with arrays
fixed bug with variant comparison
implemented old style "USES" unit syntax
improved script structure tree view for UNITS
fixed bug with varchar2 by index accessing (caused by ansi/unicode mixing problem)
fixed bug with "program" keyword causing "Internal Error" on compiling in certain combinations
added all missing example scripts and checked that they all compile and run

2.00.0369 15-November-2006
Added "Assigned" function
bug with exception handling scope inside scripts fixed
made some improvements to the find function, can now search up and down (F3 and Shift+F3)
Bugs with the "WITH..DO" construct in the script engine fixed
implemented old style "forward" declaration of functions, no need to repeat paramaters on implementation
fixed problem with pl/sql style variable declarion without the ":"
the "find" function is now implemented in practical all "editor" windows (script editor/difference viewer/powersearch/etc)
the find function understands wildcard searches (with the usual "*" and "?" placeholders)
implemented "Replace" functionality from the toolbar/menu

2.00.0368 14-November-2006
fixed "List Index out of bound" exception on code completion
code completion now also works for classnames, not only variables of classes
Added XMLNode functions to XMLParser tree
added "free/classname/classtype/inheritsfrom/classparent" to all objects and helpfile
added the "||" string concatenation feature to the script engine
GetError function has now an optional parameter to specify how much detail you want in your error message

2.00.0367 13-November-2006
included a bunch of configuration settings for the editors
fixed Property_GetConstValue returning wrong values
fixed double quote compile problem
rpad/deletechar problem is now fixed, char gets automatically converted to widechar if needed.
Added Move, IndexOfObject,CaseSensitive, LoadFromfile, SaveToFile to TStringlist
fixed header definition of Random function to old V1.0 definition
missing StrToInt, FormatDateTime,UpperCase,LowerCase functions added
Fixed exception that gets raised when exiting/closing a script window while it's running
empty multiline comments now compile correctly
fixed if..then compile problem with single line statements
fixed compile problem with recursive functions
add tree entry for every enumeration
fixed bug in using enumerations inside records
fixed problem with passing records as parameters to procedures/functions
fixed variable scope problem, global variables are now not anymore accesible from standalone procedures/function
fixed script structure tree problem not parsing CASE..END correctly
Click in script structure tree now centers the line
copy to clipboard from Script Functions tree and from ErroPanel implemented
Script-editor window display state is now saved/restored for every new window