February 2019
=============
* Enhancement: samples\fivedbu.prg now automatically saves and restores the state of the browses (columns widths, visible, etc)
* Enhancement: samples\fivedbu.prg updates the index selected tag in the MsgBar when a browse column header is clicked.
* Enhancement: function cGetNewAlias( cAlias ) now supports "-" in the cAlias name. Thanks to Lailton!
* New: function cGetNewAliasName( cAlias ) returns a new valid alias name. Thanks to Lailton!
* Enhancement: static function CreateDlgError() now reports the system error description when a dialog box can not be
created.
* Enhancement: function GetErrMsg( [<nLastError>] ) --> cSystemErrorDescription now supports an optional parameter with
the error code generated by GetLastError(). If no parameter is suplied then GetLastError() is used.
* New: DATA nBarHeight --> allow modify height of folders CLASS TTabs
* Enhancement: Added support for the new MySql ODBC Connector version 8.0
in function FW_OpenAdoConnection(...)
* New: NATIVE SUPPORT FOR DISPLAY AND PRINTING OF BARCODES,
without 3rd party libs or additional fonts.
FWH's own functions support Barcode types CODE39,CODE128 and EAN13.
Provides support for CODE11,CODE38,CODE93,CIDE128,EAN8,EAN13,UPCA,UPCE,ITF,
MSI,CODABAR,PDF417,DATAMATRIX and QR-CODE by linking hbzebra.lib available
from xHarbour and Harbour.
- Display:
- function FW_SayBarCode( oWnd/hDC, cText, aRect, cType, nClrText, nClrBack, ;
lVertical, Transparent, nPinSize, nFlags, lPrinter )
- Method SayBarCode( cText, aRect, cType, nClrText, nClrBack, ;
lVertical, Transparent, nPinSize, nFlags )
of TWindow class all derived classes (dialogs and controls)
see: fwh\samples\qrcode.prg
- Control: TSayBarCode: (tsaybcod.prg)
oBarCode := TSayBarCode():New( nRow, nCol, bText, cType, oWnd, nWidth, ;
nHeight, lPixel, nClrText, nClrBack, ;
lVertical, lTransparent, nPinSize, nFlags, lUpdate, lDesign )
- Command support for control:
#xcommand @ <nRow>, <nCol> SAYBARCODE [<oBcd>] TEXT <cText> ;
[ TYPE <cType> ] ;
[ <dlg: OF,WINDOW,DIALOG > <oWnd> ] ;
[ <lPixel: PIXEL, PIXELS > ] ;
[ <color: COLOR,COLORS > <nClrText> [,<nClrBack> ] ] ;
[ SIZE <nWidth>, <nHeight> ] ;
[ <lVert: VERTICAL> ] ;
[ PINSIZE <nPin> ];
[ FLAGS <nFlags> ] ;
[ <lUpdate: UPDATE> ] ;
[ <lDesign: DESIGN> ] ;
#xcommand REDEFINE SAYBARCODE [ <oBcd> ] TEXT <cText> ;
[TYPE <cType>] ;
[ ID <nId> ] ;
[ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
[ PINSIZE <nPin> ];
[ FLAGS <nFlags> ] ;
[ <lVert: VERTICAL> ] ;
[ <update: UPDATE> ] ;
Note: Clauses VERTICAL and TRANSPARENT are not supported and ignored in the
current version.
viewtopic.php?f=3&t=36976
see fwh\sampls\barcod01.prg
- XBrowse:
Set oCol:BarCodeType := cType ("QR-CODE","EAN13",etc) to display the data as
barcode.
viewtopic.php?f=3&t=36975
- Barcode bitmaps:
It is possible to make a bitmap of desired size.
hBitmap := FW_BarCodeBmp( cText, cType, nWidth, nHeight, [nFlags] )
- Printing:
Printer object method:
METHOD PrintBarcode( cText, nRow, nCol, nWidth, nHeight, cUnits, cType, ;
nClrText, nClrBack, lVertical, lTransparent, nPinSize )
--> nActualWidth
It is recommended to use command syntax to use this method:
#xcommand @ <nRow>, <nCol> PRINT TO <prn> TEXT <cText> ;
AS BARCODE [TYPE <cType>] ;
[SIZE <nWidth> [,<nHeight>] ] ;
[<unit: PIXEL,MM,CM,INCHES>] ;
[COLOR <nTxt> [,<nBck> ] ] ;
[<lVert: VERTICAL>] ;
[<lTran: TRANSPARENT>] ;
[ PINSIZE <nPinSize>] ;
[ BARSIZE <nSize> ] ;
Note: Barsize is an output and indicates the actual width occupied by the
barcode in the same units specified.
viewtopic.php?f=3&t=35797&p=220313&hilit=barcode#p220313
- For using barcodes from hbzebra.lib, the application should include the
statement
REQUEST FWZEBRA.
anywhere in the application, prferably in the main module.
Then the library hbzebra.lib should be provided in the link script.
If not linked the internal functions are used to draw the barcode and when
the specified code is not supported defauls to code128.
* XBrowse:
- Fix: Autosort: Clicking second time on a sorted column is not switching
between ascending and descending order in case of DBF and TDatabase. Fixed
now.
- Enhancement: New data BarCodeType: When assigned with a type, eg CODE128,
QRCODE, etc. will display the value of the column as barcode.
If the data aImgRect is specified, the barcode image is fit inside the rect.
* TGdiPlus:
- Fix: viewtopic.php?f=3&t=36993#p220693
- Enhancement: New Method AngleGradientBrush CLASS Brush
Allow angle defined by user of brush
* EasyReport enhancement:
- New clause "FILE <cPdfFileName>" added to command EASYREPORT.
If specified, the report is saved to the pdf file. If PREVIEW .t. is also
specified, the generated pdf file is also opened by default application.
If instead of a filename, "FILE 'PDF'" is specified the user is allowed to
select a pdf file name to save.
- Easyreport sample file \fwh\samples\erep01.prg