Page 1 of 1

HMG.EASY.SQL.2025.09.04

Posted: Wed Sep 03, 2025 10:24 pm
by Roberto Lopez
Hi All,

Changelog:

- New: Report(cQuery,cTitle,aHeaders,aWidths,aJustify,cPdfName,lPreview,aFormats) method.
Creates a PDF report from a MySql Query.
Returns: .T. if it was successful (.F. otherwise).

For PDF generation it uses a slightly modified version of the original HMG_HPDF by
Rathinagiri. I've renamed the source file and internal functions to avoid conflicts
with any other version of it.

Example:

Code: Select all

	cCommand := 'SELECT code,description,location,stock,price FROM hmgtest ORDER BY code'
	cTitle	 := 'STOCK REPORT'
	aHeaders := { 'CODE', 'DESCRIPTION', 'LOCATION', 'STOCK', 'PRICE' }
	aWidths	 := { 6,32,32,6,12 }
	aJustify := { 'C','L', 'L','R','R'}
	cPdfName := 'stock' + '.' + dtos(date()) + '_' + alltrim(str(int(seconds())))
	lPreview := .t.
	aFormats := { {|x| STRZERO(x,4)},{|x|UPPER(x)},{|x|UPPER(x)},NIL,{|x|TRANSFORM(x,'999,999.99')} }

	IF !:Report(cCommand,cTitle,aHeaders,aWidths,aJustify,cPdfName,lPreview,aFormats)
		RETURN
	ENDIF

- New: Export(cQuery,cOutFile,aFormats,cDelimiter,lQuote) method.
Creates a CSV file from a MySql Query.
Returns: .T. if it was successful (.F. otherwise).

Example:

Code: Select all

		cQuery   := 'SELECT * FROM hmgtest ORDER BY code'
		cOutFile := 'hmgtest.csv'
		
		* aFormats (optional)

		aFormats := { {|x| STRZERO(x, 4)},{|x| STRZERO(x, 4)}, {|x| UPPER(x) },NIL,NIL,{|x| TRANSFORM(x,'999,999.99') } }

		* cDelimiter is optional (default is ';')

		cDelimiter := NIL

		* Quote is optional (default is .F.)

		lQuote := NIL
		
		IF !:Export(cQuery,cOutFile,aFormats,cDelimiter,lQuote)
			RETURN
		ENDIF

I hope this be useful for someone.

Re: HMG.EASY.SQL.2025.09.04

Posted: Sat Oct 04, 2025 1:48 am
by Steed
Thanks a a lot!,

Sorry to ask: but when i compilied the test , i have the next error

hbmk2: Error: Referenced, missing, but unknown function(s): SDDMY()

I'm using HMG 3.6.1

*********************************************
Copyright (c) 1999-2023, https://harbour.github.io/
C:/Ins/hmg/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Ins/hmg/lib-64\libhmg-64.a(h_HMG_HPDF.o):h_HMG_HPDF.c:(.text+0xe0): multiple definition of `HB_FUN_HMG_HPDF_PAGECOUNT'; C:/Users/st_ed/AppData/Local/Temp/hbmk_vdwn32.dir/main.o:main.c:(.text+0x4e0): first defined here
C:/Ins/hmg/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Ins/hmg/lib-64\libhmg-64.a(h_HMG_HPDF.o):h_HMG_HPDF.c:(.text+0x100): multiple definition of `HB_FUN_HMG_HPDF_PAGENO'; C:/Users/st_ed/AppData/Local/Temp/hbmk_vdwn32.dir/main.o:main.c:(.text+0x500): first defined here
C:/Ins/hmg/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/st_ed/AppData/Local/Temp/hbmk_vdwn32.dir/main.o:main.c:(.data+0x2330): undefined reference to `HB_FUN_SDDMY'
collect2.exe: error: ld returned 1 exit status
hbmk2[test]: Error: Running linker. 1

**************************************************************************

Re: HMG.EASY.SQL.2025.09.04

Posted: Wed Oct 08, 2025 2:42 am
by Steed
Steed wrote: Sat Oct 04, 2025 1:48 am Thanks a a lot!,

Sorry to ask: but when i compilied the test , i have the next error

hbmk2: Error: Referenced, missing, but unknown function(s): SDDMY()

I'm using HMG 3.6.1

**************************************************************************
Finally add in the test.hbc file the next libraries

libs=libmysql
libs=hbsqldd
libs=sddmy

It´ts compile , but know I had this new error.
TestError.png
TestError.png (9.77 KiB) Viewed 718 times
Regards,

ES

Re: HMG.EASY.SQL.2025.09.04

Posted: Mon Oct 20, 2025 11:44 am
by Roberto Lopez
Steed wrote: Wed Oct 08, 2025 2:42 am
Steed wrote: Sat Oct 04, 2025 1:48 am Thanks a a lot!,

Sorry to ask: but when i compilied the test , i have the next error

hbmk2: Error: Referenced, missing, but unknown function(s): SDDMY()

I'm using HMG 3.6.1

**************************************************************************
Finally add in the test.hbc file the next libraries

libs=libmysql
libs=hbsqldd
libs=sddmy

It´ts compile , but know I had this new error.

TestError.png

Regards,

ES
I'm not fully sure, but, maybe that libmysql.dll that I've included in the demo being not compatible with your setup. I've included it along with the compiled demo to allow users to test it 'out of the box'. You should replace by to one that work for you.

Regarding the problems with HMG_HPDF, I've already noticed fixed for the next release.