May and June 2020
=================
* XBrowse:
New DATA bPastBof
See new example BALANCE.PRG to check advanced use of bPastBof and bPastEof
* XBrowse:
- In some rare cases, oEditGet in the function EditGetKeyDown is becoming nil and
resulting in runtime error. fixed
viewtopic.php?f=3&t=38925
- new function HashTree( hHash, [nOpenLevel] ) --> oTree
A nested hash (some values of a hash being hash again) can be represented
as a tree for convenient display in xbrowse.
viewtopic.php?f=3&t=39022&p=232806&hilit=hash_tree#p232806
- New data of TXBrwColumn: bDataStrAlign.
If assigned, the codeblock is evaluated with oCol as parameter and the result
overrides nDataStrAlign
- SqlRdd: Enhanced compatibility for Vertical Scrollbars.
* Fix: uCharToVal( cDate, "D" ) is not always returning the correct result.
static function dCharToDate( cDate ) is revised to fix the issue.
viewtopic.php?f=3&t=38907
* TDatarow class: Now can append new row to xbrowse of empty array if the data
cDataType, nDataLen and nDataDec are specified for the browse columns.
* Fix: TDtPicke.prg: Month is shown as 00 when picture clause is specified as "D" or "E".
Fixed.
viewtopic.php?f=3&p=233094#p233094
* FWMariaRowset: Method Rowset() is not accepting sql statements like CHECK TABLE,
ANALYZE TABLE, etc. Fixed.
viewtopic.php?f=3&t=39104
* FW_DemoDB(): Important Change:
This function provides connection to a MySql server in the cloud for free usage
of fwh users for demo purposes.
Now the cloud server is moved to another MariaDB server with the latest version
to provide better user experience. For this reason, this function in earlier
versions fail to connect to any server.
* New functions for MSSQL in adofuncs.prg
FW_MSSQL_Backup( oCn, cDb, cFile ) --> lSuccess
FW_MSSQL_Restore( oCn, cDb, cFile ) --> lSuccess
Note: Limited to file on local disk only.
* Enhanced: function StackVars( [lView] ) --> aStackFuncVarsInfo
in fwh\source\function\callstac.prg
- See fwh\samples\teststack.prg
* New functions in adofuncs.prg to access Excel files on computers not having
MSOffice installed.
1) FW_OpenAdoExcelBook( cFileXLS, [lHeaders := .t.] ) --> AdoConnection Object
- It is possible to open xls files on all computers using the default Jet Ado provider.
To open xlsx, xlsm, xlsb files, Microsoft ACE.OLEDB.12.0 provider must have been
installed on the computer. This can be installed by installing Microsoft Access
Runtime (free).
MSOffice is not required.
64-bit executable requires installation of ACE.OLEDB.12.0 64-bits version.
- 2nd parameter lHeaders is optional and defaults to .t. This indicates whether to
treat the first row as headers of the table.
- If successful, returns Ado connection object. Returns nil on failure.
FW_AdoTables( oCn ) lists all sheets and named tables in the workbook.
2) FW_OpenAdoExcelSheet( cFileXLS/oCn, [cSheet/nSheetNo], [cRange], [lHeaders] )
--> AdoRecordSet object with all data in the sheet/table.
1. cFileXLS/oCn: Can be excel file name or connection object obtained using
the previous function.
2. Sheet: (Optional: defaults to the first sheet) If provided it can be the
serial number of a sheet or name of a sheet or named table. Invalid values result
in failure of the function.
- This can also be an Sql statement like "select name,city from [sheet1$]"
3. cRange: (Optional: defaults to the used range)
4. lHeaders: (Optional: defaults to .t.)
Returns: Ado Recordset object containing the data contained in the sheet/range
or table. This data can be viewed and manipulated like any other recordset.
Example:
oRs := FW_OpenAdoExcelSheet( "test.xls" )
XBROWSER oRs FASTEDIT
oRs:Close()
oRs:ActiveConnection:Close()
Notes: The book is opened in exclusive mode. It is necessary to close the connection
object soon after use.
* FWMariaConnection: The methods CreateTable( cTable, aStruct, ... ) and
CreateTableSQL( cTable, aStruct,... ) are modifying the array aStruct. Though,
the methods execute correctly, using the modified aStruct array for some other
purpose may create problems. This is fixed now.
* FWMariaRowSet: While virtual generated (calculated) columns are recognised as
readonly, stored generated columns are not. Fixed now.
* New: Font.prg: New CLASSDATA nDefaultCharSet.
If assigned, this value will be used for nCharset by default for all fonts.
viewtopic.php?f=3&t=14142
* New clause CARGO <ucargo> in SAY and BTNBMP commands. Value of cargo can be
used in any codeblocks including bPrompt. Codeblock bSay/bPrompt is evaluated
with Self as parameter