June 2016
=========
* Menus
New features with new Clausules in menu.ch
[ ROUND <nRound> ] ;
- Percentage round box items: 1, 2, 3 ...
[ <lUpper: UPPERMNU> ] ;
- Say Prompt items UpperCase
[ <lAdjust: ADJUST> ] ;
- Adjust height Menu Bar proportional of height Font assigned
[ LEFTWIDTH <nLeftWidth> ] ;
- Spaces left rect of item ( logo Menu )
[ <file or resource: LOGOMENU> <cBmpLogo> ] ;
- Left Image Popup menu
[ <file or resource: IMGMENU> <cImg> ] ;
- Right Image Popup menu
[ <file: BRUSH> <cBrush> ] ;
- Image of Brush menu popup
IMPORTANT: Width and Height of Menu they are automatically adjusted
to the height and width of the cBmpLogo and cImg.
- File MNU01.PRG, sample news features
* CLASS TRichEdit5
- New: METHOD nPages( lRefresh )
- New: METHOD LastLineVisible()
- Updated: sample TESTRTF5.PRG
* CLASS TRibbon
- New: DATA nRoundSize INIT 7
- New: DATA l2015
Important: in style 2013 and 2015 assign ::nRoundSize := 0
Sample:
DEFINE RIBBONBAR oRBar WINDOW oWnd ;
PROMPT "Configuración", "Ficheros", "Informes", "Ayudas" ;
HEIGHT 133 TOPMARGIN 25 2013
oRBar:nRoundBox := 4
- New: DATA l2015
- Modified: style l2015 added of metacommand
#xcommand DEFINE RIBBONBAR [ <oRBar> ] ;
[ <of:OF, WINDOW> <oWnd> ] ;
[ <prm: PROMPT, PROMPTS, ITEMS> <cPrompt,...> ] ;
[ <act: ACTION, EXECUTE, ON CHANGE> <uAction> ] ;
[ OPTION <nOption> ] ;
[ HEIGHT <nHeight> ] ;
[ TOPMARGIN <nTopMargin> ];
[ COLOR <nClrPane> ] ;
[ <ColorBox: COLORBOX> <nClrBoxOut>,<nClrBoxIn> ] ;
[ <ColorSel: COLORSEL> <nClrBoxSelOut>,<nClrBoxSelIn> ] ;
[ <l2010: 2010, _2010> ];
[ <l2013: 2013, _2013> ];
[ STARTBTN <nStart> ];
[ <l2015: 2015, _2015> ];
- Bug Fixed: when style is 2013 or 2015 and STARTBTN <> 0, folder say with white color
* XBrowse:
- Fix: A speed optimization introduced in FWH 16.05 is not compatible
with ADS. While this is taken care of in SetRDD(), it effected
navigation of ADS with TDatabase. Fixed now. Users of 16.05, not
upgrading to 16.06 can apply this fix by adding one line:
::lRelyOnKeyNo := .f.
anywhere in the method SetOdbf()
- Fix: There is a long standing bug in ADO seek. In case of ADO seek,
entering '*' results in runtime error. Fixed. Users not upgrading to
16.06 can apply the fix by adding the lines
if Right( uSeek, 1 ) == "*"
return .f.
endif
at the beginning of method AdoIncrSeek()
* ButtonBar
- Fix: Buttonbar is expected to be transparent only if the programmer
explicitly sets its ltransprent to .t.. But due to an ommission in
dialog.prg, when a dialog is declared transparent, buttonbar's lTransparent
was automatically set to .t. This is not expected or acceptable. This bug
effects 16.05. Fixed.
Users not upgrading to 16.06 can apply the fix by adding "TBAR;" to the
list of excepted clases in line 640 of dialog.prg( v16.05)
* New: Function FW_AdoApplyParams( cSql, aParams, [cDB] ) --> cSql
This function greatly simplifies ebedding constant values in
sql statements according to the syntax applicable to the database
in use. By default, the function uses the syntax for the database
opened with FW_OpenAdoConnection. Optionally, programmer can specify
a different database in the 3rd param eg "ORACLE".
Example:
a)cSql := "WHERE AGE > ? AND NAME = ?"
FW_AdoApplyParams( cSql, { 40, "John" } )
--> "WHERE AGE > 40 AND NAME = 'John'
b)FW_AdoApplyParams( "JGDATE > ?", { Date()-365 }, "MYSQL" )
--> "JGDATE > '205-08-04'"
c)FW_AdoApplyParams( "JGDATE > ?", { Date()-365 }, "ORACLE" )
--> "JGDATE > DATE '205-08-04'"
d)FW_AdoApplyParams( "JGDATE > ?", { Date()-365 }, "ADO" )
--> "JGDATE > #205-08-04#"
This function takes care of differences in syntax in WildCards
between SQL and ADO. Where as '?' and '*' are wildcards used
in ADO and DBF, '_' and '%' are the corresponding wild cards
in SQL.
e)FW_AdoApplyParams( "NAME LIKE ?", { "K?D%" }, "MYSQL" )
-> "NAME LIKE 'K_D%'"
f)FW_AdoApplyParams( "NAME LIKE ?", { "K?D%" }, "ADO" )
-> "NAME LIKE 'K?D*'"
Any number of parameters can be speicified. Different syntaxes are
? // standard sql
:1, :2, :3
&1, &2, $3
:name, :age, :jgdate // standard sql
&name, &age, &jgdate, etc
In case of named parameters the array should be a multi-dim array
Example"
FW_AdoApplyParams( "AGE BETWEEN :min AND :max AND DEPT = :dep", ;
{ { "min", 30 }, { "max", 40 }, { "dep", 'STORES' } } )
- Greatly enhanced MariaDB/MySql functionality. Details explained
in forums.