Files
roacont/Programe/export_sf_access.prg

516 lines
12 KiB
Plaintext

DEFINE CLASS export_sf_access AS custom
cPathKIT = "c:\bilant\"
cPathTempo = "c:\Temp\"
cBilant = "date1"
cCPP = "date2"
cDateInf = "date3"
cActive = "date4"
cFirma = "Date5"
&& ------------------------------INCEPUT: Init ------------------------------
*!* Procedura: Init
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 10:56
*!* Autor: MARIUS.MUTU
PROCEDURE INIT
LPARAMETERS tcPathKIT, tcPathTempo
IF TYPE('tcPathKIT')='C'
THIS.cPathKIT = ADDBS(tcPathKIT)
ENDIF
THIS.Init_Directoare(THIS.cPathKIT)
IF TYPE('tcPathTempo')='C'
THIS.cPathTempo = ADDBS(tcPathTempo)
ENDIF
THIS.Init_Directoare(THIS.cPathTempo)
ENDPROC
&& ------------------------------SFARSIT: Init ------------------------------
&& ------------------------------INCEPUT: Error ------------------------------
*!* Functia: Error
*!* Parametri: tnError, tcProcedura, tcMesaj
*!* Data/Ora generarii: 17/02/2004 11:35
*!* Autor: MARIUS.MUTU
FUNCTION ERRORH
LPARAMETERS tnError, tcProcedura, tnLinieMesaj
lcErrorNumber = ALLTRIM(STR(tnError))
lcProcedura = ALLTRIM(tcProcedura)
lcLinieMesaj = ALLTRIM(STR(tnLinieMesaj))
lcMesaj = MESSAGE(1)
lcText = "Eroarea nr. " + lcErrorNumber + CHR(13) + CHR(10) +;
"Procedura: " + lcProcedura + CHR(13) + CHR(10) +;
"Mesaj: " + lcMesaj + CHR(13) + CHR(10) +;
"Linia: " + lcLinieMesaj
= MESSAGEBOX(lcText)
ENDFUNC
&& ------------------------------SFARSIT: Error ------------------------------
&& ------------------------------INCEPUT: Init_Directoare ------------------------------
*!* Procedura: Init_Directoare
*!* Parametri: tcPath
*!* Data/Ora generarii: 17/02/2004 10:47
*!* Autor: MARIUS.MUTU
PROCEDURE Init_Directoare
LPARAMETERS tcPath
lcPath = ADDBS(tcPath)
IF !DIRECTORY(lcPath)
MD (lcPath)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Init_Directoare ------------------------------
&& ------------------------------INCEPUT: Copie_Fisiere_Vide ------------------------------
*!* Procedura: Copie_Fisiere_Vide
*!* Parametri: tcSPath, tcDPath, tcFileName
*!* Data/Ora generarii: 17/02/2004 11:07
*!* Autor: MARIUS.MUTU
PROCEDURE Copie_Fisiere_Vide
LPARAMETERS tcSPath, tcDPath, tcFileName
IF !DIRECTORY(tcSPath)
RETURN .F.
ENDIF
IF !DIRECTORY(tcDPath)
THIS.Init_Directoare(tcDPath)
ENDIF
IF EMPTY(tcFileName)
lcFileName = "*.*"
ELSE
lcFileName = ALLTRIM(tcFileName)+".*"
ENDIF
lcSFile = ADDBS(tcSPath) + lcFileName
lcDFile = ADDBS(tcDPath) + lcFileName
COPY FILE (lcSFile) TO (lcDFile)
RETURN .T.
ENDPROC
&& ------------------------------SFARSIT: Copie_Fisiere_Vide ------------------------------
&& ------------------------------INCEPUT: Completeaza_Date_Bilant ------------------------------
*!* Procedura: Completeaza_Date_Bilant
*!* Parametri: tcAliasBilant
*!* Data/Ora generarii: 17/02/2004 11:12
*!* Autor: MARIUS.MUTU
PROCEDURE Completeaza_Date_Bilant
LPARAMETERS tcAliasBilant
LOCAL lnNrRanduri, lcBilant, lcFisBilant, loBilant, llUsed
lnNrRanduri = 34
lcBilant = ALLTRIM(THIS.cBilant)
lcFisBilant = ADDBS(THIS.cPathKIT) + lcBilant + ".dbf"
IF !FILE(lcFisBilant)
RETURN .F.
ENDIF
llUsed = .T.
IF !USED(lcBilant)
llUsed = .F.
USE (lcFisBilant) IN 0 ALIAS (lcBilant)
ENDIF
IF USED('tBilant')
USE IN tBilant
ENDIF
SELECT PADL(ALLTRIM(a.nr),2,"0") AS RAND, a.suma2 AS suma1, a.suma AS suma2 ;
FROM (tcAliasBilant) a;
WHERE VAL(a.nr)!=0 ;
INTO CURSOR tBilant
SELECT (lcBilant)
SCATTER NAME loBilant BLANK
lcOldError = ON("error")
ON ERROR * && daca lipsesc coloane din tabelul (lcActive) nu procesez eroarea
SELECT tBilant
SCAN
lcVar1 = "loBilant.F10_"+PADL(ALLTRIM(RAND),3,'0')+'1'
&lcVar1 = suma1
lcVar2 = "loBilant.F10_"+PADL(ALLTRIM(RAND),3,'0')+'2'
&lcVar2 = suma2
ENDSCAN
ON ERROR &lcOldError
SELECT (lcBilant)
GATHER NAME loBilant
USE IN tBilant
IF !llUsed
USE IN (lcBilant)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Completeaza_Date_Bilant ------------------------------
&& ------------------------------INCEPUT: Completeaza_Date_Cpp ------------------------------
*!* Procedura: Completeaza_Date_Cpp
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 11:12
*!* Autor: MARIUS.MUTU
PROCEDURE Completeaza_Date_Cpp
LPARAMETERS tcAliasCPP
LOCAL lnNrRanduri, lcCPP, lcFisCPP, loCPP, llUsed
lnNrRanduri = 63
lcCPP = ALLTRIM(THIS.cCPP)
lcFisCPP = ADDBS(THIS.cPathKIT) + lcCPP + ".dbf"
IF !FILE(lcFisCPP)
RETURN .F.
ENDIF
llUsed = .T.
IF !USED(lcCPP)
llUsed = .F.
USE (lcFisCPP) IN 0 SHARED ALIAS (lcCPP)
ENDIF
IF USED('tCPP')
USE IN tCPP
ENDIF
SELECT PADL(ALLTRIM(a.RAND),2,"0") AS RAND, a.sumai AS suma1, a.sumac AS suma2 ;
FROM (tcAliasCPP) a;
WHERE VAL(a.RAND)!=0 ;
INTO CURSOR tCPP
lcOldError = ON("error")
ON ERROR * && daca lipsesc coloane din tabelul (lcActive) nu procesez eroarea
SELECT (lcCPP)
SCATTER NAME loCPP BLANK
SELECT tCPP
SCAN
lcVar1 = "loCPP.F20_"+PADL(ALLTRIM(RAND),3,'0')+'1'
&lcVar1 = suma1
lcVar2 = "loCPP.F20_"+PADL(ALLTRIM(RAND),3,'0')+'2'
&lcVar2 = suma2
ENDSCAN
ON ERROR &lcOldError
SELECT (lcCPP)
GATHER NAME loCPP
USE IN tCPP
IF !llUsed
USE IN (lcCPP)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Completeaza_Date_Cpp ------------------------------
&& ------------------------------INCEPUT: Completeaza_Date_Date_informative ------------------------------
*!* Procedura: Completeaza_Date_Date_informative
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 11:13
*!* Autor: MARIUS.MUTU
PROCEDURE Completeaza_Date_Date_informative
LPARAMETERS tcAliasDateInf
LOCAL lnNrRanduri, lcDateInf, lcFisDateInf, loDateInf, llUsed
lnNrRanduri = 22
lcDateInf = ALLTRIM(THIS.cDateInf)
lcFisDateInf = ADDBS(THIS.cPathKIT) + lcDateInf + ".dbf"
IF !FILE(lcFisDateInf)
RETURN .F.
ENDIF
llUsed = .T.
IF !USED(lcDateInf)
llUsed = .F.
USE (lcFisDateInf) IN 0 SHARED ALIAS (lcDateInf)
ENDIF
IF USED('tDateInf1')
USE IN tDateInf1
ENDIF
IF USED('tDateInf2')
USE IN tDateInf2
ENDIF
lcAliasDateInf = ALLTRIM(tcAliasDateInf)
lcAliasDateInf1 = lcAliasDateInf+"1R"
lcAliasDateInf2 = lcAliasDateInf+"2R"
SELECT PADL(ALLTRIM(a.RAND),2,"0") AS RAND, a.unitati AS suma1, a.sume AS suma2 ;
FROM (lcAliasDateInf1) a;
WHERE VAL(a.RAND)!=0 ;
INTO CURSOR tDateInf1
SELECT PADL(ALLTRIM(a.RAND),2,"0") AS RAND, a.sold AS suma1, a.col2 AS suma2, a.col3 AS suma3 ;
FROM (lcAliasDateInf2) a ;
WHERE VAL(a.RAND)!=0 ;
INTO CURSOR tDateInf2
*** DATEINF1
SELECT (lcDateInf)
SCATTER NAME loDateInf BLANK
lcOldError = ON("error")
ON ERROR * && daca lipsesc coloane din tabelul (lcActive) nu procesez eroarea
SELECT tDateInf1
SCAN
lcVar1 = "loDateInf.F30_"+PADL(ALLTRIM(RAND),3,'0')+'1'
&lcVar1 = suma1
lcVar2 = "loDateInf.F30_"+PADL(ALLTRIM(RAND),3,'0')+'2'
&lcVar2 = suma2
ENDSCAN
ON ERROR &lcOldError
SELECT (lcDateInf)
GATHER NAME loDateInf
USE IN tDateInf1
*** DATEINF2
lcOldError = ON("error")
ON ERROR * && daca lipsesc coloane din tabelul (lcActive) nu procesez eroarea
SELECT tDateInf2
SCAN
lcVar1 = "loDateInf.F30_"+PADL(ALLTRIM(RAND),3,'0')+'1'
&lcVar1 = suma1
lcVar2 = "loDateInf.F30_"+PADL(ALLTRIM(RAND),3,'0')+'2'
&lcVar2 = suma2
lcVar3 = "loDateInf.F30_"+PADL(ALLTRIM(RAND),3,'0')+'3'
&lcVar3 = suma3
ENDSCAN
ON ERROR &lcOldError
SELECT (lcDateInf)
GATHER NAME loDateInf
USE IN tDateInf2
IF !llUsed
USE IN (lcDateInf)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Completeaza_Date_Date_informative ------------------------------
&& ------------------------------INCEPUT: Completeaza_Date_Active_Imobilizate ------------------------------
*!* Procedura: Completeaza_Date_Active_Imobilizate
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 11:13
*!* Autor: MARIUS.MUTU
PROCEDURE Completeaza_Date_Active_Imobilizate
LPARAMETERS tcAliasActive
LOCAL lnNrRanduri, lcActive, lcFisActive, loActive, llUsed
lnNrRanduri = 33
lcActive = ALLTRIM(THIS.cActive)
lcFisActive = ADDBS(THIS.cPathKIT) + lcActive + ".dbf"
IF !FILE(lcFisActive)
RETURN .F.
ENDIF
llUsed = .T.
IF !USED(lcActive)
llUsed = .F.
USE (lcFisActive) IN 0 SHARED ALIAS (lcActive)
ENDIF
IF USED('tActive')
USE IN tActive
ENDIF
SELECT PADL(ALLTRIM(a.nr),2,"0") AS RAND, a.soldi AS suma1, a.crestere AS suma2, a.reducere AS suma3, a.casare AS suma4, a.soldf AS suma5 ;
FROM (tcAliasActive) a ;
WHERE VAL(a.nr)!=0 ;
INTO CURSOR tActive
lcOldError = ON("error")
ON ERROR * && daca lipsesc coloane din tabelul (lcActive) nu procesez eroarea
SELECT (lcActive)
SCATTER NAME loActive BLANK
SELECT tActive
SCAN
lcVar1 = "loActive.F40_"+PADL(ALLTRIM(RAND),3,'0')+'1'
&lcVar1 = suma1
lcVar2 = "loActive.F40_"+PADL(ALLTRIM(RAND),3,'0')+'2'
&lcVar2 = suma2
lcVar3 = "loActive.F40_"+PADL(ALLTRIM(RAND),3,'0')+'3'
&lcVar3 = suma3
lcVar4 = "loActive.F40_"+PADL(ALLTRIM(RAND),3,'0')+'4'
&lcVar4 = suma4
lcVar5 = "loActive.F40_"+PADL(ALLTRIM(RAND),3,'0')+'5'
&lcVar5 = suma5
ENDSCAN
ON ERROR &lcOldError
SELECT (lcActive)
GATHER NAME loActive
USE IN tActive
IF !llUsed
USE IN (lcActive)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Completeaza_Date_Active_Imobilizate ------------------------------
&& ------------------------------INCEPUT: Completeaza_Date_Firma ------------------------------
*!* Procedura: Completeaza_Date_Firma
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 11:14
*!* Autor: MARIUS.MUTU
PROCEDURE Completeaza_Date_Firma
LPARAMETERS tcAliasFirma
LOCAL lnNrRanduri, lcFirma, lcFisFirma, loFirma, llUsed
lcFirma = ALLTRIM(THIS.cFirma)
lcFisFirma = ADDBS(THIS.cPathKIT) + lcFirma + ".dbf"
IF !FILE(lcFisFirma)
RETURN .F.
ENDIF
llUsed = .T.
IF !USED(lcFirma)
llUsed = .F.
USE (lcFisFirma) IN 0 SHARED ALIAS (lcFirma)
ENDIF
SELECT (lcFirma)
SCATTER NAME loFirma BLANK
SELE firma
LOCA FOR ALLT(fscurt)=ALLT(nfscurt)
loFirma.codi=VAL(ALLT(STRTRAN(UPPE(cod_fiscal),'R','')))
SELECT (lcFirma)
GATHER NAME loFirma
IF !llUsed
USE IN (lcFirma)
ENDIF
ENDPROC
&& ------------------------------SFARSIT: Completeaza_Date_Firma ------------------------------
&& ------------------------------INCEPUT: Date_Noi_Bilant------------------------------
*!* Procedura: Date_Noi_Bilant
*!* Parametri:
*!* Data/Ora generarii: 17/02/2004 14:26
*!* Autor: MARIUS.MUTU
PROCEDURE Date_Noi_Bilant
LOCAL lnRaspuns
lnRaspuns = 7
lnFisiere = 5
DECLARE laFisiere[lnFisiere,2]
laFisiere[1,1] = "Bilant"
laFisiere[2,1] = "Cont Profit si Pierdere"
laFisiere[3,1] = "Date Informative"
laFisiere[4,1] = "Active Imobilizate"
laFisiere[5,1] = "Firma"
laFisiere[1,2] = "date1"
laFisiere[2,2] = "date2"
laFisiere[3,2] = "date3"
laFisiere[4,2] = "date4"
laFisiere[5,2] = "date5"
FOR i = 1 TO lnFisiere
lcMesaj = "Doriti sa creati un fisier gol pentru "+laFisiere[i,1]+"?"
lnRaspuns = AMESSAGEBOX(lcMesaj,4+32)
IF lnRaspuns = 7 && buton=2
LOOP
ENDIF
lcSpath = ADDBS(dirgen)+"_alfa\date_bilant\"
lcDPath = this.cPathKIT
lcFileName = laFisiere[i,2]
THIS.Copie_Fisiere_Vide(lcSpath, lcDPath, lcFileName)
IF i=1 && bilant -> copii si bazele de data access
lcFileName = [*.mdb]
lcFileS = lcSPath + lcFileName
lcFileD = lcDPath + lcFileName
COPY FILE (lcFileS) TO (lcFileD)
ENDIF
ENDFOR
ENDPROC
&& ------------------------------SFARSIT: Date_Noi_Bilant------------------------------
ENDDEFINE