August 2016 (FWH 16.08)
-
FWMYSQL: Many enhancements to be detailed in the forums
-
New functions (source\function\valtostr.prg)
-
FW_DT2STR( dDate/tDateTime )--> strDate/strDateTime
in format "YYYY-MM-DD" / "YYYY-MM-DD HH:MM:SS"
Useful for conversion to use with SQL -
FW_STR2DT( cDateStr/cDateTimeStr ) --> dDate / tDateTime
depending on the length and contents of the string.
Useful for conversion of output from some SQL -
UTC_TIMESTAMP( [tDateTime] ) --> tUtcDateTime
-
Harbour provides functions HB_UTCOFFSET and HB_TStoUTC
FWH provided these function for xHarbour applications -
New: samples\dshow.prg shows how to take photos using
your webcam. This example only works with MS Visual
Studio Community 2015. To build it simply do:
FWH\samples\buildh32.bat dshow
-
New: Xbrowse: When browsing Arrays, deleted records, if
any are collected in DATA oBrw:adeleted(). -
Fix: XBrowse: RDDIncremental Filter results in runtime
error when dbf is in natural order. Fixed. In such cases
incremental field defaults to all fields (except memo fields) -
Enhancement: XBrowse: aCols parameter of MakeTotals() method
can now be specified as column names or numbers also. -
XBrowse(..) function now returns oBrw object.
XBROWSER command also is changed as #xtranslate.
oBrw := XBROWSER <clauses>
In case of MODAL usage, oBrw object is returned after
the dialog is closed. In case of NOMODAL usage the
object is returned soon after display of the browse. -
function FW_DbfToArray() in database.prg enhanced
The field list can contain "" which means all fields.
Example:
USE STATES
cList := ",RECNO()"
aData := FW_DbfToArray( @cList )
? cList // --> "CODE,NAME,RECNO()" -
New function DBFAPPEND() in database.prg
Automatically recycles deleted records in case of
DBFCDX RDD and if index on "DELETED()" is availble
by name "DELETED" -
Enhanced: function FW_FieldsPut( aFields, aValues, ;
nLockWaitSecs, lAppend/nRecNo, bTrigger ) in database.prg
4th param: If logical .T. indicates Append and .F.
indicates replace current record.
This param can now be a number also. If numeric, changes
are made to the record number specified and also Recalled
if the record is already deleted and if the record does
not exist ( 0 or > lastrec() ) then a new record is appeneded.
If the list of fields contains the expression "RECNO()", this
value is used in the same way as above.
-
New FW_SaveArrayToDBF( acFields, aData )
This function works complimentary to FW_DbfToArray() if
one of the fields names in the list is RECNO().
Example:
cList := "*,RECNO()"
aData := FW_DbfToArray( @cList )
oBrw := XBROWSER aData FASTEDIT SETUP ( ;
oBrw:cHeaders := FW_ListAsArray( cList ), ;
ATail( oBrw:aCols ):lReadOnly := .t. )
Edit the data and then
FW_SaveArrayToDBF( cList, aData ) -
Fix: TDataRow class (datarow.prg)
Method FieldName( nLastFieldNumber ) returns an empty string.
Fixed. -
TDataRow: When bEdit is evaluated, the workarea of the record
is selected for the duration of the edit. -
Enhancement: function PopupBrowse() now supports an optional
fourth parameter to specify the column value of the browse
that we want to be returned. By default it is 1. Please review
samples\yunus.prg -
Enhancement: function PopupBrowse() now works on windows too,
besides dialogs and xbrowses. -
New: samples\yunus.prg is a complete invoicing app that you
can use as a template for your apps. It shows how to use the
function PopupBrowse() from GETs in dialogs and from XBrowses -
Fix: Method Redefine Class TRichEdit5
-
Fix: dtpicker.ch was supplying wrong parameters to the ON CHANGE
clause. Now it is ok. Thanks to Biel!