Parameters tcConditie
&& conditia suplimentara && ex: gcAppPath$calealfa

If !Empty(tcConditie)
	lcConditie=Alltrim(tcConditie)
Else
	lcConditie = []
Endif
*!*	DIRFIRM=loc+'\'+NFSCURT
*!*	*CALEFIRMA=ALLTRIM(M.CALEFIRM)
*!*	SET DELETED OFF


*!*	IF !DIRECTORY('&CALEFIRMA')
*!*		DO MESAJrosu WITH 'Calea '+CALEFIRMA+' este incorecta!','Sugeram iesirea din program.'
*!*		QUIT
*!*		RETRY
*!*	ENDIF

*!*	DATE=CALEFIRMA+'\AN'+m.an+'\DATE'+M.nl
*!*	DATEAN=CALEFIRMA+'\DATEAN'
*!*	CALET=DIRFIRM+'\TEMPO'
*!*	m.ANTET='S.C. '+M.FLUNG
*!*	WAIT ' ' TIMEOUT 0.01
*!*	CLOSE DATABASE
*!*	LOCAL ll,aa
*!*	ll=m.nl
*!*	aa=m.an

*!*	DO deschidf WITH '&dirgen\Imob2003\date\','&dirgen\Imob2003\date\','fistotvmf','fistotv','CALE',''

*!*	*do deschidprog in totv.prg
*!*	*-----------------
*!*	BUTON=2
*!*	DO dasaunu WITH 'Se reindexeaza fisierele lunare?'
*!*	IF BUTON=1
*!*	SET DELETED ON
*!*		SELE 0
*!*		USE &CALEFIRMA\DATEAN\calendar ALIAS calendar  &&?????????????????????????????????
*!*		SELECT DISTINCT an AS anan FroM calendar INTO CURSOR TANCAL
*!*		SELECT TANCAL
*!*		SCAN
*!*			DO dasaunu WITH 'Se reindexeaza fisierele din anul '+anan+' ?'
*!*			IF BUTON=1
*!*				lc_an=anan
*!*				SELE calendar
*!*				SCAN FOR !DELETED() AND an=lc_an
*!*					SCATTER MEMVAR
*!*					DATE=CALEFIRMA+'\AN'+m.an+'\DATE'+M.nl
*!*					BUTON=2
*!*					DO dasaunu WITH 'Se reindexeaza fisierele din luna '+m.nl+' '+m.an+' ?'
*!*					IF BUTON=1
*!*						SELE fistotv
*!*						Maxs=RECCOUNT()
*!*						j=0
*!*						OP=CREA('PROGRESBAR')
*!*						OP.titlu.CAPTION='Se reindexeaza fisierele lunii '+m.nl+' '+m.an
*!*						OP.SHOW()
*!*						SELE fistotv
*!*						SET FILTER TO
*!*	*scan for inlist(allt(lower(cale)),'&date','&date\')
*!*						SCAN FOR 'DATE'$UPPER(cale) AND !('DATEAN'$UPPER(cale)) AND 'IMOB2003'$allt(UPPER(calealfa))
*!*							SCAT MEMV
*!*							WAIT WIND m.numef NOWAIT
*!*							DO reindf WITH m.calealfa,m.cale,m.numef,m.alias,m.ordine,m.exc
*!*							DO PR WITH j
*!*						ENDSCAN
*!*						OP.RELEASE
*!*						WAIT CLEAR
*!*					ENDIF
*!*				ENDSCAN
*!*			ENDIF
*!*			SELECT TANCAL
*!*		ENDSCAN
*!*		USE IN calendar
*!*	ENDIF

*!*	BUTON=2
*!*	DO dasaunu WITH 'Se reindexeaza fisierele generale din DATEAN?'
*!*	IF BUTON=1
*!*		SELE fistotv
*!*		Maxs=RECCOUNT()
*!*		j=0
*!*		OP=CREA('PROGRESBAR')
*!*		OP.titlu.CAPTION='Se reindexeaza fisierele generale. Asteptati...'
*!*		OP.SHOW()
*!*		SELE fistotv
*!*		SET FILTER TO !DELETED()
*!*	*scan for inlist(allt(lower(cale)),'&calefirma\datean','&calefirma\datean\')
*!*		SCAN FOR 'DATEAN'$ALLT(UPPER(cale)) AND 'IMOB2003'$allt(UPPER(calealfa))
*!*			SCAT MEMV
*!*			WAIT WIND m.numef NOWAIT
*!*			DO reindf WITH m.calealfa,m.cale,m.numef,m.alias,m.ordine,m.exc
*!*			DO PR WITH j
*!*		ENDSCAN
*!*		OP.RELEASE
*!*		WAIT CLEAR
*!*	ENDIF

*!*	BUTON=2
*!*	DO dasaunu WITH 'Se reindexeaza fisierele locale?'
*!*	IF BUTON=1
*!*		SELE fistotv
*!*		Maxs=RECCOUNT()
*!*		j=0
*!*		OP=CREA('PROGRESBAR')
*!*		OP.titlu.CAPTION='Se reindexeaza fisierele locale'
*!*		OP.SHOW()
*!*		SELE fistotv
*!*	*set filter to inlist(allt(UPPER(cale)),'&LOC\&NFSCURT\TEMPO','&LOC\&NFSCURT\TEMPO\')
*!*		SET FILTER TO 'LOC'$ALLT(UPPER(cale))
*!*	*brow
*!*		SCAN
*!*			SCAT MEMV
*!*			WAIT WIND m.numef NOWAIT
*!*			DO reindf WITH m.calealfa,m.cale,m.numef,m.alias,m.ordine,m.exc
*!*			DO PR WITH j
*!*		ENDSCAN
*!*		OP.RELEASE
*!*		WAIT CLEAR
*!*	ENDIF

*!*	SET DELETED ON

*!*	*---------------
*!*	m.nl=ll
*!*	m.an=aa
*!*	DO totv
*!*	RETURN




*!*	*__________________________________________
*!*	PROCEDURE reindf
*!*	PARAM calealfa,cale,numef,ALIAS,ordine,exc
*!*	LOCAL calea,calea1,CALEAL,CALEAL1,T,fisa,fisv,fisa1,fisv1,aliasa

*!*	calea=ALLT(cale)+'\'+ALLT(numef)+'.dbf'
*!*	calea1=ALLT(cale)+'\'+ALLT(numef)+'.*'
*!*	CALEAL=ALLT(calealfa)+'\'+ALLT(numef)+'.dbf'
*!*	CALEAL1=ALLT(calealfa)+'\'+ALLT(numef)+'.*'
*!*	fisa=ALLT(cale)+'\'+ALLT(numef)+'a.dbf'
*!*	fisa1=ALLT(cale)+'\'+ALLT(numef)+'a.*'
*!*	fisv=ALLT(cale)+'\_%'+ALLT(numef)+'.dbf'
*!*	fisv1=ALLT(cale)+'\_%'+ALLT(numef)+'.*'
*!*	aliasa=ALLT(ALIAS)+'a'

*!*	IF FILE('&calea')
*!*	*wait wind calea
*!*		DELE FILE &fisa1
*!*		DELE FILE &fisv1
*!*		COPY FILE &CALEAL1 TO &fisa1
*!*		SELE 0
*!*		T='use '+fisa+' AGAIN ALIAS '+aliasa+' exclusive '
*!*		&T
*!*	*wait wind t
*!*		SELE &aliasa
*!*		ZAP
*!*		SELE &aliasa
*!*		APPEND FROM &calea
*!*		SELE &aliasa
*!*	*!*	WAIT WINDOW "reindex"
*!*	*!*	SELECT &aliasa
*!*		REINDEX
*!*		USE
*!*		RENAME &calea1 TO &fisv1
*!*		RENAME &fisa1 TO &calea1
*!*	ENDIF

*!*	RETURN



*!*	*______________________
*!*	PROC errdeschid
*!*	PARAM calealfa,cale,numef,ALIAS,ordine
*!*	LOCAL calea,calea2,CALEAL,CALEAL2
*!*	calea=ALLT(cale)+'\'+ALLT(numef)+'.dbf'
*!*	calea2=ALLT(cale)+'\'+ALLT(numef)+'.cdx'
*!*	CALEAL=ALLT(calealfa)+'\'+ALLT(numef)+'.dbf'
*!*	CALEAL2=ALLT(calealfa)+'\'+ALLT(numef)+'.cdx'
*!*	DO CASE
*!*	CASE ERROR()=24 &&Alias name is already in use
*!*		RETURN
*!*	CASE ERROR()=19 OR ERROR()=26 OR ERROR()=114 &&Index file does not match table. sau Table has no index order set.
*!*		DO mesajatent WITH 'Se reindexeaza fisierul "'+ALLT(numef)+'"',''
*!*		IF FILE('&caleal2') AND cale#calealfa
*!*			COPY FILE &CALEAL2 TO &calea2
*!*			USE &calea AGAIN ALIAS &ALIAS
*!*			SET INDEX TO &calea2
*!*			REINDEX
*!*		ELSE
*!*			DO MESAJrosu WITH 'Nu se poate reindexa fisierul "'+ALLT(numef)+'".','Sugeram iesirea din program.'
*!*			QUIT
*!*			RETRY
*!*		ENDIF

*!*	CASE ERROR()=15 &&Not a table.
*!*		DO danuquit WITH 'Fisierul "'+ALLT(numef)+'" este defect. Il inlocuim cu o structura vida?'
*!*		IF FILE('&caleal')
*!*			COPY FILE &CALEAL1 TO &calea1
*!*			RETRY
*!*		ELSE
*!*			DO MESAJrosu WITH 'Nu se poate inlocui fisierul "'+ALLT(numef)+'".','Sugeram iesirea din program.'
*!*			QUIT
*!*			RETRY
*!*		ENDIF

*!*	CASE ERROR()=3 OR ERROR()=1705 &&File is in use. or File access is denied.
*!*		DO MESAJrosu WITH 'Fisierul "'+ALLT(numef)+'" este deschis de alt program.','Inchideti fisierul si apoi redeschideti programul.'
*!*		QUIT
*!*		RETRY
*!*	OTHERWISE
*!*		DO MESAJrosu WITH 'Eroare necunoscuta (Nr.'+ALLT(STR(ERROR()))+')',	'Sugeram iesirea din program.'
*!*		QUIT
*!*		RETRY
*!*	ENDCASE

*!*	RETURN





*!*	*____________________
*!*	PROC errgen
*!*	DO MESAJrosu WITH 'Eroare necunoscuta (Nr.'+ALLT(STR(ERROR()))+')',	'Sugeram iesirea din program.'
*!*	QUIT
*!*	RETRY
*!*	RETURN



*!*	*___ PROCEDURA DE DESCHIDERE DIN AFARA LUI TOTV_________________________________________________
*!*	PROC DES
*!*	PARAM ALIASF
*!*	IF !DIRECTORY('&CALEFIRMA')
*!*		DO MESAJrosu WITH 'Calea '+CALEFIRMA+' este incorecta!','Sugeram iesirea din program.'
*!*		QUIT
*!*		RETRY
*!*	ENDIF
*!*	DATE=CALEFIRMA+'\AN'+M.an+'\DATE'+M.nl
*!*	IF !USED('FISTOTV')
*!*		DO deschidf WITH '&dirgen\Imob2003\date\','&dirgen\Imob2003\date\','fistotvmf','fistotv','CALE',''
*!*	ENDIF
*!*	SELE fistotv
*!*	LOCA FOR ALLT(UPPER(ALIAS))=ALLT(UPPER(ALIASF))
*!*	IF !FOUND()
*!*		DO MESAJrosu WITH 'Alias '+ALIASF+' inexistent!','Sugeram iesirea din program.'
*!*		QUIT
*!*		RETRY
*!*	ELSE
*!*		SCAT MEMV
*!*		DO deschidf WITH m.calealfa,m.cale,m.numef,m.alias,m.ordine,m.exc
*!*	ENDIF
*!*	RETURN





*!*	*______________________________
*!*	PROCEDURE reindexaretempo
*!*	DIRFIRM=loc+'\'+NFSCURT
*!*	*CALEFIRMA=ALLTRIM(M.CALEFIRM)

*!*	IF !DIRECTORY('&CALEFIRMA')
*!*		DO MESAJrosu WITH 'Calea '+CALEFIRMA+' este incorecta!','Sugeram iesirea din program.'
*!*		QUIT
*!*		RETRY
*!*	ENDIF

*!*	DATE=CALEFIRMA+'\AN'+m.an+'\DATE'+M.nl
*!*	DATEAN=CALEFIRMA+'\DATEAN'
*!*	CALET=DIRFIRM+'\TEMPO'
*!*	m.ANTET='S.C. '+M.FLUNG
*!*	WAIT ' ' TIMEOUT 0.01
*!*	CLOSE DATABASE
*!*	LOCAL ll,aa
*!*	ll=m.nl
*!*	aa=m.an

*!*	DO deschidf WITH '&dirgen\Imob2003\date\','&dirgen\Imob2003\date\','fistotvmf','fistotv','CALE',''


*!*	SELE fistotv
*!*	Maxs=RECCOUNT()
*!*	j=0
*!*	OP=CREA('PROGRESBAR')
*!*	OP.titlu.CAPTION='Se reindexeaza fisierele locale'
*!*	OP.SHOW()
*!*	SELE fistotv
*!*	*set filter to inlist(allt(UPPER(cale)),'&LOC\&NFSCURT\TEMPO','&LOC\&NFSCURT\TEMPO\')
*!*	SET FILTER TO 'LOC'$ALLT(UPPER(cale))
*!*	*brow
*!*	SCAN
*!*		SCAT MEMV
*!*		WAIT WIND m.numef NOWAIT
*!*		DO reindf WITH m.calealfa,m.cale,m.numef,m.alias,m.ordine,m.exc
*!*		DO PR WITH j
*!*	ENDSCAN
*!*	OP.RELEASE
*!*	WAIT CLEAR
*!*	m.nl=ll
*!*	m.an=aa
*!*	DO totv
*!*	RETURN

**** sfarsit reindexare imobilizari

Wait ' ' Timeout 0.01
Close Database
Local ll,aa
ll=m.nl
aa=m.an


Do deschidprog In totv.prg

*-----------------
Local man
man=''
BUTON=2
*Do DANU With 'Se reindexeaza fisierele lunare?'
*If BUTON=1
Sele 0
Use &CALEFIRMA\DATEAN\calendar Alias calendar
Select Distinct an From calendar Into Cursor jan Order By an
Select jan
Scan
	man=an
	Do dasaunu With 'Se reindexeaza fisierele lunare din anul '+man+'?'
	If BUTON=1
		Set Deleted Off  && pentru mf
		Sele calendar
		Scan For !Deleted() And an=man
			Scatter Memvar
			Date=CALEFIRMA+'\AN'+m.an+'\DATE'+M.nl
			BUTON=2
			Do dasaunu With 'Se reindexeaza fisierele din luna '+m.nl+' '+m.an+' ?'
			If BUTON=1
				Sele fistotv
				MAXS=Reccount()
				j=0
				OP=Crea('PROGRESBAR')
				OP.titlu.Caption='Se reindexeaza fisierele lunii '+m.nl+' '+m.an
				OP.Show()


				Sele fistotv
				Set Filter To
*scan for inlist(allt(lower(cale)),'&date','&date\')
				lcFiltru = ['DATE'$UPPER(cale) AND !('DATEAN'$UPPER(cale)) AND !('_ALFA'$ALLT(UPPER(cale)))]
				lcFiltru = lcFiltru + Iif(!Empty(lcConditie),[ and ]+lcConditie,"")

				Scan For &lcFiltru
					Scat Name loFis
					Wait Wind loFis.numef Nowait
					Do reindf With loFis.calealfa,loFis.cale,loFis.numef,loFis.Alias,loFis.ordine,loFis.exc
					Do PR With j
				Endscan
				OP.Release
				Release loFis
				Wait Clear
			Endif
		Endscan
		Set Deleted On
	Endif
	Select jan
Endscan
Use In calendar
*Endif

BUTON=2
Do dasaunu With 'Se reindexeaza fisierele generale din DATEAN?'
If BUTON=1
	Sele fistotv
	MAXS=Reccount()
	j=0
	OP=Crea('PROGRESBAR')
	OP.titlu.Caption='Se reindexeaza fisierele generale. Asteptati...'
	OP.Show()
	Sele fistotv
	Set Filter To
*scan for inlist(allt(lower(cale)),'&calefirma\datean','&calefirma\datean\')
	lcFiltru = ['DATEAN'$ALLT(UPPER(cale)) AND !('_ALFA'$ALLT(UPPER(cale)))]
	lcFiltru = lcFiltru + Iif(!Empty(lcConditie),[ and ]+lcConditie,"")
	Scan For &lcFiltru
		Scat Name loFis
		Wait Wind loFis.numef Nowait
		Do reindf With loFis.calealfa,loFis.cale,loFis.numef,loFis.Alias,loFis.ordine,loFis.exc
		Do PR With j
	Endscan
	OP.Release
	Wait Clear
Endif

BUTON=2
Do dasaunu With 'Se reindexeaza fisierele locale?'
If BUTON=1
	Sele fistotv
	MAXS=Reccount()
	j=0
	OP=Crea('PROGRESBAR')
	OP.titlu.Caption='Se reindexeaza fisierele locale'
	OP.Show()
	Sele fistotv
*set filter to inlist(allt(UPPER(cale)),'&LOC\&NFSCURT\TEMPO','&LOC\&NFSCURT\TEMPO\')
	Set Filter To 'LOC'$Allt(Upper(cale))
*brow
	Scan
		Scat Name loFis
		Wait Wind loFis.numef Nowait
		Do reindf With loFis.calealfa,loFis.cale,loFis.numef,loFis.Alias,loFis.ordine,loFis.exc
		Do PR With j
	Endscan
	OP.Release
	Release loFis
	Wait Clear
Endif

*---------------
m.nl=ll
m.an=aa
Do totv

Return

*__________________________________________
Procedure reindf
Param calealfa,cale,numef,Alias,ordine,exc
Local calea,calea1,CALEAL,CALEAL1,T,fisa,fisv,fisa1,fisv1,aliasa

calea=Allt(cale)+'\'+Allt(numef)+'.dbf'
calea1=Allt(cale)+'\'+Allt(numef)+'.*'
CALEAL=Allt(calealfa)+'\'+Allt(numef)+'.dbf'
CALEAL1=Allt(calealfa)+'\'+Allt(numef)+'.*'
fisa=Allt(cale)+'\'+Allt(numef)+'_a.dbf'
fisa1=Allt(cale)+'\'+Allt(numef)+'_a.*'
fisv=Allt(cale)+'\_%'+Allt(numef)+'.dbf'
fisv1=Allt(cale)+'\_%'+Allt(numef)+'.*'
aliasa=Allt(numef)+'_a'

lcFisierFirma=calea
lcAlias=Alltrim(Alias)
llUsed=.F.
If Used(lcAlias)
	llUsed=.T.
	lcFis=Juststem(Dbf(lcAlias))
	Use In (lcAlias)
Endif

x=Fopen('&lcFisierFirma',12)
If x < 0
	Do mesaj With "Fisierul "+lcFisierFirma," Este deschis de alt program. Nu se poate reindexa"
	If llUsed
		Do des With lcAlias
	Endif
	Return
Endif
Fclose(x)



If File('&calea')
	Wait Window lcAlias+[ ]+"Se sterg fisierele temporare..." Nowait

	Dele File &fisa1
	Dele File &fisv1

	Wait Window lcAlias+[ ]+"Se copiaza structurile vide..." Nowait
	Copy File &CALEAL1 To &fisa1
	Sele 0
	T='use '+fisa+' AGAIN ALIAS '+aliasa+' exclusive '
	&T
*wait wind t
	Sele &aliasa
	Zap

	Wait Window lcAlias+[ ]+"Se copiaza datele originale..." Nowait
*!*			SELE &aliasa
*!*			APPEND FROM &calea
	reindf_append(lcAlias,aliasa,calea)

	Wait Window lcAlias+[ ]+"Se reindexeaza fisierul..." Nowait
	Sele &aliasa
	Reindex
	Use

	Rename &calea1 To &fisv1
	Rename &fisa1 To &calea1

	Wait Window lcAlias+[ ]+"Operatiune incheiata cu succes..." Nowait
Endif

Endproc && reindf

***----------------------------------------------------------------------------------
*** copie indexul din structurile vide, deschide exclusiv fisierul si da reindex
*** fisierul trebuie sa fie inchis
Procedure REINDFCDX
Parameters tcCaleAlfa,tcCale,tcNumef
*** calea structurii vide, calea fisierului, numele fisierului

Private lcCDXd,lcDBF,lcCDXs

lcCDXd=Allt(tcCale)+'\'+Allt(tcNumef)+'.cdx'
lcDBF=Allt(tcCale)+'\'+Allt(tcNumef)+'.dbf'
lcCDXs=Allt(tcCaleAlfa)+'\'+Allt(tcNumef)+'.cdx'

Wait Window "Se copiaza structurile vide..." Nowait

Copy File('&lcCDXs') To ('&lcCDXd')
Use ('&lcDBF') In 0 Excl Alias FisierR
Set Index To ('&lcCDXd')

Wait Window "Se reindexeaza fisierul..." Nowait
Select FisierR
Reindex
Use In FisierR

Wait Window "Operatiune incheiata cu succes..." Nowait

Endproc && REINDFCDX


*______________________
Proc errdeschid_r
Param calealfa,cale,numef,Alias,ordine
Local calea,calea2,CALEAL,CALEAL2
calea=Allt(cale)+'\'+Allt(numef)+'.dbf'
calea2=Allt(cale)+'\'+Allt(numef)+'.cdx'
CALEAL=Allt(calealfa)+'\'+Allt(numef)+'.dbf'
CALEAL2=Allt(calealfa)+'\'+Allt(numef)+'.cdx'
Do Case
	Case Error()=24 &&Alias name is already in use
		Return
	Case Error()=19 Or Error()=26 Or Error()=114 &&Index file does not match table. sau Table has no index order set.
		Do mesajatent With 'Se reindexeaza fisierul "'+Allt(numef)+'"',''
		If File('&caleal2') And cale#calealfa
			Copy File &CALEAL2 To &calea2
			Use &calea Again Alias &Alias
			Set Index To &calea2
			Reindex
		Else
			Do MESAJrosu With 'Nu se poate reindexa fisierul "'+Allt(numef)+'".','Sugeram iesirea din program.'
			Quit
			Retry
		Endif

	Case Error()=15 &&Not a table.
		Do danuquit With 'Fisierul "'+Allt(numef)+'" este defect. Il inlocuim cu o structura vida?'
		If File('&caleal')
			Copy File &CALEAL1 To &calea1
			Retry
		Else
			Do MESAJrosu With 'Nu se poate inlocui fisierul "'+Allt(numef)+'".','Sugeram iesirea din program.'
			Quit
			Retry
		Endif

	Case Error()=1683 &&index tag is not found
		Do MESAJrosu With "Structura vida a fisierului "+Alltrim(numef)+" este stricata!",""
*!*		Do MESAJrosu With 'Fisierul "'+Allt(numef)+'" este deschis de alt program.','Inchideti fisierul si apoi redeschideti programul.'
		Quit
		Retry
	Case Error()=3 Or Error()=1705 &&File is in use. or File access is denied.
		Do MESAJrosu With 'Fisierul "'+Allt(numef)+'" este deschis de alt program.','Inchideti fisierul si apoi redeschideti programul.'
		Quit
		Retry
	Otherwise
		Do MESAJrosu With 'Eroare necunoscuta (Nr.'+Allt(Str(Error()))+')',	'Sugeram iesirea din program.'
		Quit
		Retry
Endcase

Endproc && errdeschid_r





*____________________
Proc errgen
Do MESAJrosu With 'Eroare necunoscuta (Nr.'+Allt(Str(Error()))+')',	'Sugeram iesirea din program.'
Quit
Retry
Return







*______________________________
Procedure reindexaretempo
DIRFIRM=loc+'\'+NFSCURT
*CALEFIRMA=ALLTRIM(M.CALEFIRM)

If !Directory('&CALEFIRMA')
	Do MESAJrosu With 'Calea '+CALEFIRMA+' este incorecta!','Sugeram iesirea din program.'
	Quit
	Retry
Endif
Date=CALEFIRMA+'\AN'+m.an+'\DATE'+M.nl
DATEAN=CALEFIRMA+'\DATEAN'
CALET=DIRFIRM+'\TEMPO'
m.ANTET='S.C. '+M.FLUNG
Wait ' ' Timeout 0.01
Close Database
Local ll,aa
ll=m.nl
aa=m.an

*!*		DO deschidf WITH '&dirgen\gestiuni\date\datean\','&dirgen\gestiuni\date\datean\','fistotvgest','fistotv','CALE',''
Do deschidprog In totv.prg

Sele fistotv
M=Reccount()
j=0
OP=Crea('PROGRESBAR')
OP.titlu.Caption='Se reindexeaza fisierele locale'
OP.Show()
Sele fistotv
*set filter to inlist(allt(UPPER(cale)),'&LOC\&NFSCURT\TEMPO','&LOC\&NFSCURT\TEMPO\')
Set Filter To 'LOC'$Allt(Upper(cale))
*brow
Scan
	Scat Name loFis
	Wait Wind loFis.numef Nowait
	Do reindf With loFis.calealfa,loFis.cale,loFis.numef,loFis.Alias,loFis.ordine,loFis.exc
	Do PR With j
Endscan
OP.Release

Release loFis

Wait Clear
m.nl=ll
m.an=aa
Do totv


Endproc && reindexaretempo



*** INCEPUT PROCEDURA reindf_append
Procedure reindf_append
Parameters tcAlias,tcAlias_A,tcFisOriginal

&& tcAlias: aliasul tabelului
&& tcAlias_A: aliasul tabelului vid+"_A"
&& tcFisOriginal: calea catre fisierul care se reindexeaza cu datE

Private lcAlias,lcAlias_A,lcFisOriginal,llUsed


lcAlias=Alltrim(Upper(tcAlias))
lcAlias_A=Alltrim(Upper(tcAlias_A))
lcFisOriginal=Alltrim(Upper(tcFisOriginal))

Do Case
	Case Inlist(lcAlias,"DEBITOR","CREDITOR","ACHIT542")


		If !EXISTACAMP(lcAlias_A,"LUAT") && daca in fisierul structura vida nu am campul <luat>
			lcFisTemp=Alltrim(loc)+"\"+Alltrim(NFSCURT)+"\tempo\T"+lcAlias+".dbf"
			lcFisTemp=Strtran(lcFisTemp,"\\","\")

&& deschid fisierul original
			llUsed=.T.
			If !Used(lcAlias)
				llUsed=.F.
				Use ('&lcFisOriginal') In 0 Shared Alias &lcAlias
			Endif

			Select(lcAlias)
			If !EXISTACAMP(lcAlias,"LUAT") && DACA IN FISIERUL ORIGINAL NU EXISTA CAMPUL <LUAT> NU FAC NIMIC
				If !llUsed
					Use In (lcAlias)
				Endif
			Else
				If Inlist(lcAlias,"DEBITOR","ACHIT542")
					Select *,luat As debit,dat As credit From &lcAlias Into Cursor tt
				Else
					Select *,dat As debit,luat As credit From &lcAlias  Into Cursor tt
				Endif
				If !llUsed
					Use In (lcAlias)
				Endif
				Select (lcAlias_A)
				Append From Dbf('tt')
				Use In tt
			Endif
		Endif
	Otherwise
		Select (lcAlias_A)
		Append From &lcFisOriginal

Endcase


Endproc
*** SFARSIT PROCEDURA reindf_append
