Procedure citeste_atasament_vanzari Lparameters tnIdAtVanz,tcTip,tnNrAct If !Empty(tnIdAtVanz) Private poDocument Store "" To poDocument If Used('crsat') Use In crsat Endif Local loTherm loTherm = Newobject("_thermometer","_therm","","Citire document din baza de date...") loTherm.AlwaysOnTop = .T. loTherm.Show() lcSelect = [select document from ] + gcS + [.atasamente_vanzari where ] lcFiltru = [id_at_vanz=]+Alltrim(Str(tnIdAtVanz)) lcSchema = [document W] lcOrder = [] llAfisare = .F. GENCURSOR('poDocument','crsat',lcSelect,lcFiltru,lcSchema,lcOrder,llAfisare) loTherm.Update(40, "Citire document din baza de date...") poDocument.ca_baza1.afisare() loTherm.Update(55, "Citire document din baza de date...") lcFisier = gcTempPath + Alltrim(Str(tnNrAct,14,0)) + [_] + Alltrim(tcTip) + [.pdf] loTherm.Update(65, "Testare creare fisier...") If File(lcFisier) Try Delete File (lcFisier) Catch To oException lcFisier = Strtran(lcFisier,[.pdf],Ttoc(Datetime(),1)+[.pdf]) Endtry Endif Select crsat loTherm.Update(85, "Creare fisier...") Strtofile(Document,lcFisier) loTherm.Update(95, "Deschidere fisier...") open_default_app(lcFisier) loTherm.Complete() Use In crsat Release poDocument,loTherm Endif Endproc && citeste_atasament_vanzari ***----------------------------------------------------------------------------------------------------------------------------- Procedure arata_meniu_at_vanz Lparameters tnCod,tcSerie,tnNrFactura,tcCampValoare && daca este completat si tcCampValoare, atunci apare in meniu si optiunea "Copiaza" && tcCampValoare trebuie sa fie de forma "cursor.coloana" Local lnCod,lnNrAct,lcSerie lnCod = tnCod lnNrAct = tnNrFactura lcSerie = Alltrim(Nvl(tcSerie,[])) If Used('crsmeniu') Use In crsmeniu Endif lcSql = [select a.id_at_vanz,a.tip,a.tip_doc from ] + gcS + [.vatasamente_vanzari a where a.cod = ] + Alltrim(Str(lnCod)) + [ order by a.tip] lnSucces = goExecutor.oExecute(lcSql,[crsmeniu]) If lnSucces < 0 amessagebox(goExecutor.cEroare,16,"Eroare") Else Do Case Case !Empty(tcCampValoare) lcMeniu = [;\ 0 lcMeniu = lcMeniu + [;\-] Select crsmeniu Scan lcMeniu = lcMeniu + [;] + Alltrim(tip_doc) Endscan Endif x = xmenu(Substr(lcMeniu,2)) Do Case Case x = 1 _Cliptext = Transform(Evaluate(tcCampValoare)) Case Between(x,3,2+Reccount('crsmeniu')) Select crsmeniu Go (x - 2) citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct) Endcase Case Reccount('crsmeniu') = 1 citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct) Case Reccount('crsmeniu')>0 lcMeniu = [] Select crsmeniu Scan lcMeniu = lcMeniu + [;] + Alltrim(tip_doc) Endscan x = xmenu(Substr(lcMeniu,2)) Select crsmeniu Go x citeste_atasament_vanzari(crsmeniu.id_at_vanz,crsmeniu.tip_doc,lnNrAct) Otherwise amessagebox("Nu exista documente salvate in baza de date pentru factura "+lcSerie+" "+Alltrim(Str(lnNrAct,14,0)) + " !",48,"Atentie") Endcase Use In crsmeniu Endif Endproc && arata_meniu_at_vanz ***----------------------------------------------------------------------------------------------------------------------------- Procedure make_crsAtasamente Parameters tlToate Private poLink Store '' To poLink Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal lcSchema = [id_referinta N(5), id_atas N(5), descriere c(50), nume_fisier c(200), fisier w, dataora t, utilizator c(100) ] lcSelect = [select ar.id_referinta, ar.id_atas, ar.descriere, ar.nume_fisier, '' as fisier, dataora, utilizator ]+; [ from VATAS_REFERINTE ar ] lcOrder = [ar.nume_fisier, ar.descriere] lcgroup = [] lcFiltru = [] *lcFiltruOriginal = [l.sters=0 and l.nume_fisier is not null and l.id_reg =]+Alltrim(Str(goRegistratura.id_reg)) Do Case Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 70 and ar.id_entitate=]+Alltrim(Str(goRegistratura.id_reg)) Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE" lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 21 and ar.id_entitate=]+Alltrim(Str(goContract.id_ctr)) Case Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI" lcFiltruOriginal = [ ar.nume_fisier is not null and ar.id_program = 13 and ar.id_entitate=]+Alltrim(Str(crsProiecte.id_proiect)) Endcase llModParam = .T. llAfiseaza = .F. GENCURSOR('poLink','crsAtasamenteI', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poLink.ca_baza1.afisare() Select * From crsAtasamenteI With (Buffering = .T.); into Cursor crsAtasamente Readwrite If Used('crsAtasamenteI') Use In crsAtasamenteI Endif Endproc && make_crsAtasamente ***----------------------------------------------------------------------------------------------------------------------------- PROCEDURE inchide_crsAtasamente IF USED('crsAtasamente') USE IN crsAtasamente ENDIF ENDPROC && inchide_crsAtasamente ***----------------------------------------------------------------------------------------------------------------------------- Procedure upload Parameters tcTabel Private pnId_entitate, pcLink, pcDescriere, pcFis_name, pcFisier, pnId_atas &&,pntip_entitate modificare 30.05.2011 Store 0 To pnTip_entitate, pnId_atas &&,pnTip_entitate modificare 30.05.2011 Store "" To pcDescriere, pcFis_name, pcFisier, pcLink * pcLink - private - folosit in frm_atas_nou Local llReturn,lcSql,lnSucces llReturn = .T. Local lcTabelLinkuri Store '' To lcTabelLinkuri If !Empty(tcTabel) lcTabelLinkuri = Alltrim(tcTabel) && Thisform.grid_linkuri.RecordSource Select (lcTabelLinkuri) Scatter Name poLink Blank Memo Else Create Cursor crsAtasTemp (id_atas N(5), descriere c(50), nume_fisier c(200), fisier w) Select crsAtasTemp Scatter Name poLink Blank Memo Use In crsAtasTemp Endif If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" AddProperty(poLink,'id_proiect',goRegistratura.id_proiect) AddProperty(poLink,'proiect',Alltrim(goRegistratura.proiect)) Else AddProperty(poLink,'id_proiect',0) AddProperty(poLink,'proiect','') Endif AddProperty(poLink,'id_ctr',0) AddProperty(poLink,'contract','') lodn = Createobject("frm_atas_nou") lodn.Show(1) If gnButon = 2 Return Endif If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" pnId_entitate = goRegistratura.id_reg *!* pnTip_entitate = 1 modificare 30.05.2011 Endif If Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE" pnId_entitate = goContract.id_ctr *!* pnTip_entitate = 2 modificare 30.05.2011 Endif If Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI" pnId_entitate = Alltrim(Str(crsProiecte.id_proiect)) *!* pnTip_entitate = 3 modificare 30.05.2011 Endif pcDescriere = Upper(Alltrim(poLink.descriere)) pcFis_name = Upper(Alltrim(poLink.nume_fisier)) If Empty(pcLink) Return Endif pcFisier = Filetostr(pcLink) lnSucces = SQLSetprop(gnhandle,"Transactions",2) If lnSucces < 0 amessagebox("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!",48,"Atentie") Else lcSql = [insert into atas_atasamente(fisier, nume_fisier, descriere, id_util) ]+; [values (?pcFisier, ?pcFis_name, ?pcDescriere, ?gnIdUtil) ] + ; [ returning id_atas into ?@pnId_atas] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Else If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" lcSql = [update registratura set id_proiect = ?polink.id_proiect where id_reg = ?pnId_entitate] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Else lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ] && registratura modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Else If !Empty(Nvl(poLink.id_ctr,0)) And poLink.id_ctr<> -1 lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?gnIdProgram, ?polink.id_ctr, ?gnIdUtil) ] && contracte modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Else If !Empty(Nvl(poLink.id_proiect,0)) And poLink.id_proiect <> -1 lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?gnIdProgram, ?polink.id_proiect, ?gnIdUtil) ] && lucrari modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Endif Endif Endif Endif Endif Endif Else && RoaContracte, RoaLucrari lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ] && modificare 30.05.2011 : am inlocuit pnTip_Entitate cu gnIdProgram lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Endif Endif Endif Endif If lnSucces < 0 lcSql = "ROLLBACK" Else lcSql = "COMMIT" Endif lnSucces2 = goExecutor.oExecute(lcSql) If lnSucces2 < 0 amessagebox(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare") Endif lnSucces2 = SQLSetprop(gnhandle,"Transactions",1) If lnSucces2 < 0 amessagebox('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',0+48,'Atentie!') Else If lcSql = "COMMIT" If !Empty(lcTabelLinkuri) Select (lcTabelLinkuri) Append Blank Gather Name poLink Memo Replace fisier With pcFisier, id_atas With pnId_atas, nume_fisier With pcFis_name, descriere With pcDescriere, dataora With Datetime(), utilizator With gcUserNameApp Endif Do Case Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" goRegistratura.proiect = poLink.proiect goRegistratura.id_proiect = poLink.id_proiect Replace are_link With 1 In cRegistratura Replace id_proiect With poLink.id_proiect In cRegistratura Replace proiect With poLink.proiect In cRegistratura Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE" Replace are_link With 1 In cContracte Endcase Endif Endif Endproc && upload ***----------------------------------------------------------------------------------------------------------------------------- Procedure import_atasamente Parameters tnTipEntitate && completare campuri nume_fis si link_bd din link - la versiunea 2.0.7 - se salveaza atasamentele in bd && ver. 2.0.12 - preluare din ctr_linkuri (reg_linkuri) in atas_atasamente, atas_referinte && tnTipEntitate/gnIdProgram = 70-RoaRegistratura, 21-RoaContracte, 13-RoaLucrari Private poLink, pcFisier, pcNume_fis, pcDescriere, pnId_entitate, pnId_atas, pnId_link, pnTipEntitate Store '' To poLink Store 0 To pnId_entitate, pnId_atas, pnId_link *!* modificare 31.05.2011 *!* If Empty(tnTipEntitate) *!* Return *!* Endif *!* pnTipEntitate= tnTipEntitate pnTipEntitate = IIF(EMPTY(tnTipEntitate),gnIdProgram,tnTipEntitate) *!* modificare 31.05.2011 ^ Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal lcSchema = [id_link N(5), id_entitate n(5), descriere c(50), link c(200) ] Do Case Case Upper(Alltrim(gcNumeProgram)) = "ROACONTRACTE" lcSelect = [select id_link, id_ctr as id_entitate, DENUMIRE AS descriere, link ]+; [from ctr_linkuri] Case Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" lcSelect = [select id_link, id_reg as id_entitate, DENUMIRE AS descriere, link ]+; [from reg_linkuri] Case Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI" lcSelect = [select id_link, id_proiect as id_entitate, DENUMIRE AS descriere, link ]+; [from con_linkuri] Endcase lcOrder = [] lcgroup = [] lcFiltru = [STERS=0] lcFiltruOriginal = [link is not null and id_link not in (select id_link from atas_atasamente where id_tip_ent_prel = ?pnTipEntitate)] llModParam = .T. llAfiseaza = .F. GENCURSOR('poLink','cCtrLink2', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poLink.ca_baza1.afisare() Private pnId_link, pcNume_fis, pcLink_bd Local lcMesaj lcMesaj = '' Select cCtrLink2 Calculate Cnt() To lnFisiere lnIndex = 0 Scan pnId_link = id_link pnId_entitate = id_entitate lcLink = Alltrim(Link) pcNume_fis = Justfname(lcLink) pcDescriere = Upper(Alltrim(descriere)) lnIndex = lnIndex + 1 Wait Window Alltrim(Str(lnIndex)) + '/' + Alltrim(Str(lnFisiere)) + " " + pcNume_fis Nowait If File(lcLink) pcFisier = Filetostr(lcLink) *lcSql = [update ctr_linkuri set nume_fis=?pcNume_fis, link_bd = ?pcLink_bd where id_link=?pnId_link] lcSql = [insert into atas_atasamente (fisier, nume_fisier, id_util, descriere, id_link, id_tip_ent_prel) ]+; [values (?pcFisier, ?pcNume_fis, ?gnIdUtil, ?pcDescriere, ?pnId_link, ?pnTipEntitate) ] +; [returning id_atas into ?@pnId_atas] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 If amessagebox(goExecutor.cEroare + Chr(13) + Chr(10) + 'Doriti sa continuati?',4+48,'Eroare') # 6 Exit Endif Else lcSql = [insert into atas_referinte (id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?pnTipEntitate, ?pnId_entitate, ?gnIdUtil)] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 If amessagebox(goExecutor.cEroare + Chr(13) + Chr(10) + 'Doriti sa continuati?',4+48,'Eroare') # 6 Exit Endif Endif Endif Else lcMes = 'Nu exista fisierul '+lcLink+Chr(13) lcMesaj = lcMesaj + lcMes Endif Select cCtrLink2 Endscan If !Empty(lcMesaj) amessagebox(lcMesaj) Endif If Used('cCtrLink2') Use In cCtrLink2 Endif Endproc && import_atasamente ***----------------------------------------------------------------------------------------------------------------------------- Procedure modifica_atasament Parameters tcTabel Private pcDescriere, pnId_atas Store 0 To pnId_atas Store "" To pcDescriere * pcLink - private - folosit in frm_atas_nou Local llReturn,lcSql,lnSucces llReturn = .T. Local lcTabelLinkuri If !Empty(tcTabel) lcTabelLinkuri = Alltrim(tcTabel) && Thisform.grid_linkuri.RecordSource Select (lcTabelLinkuri) Scatter Name poLink Memo Else Return Endif If Upper(Alltrim(gcNumeProgram)) = "ROAREGISTRATURA" AddProperty(poLink,'id_proiect',goRegistratura.id_proiect) AddProperty(poLink,'proiect',Alltrim(goRegistratura.proiect)) Else AddProperty(poLink,'id_proiect',0) AddProperty(poLink,'proiect','') Endif AddProperty(poLink,'id_ctr',0) AddProperty(poLink,'contract','') lodn = Createobject("frm_atas_nou") lodn.Command3.Enabled=.F. lodn.Show(1) If gnButon = 2 Return Endif pnId_atas = poLink.id_atas pcDescriere = Upper(Alltrim(poLink.descriere)) lcSql = [update atas_atasamente set descriere = ?pcDescriere ]+; [where id_atas = ?pnId_atas] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Endif If !Empty(lcTabelLinkuri) Select (lcTabelLinkuri) Gather Name poLink Memo Replace descriere With pcDescriere Endif Endproc && modifica_atasament ***----------------------------------------------------------------------------------------------------------------------------- Procedure salveaza_atasamente Parameters tcTabel Local lcTabel lcTabel = tcTabel lcSql = [select ar.id_referinta ]+; [ from VATAS_REFERINTE ar ]+; [ where ar.nume_fisier is not null and ar.id_program = ?gnIdProgram and ar.id_entitate=]+Alltrim(Str(goContract.id_ctr)) lcCursor = 'crsAtasamente_server' lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare") Return lnSucces Endif * daca exista id_referinta in plus in cursorul de pe local, adaug pe server Private pnId_entitate, pcLink, pcDescriere, pcFis_name, pcFisier, pnId_atas Store 0 To pnId_entitate, pnId_atas Store "" To pcDescriere, pcFis_name, pcFisier, pcLink pnId_entitate = goContract.id_ctr Select * From (lcTabel) ; Where (Empty(id_referinta) Or Isnull(id_referinta)) ; INTO Cursor cAtasamente_nou Select cAtasamente_nou Scan pcDescriere = Upper(Alltrim(descriere)) pcFis_name = Upper(Alltrim(nume_fisier)) *!* If Empty(pcLink) *!* Return *!* Endif * pcFisier = Filetostr(pcLink) pcFisier = fisier lcSql = [insert into atas_atasamente(fisier, nume_fisier, descriere, id_util) ]+; [values (?pcFisier, ?pcFis_name, ?pcDescriere, ?gnIdUtil) ] + ; [ returning id_atas into ?@pnId_atas] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Endif lcSql = [insert into atas_referinte(id_atas, id_program, id_entitate, id_util) ]+; [values (?pnId_atas, ?gnIdProgram, ?pnId_entitate, ?gnIdUtil) ] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 aMessagebox(goExecutor.cEroare,0+16,'Eroare') Return lnSucces Endif Select cAtasamente_nou Endscan If Used('cAtasamente_nou') Use In cAtasamente_nou Endif * daca exista id_referinta pe server, care nu mai sunt pe local, sterg *!* Select id_referinta From crsAtasamente_server ; *!* Where id_referinta Not In (Select id_referinta From cId_ref) ; *!* INTO Cursor cAtasamente_sters lcDeleted = Set("Deleted") Set Deleted Off Select * From (lcTabel) Where Deleted() And !Empty(id_referinta); INTO Cursor cAtasamente_sters Select cAtasamente_sters Scan *pcId_atas = Alltrim(Str(id_atas)) lcId_referinta = Alltrim(Str(id_referinta)) lcSql = [update atas_referinte set sters = 1, dataoras = SYSDATE, id_utils = ] + Alltrim(Str(gnIdUtil)) + ; [ WHERE id_referinta = ] + lcId_referinta lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 AMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare") Return lnSucces Endif Select cAtasamente_sters Endscan If Used('cAtasamente_sters') Use In cAtasamente_sters Endif Set Deleted &lcDeleted If Used('cAtasamente_sters') Use In cAtasamente_sters Endif If Used('crsAtasamente_server') Use In crsAtasamente_server Endif Return lnSucces Endproc && salveaza_atasamente ***----------------------------------------------------------------------------------------------------------------------------- Procedure arata_linkuri Private poLink Store '' To poLink Local lcMenu, lnx, lcDocument,lnNrLinkuri, lnIdAtas Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza, lcgroup, lcFiltruOriginal Store '' To lcMenu Store 0 To lnNrLinkuri, lnIdAtas Do make_crsAtasamente In oproceduri_atasamente.prg lcMenu = lcMenu + "Ataseaza ...;\-;" Select crsAtasamente Scan lcMenu = lcMenu + Alltrim(Nvl(descriere,''))+ ' - ' + Alltrim(Nvl(nume_fisier,'')) +';' lnNrLinkuri = lnNrLinkuri + 1 Select crsAtasamente Endscan If Upper(Alltrim(gcNumeProgram)) = "ROALUCRARI" And lnNrLinkuri > 0 lcMenu = lcMenu + '\-;'+ "Vizualizare atasamente ...;" Endif If !Empty(lcMenu) lcMenu = Substr(lcMenu,1,Len(lcMenu)-1) lnx = xmenu(lcMenu) Do Case Case lnx = 1 && Ataseaza Do upload In oproceduri_atasamente.prg Case lnx = lnNrLinkuri + 4 Select crsAtasamente Go Top ofrmVizAtas = Createobject('frm_viz_atasamente') ofrmVizAtas.Show(1) Release ofrmVizAtas Otherwise Select crsAtasamente Locate For Recno() = lnx - 2 If Found() lnIdAtas = id_atas lcNume_fisier = Alltrim(nume_fisier) lcSchema = [fisier w ] lcSelect = [select fisier from atas_atasamente where id_atas = ] + Alltrim(Str(lnIdAtas)) lcOrder = [] lcgroup = [] lcFiltru = [] lcFiltruOriginal = [] llModParam = .T. llAfiseaza = .F. GENCURSOR('poLink','cRegFisierTemp', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poLink.ca_baza1.afisare() If Used('cRegFisierTemp') lcFisier = fisier Use In (Select('cRegFisierTemp')) lcFisSalvat = Addbs(gcTempPath)+lcNume_fisier Strtofile(lcFisier, lcFisSalvat) open_default_app(lcFisSalvat) Endif Endif Endcase If Used('crsAtasamente') Use In crsAtasamente Endif Endif Endproc && arata_linkuri ***-----------------------------------------------------------------------------------------------------------------------------