Page 1 of 1

EasyReport / FWH 7.09

Posted: Sun Oct 07, 2007 8:58 pm
by Otto
Could someone please tell me how to link EasyReport with FWH.
Thanks in advance
Otto

Posted: Mon Oct 08, 2007 1:10 pm
by Armando
Hi Otto:

You have two ways to do that

1.- Compile and link the VRD.PRG, VRDBCODE.PRG and VRDITEM.PRG files as part of your application.

2.- Build a LIB file with these three files (VRD.PRG, VRDBCODE.PRG and VRDITEM.PRG) and include it into your script

Don't forget add this code line in your PRG when using EasyReport.

#Include "Vrd.ch"

Regards, Armando

Re: EasyReport / FWH 7.09

Posted: Mon Oct 08, 2007 2:26 pm
by Richard Chidiak
Otto

What compiler are you using for fwh ?

This is the key question,

if you are using xharbour xbuild, let me know i will send you the xbp file that creates the library

Richard

Posted: Mon Oct 08, 2007 6:09 pm
by MOISES
I do not recommend EasyReport, due the following reasons:

- They do not provide the Ide source code. It has lots of errors, it is quite unestable and you have to include 2.5 mb plus to your app.
- The tech support is very bad. Timm does not respond emails or, when he does, it is very late.
- For the same price, you can buy List&Label, a much more professional software.

So my advice is, despite the print engine works fine, the disadvantages are more important and it does not worth to pay for it.

Posted: Mon Oct 08, 2007 6:48 pm
by Otto
Thank you very much for your help.

Armando,
Thank you for your information.

I will try your suggestion nr. 1

Timm wrote me to link also these files. I am not sure how to do this.
cfunc.c
vrd.ch

Moises:
Thanks for your comment.
Timm responded in this case within 3 hours. I always get good support from him.
But EasyReport is very easy to use – up to now I only have experience with FW/ER - so you don’t need much support.

I tried a lot of other ReportWriters but EasyReport is for my necessity the best.
The IDE is easy to use and “end users” can do some changes themselves.
Also it is easy to address from FW.

Richard:
Hello from Austria. Thank you for your offer but I decided to start with Harbour.

Regards,
Otto

Posted: Mon Oct 08, 2007 7:57 pm
by Armando
Otto:

I use VERCE to build my application and It's very easy to include that file.

You must to include the next code line in your PRG when using EasyReport.

#Include "Vrd.ch"

If I can help you just let me to know it

Best Regards

Posted: Mon Oct 08, 2007 8:13 pm
by Otto
Armando,
thank you. My EasyReport is working.
Regards,
Otto

Posted: Mon Oct 08, 2007 8:26 pm
by Armando
Otto:

Great !, I'm so glad to hear that.

Regards

Posted: Mon Oct 08, 2007 9:48 pm
by Ollie
Hi MOISES

You seem to be a big fan of List & Label. I downloaded the demo, but am struggling to get it working with FWH. (But then again I am a beginner and am not versed in adding linking library and DLLs etc.)

Would you mind looking at the other thread on the topic and see if you can offer assistance. I would be truly greatful.

http://fivetechsoft.com/forums/viewtopi ... 9156#39156

Posted: Thu Oct 11, 2007 8:05 am
by MOISES
This is an example from Jairo Centeno. Hope it helps!!.

Also, the List & Label 13 will include the designer in the basic version. So it is even cheaper than EasyReport and, the best, it works!!!!.




cmbtll12.ch is located at "C:\Archivos de programa\combit\LL12\Programmable Samples and Declarations\Alaska Xbase++".



#xtranslate LL_PROJECT_LIST => 2

#include "FiveWin.ch"
#include "cmbtll12.ch"
Global oActiveX, oWnd, hJob, nRet

Function Main()
Local cEvents := ""
LOCAL aField, aType, aLen, aDec, sName
LOCAL FldType, FldContent, DateBuffer, lExpr, I:=1, bAsField:=.T.

USE ARTICLE NEW
GO TOP

aField := Array( ARTICLE->(FCount()) )
aType := Array( ARTICLE->(FCount()) )
aLen := Array( ARTICLE->(FCount()) )
aDec := Array( ARTICLE->(FCount()) )
sname := "article.lst"

DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

oActiveX = TActiveX():New( oWnd, "L12.List-Label12_Ctrl_32.1" )

oWnd:oClient = oActiveX // To fill the entire window surface

//US: Read field info from database
AFields( aField, aType, aLen, aDec )

//US: open List & Label job, retrieve job handle
hJob := 1

//US: Enable multiple table lines
oActiveX:Do( "LlSetOption", LL_OPTION_MULTIPLETABLELINES, 1)

//US: clear DLL-internal field buffer
oActiveX:Do( "LlDefineFieldStart" )

// US: Define Fields

FOR I = 1 to ARTICLE->(Fcount())

DateBuffer = Replicate(chr(0), 255)

DO CASE
CASE aType == "N"
FldType=LL_NUMERIC
FldContent=Str( FieldGet(i) )
CASE aType == "D"
FldType=LL_DATE

//US: Convert to Julian Date
//US: Create function tree
lExpr = oActiveX:Do("LlExprParse", "CTOD( FieldGet(i) )", .F. )

//US: Evaluate expression
oActiveX:Do("LlExprEvaluate", lExpr, @DateBuffer )

//US: Free expression
oActiveX:Do("LlExprFree", lExpr )
FldContent = DateBuffer

CASE aType == "L"
FldType=LL_BOOLEAN
if FieldGet(i) = .F.
FldContent="FALSE"
else
FldContent="TRUE" endif

CASE aType == "C"
FldType=LL_TEXT
FldContent=Trim(FieldGet(i))

// US: for article number generate EAN128-barcode
if i=1
DO CASE

// US: Distinguish between field and variable declaration
CASE bAsField==.F.
oActiveX:Do("LlDefineVariableExt", "ARTICLENO_EAN128", Trim(FieldGet(i)), LL_BARCODE_EAN128 )

CASE bAsField==.T.
oActiveX:Do("LlDefineFieldExt", "ARTICLENO_EAN128", Trim(FieldGet(i)), LL_BARCODE_EAN128 )

END CASE
endif

CASE aType == "M"
FldType=LL_TEXT
FldContent=FieldGet(i)

END CASE

//US: pass data to List & Label

DO CASE
CASE bAsField==.F.

oActiveX:Do("LlDefineVariableExt", aField, FldContent, FldType )
CASE bAsField==.T.

oActiveX:Do("LlDefineFieldExt",aField, FldContent, FldType )
END CASE

NEXT I

// US: start designer
oActiveX:Do("LlSetPrinterDefaultsDir",hJob,"C:\Windows\Temp")
oActiveX:Do("LlDefineLayout",oWnd:hWnd,"Designer",LL_PROJECT_LIST, "article.lst")

ACTIVATE WINDOW oWnd VALID ( dbCloseArea(),.t. )

Return