976 lines
31 KiB
Plaintext
976 lines
31 KiB
Plaintext
*** RAPOARTE
|
|
*!* Listare raport "LISTAREUSERREPORT(lcAlias, "FRX/XLS", lcRaport)"
|
|
*!* Generare raport "do UserReport2File"
|
|
*!* Modificare raport "DO MODIFICA_RAPORT_UTILIZATOR"
|
|
*!* Printer Setup "sys(1037)"
|
|
|
|
*!* 26.10.2009
|
|
*!* marius.mutu
|
|
*!* listareuserreport - cautare raport in getuserreppath si in reg_report_path
|
|
*!* listareuserreport - cautare logo.jpg in getuserreppath si in reg_report_path daca nu e dat ca parametru
|
|
*!* get_report_path - cautare si creare raport usr in CONTAFIN\USERREPORTS\CONGEST\FIRMA
|
|
|
|
*!* 04.11.2009
|
|
*!* marius.mutu
|
|
*!* + GetReportPath - intoarce directorul CONTAFIN\USERREPORTS
|
|
*!* Get_Report_Path - tratare variabila glFacturiPersonalizate
|
|
*!* listareuserreport - nu am mai folosit get_report_path pentru logo si raport ci GetReportPath(era folosit in ACNPRO si nu era definita variabila glFacturiPersonalizate)
|
|
|
|
*!* 07.04.2010
|
|
*!* marius.mutu
|
|
*!* getUserRepPath - lcAppPath = gcAppPath
|
|
*!* + getUserRepFile
|
|
|
|
*!* 30.08.2010
|
|
*!* marius.mutu
|
|
*!* rapoarte_ultime_modificari
|
|
*!* se cere data initiala, data finala, titlu pentru ultimele modificari
|
|
*!* ultima versiune instalata sau data initiala <-> versiunea maxima sau data finala
|
|
|
|
#DEFINE CRLF CHR(13) + CHR(10)
|
|
|
|
Procedure rapoarte_speciale_cl
|
|
|
|
Local lcConnect, lnSucces,lAeroare
|
|
*!* PRIVATE pdDatainc,pdDataSf
|
|
*!* STORE {} to pdDatainc,pdDataSf
|
|
*!* pdDatainc = DATE(2007,7,1)
|
|
*!* pdDatasf = DATE(2007,7,31)
|
|
|
|
lcConnect = SQLConnect('ROA_CENTRAL','soft','soft')
|
|
lnSucces = SQLExec(lcConnect,[select sters, validat, id_utilizator, id_client, nume_client, id, titlu, localizare, explicatie_client, ] + ;
|
|
[ tip_lucrare, special, datal, id_program, nume_program, prenume_utilizator, nume_utilizator, ROUND(ore_lucrate,2) as ore_lucrate ] + ;
|
|
[ from luc_vlucrari_clienti_special where special = 1 and DATAL between ]+;
|
|
[ to_date(] + Dtos(pdData1) + [,'YYYYMMDD') and to_date(] + Dtos(pdData2) + [,'YYYYMMDD') ] + ;
|
|
[order by nume_client, nume_program, datal desc],'crslucCli')
|
|
If lnSucces < 0
|
|
Aerror(lAeroare)
|
|
Messagebox(lAeroare(3))
|
|
Else
|
|
Select crslucCli
|
|
If Reccount() = 0
|
|
Messagebox('Nu exista inregistrari pentru selectia facuta',0+16)
|
|
ELSE
|
|
DO LISTAREUSERREPORT WITH 'crslucCli', 'FRX', 'rap_clienti_special'
|
|
*!* Report Form rap_clienti_special To Printer Prompt Preview
|
|
Endif
|
|
Endif
|
|
SQLDisconnect(lcConnect)
|
|
Use In (Select("crslucCli"))
|
|
|
|
Endproc
|
|
|
|
********************* inceput rapoarte_cl_CONTAFIN ******************
|
|
Procedure rapoarte_cl_CONTAFIN
|
|
|
|
Local lcConnect, lnSucces,lAeroare
|
|
lcConnect = SQLConnect('ROA_CENTRAL','soft','soft')
|
|
lnSucces= SQLExec(lcConnect,[select * from luc_vlucrari l where ]+;
|
|
[ l.tip_lucrare in (2,3) AND l.VALIDAT=1 and l.id_grup = 1 and l.special = 0 ]+;
|
|
[ and DATAL between ]+;
|
|
[ to_date(']+Dtos(pdData1)+[','YYYYMMDD') and to_date(']+Dtos(pdData2)+[','YYYYMMDD') ]+ ;
|
|
[order by nume_program, DATAL desc ],'crslucCli')
|
|
If lnSucces < 0
|
|
Aerror(lAeroare)
|
|
Messagebox(lAeroare(3))
|
|
Else
|
|
Select crslucCli
|
|
If Reccount() = 0
|
|
Messagebox('Nu exista inregistrari pentru selectia facuta',0+16)
|
|
ELSE
|
|
DO LISTAREUSERREPORT WITH 'crslucCli', 'FRX', 'rap_clienti'
|
|
*!* Report Form rap_clienti To Printer Prompt Preview
|
|
Endif
|
|
Endif
|
|
SQLDisconnect(lcConnect)
|
|
Use In (Select("crslucCli"))
|
|
|
|
Endproc
|
|
|
|
********************* inceput rapoarte_cl_ROA ***************************
|
|
Procedure rapoarte_cl_ROA
|
|
|
|
Local lcConnect, lnSucces,lAeroare
|
|
Set Date Dmy
|
|
Set Century On
|
|
*!* pddata1 = DATE(2007,7,1)
|
|
*!* pddata2 = DATE(2007,7,31)
|
|
lcConnect = SQLConnect('ROA_CENTRAL','soft','soft')
|
|
lnSucces = SQLExec(lcConnect,[select * from luc_vlucrari l where ]+;
|
|
[ l.tip_lucrare in (2,3) AND l.VALIDAT=1 and l.id_grup = 11 and l.special = 0 ]+;
|
|
[ and DATAL between ]+;
|
|
[ to_date(] + Dtos(pdData1) + [,'YYYYMMDD') and to_date(] + Dtos(pdData2)+[,'YYYYMMDD') ]+ ;
|
|
[order by nume_program, DATAL desc ],'crslucCli')
|
|
|
|
If lnSucces < 0
|
|
Aerror(lAeroare)
|
|
Messagebox(lAeroare(3))
|
|
Else
|
|
Select crslucCli
|
|
If Reccount() = 0
|
|
Messagebox('Nu exista inregistrari pentru selectia facuta',0+16)
|
|
ELSE
|
|
DO LISTAREUSERREPORT WITH 'crslucCli', 'FRX', 'rap_clienti'
|
|
*!* Report Form rap_clienti To Printer Prompt Preview
|
|
Endif
|
|
Endif
|
|
SQLDisconnect(lcConnect)
|
|
Use In (Select("crslucCli"))
|
|
|
|
Endproc
|
|
|
|
***************************** soft_trimis_clienti **************************
|
|
Procedure soft_trimis_cl
|
|
|
|
* Select crs_prg_clie
|
|
* Report Form rap_inform To Printer Prompt Preview
|
|
|
|
Endproc
|
|
|
|
PROCEDURE soft_trimis_cl_manual
|
|
LOCAL loFrm
|
|
loFrm = CREATEOBJECT("frm_raport_versiuni")
|
|
loFrm.Show(1)
|
|
RELEASE loFrm
|
|
ENDPROC
|
|
*************************** rapoarte_ultime_modificari
|
|
Procedure rapoarte_ultime_modificari
|
|
Lparameters tnCustId, tcListaPrograme
|
|
|
|
PRIVATE pdDataInitiala, pdDataFinala, pcTitlu
|
|
Local lcConnect, lnSucces, lAeroare, lcVersiune, lcSql, x, i, lcLista, lcWhere, lnCustId
|
|
* lcVersiune = versiune(crsProgs.versiune)
|
|
* lclist = [(]
|
|
lnCustId = tnCustId
|
|
*!* 30.08.2010
|
|
pcTitlu = PADR('BULETIN INFORMATIV', 100, ' ')
|
|
pcTitlu = rbInputBox( "Titlu raport", "Titlu", m.pcTitlu)
|
|
|
|
pdDataInitiala = {}
|
|
pdDataInitiala = rbInputBox( "Data initiala", "Data", m.pdDataInitiala)
|
|
|
|
pdDataFinala = {}
|
|
pdDataFinala = rbInputBox( "Data finala", "Data", m.pdDataFinala)
|
|
|
|
|
|
lcSql = [select vsc.program,l.versiune,vsc.versiune_maxima,l.explicatie_client, ] + ;
|
|
[ vsc.customer_id,vsc.data_plec, vsc.id as id_program ,l.datal, l.titlu, l.localizare ] + ;
|
|
[ from vsc_versiune_max_inst_dv vsc ] + ;
|
|
[ join luc_lucrari l on l.id_program = vsc.id ] + ;
|
|
[ and ] + IIF(EMPTY(m.pdDataInitiala), [trunc(vsc.data_plec)], [?m.pdDataInitiala]) + [ <= trunc(l.datal) ] + ;
|
|
IIF(EMPTY(m.pdDataFinala), [], [ and ?m.pdDataFinala >= trunc(l.datal) ]) + ;
|
|
[ where vsc.customer_id = ] + ALLTRIM(STR(lncustid)) + ;
|
|
IIF(EMPTY(m.pdDataInitiala), [ and vsc.versiune <> vsc.versiune_maxima ], []) + ;
|
|
[ and l.explicatie_client is not null ] + ;
|
|
[ and l.versiune <> vsc.versiune ] + ; && v 1.0.38
|
|
[ and (L.SPECIAL = 0 OR (L.SPECIAL = 1 AND l.id_client = ] + ALLTRIM(STR(lncustid)) + [)) ] + ;
|
|
[ order by 1]
|
|
*!* 30.08.2010 ^
|
|
|
|
goExecutor.oexecute(lcSql,"crsTest")
|
|
|
|
*!* 25.01.2011
|
|
*!* x = SQLConnect("JCSSERVER","SOFT_SERII","123")
|
|
x = SQLConnect(goApp.cHostSerii, goApp.cUsernameSerii, goApp.cPasswordSerii)
|
|
If x < 0
|
|
AERROR(laEroare)
|
|
MESSAGEBOX(laEroare(3))
|
|
Return
|
|
Endif
|
|
*!* 25.01.2011 ^
|
|
|
|
|
|
lcSql = [select DISTINCT customer_id, NUME, ID_PROGRAM, (CASE WHEN Upper(PROGRAM) ] + ;
|
|
[LIKE 'INDEX%' THEN 'MANUAL' ELSE PROGRAM END) AS PROGRAM from vgen_programe ]
|
|
lnSucces = SQLExec(x, lcSql, "crsProgsTemp1") && crsprogstemp1
|
|
* [WHERE ID_CLIENT =]+Transform(lnIdClient)+[ ORDER BY 2, 4]
|
|
SQLDisconnect(x)
|
|
|
|
* lcwhere =[ WHERE ] + IIF(ALLTRIM(tcListaPrograme)!=[()],[ct.id_program in &tcListaPrograme ],[1=2 ] )
|
|
If Alltrim(tcListaPrograme)!=[()]
|
|
lcWhere = [ where cp.id_program in ] + tcListaPrograme
|
|
Else
|
|
lcWhere = [ where 1=2 ]
|
|
Endif
|
|
|
|
Select ct.Program As nume_program, ct.explicatie_client, ct.datal, ct.titlu, ;
|
|
ct.localizare, ct.versiune, ct.versiune_maxima ;
|
|
From crsTest ct;
|
|
JOIN crsprogstemp1 cp On cp.customer_id = ct.customer_id And cp.id_program = ct.id_program ;
|
|
&lcWhere ;
|
|
ORDER By ct.Program, ct.datal Into Cursor crslucCli
|
|
|
|
Select Min(datal) As data1, Max(datal) As Data2 From crslucCli Into Cursor crsData
|
|
Select crsData
|
|
pdData1 = data1
|
|
pdData2 = data2
|
|
Select crslucCli
|
|
If Reccount() = 0
|
|
Messagebox('Nu exista inregistrari pentru selectia facuta',0+16)
|
|
Else
|
|
*!* Report Form rap_clienti To Printer Prompt Preview
|
|
DO LISTAREUSERREPORT WITH 'crslucCli', 'FRX', 'rap_clienti'
|
|
&& tcAlias, tcTipExport, tcRaport, tcLogoPath, tcReportPreviewer, toPreviewerConfig && tcDestinationFile, tlDontOpenFile
|
|
Endif
|
|
|
|
Release paAles
|
|
Use In (Select("crstest"))
|
|
Use In (Select("crsprogstemp1"))
|
|
Use In (Select("crslucCli"))
|
|
|
|
Endproc && rapoarte_ultime_modificari^
|
|
|
|
|
|
|
|
|
|
********************* INCEPUT GetReportPath **********************
|
|
* PROCEDURE GetReportPath ( tcReportName )
|
|
* Date : 04.11.2009
|
|
* author : marius.mutu
|
|
* description: intoarce calea CONTAFIN\USERREPORTS
|
|
******************************************
|
|
PROCEDURE GetReportPath
|
|
Local lcAppPath, lcAppName, liAt, lcDirgen, lcUserRepPath,lcAlias
|
|
lcAppPath=Addbs(Justpath(Sys(16,0)))
|
|
lcAppName=Allt(Uppe(Juststem(Sys(16,0))))
|
|
liAt=Rat("\",lcAppPath,2)
|
|
lcDirgen=Addbs(Left(lcAppPath,liAt-1))
|
|
lcUserRepPath = lcDirgen + 'USERREPORTS\'
|
|
If !Directory(lcUserRepPath)
|
|
Md (lcUserRepPath)
|
|
ENDIF
|
|
RETURN lcUserRepPath
|
|
ENDPROC
|
|
|
|
********************* INCEPUT Get_report_path **********************
|
|
* PROCEDURE Get_report_path( tcReportName )
|
|
* Date : 26.04.2005, 16:22:03
|
|
* author : marius.mutu
|
|
* description: intoarce calea raportului (EXE SAU USERREPORTPATH\PROGRAM\FIRMA\USR_RAPORT.FRX daca glFacturiPersonalizate)
|
|
******************************************
|
|
Procedure Get_report_path
|
|
Lparameters tcReportName
|
|
Local lcReportName, llFacturiPersonalizate
|
|
|
|
lcReportName = Alltrim(tcReportName) + ".FRX"
|
|
|
|
*!* 04.11.2009
|
|
llFacturiPersonalizate = .F.
|
|
|
|
IF TYPE('glFacturiPersonalizate') <> 'U'
|
|
llFacturiPersonalizate = glFacturiPersonalizate
|
|
ENDIF
|
|
*!* 04.11.2009 ^
|
|
|
|
If llFacturiPersonalizate
|
|
*!* 26.10.2009
|
|
*!* lcFile = GetReportPath() + "USR_" + lcReportName
|
|
lcFile = getUserRepPath() + "USR_" + lcReportName
|
|
*!* 26.10.2009 ^
|
|
If !File(lcFile)
|
|
Use (lcReportName) In 0 Alias UserReport Again Shared
|
|
Select UserReport
|
|
Copy To (lcFile)
|
|
Use In UserReport
|
|
Endif
|
|
lcReportPath = lcFile
|
|
Else
|
|
lcReportPath = lcReportName
|
|
Endif
|
|
|
|
Return lcReportPath
|
|
|
|
Endproc
|
|
********************* SFARSIT Get_report_path **********************
|
|
|
|
|
|
********************* INCEPUT Modifica_raport_utilizator **********************
|
|
* PROCEDURE Modifica_raport_utilizator( )
|
|
* Date : 26.04.2005, 17:44:33
|
|
* author : marius.mutu
|
|
* description:
|
|
|
|
Procedure Modifica_raport_utilizator( )
|
|
|
|
Cd (gcUserReports)
|
|
lcFile = Getfile("frx","Alegeti un raport","Alege")
|
|
If File(lcFile) And Upper(Justext(lcFile)) = "FRX"
|
|
Modify Report (lcFile)
|
|
Endif
|
|
|
|
|
|
Endproc
|
|
********************* SFARSIT Modifica_raport_utilizator **********************
|
|
|
|
|
|
*!* PROCEDURI_RAPOARTE.PRG
|
|
|
|
|
|
*!* LISTARE RAPORT UTILIZATOR
|
|
*!* PARAMETRI : tcAlias - alias-ul cursorului; tcTipExport - FRX/XLS; tcRaport - numele raportului; tcLogoPath - daca pe raport trebuie sa am o imagine logo in acelasi director cu raportul
|
|
*!* Se listeaza raportul USR_<tcRaport> din directorul \\SERVER\ROA\USERREPORTS\<APPLICATIE>\<FIRMA>\ daca exista
|
|
*!* Daca nu exista raporturl USR_<tcRaport> se listeaza raportul <tcRaport> default
|
|
*!* tcReportPreviewer - procedura pentru preview rapoarte "FoxyPreview" (default gcReportPreviewer)
|
|
*!* toPreviewerConfig - obiect PreviewerConfig cu setari pentru tcReportPreviewer
|
|
Procedure LISTAREUSERREPORT
|
|
Lparameters tcAlias, tcTipExport, tcRaport, tcLogoPath, tcReportPreviewer, toPreviewerConfig && tcDestinationFile, tlDontOpenFile
|
|
Local lcEroare, laEroare,llEroare
|
|
Dimension laEroare[1,1]
|
|
|
|
Local lcSelect, lcRaportPath, lcTipExport, lcLogoPath, lcLogoPathDest, llDeleteRaport, llDeleteLogo
|
|
LOCAL lcOldReportPreview, lcOldReportBehaviour
|
|
LOCAL loEx
|
|
llDeleteRaport = .F.
|
|
llDeleteLogo = .F.
|
|
|
|
*!* 07.04.2010
|
|
LOCAL lcReportPreviewer
|
|
lcReportPreviewer = IIF(EMPTY(tcReportPreviewer), IIF(TYPE('gcReportPreviewer') = 'C', gcReportPreviewer, ""), tcReportPreviewer)
|
|
*!* 07.04.2010 ^
|
|
|
|
If Type('tcTipExport') = 'C'
|
|
lcTipExport = Upper(Alltrim(tcTipExport))
|
|
Else
|
|
If Empty(tcRaport)
|
|
lcTipExport = 'XLS'
|
|
Else
|
|
lcTipExport = 'FRX'
|
|
Endif
|
|
Endif
|
|
If Empty(tcAlias)
|
|
Return
|
|
Endif
|
|
If !Used(tcAlias)
|
|
Return
|
|
Endif
|
|
*!* 26.10.2009
|
|
lcLogoPath = Iif(Type('tcLogoPath') <> 'C' Or Empty(tcLogoPath), getUserRepPath() + 'logo.jpg', tcLogoPath) && USERREPORTS\PROGRAM\FIRMA\LOGO.JPG
|
|
If !File(lcLogoPath)
|
|
lcLogoPath = GetReportPath() + 'logo.jpg' && USERREPORTS\LOGO.JPG
|
|
If !File(lcLogoPath)
|
|
lcLogoPath = ''
|
|
ENDIF
|
|
ENDIF
|
|
*!* 26.10.2009 ^
|
|
|
|
Do Case
|
|
Case lcTipExport = 'FRX'
|
|
|
|
lcRaportPath = getUserRepPath() + [USR_] + Juststem(tcRaport) + [.FRX] && USERREPORTS\PROGRAM\FIRMA\USR_RAPORT.FRX
|
|
|
|
*!* 04.11.2009
|
|
IF !FILE(lcRaportPath)
|
|
lcRaportPath = GetReportPath() + [USR_] + Juststem(tcRaport) + [.FRX] && USERREPORTS\USR_RAPORT.FRX
|
|
*!* Get_report_path(Juststem(tcRaport))
|
|
ENDIF
|
|
*!* 04.11.2009 ^
|
|
|
|
If !File(lcRaportPath)
|
|
lcRaportPath = tcRaport && raportul din executabil
|
|
|
|
If !Empty(lcLogoPath)
|
|
***--- inlocuire logo
|
|
|
|
lcRaport = Juststem(tcRaport) + [.FRX]
|
|
lcRaportPath = Addbs(gcTempPath) + [USR_] + lcRaport
|
|
*!* 07.04.2010
|
|
lcLogoPathDest = Addbs(gcTempPath) + JUSTFNAME(lcLogoPath) && "logo.jpg"
|
|
*!* 07.04.2010 ^
|
|
|
|
If Used(Juststem(lcRaportPath))
|
|
Use In (Select(Juststem(lcRaportPath)))
|
|
Endif
|
|
|
|
Use (lcRaport) In 0 Alias rapFactura
|
|
Select rapFactura
|
|
Copy To (lcRaportPath)
|
|
Use In (Select('rapFactura'))
|
|
Use In Select(Juststem(lcRaport))
|
|
|
|
|
|
Copy File (lcLogoPath) To (lcLogoPathDest)
|
|
llDeleteRaport = .T.
|
|
llDeleteLogo = .T.
|
|
Endif
|
|
***---
|
|
|
|
Endif
|
|
|
|
lcSelect = Select()
|
|
If !Empty(tcAlias) And Used(tcAlias)
|
|
Select (tcAlias)
|
|
Endif
|
|
lcError = On('error')
|
|
llEroare = .F.
|
|
On Error llEroare = .T.
|
|
Do While .T.
|
|
*!* 07.04.2010
|
|
DO CASE
|
|
CASE EMPTY(lcReportPreviewer)
|
|
Report Form (lcRaportPath) To Printer Prompt Preview
|
|
CASE VERSION(5) < 800
|
|
Report Form (lcRaportPath) To Printer Prompt Preview
|
|
OTHERWISE
|
|
TRY
|
|
lcOldReportBehaviour = SET("ReportBehavior")
|
|
DO &lcReportPreviewer WITH lcRaportPath, toPreviewerConfig && tcDestinationFile, tlDontOpenFile
|
|
SET REPORTBEHAVIOR &lcOldReportBehaviour
|
|
CATCH TO loEx
|
|
MESSAGEBOX('Eroare: ' + loEx.Message + CRLF + 'Procedura: ' + loEx.Procedure + CRLF + 'Cod: ' + loEx.LineContents + CRLF + 'Linia nr: ' + TRANSFORM(loEx.LineNo), 0+32, _screen.Caption)
|
|
* llEroare = .F.
|
|
Report Form (lcRaportPath) To Printer Prompt Preview
|
|
ENDTRY
|
|
ENDCASE
|
|
*!* 07.04.2010 ^
|
|
If llEroare
|
|
Aerror(laEroare)
|
|
If laEroare[1] = 1958
|
|
lnRaspuns = Messagebox("Eroare la driverul imprimantei.Doriti sa reincercati listarea?",4+32+256,"Confirmare relistare")
|
|
If lnRaspuns <> 6
|
|
Exit
|
|
Else
|
|
llEroare = .F.
|
|
Endif
|
|
Else
|
|
Messagebox(laEroare[2] + [ ] + Alltrim(Str(laEroare[1])) + [ ] + ALLTRIM(TRANSFORM(laEroare(3))))
|
|
Exit
|
|
Endif
|
|
Else
|
|
Exit
|
|
Endif
|
|
Enddo
|
|
On Error &lcError
|
|
|
|
Select (lcSelect)
|
|
|
|
Case lcTipExport = 'XLS'
|
|
export_xls(tcAlias)
|
|
Endcase
|
|
If llDeleteRaport And File(lcRaportPath)
|
|
Delete File FORCEEXT(lcRaportPath,'*')
|
|
Endif
|
|
If llDeleteLogo And File(lcLogoPathDest)
|
|
Delete File (lcLogoPathDest)
|
|
Endif
|
|
Release lcEroare, laEroare,llEroare
|
|
|
|
|
|
Endproc && LISTAREUSERREPORT
|
|
|
|
********************* INCEPUT Modifica_raport_utilizator **********************
|
|
* PROCEDURE Modifica_raport_utilizator
|
|
* Date : 26.07.2006, 17:44:33
|
|
* author : marius.mutu
|
|
Procedure Modifica_raport_utilizator
|
|
|
|
lcUserRepPath = getUserRepPath()
|
|
Cd (lcUserRepPath)
|
|
lcFile = Getfile("frx","Alegeti un raport","Alege")
|
|
If File(lcFile) And Upper(Justext(lcFile)) = "FRX"
|
|
Modify Report (lcFile)
|
|
Endif
|
|
|
|
Endproc && Modifica_raport_utilizator
|
|
********************* SFARSIT Modifica_raport_utilizator **********************
|
|
|
|
*!* INTOARCE DIRECTORUL CU RAPOARTE UTILIZATOR PENTRU APLICATIA, SCHEMA CURENTA
|
|
Function getUserRepPath
|
|
Local lcAppPath, lcAppName, liAt, lcDirgen, lcUserRepPath,lcAlias
|
|
*!* 07.04.2010
|
|
IF TYPE('gcAppPath') = 'C'
|
|
lcAppPath = gcAppPath
|
|
ELSE
|
|
lcAppPath=Addbs(Justpath(Sys(16,0)))
|
|
lcAppPath = STRTRAN(lcAppPath,'PROGRAME\','')
|
|
ENDIF
|
|
IF TYPE('gcAppName') = 'C'
|
|
lcAppName = gcAppName
|
|
ELSE
|
|
lcAppName = Allt(Uppe(Juststem(Sys(16,0))))
|
|
ENDIF
|
|
*!* 07.04.2010 ^
|
|
liAt=Rat("\",lcAppPath,2)
|
|
lcDirgen=Addbs(Left(lcAppPath,liAt-1))
|
|
lcUserRepPath = lcDirgen + 'USERREPORTS\'
|
|
If !Directory(lcUserRepPath)
|
|
Md (lcUserRepPath)
|
|
Endif
|
|
lcUserRepPath = lcUserRepPath + lcAppName + '\'
|
|
If !Directory(lcUserRepPath)
|
|
Md (lcUserRepPath)
|
|
Endif
|
|
|
|
lcUserRepPath = lcUserRepPath + IIF(TYPE('nfscurt') = 'C', ALLTRIM(m.nfscurt) + '\', '')
|
|
If !Directory(lcUserRepPath)
|
|
Md (lcUserRepPath)
|
|
Endif
|
|
Return lcUserRepPath
|
|
|
|
Endfunc
|
|
|
|
****************************************************************************
|
|
*!* extrage frx din executabil pe disc in directorul USERREPORTS
|
|
Procedure UserReport2File
|
|
Lparameters tcRaport
|
|
|
|
Local lcRaport, lcFile
|
|
If Empty(tcRaport)
|
|
lcRaport= Inputbox("Raport","Scrieti numele raportului","raport.frx")
|
|
Else
|
|
lcRaport = tcRaport
|
|
Endif
|
|
|
|
If Empty(lcRaport)
|
|
Return
|
|
Endif
|
|
|
|
lcRaport = Juststem(lcRaport) + '.frx'
|
|
lcFile = getUserRepPath() + "USR_" + lcRaport
|
|
If File(lcFile)
|
|
Return
|
|
Endif
|
|
|
|
*!* TRY
|
|
*!* USE (lcRaport) IN 0 again SHARED ALIAS crsRaportTemp
|
|
*!* ENDTRY
|
|
|
|
If !File(lcRaport)
|
|
Messagebox('Nu exista raportul ' + lcRaport)
|
|
Else
|
|
Use (lcRaport) In 0 Again Shared Alias crsRaportTemp
|
|
Select crsRaportTemp
|
|
Copy To (lcFile)
|
|
Use In crsRaportTemp
|
|
Endif
|
|
|
|
Endproc && UserReport2File
|
|
|
|
*!* INTOARCE CALEA COMPLETA A RAPORTULUI UTILIZATOR USR_<RAPORT>.FRX, DACA EXISTA, ALTFEL, <RAPORT.FRX>
|
|
FUNCTION getUserRepFile
|
|
LPARAMETERS tcRaport
|
|
LOCAL lcRaportFile
|
|
|
|
lcRaportFile = getUserRepPath() + [USR_] + Juststem(tcRaport) + [.FRX] && USERREPORTS\PROGRAM\FIRMA\USR_RAPORT.FRX
|
|
IF !FILE(lcRaportFile)
|
|
lcRaportFile = Juststem(tcRaport) + [.FRX] && RAPORTUL IN EXECUTABIL
|
|
ENDIF
|
|
|
|
RETURN lcRaportFile
|
|
ENDFUNC && getUserRepFile
|
|
|
|
*!* Previewer rapoarte - foloseste gcReportPreviewerPath / gcAppPath pentru localizarea FoxyPreviewer.App
|
|
Procedure FoxyPreview
|
|
Lparameters tcRaport, toPreviewerConfig && tcDestinationFile, tlDontOpenFile
|
|
Local lcRaport, lcFoxyPath, lcComunContafinPath
|
|
LOCAL llOpenDestinationFile
|
|
llOpenDestinationFile = .T.
|
|
|
|
IF TYPE('toPreviewerConfig') <> 'O'
|
|
toPreviewerConfig = CREATEOBJECT("PreviewerConfig")
|
|
ENDIF
|
|
|
|
lcRaport = Forceext(tcRaport, 'frx')
|
|
lcFoxyPath = IIF(TYPE('gcReportPreviewerPath') = 'C', ADDBS(gcReportPreviewerPath) + "FoxyPreviewer.App", "FoxyPreviewer.App")
|
|
IF !FILE(lcFoxyPath)
|
|
lcComunContafinPath = LEFT(ADDBS(gcAppPath), RAT('\',ADDBS(gcAppPath),2)) + 'COMUNCONTAFIN\'
|
|
lcFoxyPath = lcComunContafinPath + "FoxyPreviewer.App"
|
|
IF !FILE(lcFoxyPath)
|
|
lcFoxyPath = ADDBS(GETFILE("app","FoxyPreviewer.App","Open",0,"Alegeti locatia COMUNCONTAFIN\FoxyPreviewer.App"))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF EMPTY(NVL(lcFoxyPath,''))
|
|
Report Form (tcRaport) To Printer Prompt Preview
|
|
RETURN
|
|
ENDIF
|
|
|
|
If !'FOXYPREVIEWER'$Upper(Set("Procedure"))
|
|
Set Procedure To (lcFoxyPath) Additive
|
|
Endif
|
|
|
|
If Empty(Justpath(m.lcRaport)) && raporte in executabil - trebuie create pe disc
|
|
Local loReport As "FoxyPreviewerCaller" && Of "FoxyPreviewerCaller.Prg"
|
|
loReport = Createobject("FoxyPreviewerCaller")
|
|
Else && rapoarte pe disc
|
|
Local loReport As "PreviewHelper" Of "FoxyPreviewer.App"
|
|
loReport = Createobject("PreviewHelper")
|
|
ENDIF
|
|
|
|
IF TYPE('loReport') <> 'O'
|
|
Report Form (tcRaport) To Printer Prompt Preview
|
|
RETURN
|
|
ENDIF
|
|
|
|
With loReport As ReportHelper
|
|
.AddReport(m.lcRaport, toPreviewerConfig.GetValue("cClauses"))
|
|
|
|
**********************************************
|
|
* Optional available parameters
|
|
**********************************************
|
|
.cTitle = toPreviewerConfig.GetValue("cTitle")
|
|
.cDestFile = toPreviewerConfig.GetValue("cDestFile") && destination file - if not empty then save without preview
|
|
|
|
.lSendToEmail = toPreviewerConfig.GetValue("lSendToEmail") && adds the send to email button
|
|
|
|
.lSaveToFile = toPreviewerConfig.GetValue("lSaveToFile") && adds the save to file button
|
|
.lSaveAsImage = toPreviewerConfig.GetValue("lSaveAsImage")
|
|
.lSaveAsHTML = toPreviewerConfig.GetValue("lSaveAsHTML")
|
|
.lSaveAsRTF = toPreviewerConfig.GetValue("lSaveAsRTF")
|
|
.lSaveAsXLS = toPreviewerConfig.GetValue("lSaveAsXLS")
|
|
.lSaveAsPDF = toPreviewerConfig.GetValue("lSaveAsPDF")
|
|
|
|
.lShowCopies = toPreviewerConfig.GetValue("lShowCopies") && shows the copies spinner
|
|
.lShowMiniatures = toPreviewerConfig.GetValue("lShowMiniatures") && shows the miniatures page
|
|
.nCopies = toPreviewerConfig.GetValue("nCopies") && The quantity of copies to be printed
|
|
.lPrintVisible = toPreviewerConfig.GetValue("lPrintVisible") && shows the print button in the toolbar
|
|
.cDefaultListener = toPreviewerConfig.GetValue("cDefaultListener")
|
|
|
|
.nCanvasCount = toPreviewerConfig.GetValue("nCanvasCount") && initial nr of pages rendered on the preview form.
|
|
*!* && Valid values are 1 (default), 2, or 4.
|
|
|
|
.nZoomLevel = toPreviewerConfig.GetValue("nZoomLevel") && initial zoom level of the preview window. Possible values are:
|
|
*!* && 1-10%, 2-25%, 3-50%, 4-75%, 5-100% default, 6-150% ;
|
|
*!* && 7-200%, 8-300%, 9-500%, 10-whole page
|
|
|
|
.lPDFasImage = toPreviewerConfig.GetValue("lPDFasImage")
|
|
|
|
.lPrinterPref = toPreviewerConfig.GetValue("lPrinterPref")
|
|
|
|
.oListener = toPreviewerConfig.GetValue("oListener")
|
|
.cPrinterName = toPreviewerConfig.GetValue("cPrinterName")
|
|
|
|
.nWindowState = toPreviewerConfig.GetValue("nWindowState")
|
|
.nDockType = toPreviewerConfig.GetValue("nDockType")
|
|
|
|
.cFormIcon = toPreviewerConfig.GetValue("cFormIcon")
|
|
|
|
.lEmailAuto = toPreviewerConfig.GetValue("lEmailAuto")
|
|
.cEmailType = toPreviewerConfig.GetValue("cEmailType")
|
|
.lEmailed = toPreviewerConfig.GetValue("lEmailed")
|
|
.cCodePage = toPreviewerConfig.GetValue("cCodePage")
|
|
|
|
**********************************************
|
|
loReport.RunReport()
|
|
|
|
llOpenDestinationFile = toPreviewerConfig.GetValue("lOpenDestFile") && automatically open the destination file after save
|
|
|
|
IF m.llOpenDestinationFile
|
|
Do Case
|
|
Case .lPrinted
|
|
*!* Messagebox("Report was printed !",64, "Report status")
|
|
Case loReport.lSaved
|
|
Messagebox("Raportul a fost salvat ca fisier: " + Chr(13) + .cDestFile, 64, _Screen.Caption)
|
|
=OPEN_DEFAULT_APP(.cDestFile)
|
|
|
|
*!* Otherwise
|
|
*!* Messagebox("Report Preview was closed without saving or printing",48, "Report status")
|
|
|
|
ENDCASE
|
|
ENDIF
|
|
|
|
Endwith
|
|
|
|
Endproc && FoxyPreview
|
|
|
|
|
|
*!* clasa pentru preview frx din executabil - le salveaza pe disc si apoi le previzualizeaza
|
|
DEFINE CLASS FoxyPreviewerCaller AS Custom
|
|
cPrinterName = SET("Printer",3)
|
|
|
|
lSaveToFile = .T. && adds the save to file button
|
|
lSendToEmail = .T. && adds the send to email button
|
|
lPrintVisible = .T. && shows the print button in the toolbar
|
|
lShowCopies = .T. && shows the copies spinner
|
|
lShowMiniatures = .T. && shows the miniatures page
|
|
lPrinterPref = .T. && shows the printer preferences button
|
|
|
|
* Output types allowed in the "Save as.." button from the toolbar
|
|
lSaveAsImage = .T.
|
|
lSaveAsHTML = .T.
|
|
lSaveAsRTF = .T.
|
|
lSaveAsXLS = .T.
|
|
lSaveAsPDF = .T.
|
|
|
|
nPageTotal = 0 && Total pages of the current report
|
|
nCopies = 1 && The quantity of copies to be printed
|
|
cTitle = "" && The preview window title
|
|
oListener = NULL
|
|
cDefaultListener = "FXLISTENER"
|
|
nCanvasCount = 1 && initial nr of pages rendered on the preview form.
|
|
&& Valid values are 1 (default), 2, or 4.
|
|
|
|
nZoomLevel = 5 && initial zoom level of the preview window. Possible values are:
|
|
&& 1-10%, 2-25%, 3-50%, 4-75%, 5-100% default, 6-150% ;
|
|
&& 7-200%, 8-300%, 9-500%, 10-whole page
|
|
|
|
lExtended = .T. && Flag that tells if the report is being run automatically
|
|
&& using the _REPORTPERVIEW global variable
|
|
|
|
nWindowState = 0 && Normal
|
|
nDockType = .F.
|
|
|
|
cDestFile = "" && the destination file (image, htm, pdf, etc)
|
|
lPrinted = .F. && knows if the user printed the report
|
|
lSaved = .F. && knows if the user saved the report to a file
|
|
|
|
cFormIcon = "" && "wwrite.ico"
|
|
lEmailAuto = .T.
|
|
cEmailType = "PDF"
|
|
lEmailed = .F.
|
|
cCodePage = "CP1252" && CodePage, to be used by PDF Listener
|
|
|
|
lPDFasImage = .F.
|
|
|
|
* Internal use properties
|
|
_oReports = "" && Internal use, collection that contains the report names to be used
|
|
_oClauses = ""
|
|
|
|
|
|
PROCEDURE AddReport(tcReport, tcClauses)
|
|
* populates a collection object with the report files and clauses
|
|
* This method can be called many times, providing an easy way to merge reports.
|
|
|
|
LOCAL lcReport, lcTempDir, lcFile
|
|
lcTempDir = ADDBS(GETENV("TEMP"))
|
|
|
|
* Retrieve the FRX and FRT files from the EXE
|
|
lcFile = lcTempDir + "TMP_FP_" + SYS(2015) + "."
|
|
|
|
IF EMPTY(SYS(2000, tcReport))
|
|
STRTOFILE(FILETOSTR(FORCEEXT(tcReport,"FRX")), lcFile + "FRX")
|
|
STRTOFILE(FILETOSTR(FORCEEXT(tcReport,"FRT")), lcFile + "FRT")
|
|
ELSE
|
|
lcFile = tcReport
|
|
ENDIF
|
|
|
|
IF VARTYPE(This._oReports) <> "O"
|
|
This._oReports = CREATEOBJECT("Collection")
|
|
This._oClauses = CREATEOBJECT("Collection")
|
|
ENDIF
|
|
This._oReports.Add(FORCEEXT(lcFile, "FRX"))
|
|
This._oClauses.Add(EVL(tcClauses,""))
|
|
ENDPROC
|
|
|
|
|
|
PROCEDURE RunReport
|
|
LOCAL lcFoxyPath, lcComunContafinPath
|
|
|
|
If !'FOXYPREVIEWER'$Upper(Set("Procedure"))
|
|
lcFoxyPath = IIF(TYPE('gcReportPreviewerPath') = 'C', ADDBS(gcReportPreviewerPath) + "FoxyPreviewer.App", "FoxyPreviewer.App")
|
|
IF !FILE(lcFoxyPath)
|
|
lcComunContafinPath = LEFT(ADDBS(gcAppPath), RAT('\',ADDBS(gcAppPath),2)) + 'COMUNCONTAFIN\'
|
|
lcFoxyPath = lcComunContafinPath + "FoxyPreviewer.App"
|
|
IF !FILE(lcFoxyPath)
|
|
lcFoxyPath = ADDBS(GETFILE("app","FoxyPreviewer.App","Open",0,"Alegeti locatia COMUNCONTAFIN\FoxyPreviewer.App"))
|
|
ENDIF
|
|
ENDIF
|
|
IF EMPTY(NVL(lcFoxyPath,''))
|
|
Report Form (tcRaport) To Printer Prompt Preview
|
|
RETURN
|
|
ENDIF
|
|
|
|
Set Procedure To (lcFoxyPath) Additive
|
|
ENDIF
|
|
|
|
|
|
LOCAL loReport as "PreviewHelper" OF "FoxyPreviewer.App"
|
|
loReport = CREATEOBJECT("PreviewHelper")
|
|
|
|
WITH loReport
|
|
|
|
LOCAL n, lnCount
|
|
lnCount = This._oReports.Count
|
|
FOR n = 1 TO lnCount
|
|
loReport.AddReport(This._oReports(n), This._oClauses(n))
|
|
ENDFOR
|
|
|
|
.cTitle = This.cTitle
|
|
.lSendToEmail = This.lSendToEmail
|
|
.lSaveToFile = This.lSaveToFile
|
|
.lShowCopies = This.lShowCopies
|
|
.lShowMiniatures = This.lShowMiniatures
|
|
.lPrintVisible = This.lPrintVisible
|
|
.lPrinterPref = This.lPrinterPref
|
|
|
|
.nCopies = This.nCopies
|
|
.lPrintVisible = This.lPrintVisible
|
|
.cDefaultListener = This.cDefaultListener
|
|
.nCanvasCount = This.nCanvasCount
|
|
.nZoomLevel = This.nZoomLevel
|
|
.oListener = This.oListener
|
|
.cPrinterName = This.cPrinterName
|
|
|
|
.lSaveAsImage = This.lSaveAsImage
|
|
.lSaveAsHTML = This.lSaveAsHTML
|
|
.lSaveAsRTF = This.lSaveAsRTF
|
|
.lSaveAsXLS = This.lSaveAsXLS
|
|
.lSaveAsPDF = This.lSaveAsPDF
|
|
|
|
.nWindowState = This.nWindowState
|
|
.nDockType = This.nDockType
|
|
.cDestFile = This.cDestFile
|
|
|
|
IF NOT EMPTY(This.cFormIcon)
|
|
.cFormIcon = This.cFormIcon
|
|
ENDIF
|
|
|
|
.lEmailAuto = This.lEmailAuto
|
|
.cEmailType = This.cEmailType
|
|
.lEmailed = This.lEmailed
|
|
.cCodePage = This.cCodePage
|
|
|
|
.lPDFasImage = This.lPDFasImage
|
|
ENDWITH
|
|
|
|
loReport.RunReport(This) && This flag will tell FoxyPreviewer that it has a caller object in an EXE
|
|
&& The main class will update the properties "lSaved" and "lPrinted"
|
|
|
|
ENDPROC
|
|
|
|
PROCEDURE Destroy
|
|
* Clean up, delete the temporary FRX files
|
|
LOCAL n, lnCount, lcFile
|
|
lnCount = This._oReports.Count
|
|
FOR n = 1 TO lnCount
|
|
lcFile = This._oReports(n)
|
|
IF LEFT(JUSTFNAME(lcFile),7) = "TMP_FP_" && We have a temp FRX file to delete
|
|
TRY
|
|
DELETE FILE (lcFile)
|
|
DELETE FILE FORCEEXT(lcFile, "FRT")
|
|
CATCH
|
|
ENDTRY
|
|
ENDIF
|
|
ENDFOR
|
|
ENDPROC
|
|
|
|
ENDDEFINE
|
|
|
|
DEFINE CLASS PreviewerConfig as Custom
|
|
cPrinterName = SET("Printer",3)
|
|
|
|
lSaveToFile = .T. && adds the save to file button
|
|
lSendToEmail = .T. && adds the send to email button
|
|
lPrintVisible = .T. && shows the print button in the toolbar
|
|
lShowCopies = .T. && shows the copies spinner
|
|
lShowMiniatures = .T. && shows the miniatures page
|
|
lPrinterPref = .T. && shows the printer preferences button
|
|
|
|
* Output types allowed in the "Save as.." button from the toolbar
|
|
lSaveAsImage = .T.
|
|
lSaveAsHTML = .T.
|
|
lSaveAsRTF = .T.
|
|
lSaveAsXLS = .T.
|
|
lSaveAsPDF = .T.
|
|
|
|
nPageTotal = 0 && Total pages of the current report
|
|
nCopies = 1 && The quantity of copies to be printed
|
|
cTitle = "" && The preview window title
|
|
oListener = NULL
|
|
cDefaultListener = "FXLISTENER"
|
|
nCanvasCount = 1 && initial nr of pages rendered on the preview form.
|
|
&& Valid values are 1 (default), 2, or 4.
|
|
|
|
nZoomLevel = 5 && initial zoom level of the preview window. Possible values are:
|
|
&& 1-10%, 2-25%, 3-50%, 4-75%, 5-100% default, 6-150% ;
|
|
&& 7-200%, 8-300%, 9-500%, 10-whole page
|
|
|
|
lExtended = .T. && Flag that tells if the report is being run automatically
|
|
&& using the _REPORTPERVIEW global variable
|
|
|
|
nWindowState = 0 && Normal
|
|
nDockType = .F.
|
|
|
|
cDestFile = "" && the destination file (image, htm, pdf, etc)
|
|
lOpenDestFile = .T. && automatically open the destination file after save
|
|
*!* lPrinted = .F. && knows if the user printed the report
|
|
*!* lSaved = .F. && knows if the user saved the report to a file
|
|
|
|
cFormIcon = "" && "wwrite.ico"
|
|
lEmailAuto = .T.
|
|
cEmailType = "PDF"
|
|
*!* lEmailed = .F.
|
|
cCodePage = "CP1252" && CodePage, to be used by PDF Listener
|
|
|
|
lPDFasImage = .F. && save PDF as image
|
|
cClauses = ""
|
|
|
|
|
|
|
|
PROCEDURE Init
|
|
*
|
|
ENDPROC && Init
|
|
|
|
*!* Seteaza valoarea unei proprietati daca exista sau adauga proprietatea, si intoarce valoarea
|
|
Procedure SetValue
|
|
Lparameters tcProperty, tuValue
|
|
|
|
If Type('THIS.&tcProperty') <> 'U'
|
|
This.&tcProperty = tuValue
|
|
Else
|
|
This.AddProperty(tcProperty, tuValue)
|
|
Endif
|
|
|
|
Return This.&tcProperty
|
|
|
|
Endproc && SetValue
|
|
|
|
*!* Intoarce valoarea unei proprietati daca exista, altfel valoarea empty() corespunzator tipului proprietatii
|
|
Function GetValue
|
|
Lparameters tcProperty
|
|
|
|
Local lcProperty, luValue
|
|
lcProperty = 'THIS.' + tcProperty
|
|
|
|
If Type('THIS.&tcProperty') <> 'U'
|
|
luValue = This.&tcProperty
|
|
Else
|
|
luValue = This.GetDefaultValue(tcProperty)
|
|
Endif
|
|
Return luValue
|
|
|
|
Endfunc && GetValue
|
|
|
|
*!* Intoarce valoarea empty() a unei proprietati dupa tip = prima litera din numele proprietatii daca nu primeste decat tcProperty
|
|
*!* Converteste tcValue la tipul variabilei tcProperty daca tcValue e primit ca parametru
|
|
Function GetDefaultValue
|
|
Lparameters tcProperty, tcValue
|
|
|
|
Local lcType, luValue
|
|
luValue = ""
|
|
lcType = Upper(Left(tcProperty,1))
|
|
llEmptyValue = Iif(Pcount() = 1, .T., .F.)
|
|
|
|
Do Case
|
|
Case lcType $ "CM"
|
|
luValue = Iif(llEmptyValue, '', tcValue)
|
|
Case lcType $ "NIF"
|
|
luValue = Iif(llEmptyValue, 0, Val(tcValue))
|
|
Case lcType = "T"
|
|
luValue = Iif(llEmptyValue, Dtot({}), Ctot(tcValue))
|
|
Case lcType = "D"
|
|
luValue = Iif(llEmptyValue, {}, Ctod(tcValue))
|
|
Case lcType = "L"
|
|
luValue = Iif(llEmptyValue, .F., Iif(tcValue = "1" Or Upper(tcValue) = "T" Or Upper(tcValue) = '.T.' Or Upper(tcValue) = 'YES', .T., .F.))
|
|
Otherwise
|
|
luValue = ""
|
|
Endcase
|
|
|
|
Return luValue
|
|
Endfunc && GetDefaultValue
|
|
|
|
*!* Intoarce .T. daca exista proprietatea
|
|
Function HasProperty
|
|
Lparameters tcProperty
|
|
|
|
Local lcProperty, llReturn
|
|
lcProperty = 'THIS.' + tcProperty
|
|
llReturn = .F.
|
|
|
|
If Type('THIS.&tcProperty') <> 'U'
|
|
llReturn = .T.
|
|
Endif
|
|
|
|
Return llReturn
|
|
|
|
Endfunc && HasProperty
|
|
ENDDEFINE && PreviewerConfig |