New FTDN November 2018 (FWH 18.11)
Posted: Sat Dec 01, 2018 10:46 am
November 2018
=============
* XBROWSE:
- Bitmaps were being painted only when the column width is greater than the
bitmap width. Now the bitmaps are resized and painted.
- ToExcel: Datetime values are not exported unless oBrw:lCellExcelWise is
set to .t. Now exported correctly in all cases.
- Ado fields of type adVarChar or adVarWChar with DefinedSize -1 were not
being displayed. Now, they are displayed as memo fields.
- Browsing Hash: If the first value is numeric, logical and date values in
subsequent values are not displayed correctly. Fixed.
- ColsAsRows: Version 18.05 introduced an enhanced edit feature by
providing a dialog for edit of all rows. With a view to keep backward
compatibility this feature is made available only if oCol:lMultiRowEdit
is set to .t.
* TDataRow:
- Modified destructor method for compatibility with xHarbour for derivation
of classes from TDatarow
* edit.prg: Bug fix in method VarPut()
http://forums.fivetechsupport.com/viewt ... =3&t=36364
* Enhancement: function FW_DT2STR( tDateTime, [lISO8601] )
Optional 2nd parameter lISO8601 (default .f.)
If .t., returns datetime as YYYY-MM-DDTHH:MM:SS
* adofuncs:
- function RsGetRows( oRs, [nRows], [nStart], [aFields] ) -> aRows
Enhanced with 3 additional optional paramters
nRows: Number of rows. Default all rows rest.
nStart: 0 : Default from current Row
1 : From first row
2 : From last row
aFields: Array of field names. Default all fields
- New: RsToHash( oRs, [nRows], [nStart], [aFields] ) --> Array of Hashes
- New: RsToJson( oRs, [nRows], [nStart], [aFields] ) --> Json Array
* FWMARIADB:
FWMARIADBCONNECTION
- New methods:
CopyTableToServer( cTable, oDestServer, [nBatchSize] )
Copies and replaces cTable on the oDestServer from the
current server. Optional nBatchSize (default 1000) may
be reduced to a much smaller size in case of tables with
blobs and large memofields.
- UpdateTableToServer( cTable, oDestServer, cTimeStampFld )
Updates cTable on the destination server with the latest
changes made to cTable on current server. This is possible
only if the table contains a timestamp field created with
datatype "=".
- FWMARIAROWSET
TABLE REPLICATION:
New Datas:
oReplServer
bOnReplFail
If oRs:oReplServer is assigned with connection object to an external
server, all modifications (modify,append and delete) made to
the main table are also simulataneously made to the table with
the same name on the external server. It is the responsibility
of the programmer to keep both tables identical and not to modify
the table on the second server directly.
see \fwh\samples\mariarpl.prg
http://forums.fivetechsupport.com/viewt ... =3&t=36382
http://forums.fivetechsupport.com/viewt ... =6&t=36383
If write to oReplServer fails, bOnReplFail is evaluated. If
oReplServer is set to nil, replication is discontinued or else
the write to main server is rolled back.
New methods:
RecToHash( [aFields] )
RecToJson( [aFields] )
ToHash( [anRows], [nStart], [aFields] )
ToJson( [anRows], [nStart], [aFields] )
* TDATABASE:
- New method SetReplicationServer( oServer )
oServer can be a MariaDB connection object.
This invokes automatic replication of all changes to the DBF
(add,edit,delete) made through the class to a table with the
same name, structure and data on the MariaDB server.
For more details please see:
http://forums.fivetechsupport.com/viewt ... =3&t=36386
http://forums.fivetechsupport.com/viewt ... =6&t=36387
fwh\samples\dbf2sql.prg.
* New Json (and Hash) support functions:
- ArrToHash( acHeader, aData )
Returns hHash with aHeader as keys and aData as values.
If aData is multi-dimensional array returns array of hashes
If acHeader is 2 dimensional array and aData is nil, first
dimension of acHeader is considered as head and second dimension
is considered as data.
- ArrToJson( acHeader, aData )
- RsToJson( oAdoRs, [nRows], [nStart], [aFields] ) --> Json Array
- FW_RecToJson( [acFields], [acNames] ) // for dbf record
- FW_DbfToJson( [cFieldList], [bFor], [bWhile], [nNext], [nRec], [lRest], [aData] )
- FW_DbfToHash( [cFieldList], [bFor], [bWhile], [nNext], [nRec], [lRest], [aData] )
- oMariaRs:RecToJson( [aFields] )
- oMariaRs:ToJson( [anRows], [nStart], [aFields] )
- Date/DateTime values in Json are converted as ISO8601 formatted strings.
- FW_JsonDecode( cJson, @hHash )
Same as HB_JsonDecode() but in addition translates ISO1801 datetime
strings to proper date/datetime values.
- FW_SetJsonHuman( lSet ) --> lPreviousSet
If set to .t. all Json outputs are in human readable format.
=============
* XBROWSE:
- Bitmaps were being painted only when the column width is greater than the
bitmap width. Now the bitmaps are resized and painted.
- ToExcel: Datetime values are not exported unless oBrw:lCellExcelWise is
set to .t. Now exported correctly in all cases.
- Ado fields of type adVarChar or adVarWChar with DefinedSize -1 were not
being displayed. Now, they are displayed as memo fields.
- Browsing Hash: If the first value is numeric, logical and date values in
subsequent values are not displayed correctly. Fixed.
- ColsAsRows: Version 18.05 introduced an enhanced edit feature by
providing a dialog for edit of all rows. With a view to keep backward
compatibility this feature is made available only if oCol:lMultiRowEdit
is set to .t.
* TDataRow:
- Modified destructor method for compatibility with xHarbour for derivation
of classes from TDatarow
* edit.prg: Bug fix in method VarPut()
http://forums.fivetechsupport.com/viewt ... =3&t=36364
* Enhancement: function FW_DT2STR( tDateTime, [lISO8601] )
Optional 2nd parameter lISO8601 (default .f.)
If .t., returns datetime as YYYY-MM-DDTHH:MM:SS
* adofuncs:
- function RsGetRows( oRs, [nRows], [nStart], [aFields] ) -> aRows
Enhanced with 3 additional optional paramters
nRows: Number of rows. Default all rows rest.
nStart: 0 : Default from current Row
1 : From first row
2 : From last row
aFields: Array of field names. Default all fields
- New: RsToHash( oRs, [nRows], [nStart], [aFields] ) --> Array of Hashes
- New: RsToJson( oRs, [nRows], [nStart], [aFields] ) --> Json Array
* FWMARIADB:
FWMARIADBCONNECTION
- New methods:
CopyTableToServer( cTable, oDestServer, [nBatchSize] )
Copies and replaces cTable on the oDestServer from the
current server. Optional nBatchSize (default 1000) may
be reduced to a much smaller size in case of tables with
blobs and large memofields.
- UpdateTableToServer( cTable, oDestServer, cTimeStampFld )
Updates cTable on the destination server with the latest
changes made to cTable on current server. This is possible
only if the table contains a timestamp field created with
datatype "=".
- FWMARIAROWSET
TABLE REPLICATION:
New Datas:
oReplServer
bOnReplFail
If oRs:oReplServer is assigned with connection object to an external
server, all modifications (modify,append and delete) made to
the main table are also simulataneously made to the table with
the same name on the external server. It is the responsibility
of the programmer to keep both tables identical and not to modify
the table on the second server directly.
see \fwh\samples\mariarpl.prg
http://forums.fivetechsupport.com/viewt ... =3&t=36382
http://forums.fivetechsupport.com/viewt ... =6&t=36383
If write to oReplServer fails, bOnReplFail is evaluated. If
oReplServer is set to nil, replication is discontinued or else
the write to main server is rolled back.
New methods:
RecToHash( [aFields] )
RecToJson( [aFields] )
ToHash( [anRows], [nStart], [aFields] )
ToJson( [anRows], [nStart], [aFields] )
* TDATABASE:
- New method SetReplicationServer( oServer )
oServer can be a MariaDB connection object.
This invokes automatic replication of all changes to the DBF
(add,edit,delete) made through the class to a table with the
same name, structure and data on the MariaDB server.
For more details please see:
http://forums.fivetechsupport.com/viewt ... =3&t=36386
http://forums.fivetechsupport.com/viewt ... =6&t=36387
fwh\samples\dbf2sql.prg.
* New Json (and Hash) support functions:
- ArrToHash( acHeader, aData )
Returns hHash with aHeader as keys and aData as values.
If aData is multi-dimensional array returns array of hashes
If acHeader is 2 dimensional array and aData is nil, first
dimension of acHeader is considered as head and second dimension
is considered as data.
- ArrToJson( acHeader, aData )
- RsToJson( oAdoRs, [nRows], [nStart], [aFields] ) --> Json Array
- FW_RecToJson( [acFields], [acNames] ) // for dbf record
- FW_DbfToJson( [cFieldList], [bFor], [bWhile], [nNext], [nRec], [lRest], [aData] )
- FW_DbfToHash( [cFieldList], [bFor], [bWhile], [nNext], [nRec], [lRest], [aData] )
- oMariaRs:RecToJson( [aFields] )
- oMariaRs:ToJson( [anRows], [nStart], [aFields] )
- Date/DateTime values in Json are converted as ISO8601 formatted strings.
- FW_JsonDecode( cJson, @hHash )
Same as HB_JsonDecode() but in addition translates ISO1801 datetime
strings to proper date/datetime values.
- FW_SetJsonHuman( lSet ) --> lPreviousSet
If set to .t. all Json outputs are in human readable format.