Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
» informatica - farmacie


informatica - farmacie


FARMACIE



Componente functionale si interfata cu utilizatorii

Fox pro este un sistem de gestiune a bazelor de date relationale dotat cu o interfata performanta si un mediu puternic de programare. El permite aplicarea operatorilor relationali asupra obiectelor unei baze de date relationale.

Structura functionala a sistemului FoxPro

Sistemul FoxPro are urmatoarele componente functionale: SCREEN BUILDER, REPORT WRITER, MENIU BUILDER, PROJECT MANAGEMENT, TRACE/DEBUG, DISTRIBUTION KIT, APPLICATION PROGRAMMER'S INTERFACE (API)/LIBRARY CONSTRUCTION KIT, RQBE, TEXT EDITOR, Limbajul SQL, etc. fig 1

Componenta TEXT EDITOR permite introducerea si modificarea unor fisiere de tip program (cu extensia .PRG), text descriptiv (cu extensia .TXT), format (cu extensia .FMT) sau ASCII. Se poate edita in mai multe ferestre iar anumite portiuni de text pot fi modificate, selectate, mutate etc. Sunt coordonatele cursorului in fisier si starea testelor principale sub forma unei bare luminoase.

Componenta SCREEN BUILDER permite proiectarea video-formatelor de introducere si editare a datelor. In video-format pot fi introduse texte, se pot defini meniuri pe verticala (popup), boxuri de dialog, zone de tip comentariu, butoane etc. Aceste elemente se memoreaza intr-un fisier cu extensia (.SCX) pe baza caruia se genereaza codul program intr-un fisier cu extensia (.SPR).

Componenta REPORT WRITER permite proiectarea in mod profesional, rapid si usor a rapoartelor finale cu ajutorul unei ferestre compuse din trei zone predefinite: Page Header, Detail, Page Footer. In Page Header se plaseaza informatii care apar la inceputul unei pagini din raport, in Detail se declara campurile afisate secvential sau grupate, in Page Footer se declara informatii ce sunt afisate la sfarsitul paginii sau al raportului final. Se poate face o vizualizare a raportului pe ecran, inainte de a-l lista la imprimanta.

Fisierele cu rapoartele finale au extensia (.FRX). La apelarea acestor fisiere, din interiorul unui program sau la nivelul ferestrei de comanda, este automat generat codul program intr-un fisier cu extensie (.FRT).

Componenta MENU BUILDER permite proiectarea sistemelor de meniuri. La crearea meniului se specifica prompturile si operatiile ce sunt executate ca urmare a selectarii unei optiuni. Pot fi create cu multa usurinta submeniuri in cascada, meniuri pe verticala (popup meniu) etc. De asemenea, se pot specifica chei functionale. Dupa ce un meniu a fost definit intr-un fisier cu extensia (.MNX) se poate genera un cod program sub forma unui fisier cu extensia (.MNT). Odata codul generat, programul poate fi executat direct sau din interiorul unei aplicatii FoxPro.

Componenta PROJECT MANAGEMENT verifica si coordoneaza diferite obiecte ale unei aplicatii. Se pot crea aplicatii care au in compunere obiecte prezentate in figura 1.2.

Componenta TRACE/DEBUG permite apelul ferestrei Trace prin care se poate urmari codul program si a ferestrei Debug ce permite vizualizarea valorilor expresiilor si variabilelor din program pe parcursul executarii sale.

Componenta DISTRIBUTION KIT permite realizatorilor de aplicatii sa distribuie, utilizatorilor finali sau clientilor, aplicatiile sub forma de: fisiere compilate executate sub RUN TIME; fisiere executate compact (ce pot fi folosite numai impreuna cu produsul software FoxPro) si executabile FREE STANDING (ce pot fi folosite independent de existenta produsului software FoxPro).

Componenta API (APLICATION PROGRAMMER'S INTERFACE)/ LIBRARY CONSTRUCTION KIT) permite programatorilor si utilizatorilor sa extinda aplicatiile create in FoxPro prin apelarea unor rutine C sau rutine ale limbajelor de asamblare (figura 1.3). API include rutine scrise in limbajul C sau in limbaj de asamblare intr-o biblioteca ce poate fi exploatata de orice aplicatie FoxPro.

Componenta RQBE/SQL este un suport pentru Relational Query By Example. Este proiectata pentru extragerea rapida a informatiilor din baze de date. Apelarea acestei componente afiseaza un centru de control utilizat pentru construirea cererilor de selectare a datelor. Programul sursa SQL generat este memorat intr-un fisier cu extensia (QPR).

Limbajul FoxPro este un limbaj procedural ce permite crearea, actualizarea si exploatarea unei baze de date, proiectarea video-formatelor de intrare, situatiilor finale, etichetelor, meniurilor etc.

Limbajul SQL este un limbaj neprocedural ce permite, de asemenea, crearea, selectarea, actualizarea bazelor de date. Programele pot fi create cu editorul de texte, dupa care sunt compilate si apoi executate.

Sistemul mai dispune in afara de aceste componente de o serie de aplicatii (PROCOLOR.APP; GENPD.APP; ADDUSER.APP; DEMO.APP; FOXAPP.APP; INSTALL.APP; SNIPFMT.APP) precum si de o serie de programe de generare (GENGRAPH.PRG; GENMENU.PRG; GENSCRN.PRG; GENXTAB.PRG).

Interfata sistemului

Sistemul FoxPro poate fi folosit in doua moduri: fie folosind facilitatile elementelor de interfata (meniul sistem) fie prin comenzi introduse in fereastra de comanda sau grupate sub forma unui program-sursa (modul comanda). Primul mod este preferat, fiind mult mai simplu si in concordanta cu produsele software de ultima generatie. Modul de lucru in fereastra de comanda sau program corespunde cu modul de lucru al comenzilor cu punct din sistemele dBASE, anterioare sistemului FoxPro.

Interfata mediului FoxPro consta din meniuri, ferestre, dialoguri si alte facilitati care fac usoara operarea. Ea, este conceputa pentru a putea fi apelata cu ajutorul mouse -ului sau prin intermediul tastaturii. Chiar daca sistemul FoxPro nu necesita neaparat un mouse, este recomandabila folosirea lui pentru usurinta si rapiditatea adusa.

1.2.1. Meniul sistem

Meniul sistem al produsului FoxPro permite lucrul si controlul si controlul produsului fara a introduce de la tastatura comenzi in fereastra de comanda sau a folosi programe sursa. Meniul sistem, afisat pe orizontala, se compune din mai multe submeniuri afisate pe verticala, fiecare submeniu in parte continand mai multe optiuni.

El poate fi apelat apasand tasta [Alt] sau [F10], dupa care cu ajutorul sagetilor directionale stanga, dreapta se deplaseaza cursorul pe subdomeniul dorit. Pentru a se afisa submeniul dorit se apasa tasta [ENTER], dupa care cu sagetile directionale sus, jos se alege optiunea dorita iar selectarea ei se face prin apasare tastei [ENTER].

O alta posibilitate de selectare a meniului dorit este aceea de a apasa simultan tasta [F10] (sau [ALT]) si o litera (litera ce apare mai luminoasa, in numele meniului respectiv).

In functie de pozitia in cadrul interfetei, sunt activate sau dezactivate submeniuri si/sau optiuni ale acestora . submeniurile dezactivate au o luminozitate mai redusa in raport cu cele activate. Se spune ca sunt stinse si nu pot fi selectate. Submeniurile contin liste de optiuni. Atunci vand se selecteaza o optiune din submeniu, se indica sistemului executare unei actiuni. Selectarea optiunii consta din mutarea cursorului pe optiunea dorita urmata de apasarea tastei [ENTER] sau a barei de spatiu.

System File Edit Database Record Program Window

New .

Open .

Close

Save

Save as .

Revert

Printer Setup .

Print .

Quit

Daca se utilizeaza mouse- ul, se plaseaza cursorul pe submeniul ales si se apasa butonul din stanga. Daca comanda SET STICKY este setata pe ON, submeniul va ramane pe ecran pana la selectarea unei noi optiuni sau pana cand se puncteaza cu mouse-ul, oriunde in afara submeniului pe ecran, trebuie tinut apasat butonul. In momentul in care se elibereaza butonul mouse-lui submeniul dispare de pe ecran.

Submeniurile contin liste de optiuni, legate logic, in functie de actiunile pe care le executa. Ele sunt separate printr-o linie orizontala.

Unele dintre optiuni sunt urmate de simbolul ( . ), ceea ce semnifica faptul ca selectarea acestor optiuni determina afisarea unei ferestre de dialog.

Ele pot fi selectate si cu ajutorul unor combinatii de taste ce apar alaturi de numele optiunii.

Cand se selecteaza o optiune, are loc deschiderea sau inchiderea unei ferestre, setarea unui comutator (switch) sau generarea unei comenzi in fereastra de comanda.

1.2.2. Ferestre de dialog

Cand se alege o optiune care este urmata de ( . ) se va deschide o fereastra de interogare denumita fereastra de dialog. De asemenea, ferestrele de dialog apar ori de cate ori sistemul FoxPro are nevoie de informatii suplimentare pentru executia unei comenzi.

a)Elemente ale ferestrei de dialog

Ferestrele de dialog contin diferite elemente de control pentru a confirma sau anula actiunile. Dupa afisare, orice fereastra de dialog trebuie neaparat inchisa pentru a putea continua apelarea altor componente ale sistemului FoxPro. Iesirea din fereastra de dialog se face apasand tasta [Esc], sau actionand un element de control specificat in aceasta.

In urmatoare figura este prezentata fereastra de dialog apelata prin selectarea optiunii Preferences . din submeniul Edit.

[X] Wrap words

Tab size: 4

[X] Auto indent

[X] Make backup

] Use these preferences as default for. TXT files

[X] Status line

] Add Ctrl - Z

] Save preference

(☼) Left justify

<<OK>>

) Right justify

) Center justify

<Cancel>

Ecran pentru setarea optiunilor de editare

Elementele de control prezente in aceasta fereastra sunt:

PUSH BUTTON este o optiune marginita de semnele < , > sau << , >>. Cuvantul astfel delimitat descrie o actiune, care se declanseaza imediat ce push button - ul este apelat (mai putin daca contine . , ce determina aparitia unei ferestre de dialog).

Daca cuvantul cheie al push button - ului este delimitat cu semnele << , >>, atunci push button - ul este implicit si este apelat prin combinatia de taste [Ctrl] +[ Enter], indiferent de pozitia cursorului. Mutarea cursoru;ui intre elementele de control se face prin intermediul tastei [Tab]. Lansarea in executie a push button - ului se face apasand bara de spatiu sau tasta [Enter].

CHECK BOX este reprezentat printr-o pereche de paranteze drepte urmate de un text, este un comutator cu doua stari: ON si OFF. Daca intre paranteze apare caracterul X atunci setarea este pe ON. Se pot seta simultan mai multe check box - uri.

RADIO BUTTON este reprezentat printr-un set de paranteze ( ) urmate de un text. Se poate selecta la un moment dat un singur radio button dintr-o lista de asemenea elemente. Dupa selectarea lui se apasa bara de spatiu. Atunci cand un radio button este selectat, va apare un punct in interiorul parantezelor.

POPUP CONTOL este reprezentat printr-un dreptunghi cu marginea dreapta ingrosata. Miscarea in interiorul lui se face cu ajutorul tastelor [Pg Up], [Pg Dn], [Home], [End], sau cu sagetile directionale [↑], [↓]. Dupa selectarea optiunii dorite din popup meniu se apasa bara de spatiu.

Optiunile popup - urilor sunt ordonate alfabetic. Pozitionarea pe optiunea dorita se mai poate realiza tastand primele caractere ale acesteia.

Lista este reprezentata de o zona dreptunghiulara care contine: directoare, fisiere, campuri s. a. m. d. ce pot fi selectate. Dupa pozitionarea cursorului in interiorul listei se apasa tasta [Enter].

TEXT BOX este reprezentat printr-o banda in interiorul careia utilizatorul poate introduce un text. Apare ca alternativa a unui push button sau poate fi de sine statator.

b)         Pozitionarea in cadrul ferestrei de dialog

In cadrul ferestrei de dialog tasta [Tab], permite deplasarea de la un element de control la altul. De asemenea, cele mai multe elemente de control din ferestrele de dialog au asociate combinatii de taste care permit selectarea lor directa.

Ferestrele de dialog pot fi pozitionate pe ecran ca orice fereastra a sistemului FoxPro.

Fereastra de comanda (Command window)

Fereastra de comanda este cea mai importanta fereastra a sistemului FoxPro.

Sistemul FoxPro realizeaza un "istoric" al comenzilor. Astfel, fereastra de comanda pastreaza o lista a comenzilor introduse direct sau generate ca urmare a actiunilor din meniuri, ferestre etc. In cazul repetarii unor comenzi acestea nu mai trebuie introduse.

Se muta cursorul pe comanda dorita si se apasa tasta [Enter].

In functie de optiunile alese se pot genera comenzi lungi ce depasesc marginea dreapta a ferestrei. Pentru a usura vizibilitatea , linia de comanda se poate desparti in mai multe linii fizice folosind ca separator caracterul ( ; ), fara a se perturba functionalitatea liniei de comanda.

In aceasta fereastra se pot apela comenzi MS - DOS fie utilizand caracterul ( ! ) urmat de comanda respectiva sau tastand RUN urmat de comanda.

Exemplu:

!DIR/P

RUN DIR/P

Mesaje de avertizare

O fereastra de avertizare este o arie rectangulara care contine un mesaj de avertizare sau de eroare. Fereastra de avertizare apare pe ecran atunci cand i se cere sistemului FoxPro sa execute o operatie invalida.

Daca o fereastra de avertizare nu contine optiuni de tip push button, ea poate fi stearsa de pe ecran in urmatoarele moduri: punctand oriunde pe ecran mouse - ul, sau apasand orice tasta (mai putin [Ctrl] + [Shift] sau [Alt]), dupa care, se poate continua actiunea inceputa inaintea ferestrei de avertizare.

Exemple de ferestre de avertizare:

Syntax error.

Unrecognized command verb.

<<Cancel>> <<Supend>> <<Ignore>>

Mesaje de sistem

Mesajele de sistem apar intr-o fereastra si sunt informatii ce se refera la actiunea in curs. Ele difera de ferestrele de avertizare prin faptul ca nu contin mesaje de eroare sau de avertizare.

In departarea unui mesaj de sistem de pe ecran se face prin orice miscare a mouse - lui sau apasand tasta [Shift] sau [Ctrl]. Mesajele: "Press any to continue . " si "Recording . ", se pot sterge de pe ecran la fel ca mesajele de avertizare.

Un exemplu de mesaj de sistem este:

Expression is valid

Elemente de limbaj FoxPro

Limbajul FoxPro implica utilizarea urmatoarelor categorii de elemente: comenzi, functii si variabile de memorie. Prin conventie numele functiilor sunt urmate de doua paranteze ( ), care pot include o lista de parametrii.

De exemplu, functia STR( ) converteste o expresie numerica intr-un sir de caractere si are sintaxa:

STR(<expN1>[,<expN2>[,<expN3>]])

<expN1> reprezinta expresia numerica ce va fi convertita;

<expN2> reprezinta lungimea sirului de caractere;

<expN3> reprezinta lungimea partii zecimale.

In general functiile returneaza:

a)     un sir de caractere

b)     o expresie logica (de exemplu, functia FILE (<expC>) ce verifica daca fisierul din <expC> se gaseste sau nu pe disc. Rezultatul este valoarea logica (.F.) daca fisierul nu se gaseste pe disc sau valoarea logica (.T.) daca fisierul se geseste pe disc

c)     o expresie numerica (de exemplu functia ABS(<expN>) returneaza valoarea absoluta a unei expresii numerice).

Comenzile pot actiona asupra:

a)     unei baze de date

b)     unui camp al unei baze de date

c)     unei variabile de memorie

d)     unui element de matrice

e)     unei ferestre

f)      unui meniu etc.

Comenzile au ca rezultat o actiune. Ele pot fi tastate in fereastra de comanda sau pot di folosite in cadrul unor programe sursa. Pe linia curenta a ferestrei de comenzi se tasteaza o singura comanda, apoi se apasa [Enter] iar rezultatul este afisat imediat pe ecran sau in fereastra curenta.

Programele sursa sunt fisiere cu extensia (.PRG). ele sunt modificate sau actualizate cu ajutorul comenzii:

MODIFY COMMAND < nume-program-sursa >

Sunt lansate in executie cu ajutorul comenzii:

DO <nume-program-sursa>

Majoritatea comenzilor pot fi folosite in ambele moduri de lucru mai putin cele care implementeaza structura alternativa si repetitiva care se pot folosi numai in programe.

Forma generala a unei comenzi este:

<verb> [<scop>] [<expr>] [<filtru>]

unde

<verb> este numele comenzii (se pot tasta minim 4 caractere din acest nume)

<scop> defineste aria asupra careia actioneaza comanda

<expr> expresie

<filtru> conditia de executie a comenzii.

Comenzile FoxPro se pot grupa intr-o succesiune logica sub forma unui program arhivat intr-un fisier. Regulile de constructie a unei linii de program sunt urmatoarele:

comanda se poate scrie incepand cu orice coloana

intre elementele unei comenzi se lasa cel putin un spatiu;

pe o linie nu se pot scrie mai multe comenzi

o comanda se poate scrie pe mei multe randuri folosind caracterul ( ; );

lungimea maxima a unei linii de comanda este de 1024 de caractere.

Comentariile din program se introduc prin plasarea caracterului (*) sau a 2 caractere "ampersand" (&&) in orice coloana de pe o linie.

O expresie FoxPro consta dintr-o combinatie valida de functii, variabile de memorie, constante, operatori, valori ale campurilor tabelelor date precum si elemente de matrice. Expresiile in FoxPro pot fi de tip: caracter, numeric, data calendaristica sau logic.

I. Expresiile de tip caracter

Pot fi compuse din: campuri de tip caracter, ale unei baze de date; functii care intorc valori de tip caracter; variabile de memorie sau elemente de matrice care contin date de tip caracter; constante de tip siruri de caractere.

O variabila de tip caracter consta dintr-un sir de caractere incadrat de ghilimele sau apostrofuri duble sau simple. De exemplu "Caracter" sau ,CARACTER' sunt 2 variabile de tip caracter. Daca se doreste introducerea in sir a unui sau mai multor apostrofuri, se incadreaza sirul cu apostrofuri de tip diferit fata de cel folosit in corpul sirului.

O variabila caracter de lungime 0, deci sirul nul, se noteaza astfel:' ' sau " ".

Operatorii aplicati asupra celor de tip caracter sunt cei din tabel:

Operatori aplicati asupra sirurilor de tip caracter

Operator

Actiune

Concatenare de siruri (2 siruri sunt "lipite" unul de celalalt)

Concatenare de siruri (blank - urile de la sfarsitul primului sir sunt mutate la sfarsitul celui de-al doilea sir)

Comparare siruri

II. Expresiile de tip numeric

Pot fi compuse din : campuri de tip numeric ale unei tabele de date, functii care intorc valori de tip numeric, variabile de memorie sau elemente de matrice care contin date de tip numeric, constante de tip numeric.

Operatorii care actioneaza asupra expresiilor de tip numeric sunt (in ordinea prioritatii) cei din tabel:

Operatori ce actioneaza asupra    expresiilor de tip numeric

Operator

Actiune

Gruparea expresiei

Functia exponentiala

Inmultire, impartire

Impartire modulo

Adunare, scadere

III. Expresiile de tip data

Pot fi compuse din: campuri de data calendaristica ale unei tabele de date, functii care intorc valori de tip data calendaristica, variabile de memorie sau elemente de matrice care contin date de tip data calendaristica, constante de tip data calendaristica.

Constantele de tip data caracteristica sunt numerice (1,2,3,5,100 etc) si reprezinta numarul de zile. Astfel se poate aduna un anumit numar de zile la o data calendaristica.

Tipul de data calendaristica implicit este cel setat la pornirea sistemului (de exemplu: 11/zz/aa).

Pentru ca o variabila sa fie recunoscuta de sistem ca fiind de tip data trebuie sa fie despartita de ( / ). De exemplu comanda:

STORE TO rev

creaza o variabila de memorie REV , de tip data si stocheaza data de 31 decembrie 2003.

Formatul datei poate fi setat cu ajutorul comenzii:

SET DATE TO

Implicit, sistemul recunoaste formatul american (mm/dd/yy). Se admit urmatoarele formate:

ANSI (yy.mm.dd)

BRITISH (dd/mm/yy)

FRENCH (dd/mm/yy)

GERMAN (dd.mm.yy)

ITALIAN (dd-mm-yy)

JAPAN (yy/mm/dd)

USA (mm-dd-yy)

MDY (mm/dd/yy)

DMY (dd/mm/yy)

YMD (yy/mm/dd)

De exemplu, comanda SET DATA TO BRITISH seteaza formatul britanic (dd/mm/yy) al datei.

Pentru a crea o variabila "vida" de tip data calendaristica se utilizeaza urmatoarele tipuri de comenzi:

STORE TO datanula

STORE TO datanula

Daca sistemul gaseste o data cu format incorect, o trateaza ca pe o data "vida".

IV. Expresii logice

Pot fi compuse din: campuri de tip logic ale unei tabele de date, functii care intorc valori de tip logic, variabile de memorie sau elemente de matrice care contin date de tip logic, variabile de memorie sau elemente de matrice care contin date de tip logic, expresii de alte tipuri (caracter, numeric, date) ce includ operatori relationali. Operatorii aplicati asupra expresiilor de tip logic sunt (in ordinea prioritatii) cei din tabel.

Operatori aplicati expresiilor de tip logic

Operator

Actiune

Gruparea expresiei

!,NOT

Negarea logica (NU logic)

AND

si logic

OR

Sau logic

Operatori logici relationali

Operator

Actiune

<

Mai mic

>

Mai mare

Egal

<>,#,!=

Neegal

<=

Mai mare sau egal

>=

Mai mic sau egal

Comparare sirurilor de caractere

Variabilele de memorie sunt de 2 feluri: variabilele de memorie ale sistemului ce au numele precedat de caracterul de subliniere <_ nume predefinit >; variabile utilizator, cu nume atribuit de utilizator, care pot fi: numerice, data, logice, sir de caractere. Acestea pot fi la randul lor, simple sau tablouri.

STRUCTURA PROGRAMULUI

set safety off

set talk off

set date to dmy

set century on

clear

qt=.f.

do while qt=.f.

define menu meniu bar at line 0

define pad info of meniu prompt '<Info'

define pad med of meniu prompt '<Medicamente'

define pad stoc of meniu prompt '<Stoc'

define pad spec of meniu prompt '<Special'

define pad exit of meniu prompt '<Iesire'

on pad exit of meniu activate popup pexit

on pad info of meniu activate popup pinfo

on pad med of meniu activate popup pmed

on pad stoc of meniu activate popup pstoc

on pad spec of meniu activate popup pspec

activate menu meniu

define popup pexit shadow margin relative

define bar 1 of pexit prompt '<Iesire in Fox'

define bar 2 of pexit prompt '<Iesire in Windows'

on selection popup pexit do prexit with bar()

define popup pinfo shadow margin relative

define bar 1 of pinfo prompt '<Programul' message 'Despre program'

define bar 2 of pinfo prompt '<Autorul' message 'Despre autor'

on selection popup pinfo do prinfo with bar()

define popup pmed shadow margin relative

define bar 1 of pmed prompt '<Listare' message 'Listare medicamente existente'

define bar 2 of pmed prompt '<Informatii' message 'Afisarea datelor unui produs'

define bar 3 of pmed prompt '<Modificare' message 'Modificarea datelor unui produs'

on selection popup pmed do prmed with bar()

define popup pstoc shadow margin relative

define bar 1 of pstoc prompt '<Achizitionare' message 'Medicamentul achizitionat'

define bar 2 of pstoc prompt '<Vanzare' message 'Vanzare medicamente'

on selection popup pstoc do prstoc with bar()

define popup pprod shadow margin relative

define popup pval shadow margin relative

define popup pspec shadow margin relative

define bar 1 of pspec prompt '<Valori'

on bar 1 of pspec activate popup pval

define bar 1 of pval prompt '<Achizitionari' message 'Valoarea produselor achizitionate in luna curenta'

define bar 2 of pval prompt '<Vanzari' message 'Valoarea produselor vandute in luna curenta'

on selection bar 1 of pval do prspec with 1

on selection bar 2 of pval do prspec with 2

define bar 2 of pspec prompt '<Produse'

on bar 2 of pspec activate popup pprod

define bar 1 of pprod prompt '<Vandute' message 'Produsele vandute in luna curenta'

define bar 2 of pprod prompt '<Achizitionate' message 'Produsele achizitionate in luna curenta'

on selection bar 1 of pprod do prspec with 3

on selection bar 2 of pprod do prspec with 4

define bar 3 of pspec prompt '<Expirari' message 'Medicamente care expira in luna curenta'

on selection bar 3 of pspec do prspec with 5

enddo





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate