Page 1 of 3

SayBarCode control

Posted: Wed Apr 03, 2019 5:27 pm
by nageswaragunupudi
FWH Next Version

Code: Select all

#include "fivewin.ch"

REQUEST FWZEBRA

function Main()

   local oDlg, oCode, oSay, oSay2, oSay3, oFont
   local cText    := "FiveTechSoft"
   local cName    := Space( 20 )
   local cCity    := Space( 20 )
   local cCountry := Space( 20 )
   local cItem    := "123456789012"

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 600,800 PIXEL TRUEPIXEL FONT oFont ;
      TITLE "TSAYBARCODE CONTROL"

   @ 080, 40 SAY "PDF417" SIZE 100,26 PIXEL OF oDlg

   @ 050,150 SAYBARCODE oSay2 ;
      TEXT "Address :" + CRLF + cName - CRLF - cCity - CRLF - cCountry ;
      TYPE "PDF417" SIZE 400,80 PIXEL OF oDlg UPDATE

   @ 240, 40 SAY "Name    :" GET cName    SIZE 300,24 PIXEL OF oDlg VALID ( oDlg:Update(), .t. )
   @ 270, 40 SAY "City    :" GET cCity    SIZE 300,24 PIXEL OF oDlg VALID ( oDlg:Update(), .t. )
   @ 300, 40 SAY "Country :" GET cCountry SIZE 300,24 PIXEL OF oDlg VALID ( oDlg:Update(), .t. )
   @ 330, 40 SAY "Item    :" GET cItem    SIZE 200,24 PIXEL OF oDlg VALID ( oDlg:Update(), .t. ) ;
                                          PICTURE "999999999999" RIGHT
   @  230,450 SAYBARCODE oSay ;
      TEXT "Address :" + CRLF + cName - CRLF - cCity - CRLF - cCountry ;
      TYPE "QR-CODE" SIZE 100,100 PIXEL OF oDlg ;
      UPDATE

   @ 400,040 SAYBARCODE TEXT cName - "," - cCity ;
      TYPE "CODE128" SIZE 500,50 PIXEL OF oDlg UPDATE

   @ 480,040 SAY "CODE128" SIZE 520,24 PIXEL OF oDlg CENTER


   @ 650,350 SAY "Item : EAN13" SIZE 200,24 PIXEL OF oDlg CENTER

   @ 700,350 SAYBARCODE TEXT cItem ;
      TYPE "EAN13" SIZE 200,50 PIXEL OF oDlg UPDATE

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil
 
Image

Re: SayBarCode control

Posted: Wed Apr 03, 2019 7:29 pm
by kajot
where is FWZEBRA ?

Re: SayBarCode control

Posted: Wed Apr 03, 2019 8:18 pm
by nageswaragunupudi
Will be provided in the next release of FWH.

Re: SayBarCode control

Posted: Thu Apr 04, 2019 8:17 am
by Marc Venken
Very Nice.

Re: SayBarCode control

Posted: Mon Apr 08, 2019 8:00 am
by nageswaragunupudi
fwh\samples\qrcode.prg

Code: Select all

#include "fivewin.ch"

REQUEST FWZEBRA

//----------------------------------------------------------------------------//

function Main()

   local oWnd, cText, cPrg := cFileSetExt( ExeName(), "prg" )

   cText    := MEMOREAD( cPrg )

   DEFINE WINDOW oWnd TITLE cPrg
   ACTIVATE WINDOW oWnd CENTERED ;
      ON PAINT oWnd:SayBarCode( cText, { 20,20,-20,-20 }, "QR-CODE" )

return nil

//----------------------------------------------------------------------------//
 
Image

Re: SayBarCode control

Posted: Mon Apr 08, 2019 11:55 am
by ukoenig
It seems barcode is missing in FWH 19.03 -> FIVEHX.lib

Image

regards
Uwe :?:

Re: SayBarCode control

Posted: Mon Apr 08, 2019 12:26 pm
by nageswaragunupudi
1) Please use buildx.bat provided with FWH19.03.
This batch file contains the line :
"echo %hdirl%\hbzebra.lib + >> b32.bc"
Please check this
2) Please ensure that your \xharbour\lib folder contains hbzebra.lib

Re: SayBarCode control

Posted: Mon Apr 08, 2019 12:37 pm
by ukoenig
because I used a modified copy of buildx.bat

"echo %hdirl%\hbzebra.lib + >> b32.bc"

was not included

it is working now.

thank You
Uwe :D

Re: SayBarCode control

Posted: Mon Apr 08, 2019 1:40 pm
by nageswaragunupudi
When we first release a new feature, please test in the samples folder with the build?.bat as provided.
Later on, you can modify to your requirements.

Re: SayBarCode control

Posted: Mon Apr 08, 2019 6:19 pm
by Silvio.Falconi
Nages ,
Many mounths ago I saw there are error on coding of most barcode

the barcode reader did not read the codes. Now I can't remember which they were. The class of Timm Soldabers (reportdesigner) did not work well even in this class there were invalid codes and the class had been made on the basis of the Barlib.

My friend Santiago and I had discovered which codes were not working and in that context we had also created the circular bar code used here in Italy for video rentals and barcode readers could more easily read circular codes rather than linear ones

tomorrow I'll list the barcodes that had problems reading at least with our reader that we used at that time

Re: SayBarCode control

Posted: Tue Apr 09, 2019 7:31 am
by Silvio.Falconi
I found the note on my old hard disk :

this is the List of vrdbarcode you use

// 1 = Code 39 ok
// 2 = Code 39 check digit
// 3 = Code 128 auto select
// 4 = Code 128 mode A ok
// 5 = Code 128 mode B ok
// 6 = Code 128 mode C
// 7 = EAN 8
// 8 = EAN 13 ok
// 9 = UPC-A
// 10 = Codabar
// 11 = Suplemento 5
// 12 = Industrial 2 of 5
// 13 = Industrial 2 of 5 check digit
// 14 = Interlaved 2 of 5 ok
// 15 = Interlaved 2 of 5 check digit ok
// 16 = Matrix 2 of 5
// 17 = Matrix 2 of 5 check digit


where is not "ok" the code was not read from our barcode reader

we made ten year ago (2010) also circular/square code as this:

Image

I made also a Setup dialog to set each type of barcode

Re: SayBarCode control

Posted: Tue Apr 09, 2019 8:10 am
by nageswaragunupudi
Mr Silvio

Thanks for sharing the test results. They match with our own test results.
So we released only those which passed the tests.

But by linking hbzebra.lib, more types of barcodes are available. Please check and offer your comments.

We shall be glad if you can throw more light on circular and square codes. Where from we can get more information about them and where are they being used now?

Re: SayBarCode control

Posted: Tue Apr 09, 2019 8:30 am
by Silvio.Falconi
you can found circular barcode on video rental shop or Supermarket..

Image

mainly used on video vending vending machines and compatible with all brands on the market, but also useful for cataloging your CD Rom or DVD collection and for any other application that requires a barcode reading from any side.

see on your mail

sample :
Circular

Code: Select all

      oBC:= VRDBarcode():New( oPrn:hDcOut ,AllTrim(cCodice),nRowBar,nColBar,nHeightBar,nWidthBar,cTipo, KColor,, .T. )
       oBC:lCircular:=.T.

        // semicircles
        oBC:aPartial := {l90g,l180g,l270g,l360g}
        oBC:nGradIni:=cGradIni
        oBC:nGradEnd:=cGradEnd
Square

Code: Select all

oBC := VRDBarcode():New( oPrn:hDcOut ,AllTrim(cCodice),nRowBar,nColBar,nHeightBar,nWidthBar,cTipo,KColor,, .T. )
            oBC:lsquare:=.T.

Re: SayBarCode control

Posted: Tue Apr 09, 2019 8:41 am
by nageswaragunupudi
Mr. Silivio

Thanks for the mail. I will study the program you sent me.
Meanwhile, can you please guide me as to which android app can read these circular codes? I am unable to find one in the App Store

Re: SayBarCode control

Posted: Tue Apr 09, 2019 8:59 am
by Silvio.Falconi
I use this

https://play.google.com/store/apps/deta ... gamma.scan

Image

and now read good my circular barcode ( it read the code "200004" I insert into ) I posted above

I printed the image and make a scan with my smathphone