Page 2 of 3
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Fri May 21, 2021 11:12 am
by Otto
Hello Mark,
With my patcher, I can simplify the code.
I know that Harbour can patch the code that is spread over several lines.
But I don't remember the syntax.
Text start / text end or something like that.
Best regards,
Otto


Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Fri May 21, 2021 12:33 pm
by elvira
Thank you very much.
But will it work for complex designs, such an Invoice?
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Fri May 21, 2021 12:49 pm
by Otto
Hello elvira,
I would say yes.
But please post a design template, and I try and test it.
Best regards,
Otto
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Fri May 21, 2021 2:06 pm
by Marc Venken
Otto,
Can you post the .prg file , the html file so that we can copy them insite the sample folder and hit the build button in order to get a working program.
Than we can see and play with the idea.
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Fri May 21, 2021 4:39 pm
by Otto
Hello Mark,
I think I'll create a few more examples for the time being and test / i zi pi zi / in real use.
Maybe you have some templates that you would like to have solved.
Best regards,
Otto
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Sun May 23, 2021 6:11 pm
by elvira
Thank you.
This is a sample!!!

Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Sun May 23, 2021 9:59 pm
by Otto
Hello elvira,
A missing printer or problems with the printer queue are reasons why customers call our support.
Working on / i zi pi zi / report engine, I think a check if the default printer is ready is essential.
I started with the attached code.
I included a huge screen with a warning if no default printer or the selected printer is not ready.

I also started to take notes for the HTML report.
https://winhotel.space/izipizi/docu.htmlI think page break is key.
Tomorrow I do a test for an invoice report.
BTW the docu is made with my mod harbour project "portobello editor".

Best regards,
Otto
Code: Select all | Expand
#include "fivewin.ch"
function main
local aComboPrn := GetAllEntrys()
local I := 0
local hPRN_STATUS := {=>}
local cStatus := ""
local aPRNCheck := {}
local oPrn
local lshowPrinters := .t.
*----------------------------------------------------------
hPRN_STATUS["0" ] := "PRINTER_STATUS_OK"
hPRN_STATUS["1" ] := "PRINTER_STATUS_PAUSED"
hPRN_STATUS["2" ] := "PRINTER_STATUS_ERROR"
hPRN_STATUS["4" ] := "PRINTER_STATUS_PENDING_DELETION"
hPRN_STATUS["8" ] := "PRINTER_STATUS_PAPER_JAM"
hPRN_STATUS["16" ] := "PRINTER_STATUS_PAPER_OUT"
hPRN_STATUS["32" ] := "PRINTER_STATUS_MANUAL_FEED"
hPRN_STATUS["64" ] := "PRINTER_STATUS_PAPER_PROBLEM"
hPRN_STATUS["128" ] := "PRINTER_STATUS_OFFLINE"
hPRN_STATUS["256" ] := "PRINTER_STATUS_IO_ACTIVE"
hPRN_STATUS["512" ] := "PRINTER_STATUS_BUSY"
hPRN_STATUS["1024" ] := "PRINTER_STATUS_PRINTING"
hPRN_STATUS["2048" ] := "PRINTER_STATUS_OUTPUT_BIN_FULL"
hPRN_STATUS["4096" ] := "PRINTER_STATUS_NOT_AVAILABLE"
hPRN_STATUS["8192" ] := "PRINTER_STATUS_WAITING"
hPRN_STATUS["16384" ] := "PRINTER_STATUS_PROCESSING"
hPRN_STATUS["32768" ] := "PRINTER_STATUS_INITIALIZING"
hPRN_STATUS["65536" ] := "PRINTER_STATUS_WARMING_UP"
hPRN_STATUS["131072" ] := "PRINTER_STATUS_TONER_LOW"
hPRN_STATUS["262144" ] := "PRINTER_STATUS_NO_TONER"
hPRN_STATUS["524288" ] := "PRINTER_STATUS_PAGE_PUNT"
hPRN_STATUS["1048576" ] := "PRINTER_STATUS_USER_INTERVENTION"
hPRN_STATUS["2097152" ] := "PRINTER_STATUS_OUT_OF_MEMORY"
hPRN_STATUS["4194304" ] := "PRINTER_STATUS_DOOR_OPEN"
hPRN_STATUS["8388608" ] := "PRINTER_STATUS_SERVER_UNKNOWN"
hPRN_STATUS["16777216" ] := "PRINTER_STATUS_POWER_SAVE"
if lshowPrinters = .t.
For I:= 1 to len( aComboPrn )
if PrnStatus( aComboPrn[ I ] ) <> 0
AADD( aPRNCheck, { aComboPrn[ I ], "Printer error " + cStatus } )
endif
cStatus := ALLTRIM ( STR( PrnStatus( aComboPrn[ I ] ) ) )
TRY
AADD( aPRNCheck, { aComboPrn[ I ], hPRN_STATUS[ cStatus] } )
CATCH
AADD( aPRNCheck, { aComboPrn[ I ], "Status nicht definiert " + cStatus } )
END
/*
? GetPrintDefault()
ChangeStandardPrinter( aComboPrn[ I ] )
? ud_prngetname()
Printersetup()
*/
NEXT
xbrowse( aPRNCheck, "Printers installed - Status" )
endif
if msgYesNo('Change to printer "notexists"','Select printer' ) = .t.
ChangeStandardPrinter( "notexists" )
endif
If GetPrintDefault() = 0
//? "no default printer"
MetroMsgInfo( "Programmabbruch", "WINDOWS: There is no default printer currently selected" + CRLF +;
"Go into your Windows Control Panel and choose the Printer settings." + CRLF + CRLF +;
"Right-click the printer that you want to use, and then click Set as Default Printer."+ CRLF+;
"A check mark on the printer icon indicates that the printer is now the default printer." + CRLF + CRLF +;
"If the customer requires help with this they should refer to their IT administrator." )
else
? "Default printer " + ud_prngetname()
endif
return nil
//----------------------------------------------------------------------------//
FUNCTION GetAllEntrys() //show all printers
*----------------------------------------
local aDevices:={}, cAllEntries, cEntry, I, cName, cPrn, cPort, J
cAllEntries := STRTRAN( GetProfString( "Devices" ), Chr( 0 ), CRLF )
FOR I:= 1 TO MlCount( cAllEntries )
cName := MemoLine( cAllEntries,,I)
cEntry := GetProfString( "Devices",cName,"")
J := 2
DO WHILE ! EMPTY(cPort := StrToken(cEntry,J++,","))
*msginfo( TRIM(cName) ) +" , "+TRIM(cPort)
AADD(aDevices, TRIM( cName ))
ENDDO
NEXT
RETURN aDevices
//----------------------------------------------------------------------------//
function ChangeStandardPrinter( cPrintername )
local coldprinter := prnGetName() // default printer
*----------------------------------------------------------
if len( ALLTRIM( cPrintername ) ) > 0
WriteProfString( "windows", "device", cPrintername ) // change to new printer
SetPrintDefault( cPrintername )
PrinterInit()
SysRefresh()
endif
return( coldprinter )
//------------------------------------------------------------------------------------------//
function ud_PrnGetName()
local cret, oprn
PRINTER oPrn
cRet := oPrn:getmodel()
endprint
return cret
//------------------------------------------------------------------------------------------//
FUNCTION MetroMsgInfo( cTitel, cAnzeige1 )
local lVar := .f.
local oDlg, oGet, oBTNNaviWeiter, oBTNNaviInfo, obtnAbbruch, oCbx
local cPassword := Space( 10 )
local nWidth := GetSysMetrics( 0 )
local nHeight := GetSysMetrics( 1 )
local nLine := 0
local nRowSpace := 20
local nRowOffset := 20
local cInfo := ( procname(1) + " " + str( procline(1) ) )
local oFntMetroNormal2, oFntMetroMedium2,oFntMetroFLATBTN
local nRibbonTopClr := rgb(227, 162, 26)
*----------------------------------------------------------
DEFAULT cTitel := "Infobox"
*----------------------------------------------------------
DEFINE FONT oFntMetroNormal2 NAME "TAHOMA" SIZE 0,-22
DEFINE FONT oFntMetroMedium2 NAME "TAHOMA" SIZE 0,-32
DEFINE FONT oFntMetroFLATBTN NAME "TAHOMA" SIZE 0,-18
oFntMetroSay := TFont():New( "Calibri", 0, -13, .F.,.F.,0,0,,.F.,.F.,.F.,0,3,2,1,,34 )
//cAnzeige1 := ansiToOem(cAnzeige1)
nLine := 16
DEFINE DIALOG oDlg ;
TITLE "Auswahl" ;
FROM 0, 5 ;
TO nHeight*1/2, nWidth + 6 ;
PIXEL ;
STYLE nOr( DS_MODALFRAME, WS_POPUP ) ;
COLOR CLR_WHITE, nRibbonTopClr ;
FONT oFntMetroFLATBTN
oDlg:SetFont( oFntMetroNormal2 )
nLine := 0.5
@ nRowOffset * nLine , nWidth/5/2.05 ;
SAY cTitel ;
OF oDlg ;
PIXEL ;
FONT oFntMetroMedium2 ;
COLOR CLR_WHITE, nRibbonTopClr
nLine := 2
@ nRowOffset + nRowSpace * nLine,nWidth/5/2.05 ;
SAY cAnzeige1 ;
OF oDlg ;
PIXEL ;
FONT oFntMetroMedium2 ;
COLOR CLR_WHITE, nRibbonTopClr ;
SIZE 600, 600
*----------------------------------------------------------
@ ( nHeight*1/2 - 45 ) / 2.05,nWidth/5/2.05 ;
FLATBTN oBTNNaviWeiter ;
PROMPT "OK" ;
FONT oFntMetroFLATBTN ;
SIZE 2, ( 32 ) /2.05 ;
OF oDlg ;
ACTION ( lVar := .T., oDlg:End() ) ;
COLOR nRibbonTopClr, RGB( 210, 210, 210 ) ;
DEFAULT
@ 0,0 ;
FLATBTN oBTNNaviInfo ;
PROMPT "+" ;
FONT oFntMetroSay ;
SIZE ( 32) /2.05 , ( 32) /2.05 ;
OF oDlg ;
ACTION ( msginfo( cInfo ) ) ;
COLOR nRibbonTopClr, RGB( 210, 210, 210 )
oBTNNaviInfo:cTooltip := {"Info"}
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
//----------------------------------------------------------------------------//
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Mon May 24, 2021 9:10 am
by Otto
Good morning, elvira,
Thank you for bringing the invoice form into play.
I did a quick test. I took a template from office.com. (
https://templates.office.com/en-us/invoice-tm16392525)
It's very similar to your bill. Instead of products, I inserted dummy lines and made a page break.
Before printing, I choose the printer model.
Everything works very well and is easy-peasy.
Best regards,
Otto

Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Tue May 25, 2021 5:08 am
by Otto
Hello friends,
I remembered that WORD 97 produced very clean, lean HTML source code.
I searched the internet for "WORD 97 download" and found a download - Microsoft Word 97 (OEM) (ISO) .
WORD 97 is a simple WYSIWYG editor for the report generator.
Best regards,
Otto
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 10:02 am
by Otto
Placeholders
Word template

create placeholders

placeholders

paste placeholders

save as HTML

extract placeholders from HTML

Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 10:51 am
by Otto
Replace placeholder with data:


sourcecode to replace "placeholders"

Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 11:06 am
by Otto
Now changing design with WORD


Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 7:58 pm
by Silvio.Falconi
Otto,
I not Use Microsoft Office applications, and with me all my clients and friends
we use alternative products, for free
you sell your program to your client but then you tell him that he has to buy office to create reports?
what a beautiful prospect
what would this thing be?
a form for not being autonomous?
Fivewin needs a powerful report designer
if you are drawing with Word then it means that you no longer use ER, but as for you it was more ultra now you do not use it anymore?
you have to be consistent with yourself, you always said you use ER and it works fine for you now you can't use it with mod_harbour?
please move this topic to Mod Harbour forum
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 8:15 pm
by Otto
Hello Silvio,
/i zi pi zi/ is for FIVEWIN. And yes, you are right, I do no longer use ER.
To create HTML reports is much easier and faster.
You do not need WORD. You can use any editor to create HTML.
BTW, what WORD processor do you use?
Glad you take part in the discussion.
Best regards,
Otto
Re: /ɪːzɪˈpɪːzɪ/ Reportgenerator for FIVEWIN and mod harbour
Posted: Thu Jun 03, 2021 8:39 pm
by Silvio.Falconi
Otto wrote:Hello Silvio,
/i zi pi zi/ is for FIVEWIN. And yes, you are right, I do no longer use ER.
To create HTML reports is much easier and faster.
You do not need WORD. You can use any editor to create HTML.
BTW, what WORD processor do you use?
Glad you take part in the discussion.
Best regards,
Otto
Have you discovered HTML now?
try HTML5 maybe you will find you can do a report designer
https://sourceforge.net/projects/qtrpt/