hMET2UP - exe:V4.16

Program utilitar pentru intretinere si upgrade baze de date de tip hMET

• Caracteristici

• Mediul de rulare

Pentru rularea programului este necesar un mediu de tip hMET:
	   DBF
	   TMP\TMPx
	   hMET2UP.exe

• Lansarea programului

hMET2UP <Baza_de_date> <Cod_aplicatie> [<Catalog_origine_prg>]

Exemplu: hMET2UP DBF S

Catalogul origine_prg - distingem doua cazuri:

• Continutul catalogului origine

Catalogul origine contine fisierele sursa ale programelor, precum si fisierele de date de referinta necesare in operatiile de intretinere baze de date si upgrade.

Fisiere sursa sint fisiere text cu extensia ".TXT" si contin instructiunile scripturilor care pot fi executate prin hMET2UP.

Numele fisierului text are urmatoarea structura: Fx.TXT.
Primul caracter din nume ("F") este consacrat, toate fisierele sursa trebuie sa inceapa cu acest caracter.
x - poate fi un numar, un caracter alfabetic sau un semn si reprezinta codul programului continut de fisier.
Nume de fisiere sursa valide: F1.TXT, FA.TXT, F_.TXT
Extensia fisierelor sursa in mod obligatoriu trebuie sa fie ".TXT".

Dupa lansarea programului, sint cautate programele surse valide din catalogul origine si afisate intr-un meniu. Utilizatorul poate selecta si executa oricare dintre aceste programe.




Fisiere sursa speciale
Exista doua fisiere sursa speciale: F_.TXT si F0.TXT.
Structura fisierelor sursa
Fisierele sursa sint fisiere text obisnuite. Pot fi editate cu orice editor de text cu care pot fi create fisiere ASCII.
Prima linie din fisier este o linie speciala si are urmatoarea structura:
//Faza x: <Sir_titlu>

Unde:
//Faza - este cuvint cheie. Trebuie sa existe, altfel fisierul nu va fi luat in considerare de hMET2UP.
x - reprezinta codul aplicatiei. Trebuie sa fie identic cu cel de al doilea caracter din numele fisierului sursa.
<Sir_titlu> - titlul operatiei executat de program. Va fi afisat in meniul din care se lanseaza programele.

Exemple: - Numele fisierului sursa: FU.TXT.
 - Prima linie din fisier: //Faza U: Recodificare fisiere hMET2

• Functii speciale HMET2UP

Sint functii special dezvoltate in vederea programarii scripturilor in utilitarul HMET2UP.

CopyFile (FName, lMemo, nIndex, sAlias)
Copiaza fisierul de referinta peste fisierul original din baza de date HMET.
Nu este necesar ca fisierul destinatie sa existe in baza de date, caz in care are loc o copiere a fisierului fara suprascriere.

FName - numele fisierului ce se copiaza. In mod implicit este cautat in catalogul origine.
lMemo - fisier cu cimp memo Da/Nu(.T./.F.),
nIndex - numarul de ordine al fisierului din baza de date hMET (variabila fil_<alias>, ex. fil_p_),
sAlias - aliasul fisierului (cel din catalogul fisierelor),

UpgrFile (FName, lMemo, index, sAlias, [bAct])
Copiaza structura fisierului de referinta si preia in acesta continutul fisierului original din baza de date.
Se foloseste pentru actualizarea structurii fisierelor de date.

FName - numele fisierului ce se copiaza. In mod implicit este cautat in catalogul origine.
lMemo - fisier cu cimp memo Da/Nu(.T./.F.),
nIndex - numarul de ordine al fisierului din baza de date hMET (variabila fil_<alias>, ex. fil_p_),
sAlias - aliasul fisierului (cel din catalogul fisierelor),
bAct - actiune de sfirsit ce se executa dupa ce datele au fost preluate.

index_file (sAlias)
Creeaza fisierele index pentru fisierul de date identificat prin aliasul sAlias.

del_indexf (sAlias)
Sterge fisierele index pentru fisierul de date identificat prin aliasul sAlias.

del_file (sAlias, sAplcode)
Sterge fisierul sAlias pentru aplicatia sAplcode.
Situatii:
del_cmps (sComp1, sComp2)
Elimina toate cimpurile incepind cu codul sComp1 si pina la cimpul cu codul sComp2 dintr-o baza de date de tip HMET2.
Exemplu: del_cmps("S_K1","S_K3") --> va elimina toate cimpurile S_K1, ..., S_K3 (si cimpul S_K2 daca exista)

del_cmpf (sComp1, sComp2, sFexp)
Sterge formulele asociate pentru toate cimpurile cu codul sComp1 si pina la cimpul cu codul sComp2 dintr-o baza de date de tip HMET2.
Prin transmiterea parametrului sFexp stergerea poate fi selectiva, doar pentru fisierul de export specificat.
Exemple:  - del_cmpf("S_K1","S_K3")
 - del_cmpf("S_K1","S_K3","E1") --> sterge doar formulele de calcul pentru fisierul de export "E1".

del_tfl (sPoz1, sPoz2, smode)
Sterge toate pozitiile incepind cu sPoz1 si pina la sPoz2 din Operatii/ferestre/liste.
sPoz1, sPoz2 sint siruri de cinci caractere, in care:
- caracterele 1,2 reprezinta fisierul,
- caracterul 3 identificator al tipului de operatie,
- caracterul 4,5 numarul de ordine al operatiei.

 
Tipurile operatiilor
OperatiaIdentificator Numere de ordine admise
 INC./SF" " 01,02
 INITIAL"0" 01,02,03
 OPERATIE"1" 01,...,10
 FISIER"2" 01,...,11
 ARTICOL"3" 01,...,10
 LISTA"5" 01,...,15
 EXPORT"7" 01,...,10,0A,...,0E

Parametrul smode indica modul in care sint sterse operatiile, ferestrele, listele:
- NIL - pozitiile referite sint efectiv sterse din fisier
- .T. - pozitia ramine, se sterge doar continutul

Exemple: - del_tfl("S_511","S_511") - se sterge lista cu numarul de ordine 11 pentru fisierul S_
 - del_tfl("S_511","S_512",.T.) - se goleste continutul listelor 11 si 12 pentru fisierul S_


del_cf (aCf)
Sterge constantele si functiile enumerate in lista aCf.

Exemplu: del_cf({"CONSTANTA1","CONSTANTA2"})

add_file (FName)
Actualizeaza catalogul fisierelor conform catalogului de fisiere referinta transmis prin FName.
Sint actualizate doar fisierele definite in catalogul fisierelor de referinta.
Definitiile de fisiere existente in catalogul fisierelor de referinta si inexistenete in catalogul fisierelor actualizat sint introduse.
La definitiile de fisiere existente in ambele cataloage se actualizeaza caile de acces, fisierele index nedefinite, cheile fisierelor index, etc.
Catalogul fisierelor de referinta transmis prin FName trebuie sa existe. In mod implicit este cautat in catalogul origine.

Exemplu: add_file("F1_FILE")

add_cmps (FName)
Adauga definitiile cimpurilor din fisierul FName la definitiile de cimpuri din baza de date actualizata.
Structurile fisierelor implicate sint actualizate.
Daca cimpul este deja definit, utilizatorul este avertizat, avind posibilitatea sa suprascrie sau sa renunte la actualizarea definitiei cimpului exstent.

Exemplu: add_cmps("F1_CMPS")

add_cmpf (FName)
Adauga formulele din fisierul FName la definitiile din baza de date actualizata.
Daca formula exista deja, utilizatorul este avertizat, avind posibilitatea sa suprascrie sau sa renunte la actualizarea formulei.

Exemplu: add_cmps("F1_CMPF")

add_tfl (FName)
Adauga operatiile, ferestrele si listele definite in fisierul de referinta FName la definitiile din baza de date actualizata.
Daca operatia, fereastra, lista exista deja, este suprascrisa fara avertizare.
Exemplu: add_cmps("F1_CMPF")

add_cf (FName_cf, FName_funi)
Adauga constantele si functiile definite in fisierele de referinta FName_cf si FName_funi la constantele si functiile din baza de date actualizata.
Daca constanta/functia exista deja, va fi actualizata fara avertizare.

add_cont (FName)
Adauga conturile definite in planul de conturi de referinta FName in planul de conturi din baza de date actualizata.
Daca contul exista deja, va fi actualizat fara avertizare.

add_dict (FName)
Adauga pozitiile din dictionarul de referinta FName in dictionarul din baza de date actualizata.
Daca termenul exista deja va fi actualizat fara avertizare.