***------------------------------------------------------------------------------------
Procedure set_set
	LParameters tnId_set

	&& adauga in mg_indicatori inregistrarile din mg_tmp_indicatori

	Private pnId_set
	Local lcSql, lnSucces
	If Empty(tnId_set)
		Return
	Else
		pnId_set = tnId_set
	Endif

	lcSql = [begin PACK_MG_EVOLUTIE.SET_SET(?pnId_set); end;]
	lnSucces = goExecutor.oExecute(lcSql)

	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
	Endif
	Return m.lnSucces
Endproc && set_set
***------------------------------------------------------------------------------------
Procedure viz_toate_seturile

	* DO make_cFCentre IN oproceduri_manager.prg
	Create Cursor cTipuri_seturi (id_tip_set N(5), nume_tip_set C(30), ales N(1))
	Select cTipuri_seturi


	Private poSeturi
	Store '' To poSeturi

	Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza
	*!*	lcSchema1 = [id_ctr N(5), id_part N(10), nume C(30), nr_ctr N(10), data_ctr D(8), obiect C(200), tip N(1), durata N(3), valftva N(20,4), proc_tva N(5,2), avans N(20,4), proc_avans N(5,2),]+;
	*!*		[val_finant N(20,4), proc_finant N(5,2), dobanda N(20,4), proc_dobanda N(5,2), val_rezid N(20,4), proc_rezid N(5,2), ]+;
	*!*		[rata N(20,4), comision N(20,4), proc_comision N(5,2), proc_asigurare N(5,2), val_asigurare N(20,4), val_ctr N(20,4), id_valuta N(5), nume_val C(4), curs N(10,4), zi_plata N(2), incetat N(1), sters N(1) ]
	*!*
	*!*	lcSelect1 = [select c.id_ctr, c.id_part, p.nume, c.nr_ctr, c.data_ctr, c.obiect, c.tip, c.durata, c.valftva, c.proc_tva, c.avans, c.proc_avans, ]+;
	*!*		[c.val_finant, c.proc_finant, c.dobanda, c.proc_dobanda, c.val_rezid, c.proc_rezid, ]+;
	*!*		[c.rata, c.comision, c.proc_comision, c.proc_asigurare, c.val_asigurare, c.val_ctr, c.id_valuta, v.nume_val, c.curs, c.zi_plata, c.incetat, c.sters from ] + gcS + ;
	*!*		[.cf_contracte c join ] + gcS + [.nom_parteneri p on p.id_part = c.id_part]+;
	*!*		[ join ] + gcS + [.nom_valute v on c.id_valuta = v.id_valuta]
	lcSelect1 = [select s1.*, nvl(s2.uzual,0) as uzual from (select s.* from mg_seturi s) s1 left join (select distinct id_set, 1 as uzual from mg_seturi_uzuale u where u.sters = 0) s2  on s1.id_set = s2.id_set]
	lcOrder1 = [s1.nume_set]
	lcgroup = []
	lcFiltru1 = [1=2]
	lcFiltruOriginal = []
	llModParam = .T.
	llAfiseaza = .F.

	gencursor('poSeturi', 'crsSeturi', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza,  lcgroup, llModParam, lcFiltruOriginal)
	poSeturi.ca_baza1.afisare()

	lots = Createobject("frm_toate_seturile")
	lots.Show(1)

	*!*	IF USED("cFCentre")
	*!*		USE IN cFCentre
	*!*	ENDIF

Endproc && viz_toate_seturile
***------------------------------------------------------------------------------------
Procedure modifica_parametri
	Parameters tnTip, tcAlias, tlDinFormModi
	&& tnTip: 1 - toate seturile; 2 - seturi uzuale


	Private pnTip, pnId_set, pnLunaI, pnAnulI, pnLunaF, pnAnulF, pnCumul, pnIndAct, pnIndBal, pnDinFormModi  && le trimit pe server
	Store 0 To pnIndAct, pnIndBal

	If !Empty(tnTip)
		pnTip = tnTip
	Else
		pnTip = 0
	Endif

	Local lcalias, llDinFormModi
	lcalias = Alltrim(tcAlias)
	llDinFormModi  = tlDinFormModi
	If llDinFormModi
		pnDinFormModi = 1
	Else
		pnDinFormModi = 0
	Endif

	Select (lcalias)
	Scatter Name poset
	pnId_set = id_set

	***----
	lcSql = [begin PACK_MG_EVOLUTIE.get_indicatori_nu_act(?pnId_set,?pnDinFormModi,?@pnIndAct,?@pnIndBal); end;]
	lnSucces = goExecutor.oExecute(lcSql)
	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
		Return
	Endif
	***----

	lopc = Createobject("frm_parametri_calcul", pnIndAct, pnIndBal)
	If tnTip = 2
		*!*		lcSql = [select nume_set from mg_seturi where id_set = ]+Alltrim(Str(pnId_set))
		*!*		lcCursor = 'cNume_set'
		*!*		lnSucces = goExecutor.oExecute(lcSel, lcCursor)
		*!*		If lnSucces < 0
		*!*			AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
		*!*			Return
		*!*		Endif
		*!*		Select cNume_set
		*!*		lopc.lb_titlu_alb_b121.Caption = cNume_set.nume_set
		*!*		If Used('cNume_set')
		*!*			Use In cNume_set
		*!*		Endif
		lopc.lb_titlu_alb_b121.Caption = 'set'
	Else
		lopc.lb_titlu_alb_b121.Caption = Alltrim(poset.nume_set)
	Endif
	lopc.Show(1)

	If buton = 2
		Return
	Endif

	Select (lcalias)
	Gather Name poset

	*pnId_set = poset.id_set
	pnLunaI = poset.lunaI
	pnAnulI = poset.anulI
	pnLunaF = poset.lunaF
	pnAnulF = poset.anulF
	pnCumul = poset.cumul

	lcSql = [begin PACK_MG_EVOLUTIE.set_parametri(?pnTip, ?pnId_set, ?pnLunaI, ?pnAnulI, ?pnLunaF, ?pnAnulF, ?pnCumul, ?gnIdutil); end;]
	lnSucces = goExecutor.oExecute(lcSql)

	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
		Return
	Endif

Endproc && modifica_parametri
***------------------------------------------------------------------------------------
Procedure adauga_indicator
	Parameters tnId_set, tcAlias
	
	Local lcalias, lnInd, llSucces
	Private pnId_set, pnId_ind

	If !Empty(tnId_set)
		pnId_set = tnId_set
	Else
		pnId_set = 0
	Endif
	pnId_ind = 0

	lcalias = Alltrim(tcAlias)
	lnInd = 0
	llSucces = .F.

	Select (lcalias)
	Scatter Name poIndicator Blank Memo

	poIndicator.tip = 1

	Calculate Max(Val(Rand)) To lnRandMax
	lnRandMax = lnRandMax + 1
	lcRandUrm = Padl(Alltrim(Str(lnRandMax, 4, 0)), 4, '0')

	poIndicator.Rand = lcRandUrm
	poIndicator.nume_ind = "INDICATOR_" + lcRandUrm

	Calculate Cnt() For !Deleted() To lnInd
	poIndicator.ord_rand = m.lnInd + 1

	loib = Createobject("frm_tip_nume_rand_indicator")
	loib.Show(1)

	If buton = 2
		RETURN m.llSucces
	Endif

	poIndicator.id_set = pnId_set

	lcSql = [begin PACK_MG_EVOLUTIE.next_id_ind(?@pnId_ind); end;]
	llSucces = goExecutor.oExecuta(lcSql)

	If m.llSucces
		poIndicator.id_ind = pnId_ind
		lcSql = [begin PACK_MG_EVOLUTIE.adauga_indicator(?pnId_set, ?pnId_ind, ?ALLTRIM(poIndicator.Rand), ?ALLTRIM(poIndicator.nume_ind), ?poIndicator.tip, ?poindicator.ord_rand); end;]
		llSucces = goExecutor.oExecuta(lcSql)
		IF m.llSucces
			Select (lcalias)
			Append Blank
			Gather Name poIndicator Memo
		ENDIF 	
	ENDIF
	
	RETURN m.llSucces
Endproc && adauga_indicator
***------------------------------------------------------------------------------------
***------------------------------------------------------------------------------------
Procedure modifica_indicator
	Parameters tnId_set, tnId_ind, tcAlias

	Private pnId_set, pnId_ind
	LOCAL lnTip, lcAlias, llSucces
	pnId_set = tnId_set
	pnId_ind = tnId_ind

	lcalias = Alltrim(tcAlias)
	llSucces = .F.
	
	Select (lcalias)
	Scatter Name poIndicator Memo
	lnTip = poIndicator.tip
	
	loib = Createobject("frm_tip_nume_rand_indicator")
	loib.Show(1)

	If buton = 2
		RETURN m.llSucces
	ENDIF 
	lcSql = [begin PACK_MG_EVOLUTIE.modifica_indicator(?pnId_set, ?pnId_ind, ?Alltrim(poIndicator.Rand), ?Alltrim(poIndicator.nume_ind), ?poIndicator.tip, ?poindicator.ord_rand); end;]
	llSucces = goExecutor.oExecuta(lcSql)

	If m.llSucces
		IF poIndicator.tip <> m.lnTip 
			poIndicator.formula = ""
		ENDIF 
			
		Select (lcalias)
		Gather Name poIndicator Memo
	Endif

	RETURN m.llSucces
Endproc && modifica_indicator
***------------------------------------------------------------------------------------
Procedure test

	loft = Createobject("frm_test")
	loft.Show(1)

Endproc && test
*------------------------------------------------------------------------------------
Procedure test_List

	pcLista = "+T201 +T203 +T204+T205+T206+T207-T208+T209"

	lcLista = gcTempPath + "tLista.dbf"
	Create Table (lcLista) (valoare C(11))

	lnAparitiiP = 1
	lnAparitiiM = 1

	For i = 1 To Len(pcLista)
		lcSemn = Substr(pcLista, i, 1)
		If lcSemn = "+" Or lcSemn = "-"
			If lcSemn = "+"
				lnAparitiiP = lnAparitiiP + 1
			Endif
			If lcSemn = "-"
				lnAparitiiM = lnAparitiiM + 1
			Endif
			lnNextSemnP = At("+", pcLista, lnAparitiiP)
			lnNextSemnM = At("-", pcLista, lnAparitiiM)

			If lnNextSemnP < lnNextSemnM And lnNextSemnP > 0
				lnNextSemn = lnNextSemnP
			Else
				If lnNextSemnM > 0
					lnNextSemn = lnNextSemnM
				Else
					lnNextSemn = lnNextSemnP
				Endif
			Endif
			* ?'lnNextSemn = '+ALLTRIM(STR(lnNextSemn))
			lnLen = lnNextSemn - i
			If lnNextSemn = 0 And i < Len(pcLista) && ultimul cont
				lcCont = Substr(pcLista, i)
			Else
				lcCont = Substr(pcLista, i, lnLen)
			Endif
			Select (lcLista)
			Insert Into (lcLista) (valoare) Values (lcCont)
			* ?lcCont
		Endif
	Endfor


	Select (lcLista)
	loft = Createobject("frm_test_List")
	loft.Show(1)

Endproc && test_List
*------------------------------------------------------------------------------------
Procedure editare_set
	Lparameters tnId_set, tnId_ModiPara, tnId_ind

	Private pnId_set, pnCount, pcNume_set
	pnId_set = Iif(!Empty(m.tnId_set), m.tnId_set, 0)
	pnCount = 0 && cati indicatori are setul
	pcNume_set = ''
	llNou = Empty(m.tnId_set)

	* Nume Set
	If m.llNou
		pcNume_set = "Set nou_" + Ttoc(Datetime())
		lcSql = [begin PACK_MG_EVOLUTIE.next_id_set(?@pnId_set); end;]
		lnSucces = goExecutor.oExecute(lcSql)

		If lnSucces < 0
			AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
			Return
		Endif
	Else
		lcSql = [begin PACK_MG_EVOLUTIE.GET_NUME_SET(?ALLTRIM(STR(pnId_set)),?@pcNume_set);end;]
		lnSucces = goExecutor.oExecute(lcSql)
		If lnSucces < 0
			AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
			Return
		Endif
	Endif

	* Copii indicatori din mg_indicatori in temporarul mg_tmp_indicatori
	* La editare lucrez cu mg_tmp_indicatori ca sa pot salva/renunta
	lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_set,?@pnCount); end;]
	lnSucces = goExecutor.oExecute(lcSql)

	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
		Return
	Endif

	* Selectez din mg_tmp_indicatori
	Private poset, pcschema1, pcselect1
	Store '' To poset
	pcschema1 = ['']
	pcselect1 = ['select id_ind, id_set, rand, ord_rand, nume_ind, formula, ales, tip, comentariu from mg_tmp_indicatori where 1=2']
	pcorder1 = [ord_rand, rand]
	pcfiltru1 = [sters=0 and id_set = ] + Alltrim(Str(pnId_set))
	llAfiseaza = .F.
	tcAlias = 'm_indicatori'
	gencursor('poSet', 'm_indicatori', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfiseaza)
	poset.ca_baza1.afisare()

	* Selectez din planul de conturi
	Private poPlcont, pcschema1, pcselect1
	Store '' To poPlcont
	pcschema1 = ['']
	pcschema1 = [cont C(4), acont C(4), explicatie C(100), an N(4) ]
	pcselect1 = ['select distinct cont, acont, explicatie, an FROM plcont where 1=2']
	pcorder1 = [cont, acont]
	pcfiltru1 = []
	pcfiltru1 = [AN = ] + Alltrim(Str(GNAN))
	llAfiseaza = .F.
	gencursor('poPlcont', 'crsPlcont', pcselect1, pcfiltru1, pcschema1, pcorder1, llAfiseaza)
	poPlcont.ca_baza1.afisare()

	* cursor temporar pentru indicatorii de tip jurnal
	* lcTabelRJ = gcTempPath + "tLista_rj.dbf"
	Create Cursor tLista_rj (camp_numeT C(30), camp_nume C(30), formula C(200), traducere C(200))

	* DO make_cFCentre IN oproceduri_manager.prg && apelata in princ.set_uzual_requery
	Select m_indicatori
	If !Empty(tnId_ind)
		Locate For id_ind = tnId_ind
		If !Found()
			Go Top
		Endif
	Else
		Go Top
	Endif

	poms = Createobject("frm_set", pnId_set, pcNume_set, m.llNou, tnId_ModiPara)
	poms.Show(1)

	Use In (Select('tLista_rj'))
	Use In (Select('m_indicatori'))

	Release poset

Endproc && editare_set
*------------------------------------------------------------------------------------
Procedure desparte_formula_bal
	Parameters tcFormula

	Local lcFormula
	lcFormula = Alltrim(tcFormula)

	Store '' To pcPD1, pcPC1, pcPD, pcPC, pcRD, pcRC, pcTD, pcTC, pcSD, pcSC
	Dimension laSir(100)
	lnElem = lista2array(lcFormula, @laSir, ";")
	For i = 1 To lnElem
		lnPD1 = At("<PD1>", laSir(i))
		lnPC1 = At("<PC1>", laSir(i))
		lnPD = At("<PD>", laSir(i))
		lnPC = At("<PC>", laSir(i))
		lnRD = At("<RD>", laSir(i))
		lnRC = At("<RC>", laSir(i))
		lnTD = At("<TD>", laSir(i))
		lnTC = At("<TC>", laSir(i))
		lnSD = At("<SD>", laSir(i))
		lnSC = At("<SC>", laSir(i))
		Do Case
			Case lnPD1 > 0
				pcPD1 = Substr(laSir(i), 6)
			Case lnPC1 > 0
				pcPC1 = Substr(laSir(i), 6) && <PC1>-C1511
			Case lnPD > 0
				pcPD = Substr(laSir(i), 5)
			Case lnPC > 0
				pcPC = Substr(laSir(i), 5)
			Case lnRD > 0
				pcRD = Substr(laSir(i), 5)
			Case lnRC > 0
				pcRC = Substr(laSir(i), 5)
			Case lnTD > 0
				pcTD = Substr(laSir(i), 5)
			Case lnTC > 0
				pcTC = Substr(laSir(i), 5)
			Case lnSD > 0
				pcSD = Substr(laSir(i), 5)
			Case lnSC > 0
				pcSC = Substr(laSir(i), 5)
		Endcase
	Endfor

Endproc && desparte_formula_bal
*------------------------------------------------------------------------------------
Procedure completeaza_lista_bal
	Parameters tcLista, tcTabel

	Local lcLista, lcTabel, lnAparitiiP, lnAparitiiM
	lcLista = Alltrim(tcLista)
	lcTabel = Alltrim(tcTabel)
	Store 1 To lnAparitiiP, lnAparitiiM

	For i = 1 To Len(lcLista)
		lcSemn = Substr(lcLista, i, 1)
		If lcSemn = "+" Or lcSemn = "-"
			If lcSemn = "+"
				lnAparitiiP = lnAparitiiP + 1
			Endif
			If lcSemn = "-"
				lnAparitiiM = lnAparitiiM + 1
			Endif
			lnNextSemnP = At("+", lcLista, lnAparitiiP)
			lnNextSemnM = At("-", lcLista, lnAparitiiM)

			If lnNextSemnP < lnNextSemnM And lnNextSemnP > 0
				lnNextSemn = lnNextSemnP
			Else
				If lnNextSemnM > 0
					lnNextSemn = lnNextSemnM
				Else
					lnNextSemn = lnNextSemnP
				Endif
			Endif
			lnLen = lnNextSemn - i
			If lnNextSemn = 0 And i < Len(lcLista) && ultimul cont
				lcCont = Substr(lcLista, i)
			Else
				lcCont = Substr(lcLista, i, lnLen)
			Endif
			Select (lcTabel)
			Insert Into (lcTabel) (valoare) Values (lcCont)
		Endif
	Endfor

	Select (lcTabel)
	Insert Into (lcTabel) (valoare) Values ("")

Endproc && completeaza_lista_bal
*------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------
Procedure completeaza_lista_randuri
	Parameters tcLista, tcTabel

	Local lcLista, lcTabel
	lcLista = Alltrim(tcLista)
	lcTabel = Alltrim(tcTabel)

	Do While Len(lcLista) > 0 && +[R01]+[R02]
		lnRand = At("[R", lcLista) && 2
		If lnRand > 0

			For i = 1 To lnRand - 2
				lcVal = Substr(lcLista, i, 1)
				Select (lcTabel)
				Insert Into (lcTabel) (valoare) Values (lcVal)
			Endfor

			lnPI = At("]", lcLista) && paranteza inchisa = "]"
			lcVal = Substr(lcLista, lnRand - 1, lnPI - (lnRand - 2)) && rand
			Select (lcTabel)
			Insert Into (lcTabel) (valoare) Values (lcVal)
			lcLista = Substr(lcLista, lnPI + 1)
		Else
			For i = 1 To Len(lcLista)
				lcVal = Substr(lcLista, i, 1)
				Insert Into (lcTabel) (valoare) Values (lcVal)
			Endfor
			lcLista = ""
		Endif

	Enddo

	Select (lcTabel)
	Insert Into (lcTabel) (valoare) Values ("")

Endproc && completeaza_lista_randuri
*------------------------------------------------------------------------------------
Procedure desparte_formula_rj
	Parameters tcFormula, tcTabel

	Local lcFormula, lcTabel
	lcFormula = Alltrim(tcFormula)
	lcTabel = Alltrim(tcTabel)

	Select (lcTabel)
	Delete All

	If !Empty(lcFormula)
		Dimension laSir(100), laSirCamp(100)
		lnElem = lista2array(lcFormula, @laSir, ";") && pe cate campuri am definit formula
		For i = 1 To lnElem &&
			lnCampuri = lista2array(laSir[i], @laSirCamp, "|") && intotdeauna am 4 chestii:
			* <traducere camp> <camp> <traducere_formula> <formula>
			Select (lcTabel)
			Append Blank
			Replace camp_numeT With Substr(laSirCamp[1], 2, Len(laSirCamp[1]) - 2), ;
				camp_nume With Substr(laSirCamp[2], 2, Len(laSirCamp[2]) - 2), ;
				traducere With Substr(laSirCamp[3], 2, Len(laSirCamp[3]) - 2), ;
				formula With Substr(laSirCamp[4], 2, Len(laSirCamp[4]) - 2)
		Endfor

		Select (lcTabel)
		Go Top
	Endif

Endproc && desparte_formula_rj
*------------------------------------------------------------------------------------
***------------------------------------------------------------------------------------
Procedure sterge_set_uzual
	Parameters tnId_set

	Private pnId_set

	If !Empty(tnId_set)
		pnId_set = tnId_set
	Else
		Return
	Endif

	**
	lcSql = [begin pack_mg_evolutie.sterge_set_uzual(?pnId_set,?gnIdUtil); end;]
	lnSucces = goExecutor.oExecute(lcSql)

	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
		Return
	Endif

Endproc && sterge_set_uzual
***------------------------------------------------------------------------------------
Procedure calculeaza_set
	Parameters tcFile, tcNumeSet

	Local lcNumeSet, lcFisExport


	lcalias = Juststem(tcFile)

	Select Distinct id_set, ;
		gnLuna As lunaI, GNAN As anulI,  ;
		gnLuna As lunaF, GNAN As anulF, ;
		00 As cumul, 0 As faraGrafic ;
		From (lcalias) ;
		Into Cursor cParametri

	Select cParametri
	Scatter Name poset

	poset.cumul = 1 && luni

	loexport = Createobject("frm_parametri_calcul")
	loexport.Show(1)

	If buton = 2
		Return
	Endif

Endproc && calculeaza_set
***------------------------------------------------------------------------------------
***---------------------------------------------------------------------------------------------
Procedure listare_set
	Parameters tnId_set

	Private pcTitlu, pnId_set, pcNume_set 	&&	,pcDataOra
	Store '' To pcTitlu, pcNume_set
	pnId_set = tnId_set
	&&	pcDataOra = Get_Ora(2)

	Local aFormula, aImpart, lcSql, lnSucces, lcFormula
	Declare aFormula[1], aImpart[1]

	lcSql = [begin PACK_MG_EVOLUTIE.GET_NUME_SET(?ALLTRIM(STR(pnId_set)),?@pcNume_set);end;]
	lnSucces = goExecutor.oExecute(lcSql)
	If lnSucces < 0
		AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
		Return
	Endif

	pcTitlu = Alltrim(pcNume_set)

	Private poset
	Store '' To poset
	lcSchema1 = [rand C(4), nume_ind C(200), tip N(1), formula M(4), comentariu M(4)]
	lcSelect1 = ['select rand, nume_ind, tip, formula, comentariu from mg_indicatori where 1=2']
	lcOrder1 = [ord_rand, rand]
	lcFiltru1 = [id_set=] + Alltrim(Str(pnId_set))
	llAfiseaza = .F.
	gencursor('poSet', 'cSet', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza)
	poset.ca_baza1.afisare()


	Select * From cSet Into Cursor cListSet Readwrite

	Select cListSet
	If _Tally = 0
		AMESSAGEBOX("Setul nu contine indicatori", 0 + 48, "Atentie")
		Return
	Endif

	Select cListSet
	Replace All formula With Strtran(formula, ";<", ";" + Chr(13) + "<") For tip = 1
	Replace All formula With Strtran(formula, "PD", "Precedent Debit") For tip = 1
	Replace All formula With Strtran(formula, "PC", "Precedent Credit") For tip = 1
	Replace All formula With Strtran(formula, "RD", "Rulaj Debit") For tip = 1
	Replace All formula With Strtran(formula, "RC", "Rulaj Credit") For tip = 1
	Replace All formula With Strtran(formula, "TD", "Total Debit") For tip = 1
	Replace All formula With Strtran(formula, "TC", "Total Credit") For tip = 1
	Replace All formula With Strtran(formula, "SD", "Sold Debit") For tip = 1
	Replace All formula With Strtran(formula, "SC", "Sold Credit") For tip = 1
	Replace All formula With Strtran(formula, ">", "> ") For tip = 1

	Select cListSet
	Scan For tip = 2 && registru jurnal
		lcFormula = ''
		lnCampuri = lista2array(formula, @aFormula, ";")
		For i = 1 To lnCampuri
			ln = lista2array(aFormula[i], @aImpart, "|")
			lcFormula = lcFormula + aImpart[1] + ":  " + Substr(aImpart[3], 2, Len(aImpart[3]) - 2) + Chr(13)
			Replace formula With lcFormula
		Endfor
	Endscan


	*!*	Select cListSet
	*!*	Report Form rList_set To Printer Prompt Preview
	goExport.export2frx([cListSet], [rList_set])
	If Used("cListSet")
		Use In cListSet
	Endif

	Release poset
Endproc && listare_set
***---------------------------------------------------------------------------------------------
Procedure pre_listare_formule_set
	Parameters tnId_set

	Local aFormula, aImpart, lcSql, lnSucces, lcFormula
	Declare aFormula[1], aImpart[1]

	Private poset
	Store '' To poset

	Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza
	lcSchema1 = [rand C(4), nume_ind C(200), tip N(1), formula M(4), comentariu M(4), ales N(1)]
	lcSelect1 = [select rand, nume_ind, tip, formula, comentariu, ales from mg_indicatori]
	lcOrder1 = []
	lcgroup = []
	lcFiltru1 = []
	lcFiltruOriginal = [id_set=] + Alltrim(Str(tnId_set))
	llModParam = .T.
	llAfiseaza = .F.

	gencursor('poset', 'cSet', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza,  lcgroup, llModParam, lcFiltruOriginal)
	poset.ca_baza1.afisare()

	Release poset

	Select * From cSet Into Cursor cListSet Readwrite
	If Used("cSet")
		Use In cSet
	Endif

	Select cListSet
	If _Tally = 0
		AMESSAGEBOX("Setul nu contine indicatori", 0 + 48, "Atentie")
		Return
	Endif

	Select cListSet
	Replace All formula With Strtran(formula, ";<", ";" + Chr(13) + "<") For tip = 1
	Replace All formula With Strtran(formula, "PD", "Precedent Debit") For tip = 1
	Replace All formula With Strtran(formula, "PC", "Precedent Credit") For tip = 1
	Replace All formula With Strtran(formula, "RD", "Rulaj Debit") For tip = 1
	Replace All formula With Strtran(formula, "RC", "Rulaj Credit") For tip = 1
	Replace All formula With Strtran(formula, "TD", "Total Debit") For tip = 1
	Replace All formula With Strtran(formula, "TC", "Total Credit") For tip = 1
	Replace All formula With Strtran(formula, "SD", "Sold Debit") For tip = 1
	Replace All formula With Strtran(formula, "SC", "Sold Credit") For tip = 1
	Replace All formula With Strtran(formula, ">", "> ") For tip = 1

	Select cListSet
	Scan For tip = 2 && registru jurnal
		lcFormula = ''
		lnCampuri = lista2array(formula, @aFormula, ";")
		For i = 1 To lnCampuri
			ln = lista2array(aFormula[i], @aImpart, "|")
			lcFormula = lcFormula + aImpart[1] + ":  " + Substr(aImpart[3], 2, Len(aImpart[3]) - 2) + Chr(13)
			Replace formula With lcFormula
		Endfor
	Endscan

	Release poset

	Return "cListSet"

Endproc && pre_listare_formule_set
***---------------------------------------------------------------------------------------------















