DPXBASE
DPXBASE
TABLA DE CONTENUT
Programare........................................................................................................................................................3
Fiș iere..............................................................................................................................................................21
Aplicaț ii sau Modul al Sistemului....................................................................................................................21
Tabla de Date.................................................................................................................................................22
Generatoare de Browses sau Liste.....................................................................................................................23
Opțiuni pentru Câmpurile..........................................................................................................................24
Meniu de Acces...............................................................................................................................................26
Definiția Meniu.....................................................................................................................................26
Programe Surse Dpxbase..........................................................................................................................27
Butonii de la Barra de Meniu Principal.............................................................................................................30
Personalizarea mesajelor în bara de butoane...............................................................................................30
Legătură ÎntreTablas..........................................................................................................................................31
Tdpedit...........................................................................................................................................................52
Modulele HRB.......................................................................................................................................................57
Glosar de Termeni..........................................................................................................................................61
DICȚIONAR DE DATE:
Este un set de metadate legate într-o manieră ierarhică care conține toate informațiile și
funcționalitățile tehnice ale bazei de date a sistemului AdaptaPro și sub acest concept se
fundamentează toate activitățile sistemului: Introducerea de Date, Procese și emiterea de
informație.
HTTP://[Link]/WIKI/DICCIONARIO_DE_DATOS
Bază de date:
[Link]
[Link]
[Link]
Datorită dicț ionarului de date, utilizatorul va putea crea noi tabele ș i legături între ele.
fără a necesita cunoș tinț e la nivel de un (DBA „Administrator de Baze de Date
AdaptaPro se ocupă de construirea sentinț elor SQL ș i le trimite către server
de la baza de date pentru ca aceasta să genereze tabelele ș i integritatea referenț ială între tabele.
Avantajele unui sistem proiectat conform conceptului de dicț ionar de Date versus un sistem fără
dicț ionar de date.
Fortalezas:
Autonomie: Utilizatorul va putea obț ine autonomie tehnologică datorită faptului că nu depinde de
fabricant (AdaptaPro) pentru a realiza noi încorporări sau adaptări ale sistemului.
AdaptaPro este foarte bine documentat, ceea ce permite o cunoaș tere rapidă a designului de
bază de date.
Reducerea costurilor: Reducerea costurilor este semnificativă din cauza scurtării dezvoltării
ș i facilităț ile de implementare evitând: Transferuri, instalaț ii manuale ș i altele
complexităț ile implicate legate de implementarea de noi funcț ionalităț i. Mulț umesc pentru
conceptul uniform al designului bazei de date este posibil să se adauge mai multe funcț ionalităț i
fără a fi nevoie de a realiza noi funcț ionalităț i în programele sursă.
Acest principiu (Tabel, Model ș i Tranzacț ie) îi permite utilizatorului să implementeze mai multe.
funcț ionalităț i în sistem doar prin adăugarea de noi înregistrări în tabelele de model
de tranzacț ii evitând să investească timp ș i costuri pentru a implementa funcț ionalităț i noi
financiare. Acest design permite, printr-o singură interogare SQL, ob ț inerea soldurilor de
oricare dintre aceste aplicaț ii:
PROGRAMARE
DPXBASE este un mediu de dezvoltare pentru un lexic de tip Xbase și proiectat pentru a crea
aplicații de tip comercial într-un mod rapid și simplu. În plus, încorporează un set de
componente tehnologice care contribuie la robustetea aplicațiilor finale. În cadrul acestora
avem:
2. Acces la baze de date de tip SQL prin ODBC sau Nativ MySQL. 5.x prin intermediul
clasa EAGLE scrisă în limbajul C și folosind funcții incluse în
fișierul „[Link]” (Furnizat de MySQL 5.x)
3. Utilizarea integrității referențiale în bazele de date.
4. Rapoarte prin Crystal Report.
5. Generatoare de rapoarte pentru clasa Treport.
6. Generatoare de Cod Sursă pentru Formulare de multiple scopuri: Întreținere
de registre, Feronă dialoguri, Feronă MDI.
DPXBASE dispune de un (Dicționar de Date) care permite definirea tuturor tabelelor de tip "SQL" care
vor fi utilizate de sistem într-o manieră ierarhică: Câmpuri, Indici, Chei Primare și
referințe între tabele. În plus; importă structuri din formate DBF.
XBASE:
xBase este termenul generic pentru toate limbile de programare care derivă din limbajul de
programarea dBase, publicată inițial de Ashton-Tate. Există indicii că a existat un
predecesor necomercial.
La 'x' înseamnă că există diverși interpreți și compilatoare pentru acest limbaj. O listă
incompletă ar fi:
Sursă:[Link]
Harbour este un limbaj de programare modern care s-a născut ca un compilator al limbajului de
programarea Clipper (o variantă de xBase) dezvoltată ca software liber. Obiectivul său inițial
a fost susținut toate sentințele și extensiile versiunii celei mai populare a compilatorului, Clipper
5.2. Harbour este totodată un compilator multiplatformă, capabil să compileze pentru și să se execute în DOS
(MS-DOS, DR-DOS, etc), Microsoft Windows, OS/2, GNU/Linux, variații diferite de Unix, diverse
descendenți ai BSD, Mac OS X, MINIX 3, Windows CE, Pocket PC, Symbian, iPhone OS, QNX,
VxWorks, OS/2 BeOS/Haiku, AIX folosind același cod sursă și fișiere de bază de date.
Sursă:[Link]
Cerinț e:
Cunoș tinț e despre Dicț ionarul de Date: Prin intermediul cursului de Dicț ionar de date,
utilizatorul va putea cunoaș te ș i documenta despre structura de date ș i designul funcț ional al
bază de date pentru a efectua interogări asupra bazei de date, a include, a elimina ș i a modifica
(Actualizaț i) registre.
Lectura Previa de Documentaț ie: Înainte ca participantul să participe la curs, este necesar
lectura manualelor de programare ș i a documentaț iei de ajutor (în format CHM)
de tot conț inutul componentelor de dezvoltare incluse în arhitectura deschisă
del Sistem AdaptaPro:
De bază: Se desfăș oară timp de patru sau ș ase ore ș i prin practica de a crea mai multe
programe dedicate exclusiv pentru gestionarea datelor: Lanț uri, Date, Numere,
Lógica ș i Blocuri de Coduri ș i Programare Orientată pe Obiecte.
Orientat: Utilizatori ai sistemului de plată care doresc să efectueze adaptări sau noi
concepturi de plăț i, utilizatori care doresc să adapteze rapoarte generate prin DpXbase.
Avansat: Se desfăș oară timp de patru sau ș ase ore prin crearea de programe pentru
crea formulare pentru introducerea datelor într-un tabel în MYSQL ș i interogarea datelor
prin intermediul clasei TXBROWSE()
generare un fiș ier cu extensia .DBF (Fiș ier Dbase) conprinzând înregistrările ș i câmpurile
care vor fi afiș ate prin formatul conceput cu Crystal Report Versiunea 8.0.
Estandarizat: Se referă la atunci când se îmbunătă ț eș te, se creează sau se corectează un format în crystal report
care va putea face parte din sistemele standard AdaptaPro, acestea vor trebui mai întâi
consultat de departamentul de dezvoltare AdaptaPro pentru a emite recomandări ș i
exigenț e. Acest fiș ier trebuie creat cu prefixul DP, exemplu: [Link]
(Dovada de Plată). Tehnicianul trebuie să adauge formatul crystal în raportul DpXbase
ce îl execută ș i trimite către departamentul de dezvoltare (prin e-mail) raportul ș i
respectivul raport. Astfel, pentru a evita obț inerea de rapoarte fără formate crystal report ș i fiș iere de
formate RPT (Crystal Report) fără raport.
Forme de Design:
2. Cerere directă sau solicitare: Liderul de proiect trebuie să ceară utilizatorului o copie
del document gol ș i copie a documentului imprimat, trebuie să fie solicitată
fizic. În fiecare format, se face un buget pentru dezvoltare pe sarcină ș i
buget pentru instalare virtuală. În cazul în care utilizatorul dore ș te din orice
motivul instalării formatului personalizat, aceasta trebuie bugetată ca o
labor de media jornada. Un format poate fi cotizat media jornada pentru
dezvoltare mai multe teste ș i jumătate de zi pentru instalarea sa.
necesar pentru formalizarea satisfacț iei clientului. Astfel se evită reclamaț iile pentru incidente
când unii utilizatori modifică formatele ș i apoi nu avem formalităț i
pentru a emite un răspuns.
Tarifele în timp:
Descriere Cant/Horas
Proiectare de format fără a fi necesare modificări
Design de Formate cu modificări în Interogare
Design de Formate cu încorporări în Dicț ionarul de Date sau
modificări în formulare.
Proiectarea formatelor Crystal derivate dintr-un raport.
Caracteristici ale rapoartelor care sunt concepute în Crystal Report pentru standardul ar putea
a urma aceleaș i parametrii pentru cei care trebuie să fie adaptaț i la client.
Acestea trebuie să fie generate prin tabele DBF, care sunt generate la emiterea raportului
prin intermediul sistemelor Adaptapro care sunt stocate în folderul crystal. Nu este
permis să fac conexiune directă cu baza de date deoarece filtrele create de
generatoare de rapoarte prin utilizarea clauzei WHERE în fraza SQL se folose ș te pentru
generarea interogării care va fi afiș ată prin formatul Crystal.
Aceș tia trebuie să fie concepuț i cu tipul de literă Tahoma (Occidental), Numele de la
empresa tamaño de letra 11 negrita a la izquierda, RIF tamaño de letra 10 negrita a la
stânga, Titlu mărimea fontului 11 îngroș at centrat, Datele intervalelor centrat sub
Titlu dimensiune font 10 îngroș at,
Fecha, RIF de la empresa, Usuario y Sucursal la etiqueta de tamaño 9 negrita y los datos
dimensiune 9, nu îngroș ată, aliniate la dreapta.
Titlul detaliului cu dimensiunea 10, îngroș at, să fie plasat într-un chenar rotunjit de culoare
fund gri deschis, detaliu dimensiune 10 nu îngroș at, coloanele separate cu linie punctată
culoare gri.(Acest dimensiune poate varia în funcț ie de cantitatea de informaț ii care se
trebuie să includă în raport, iar acest lucru implică faptul că informaț ia să fie prezentată pe hârtie
în formă verticală sau orizontală.
VARIABLELE SISTEMULUI:
oDp (Este este numele obiectului care conț ine toate variabilele publice ale sistemului în mod
encapsulată) reușind să optimizeze utilizarea eficientă a resursei de memorie RAM a sistemului
Operativă.
/*
-------------------------------------------------------------
*/
PROCE MAIN()
oDp:cVariable:=”Valor”
RETURN
/*
-------------------------------------------------------------
*/
/*
-------------------------------------------------------------
*/
PROCE MAIN()
Dacă ¡oDp:IsDef("cVariable")
MesajEroare("Variabila cVariable nu există")
ALTFEL
MesajEroare("Variabila cVariable există")
ENDIF
RETURN NIL
/*
-------------------------------------------------------------
*/
Când este utilizată funcția SQLGET(„TABELĂ”, „CAMPO”, „CONDIȚIE”) prin intermediul clasei
TTABLE pentru a obține valoarea unui câmp indicând numele tabelului și instrucțiunea WHERE
de SQL și înregistrarea este găsită, sistemul copiază conținutul fiecărui câmp în aranjament
oDp:aRow[],Ejemplo
/*
-------------------------------------------------------------
*/
PROCE PRINCIPAL()
SQLGET(„DPINV”,„INV_CODIGO,INV_DESCRI”,„INV_CODIGO”+GetWhere(
=,01
RETURN NIL
/*
-------------------------------------------------------------
*/
INSPECȚIA OBIECTELOR:
Tipuri de Date:
DpXbase suportă aceleași tipuri de date ca tabelele de format DBF din Dbase sau Foxpro,
în plus, suportă tipuri de date exclusive Clipper, cum ar fi: Blocuri de Cod,
Arreglos, Obiecte și Nule. Pentru o înțelegere ușoară sau lectură a programelor scrise în DpXbase
utilizăm notația ungară care constă într-o tehnică pentru a declara variabilele cu un prefix
ce indică tipul de date pe care îl reprezintă, exemplu:
LOCAL nNumerico:=100
LOCAL cCaracter:=”Caracteres”
LOCAL dFecha:=DATA()
LOCAL lLogico:=.T.
LOCAL bBloq :={||NIL}
LOCAL aArray :={1,2,3,4,5}
LOCAL oObjeto:=OpenTable(“SELECT * FROM DPINV”)
Carácter sau Memo: Acceptă caractere sau șiruri de date și suportă până la 4 Giga pentru fiecare
variabilă.
Exemplu pentru obținerea datelor dintr-un șir în formatText, pentru acest caz, datele obținute
prin intermediul unui fișierText din consulta portalului Seniat.
Textul conține
Dată sau dată: Suportă datele conform formatului „zz/ll/aaaa” și se referă la date care pot
suportă operații matematice și utilizarea sa este legată de funcții
ZI(), LUNĂ(), CMEN(), ZILE(), DTOC(), CTOD(), DTOS(), între altele.
Nule: Se referă la valoarea implicită pe care o are o variabilă atunci când este declarată fără valoare, „LOCALE
nValor”, în acest fel nValor este NIL. Dacă întrebăm despre valoarea sa: MsgAlert(ValType(nValor)),
va afișa NIL.
Aranjamente: De asemenea, numite vectore, sunt liste de valori într-o singură dimensiune, DpXbase la
la fel ca clipper, nu suportă aranjamente multidimensionale în formă literală, însă un aranjament poate
este compus din liste care conțin aranjamente, realizând manipularea aranjamentelor
multidimensionale. Lista aranjamentelor se declară cu {}, un alt avantaj al aranjamentelor este că acestea
conținutul poate fi compus din date de mai multe tipuri. Exemplu:
aLista:={1,2,3,4,5,6}
aLista:={“Uno”,2,date(),nil,.T.}
aLista:={}
MsgAlert(STR(aLista[1,1]))// Va afiș a 1
Utilizarea aranjamentelor a fost foarte exploatată în DpXbase, acestea fiind utilizate împreună cu blocuri
de cod și obiecte, realizând un instrument de programare potențial. Să vedem cele mai
uzuri importante:
nAt:=ASCAN(aData,{|a,n| a="POSGRES")
ÎNTORCE .T.
AADD(aCampos, {“CARACTER”,”C”,10,0})
AADD(aCampos, {“NUMERICO”,”N”,16,2})
AADD(aCampos, {“FECHA” ,”D”,08,2})
AADD(aCampos, {“LOGICO” ,”L”,01,2})
AADD(aCampos, {“MEMO” ,”M”,10,2})
nAt:=ASCAN(aCampos,{|a,n| a[2]=”L”})
? nAt,”Econtrado en 3”
ÎNAPOI .T.
nAt:=ASCAN(aCampos,{|a,n| a[2]=”L”})
Funcțiile ASCAN() și AEVAL() efectuează o parcurgere ascendentă a aranjamentului, dacă aranjamentul este
compus din 10 elemente, se va executa un proces cíclic de 10 ture, în fiecare tură vor fi
trimise ca parametri elementul aranjamentului „a” și poziția „n” a acestuia.
Blocte de Cod: Așa cum sugerează numele, sunt date care conțin cod de execuție
„care se execută ca și cum ar fi parte din EXE”, marele diferență între un program executabil
„Binario” și un bloc de cod se află în că programul executabil se găsește stocat în
un fișier cu extensia EXE și blocul de cod este stocat într-o variabilă. Blocul de
codul este un potențial foarte aplicat în tot DpXbase și în regulile de afaceri responsabile
de generare a tranzacțiilor comerciale.
Declarație:
bBloque:={||MsgAlert(“Bună DpXbase”)}
bBlocare:={|cMesaj|MsgAlert(cMesaj)})
FUNCȚIE SUMAR(nValoare1,nValoare2)
LOCAL nResp:=nValor1+nValor2
ÎNTOARCE nResp
BSumar:={|nValor1,nValor2|nValor1+nValor2}
Pentru a executa suma, este necesar să utilizați funcția EVAL() în următorul mod:
EVAL(bSumar,10,20) // Returnează 30
De fiecare dată când utilizatorul apasă CLICK pe un control, el folosește un bloc de cod.
ce conține executarea controlului, exemplu:
#DEFINE “[Link]”
PROCE TESTBLQ()
LOCAL oDlg,oBtn
ÎNTOARCE NIL
În acest exemplu, puteți observa că acțiunea butonului "Închide" este definită printr-un bloc
de cod, când utilizatorul va apăsa "Clic" va fi executat blocul de cod "oBtn:bAction " care
este compus din apelul metodei "End()" pentru a închide dialogul identificat cu variabila "oDlg".
Blocurile de cod sunt în întreaga utilizare a DpXbase, o mare parte din funcțiile DpXbase
utilizează blocuri de cod, în special funcțiile orientate spre gestionarea aranjamentelor.
Datele de tip obiect sunt obținute prin apelarea la o clasă Obiect preexistentă în
DpXbase, pentru a apela un obiect, utilizăm următoarea sintaxă:
oObjeto:=TDpEdit():New()
oObjeto:=DPEDIT():New("Titlu","forms\[Link]","oObjeto",.F.)
oObjeto:Activează()
Funcțiile obiectului sau, mai bine zis, ceea ce face se numește „Metodă()” și datele pe care le conține
se numește „Data”.
Toate controalele Windows (GET, TEXT, COMBO, DIALOG) sunt manipulate prin obiecte care
se definesc prin comenzi predefinite în fișierul de antet "[Link]"
Operatori: Sunt un set de simboluri utilizate pentru a genera rezultate aritmetice ș i/sau
logice.
Aritmetice: Se ocupă cu efectuarea opera ț iunilor aritmetice de: Atribuire, Suma, Scădere,
Înmulțire și Împărțire.
nValoare:=100+200
LOCAL nMonto:=100+200
LOCAL bFecha:=DATA()+100
LOCAL cChar:=NETNAME()+" este es PC-ul meu"
? nMonto,dFecha,cChar
LOCAL nMonto:=200-100
LOCAL bFecha:=DATA()-1
? nMonto,dFecha
LOCAL nMonto:=5*5
? nMonto,dFecha
LOCAL nMonto:=5*5
nMonto
#INCLUDE "[Link]"
LOCAL nMonto:=3**2
? nMonto
Raț ionale: Utilizat pentru a efectua comparaț ii între valori ș i generează valori logice.
Adevărat sau .F. Fals.
Logice: Se ocupă cu realizarea operaț iunilor care generează rezultate adevărate ș i false cu
diverse comparații legate.
Manipularea Datelor:
DpXbase, la fel ca Clipper, are considerații speciale pentru manipularea datelor de tip
aranjamente și blocuri de cod.
Manipularea aranjamentelor: Acest tip de date este manipulat prin următoarele funcții
special concepute pentru gestionarea aranjamentelor și listelor. Să ne amintim că aranjamentele sunt un
tipuri de date compuse din alte tipuri de date, generând o listă: aLista:={1,2,3,4,5,6}, una dintre
mari avantaje ale aranjamentelor sunt că acestea suportă orice tip de date, inclusiv aranjamentele,
arreglos de dentro de un arreglo conforman arreglos multidimensionale sau concatenate. La
referința oricărui element se stabilește prin poziția sa, exemplu: aLista[2], se referă la
al doilea element din listă.
aArray:={}
Umple un aranjament
AFILL(aArray,"X")
AADD(aData,"Nou")
? LEN(aData) // Genera 21
ADEL(aData,1)
Ordona un Aranjament
SORTARE(aData)
LOCAL aData:={},nAt
AADD(aData,{“Z”,3})
AADD(aData,{“B”,2})
AADD(aData,{“A”,1})
Caută în Listă.
elementele listei.
LOCAL aData:={},nAt
AADD(aData,{“A”,1})
AADD(aData,{“B”,2})
AADD(aData,{“C”,3})
? nAt // Răspuns 2
VizualizareMatrice(aData)
Duplicar Arreglo:
LOCAL aDate:={}, aNou
AADD(aData,{„A”,1})
AADD(aData,{“B”,2})
AADD(aData,{“C”,3})
aNou:=Aclone(aDate)
LOCAL aData:={},nTotal:=0
AADD(aData,{“A”,1})
AADD(aData,{„B”,2})
AADD(aData,{“C”,3})
AADD(aData,{“B”,4})
? ATAIL(aData) // Afișează 6
Totalizaț i o listă
LOCAL aData:={},aTotal:=0
AADD(aData,{“A”,1})
AADD(aData,{„B”,2})
AADD(aData,{“C”,3})
AADD(aData,{“B”,4})
aTotales:=TOTALES(aData)
? aTotales[2] // Răspuns 10
Manipularea ș irurilor: Tipul de date caracter poate fi concatenat în mod literal. DpXbase
Include un set de funcții care permit lucrul extins cu acest tip de date.
LOCAL cChar:=""
Înregistrând discul
MemoWrit(¨[Link]”,cChar)
Citind de pe disc
cChar:=Memoread(cChar)
Poate fi de asemenea
cChar =+ cChar
<eemplazando valori
cChar:=”ABBCCDD
cChar:=STRTRAN(cChar,„BB”,„bb”)
LOCAL cChar:="ABBCCDD"
cChar:=STÂNGA(cChar,2)
? cChar // Afișează AB
LOCAL cChar:=”ABBCCDD”
cChar:=DREAPTA(cChar,2)
? cChar // Afișează DD
LOCAL cChar:=”ABBCCDD”
cChar:=SUBS(cChar,2,2)
? cChar // Muestra BB
Caută poziț ie
LOCAL cChar:=”ABBCCDD”
? AT("C",cChar) // Afișează 4
LOCAL cChar:=”ABBCCDD”
? RAT("B",cChar) // Muestra 5
Compararea ș irurilor
LOCAL cChar:=”ABBCCDD”
Conversia în Arreglos
LOCAL cChar:=”A,B,C,D,E”
LOCAL aData
aData:=_Vector(cChar)
ViewArray(aData)
Conversie în Numéric
LOCAL cChar:="1000"
LOCAL nValor
nValor:=VAL(cChar)
Conversie în Dată
LOCAL cChar:=”01/01/2007”
LOCAL dData
dFecha:=CTOD(cChar)
MacroExecutie
LOCAL cChar:=”A+B”
LOCAL R,A:=100,B:=200
? R // Afișează 300
B:=BlocCod(cChar)
Repetă caracterul
LOCAL cChar:=Repli(“-“,10)
Umpleț i cu Zero-uri
LOCAL cChar:=STRZERO(123,10)
Manipularea datelor: Tipul de date Date sau Data poate fi concatenat în formă literară, este
a spune se poate aduna sau scădea. DpXbase include un set de funcții care permit să se lucreze
amploate cu date.
Declarând Data
LOCAL dFecha:=CTOD("")
? dData // Afișează / /
LOCAL dFecha:=DATA()
Incrementaț i Data
LOCAL dFecha:=CTOD("01/01/2007")
dFecha:=dFecha + 7
? dFecha // Muestra 08/01/2007
Reducere Dată
LOCAL dFecha:=CTOD("01/01/2007")
dFecha:=dFecha - 1
? dFecha // Muestra 31/12/2006
LOCAL dFch1:=CTOD("01/01/2007")
LOCAL dFch2:=CTOD("08/01/2007")
? dFch2-dFch1 // Exemplul 7
Día de la Semana
LOCAL dFecha:=CTOD("01/01/2007")
Numărul zilei
LOCAL dFecha:=CTOD("01/01/2007")
? ZI(dFecha) // Afișează 1
LOCAL dFecha:=CTOD("01/01/2007")
? LUNA(dFecha) // Afișează 2
LOCAL dFecha:=CTOD("01/02/2007")
LOCAL dFecha:=CTOD(“01/02/2007”)
Principiul Lunii
LOCAL dFecha:=CTOD("15/02/2007")
Dată SQL
LOCAL cChar:= SQLDATE(DATE())
LOCAL dFecha:=CTOD("15/02/2007")
Prima zi a anului
cChar:=”01/01/”+STRZERO(AN(DATE()),4)
DData:=CTOD(dData)
LOCAL dFecha:=DATE()
LOCAL nValor:=100
LOCAL lLogico:=.T.
LOCAL aData :={}
LOCAL indef
? ValType(dFecha) // Afișează D
? ValType(nValor) // Afișează N
? ValType(lLogico) // Afișează L
? TipValoare(aData) // Afișare A
? ValType(indef) // Arată U
Valores Iniciales:
NATIVO. Indică cu .T. dacă conexiunea pentru baza de date se realizează în mod nativ, adică; fără
utilizați tehnologia ODBC de la MS care necesită predefinirea DSN pentru a accesa
bază de date. Dacă valoarea este .F. va folosi conexiune ODBC prin DSN. Dacă BD este MySQL, unele
procesele de date vor fi realizate în mod nativ datorită performanței lor ridicate.
MENUXP: Prezintă meniul principal al sistemului într-o formă clasică, necesară pentru utilizare
sistemul de pe Linux prin intermediul emulatorilor pentru Windows. În plus, optimizează execuția sa datorită
care nu are grafice sau linii, de asemenea; pot fi utilizate în Windows atunci când este necesar un mai mare
performanță în aplicație. Cu Valoare .T. Prezintă meniul sistemului cu o prezentare
Acorde în stil XP, consumă mai multe resurse din cauza imaginilor, liniilor, culorilor și sunetelor care
poate folosi.
CREADSN. Con .T. sugerează că generează conectorii DSN din formularul de "Conexiune cu
la Bază de Date”, poate fi utilizat pentru Nativ și ODBC. Dacă sistemul funcționează în mod nativ nu
necesita DSN pentru ODBC, le poate crea pentru a accesa baza de date din alte surse
aplicații precum Excel prin MsQuery.
TRACER: Con .[Link] în titlul ferestrei principale numele programului DpXbase care
este în execuție, pentru a cunoaște procesele care se execută în timpul pornirii sistemului.
Înainte de a instala sistemul, trebuie să instalați baza de date pe server și să-i acordați permisiuni pentru
fiecare utilizator care îi permite sistemului să realizeze conexiunea. Amintiți-vă că permisele sunt acordate de
rațiuni de securitate a accesului pentru a preveni ca un alt utilizator cu acces la adresa IP a
serverul se conectează și poate manipula sau afecta datele.
După instalarea sistemului, se solicită adresa IP a Serverului, în cazul în care este localhost „în
mismo PC”, sistemul va încerca să se conecteze la baza de date, în cazul în care nu reușește să o facă
conectivitate sistemul va executa două comenzi „instalarea serviciului și inițierea serviciului” care
FICHERO
TABLA DE DATOS
Utilizatorul selectează tabelul de date și pentru fiecare câmp trebuie să indice tipul de control
GET, COMBO, RADIO, CHECK, etc. și atribute pentru fiecare câmp, care va fi utilizat pentru a crea
programa sursă xBase care permite executarea unui formular de încărcare a datelor care include tot
funcționalitatea necesară pentru: A include sau a modifica un registru dintr-un tabel SQL. DPxbase oferă
clasa TDPEDIT care controlează formularul cu tabelul de date și navigatorul de înregistrări, are
métodos "methods" para: Iniciar, Grabar, Cancelar, Imprimir, Validar, enlaces, campos únicos y un
fără număr de utilități. Când DPxbase detectează că un câmp este referit cu o altă tabelă
ce include un formulariu cu întreaga sintaxă în format xBase, face posibilă legarea la una sau mai multe
tabele cu proprietățile de accesare, căutare și returnare cu câmpul dorit.
DPxbase, sugerează sintaxă pentru fiecare control, dacă un câmp este referit cu o altă tabelă, va fi
sugerat controlul BMPGET cu toată sintaxa care îi permite utilizatorului să acceseze tabela
referențiată și corelată cele două valori. Imaginea următoare arată controalele create de
DPxbase pentru câmpuri legate de tabelele referite, pentru primele cazuri programatorul
a selectat BMPGET, iar al doilea a selectat controlul „COMBOBOX”, în niciun moment nu a
programatorul a trebuit să scrie o singură linie de cod. DPxbase, sugerează sintaxa
necesară.
ITEMS aItems1;
CÂND;
AccessField("DPINV","INV_IVA",oIVA:nOption);
.SI. oINV:nOption!=0);
FONT oFontG
Apoi, după crearea tabelelor de date, DPxbase generează o listă de navigare folosind clasa
xBrowse, include butoane sugerate pentru: Includere, consultare, modificare, eliminare, imprimare și
naviga, de asemenea; utilizatorul poate selecta în mod ordonat câmpurile de
tabele cu titlurile respective care vor constitui lista de navigare a cursorilor unei
o variație de tabele SQL.
Prin apăsarea tastei „Executare”, se deschide Browse-ul definitiv în fereastra MDI, cu toate
opțiunile disponibile pentru: Includere, Consultare, modificare, eliminare și funcții de
navigare. Acest nou Browse poate fi modificat în timpul execuției, toate
instrucțiunile sunt înregistrate într-un fișier de format simplu care permite extinderea acestora
alcances, cum ar fi: Adăugarea de butoane noi.
Face parte din dicționarul de date și are ca scop definirea diferitelor opțiuni
selectabile prin controlul "COMBOBOX" pentru a atribui valoarea unui câmp în timpul
încărcarea datelor din formulare sau emisii de rapoarte.
Pentru a aloca noi opțiuni pentru câmp, accesați formularul de tabele, în bara de
Este important să ținem cont de lungimea câmpului, dacă are un digit, va fi presupus
primul caracter al opțiunii. Exemplu: Opțiunea „Caracter” odată selectată, va putea doar
a stoca primul caracter „C”, din cauza spațiului fizic pe care îl suportă. În cazul în care este nevoie
mai multe opțiuni și două sau mai multe dintre ele coincid în primul caracter, trebuie să extindă lungimea
del câmp. Dacă lungimea câmpului este de 3 cifre, vor fi păstrate primele trei
valori ale opțiunii specificate pentru stocarea fizică în tabel
Consideraț ii:
Controalele combobox vor afișa opțiunile în aceeași ordine în care sunt înregistrate.
SayOptions("DPTABLAS","CAM_TYPE",oCursor:CAM_TYPE)
MENIU DE ACCES
DPxbase are un concept de lucru sistematizat unde numele fiecărui program, raport,
formularul este direct asociat la tabele, dacă tabela se numește DPMENU, Browse se
se va numi [Link], Programul DpXbase pentru formular se va numi [Link],
Raportul va fi: [Link], reușind astfel să localizăm orice componentă pentru a o adapta. În plus;
facilitează personalizarea numelui tabelelor și formularelor în timpul execuției, reușind astfel ca
utilizatorul poate indica nume specifice în orice tabel și direct opțiunile de:
Meniu, Formulare și Rapoarte, exemplu: Dacă descrierea tabelului Meniu de Acces „DPMENU” este
„Meniu de Acces”, titlul formularului de produse va adopta numele de „Meniu de Acces”
în același mod, câmpul „Singular” este utilizat pentru a indica numele tabelului într-un al treilea
formular care este legat de tabel. Sintaxa necesară pentru a asocia numele tabelului
în meniul de acces trebuie să fie:{oDp:DPMENU}în câmpul 'Titlul Meniului' după
faceți clic pe pictogramă „Meniul de Acces” din bara de unelte a sistemului și apoi în
DEFENIȚIA MENIULUI
Toate opțiunile din meniul principal al sistemului sunt definibile de utilizator, iar aceasta
esquematizat pe module, în fiecare modul sunt meniurile: Fișiere,
Transacții, Rapoarte, procese și Altele asociate exclusiv cu fiecare aplicație, acestea
opțiuni: Macros și Bara de activități sunt de asemenea definibile în același mod, doar diferă
că aceste opțiuni sunt generale pentru toate aplicațiile, de asemenea putem spune că
o aplicație într-un modul și un sistem este compus din module.
DPxbase, generează și recunoaște cod de lexic xBase bazat pe xHarbour și comenzi pentru
FiveWin. Acest limbaj este compilat și interpretat în timpul execuției, permițând utilizatorului
adăugați sau modificați programe fără a fi nevoie să refaceți programul executabil final. DpXbase
acepta: IF,ELSE, ENDIF,WHILE, ENDDO, DOCASE,ENDCASE, y todos los comandos
Clipper/xHarbour/FiveWin.
Programele sursă sunt stocate în tabela DPPROGRA și, din motive de securitate, se
păstrează o copie în folderul \SCRIPT\ și fiecare program este stocat în format text simplu cu
extensia “.SCR” și versiunea anterioară este stocată cu extensia “.BAK”.
Sistemul oferă un editor de text de tip „RTF” (Rich Text Format) care permite realizarea
editare și/sau scriere de programe DpXbase.
F2 Pentru a înregistra
F5 Compilare ș i Executare
#INCLUDE “[Link]”
PROCEDURA PRINCIPALĂ()
ÎNTOARCE
O De asemenea
#INCLUDE "[Link]"
FUNCȚ IA PRINCIPALĂ()
ÎNTORCE NIL
3. Trebuie să finalizeze funcția cu comanda RETURN atunci când este declarată cu PROCEDURA
și comanda RETURN <uValoare> trebuie utilizată atunci când MAIN este definit ca o
funcție prin FUNCTION. Diferența dintre FUNCTION și PROCEDURE este doar în
RETURN care, în cazul PROCEDURE, returnează o valoare nulă (NIL). Dacă doriți să utilizați
FUNCȚIA pentru toate cazurile poate închide cu RETURN NIL.
PROCE MAIN()
LOCAL cChar:=Space(40),nNum:=100,dFecha:=CTOD("")
MsgAlert(Len(cChar)) // Afiș ează 40
ÎNAPOI
PROCE MAIN()
LOCAL cChar:=Space(40),nNum:=100,dFecha:=CTOD("")
Multiplicar(nNum,20)
ÎNTORCE
FUNCTIONMULTIPLICAR(nValor,nPor)
LOCAL nResp
NResp:=nValor*nPor
MsgAlert(STR(nResp))
RETURN nResp
DPxbase oferă aplicației finale un set de instrumente utile pentru operativitatea acesteia
sistem, cum ar fi: Utilizatori, acces pentru tranzacții cu tabel, restricții pentru câmpuri,
Meniul de Acces, auditul activităților utilizatorului.
Așa cum sugerează numele, permite realizarea legăturii între tabele prin intermediul unui câmp.
comun între ambele tabele. De exemplu, tabelul muncitorului “nmtrabajador” trebuie legat cu
tabelul departamentului, funcția, unitatea funcțională, absența etc., pentru aceasta se utilizează câmpul cod
al muncitorului.
ALTE FUNCTII
GENERATOR DE RAPOARTE
DPxbase oferă un asistent care permite crearea de interogări de tip SQL cu ușurință și în
câteva minute. De asemenea, generează cod xBase pentru clasa TREPORT, facilitând imprimarea
consulta SQL proiectată, de asemenea; consulta poate fi exportată în format DBF cu
finalitatea de a fi utilizată în designul rapoartelor prin Crystal Report.
DESIGNUL FORMULARELOR
După activarea modului de design, este posibil să focalizezi orice control prin intermediul mouse-ului,
mutați-l în orice poziție, măriți sau micșorați dimensiunea acestuia pentru un plus de confort
DPxbase oferă alternative pentru a accelera designul.
IncluirTablas are opțiunea „Importați din DBF”, utilizatorul trebuie doar să indice
numele tabelului de Date DBF și DPxbase se ocupă de a-l defini în dicționarul de
Date și construirea structurii sale. În plus, DPxbase oferă un proces de Migrație de
Inregistrari din tabelele DBF utilizate de produsele anterioare.
Deși DPxbase este compilat cu C++, limbajul Xbase încorporat suportă în mare
parte procedurile din versiunea DOS, atâta vreme cât nu necesită interacțiune
cu o interfață video sau de imprimare. Tabelele de date din versiunile anterioare se
se identificau prin „ALIAS” exemplu: „alias->campo”, acum în DPxbase va fi
indicând un cursor, exemplu „oCursor: Campo”, tipurile de date sunt 100% compatibile.
Partea din programele scrise în DpXbase pentru DPxbase a fost obținută din versiuni
anterioare cu foarte puține schimbări, unde se profita de maturitatea codului deja scris.
COMPONENTE DATASET
Sistemul dispune de două seturi de date, fiecare stocând valorile în tabele distincte,
"DPDATACNF" este utilizată pentru tot ceea ce se referă la configurația generală a sistemului și
"DPDATASET" stochează valori în mod independent în fiecare companie definită la
prin intermediul unui „DSN”.
PROCE MAIN()
LOCAL oData
oData:=DataCnf(“MISECCION”)
oData:cValor:=”Prueba”
oData:Finalizare()
ÎNTORCE NIL
FUNCȚIE PRINCIPALĂ()
OData local
oData:=DataCnf(“MISECCION”)
MsgAlert(oData:cValor)
oData:Finalizare()
RESTITUI NIL
PROCE MAIN()
Local oData,oDlg
oData:=DataSet(“DATEMPRESA”)
oData:cDir:=oData:Get("DIR",SPACE(20))
oData:cTel:=oData:Get(„TEL”,SPACE(12))
oData:cRep:=oData:Get(“REP”,SPACE(40))
oData:End()
ÎNAPOI
// EOF
CLASE TDATASET:
Se ocupă de gestionarea, citirea, înregistrarea tuturor celor referitoare la DataSet, se generează din
funcțiile DataCnf() și DataSet(), ambele returnează obiectul clasei TDataSet, la
continuăm detaliind metodele sale.
. Get(cVarName,uValue):
Obține valoarea referită de "cVarName" în cazul în care nu există auto creat cu valoarea
indicat în „uValue”. De asemenea, poate fi folosit în mod direct:
oDataSet:cVarName
. IsDef(cVarName):
Returnează .T. sau .F. dacă valoarea lui "cVarName" există.
. Set(cVarname,uValue):
Asignați valoarea "uValue" pentru "cVarname", de asemenea poate fi folosit ca:
oDataSet:cVarname:=uValue
. Save():
Stochează în tabel toate valorile din DataSet.
. Del():
Elimină o valoare din DataSet și din tabel, exemplu: oDataSet:Del(cVarName)
. DelGroup(cGroupName):
Elimină toate componentele asociate unui grup.
. Load():
Încărcați toate valorile din tabel și generați valorile virtuale ale Dataset-ului
“ALL”:Almacena y recupera los datos para todos los usuarios y “PC” que accedan al
sistem.
“PC”:Almacena y recupera los datos sólo para el PC que lo solicita, el nombre del PC es
obținut din Sistemul de Operare. Este de remarcat că pe fiecare PC este posibil să se genereze
configurații diferite.
“USER”:Almacena y recupera los datos sólo para el usuario que solicita, es decir; cada
utilizatorul poate dispune de configurări diferite.
Se denumesc valori virtuale acele “ClassData” sau variabile care nu sunt definite în
în clasă, ci se generează dinamic fie prin alocare directă
oDataSet:nValue:=10000" o prin citirea tabelului unde sunt stocate
valori ale Dataset-ului.
Pentru sistemul de salarizare DpNmWin, setul de date a fost utilizat pe scară largă în
stocarea tipurilor de salarii care sunt procesate cu scopul de a putea recupera
tipuri de salarii în următoarele execuții.
GetWhere(cOperador,uValor)
Construiește o condiție pentru sentința WHERE sau SET pentru a crea o comandă SQL.
Exemplu
cNomre:=”Datapro”
cWhere:=”UNCHI CAMPO”+GetWhere(“=”,cNombre)
UNDE CAMPO='Datapro'
Rețineți să folosiți ghilimele [‘] sau Chr(39) simple pentru a indica șiruri de caractere în cadrul unei comenzi
SQL. De asemenea, această funcție este legată de configurația datelor utilizate de
motorul bazei de date poate fi folosit confortabil fără a ține cont de reguli
pentru datele și complexitatea construirii acesteia:
Exemplu:
dData:=DATA()
cWhere:=”WHERE FECHA”+GetWhere(“=”,dFecha)
UNDE FECHA=[’]
+STRZERO(ANUL(dFecha),4)+STRZERO(LUNA(dFecha),2)+STRZERO(ZIUA(dFecha),2
)+[‘]
Exemplu:
oCursor:=OpenTable("SELECT TAB_NUMERO,TAB_TABLE"+;
„DIN DPTABLAS”+;
ORDONAȚI DUPĂ TAB_NUMERO
oCursor:MergeInSus()
ÎN TIMP CE !oCursor:Eof()
? oCursor:TAB_NUMERO,oCursor:TAB_TABLE
oCursor:DbSkip()
SFÂRȘ IT
oCursor:Final()
Puteți observa că interogarea poate fi gestionată într-un mod similar cu o tabelă DBF
deschisă prin funcții ale RDD sau mai bine zis deschisă cu: FOLOSIND TABELA. Pentru mai mult
informații consultați clasa TTABLE din acest manual.
ASQL(CSQL)
Returnează un tip de date Arreglo bidimensional conținutul cursorului generat de
consulta SQL. Exemplu: aSql:=ASQL(“SELECT CAMPO FROM XTABLA”). aSql conține
lista de date. MsgAlert(aSql[1,1]), arată prima coloană și coloană. Pentru a evalua
răspunsul poate utiliza: ViewArray(aSql)
DO(bWhile,bFor,bRun)
Execută în mod ciclic conform procesului indicat în <bRun> dacă condiția este îndeplinită
<bFor> până când se îndeplinește <bWhile>.
#[Link]
FUNCȚIA PRINCIPALĂ()
LOCAL nTotal:=0,oCursor
FAC({||!oCursor:Eof()},;
{||oCursor:DOC_FECHA=oDp:dFecha},;
{||nTotal:=nTotal+oCursor:DOC_NETO,oTablas:skip(1)}
SQLDELETE(CTABLA,CWHERE)
SQLUPDATE(CTABLA,CCAMPO,XVALOR,,CWHERE)
SQLGET(CTABLA,CCAMPO,CWHERE)
Obține valoarea unui câmp dintr-un tabel conform condiției indicate în Where.
Unde poate fi inclusă clauza JOIN.
SQLGET(„NMTRABAJADOR”,„CONCAT(APELLIDO,”,”,NOMBRE)”,„CODIGO=’00001’”).
Obține numele și prenumele lucrătorului.
DTOSQL(DFECHA)
Converteți formatul de dată xBase în format de dată pentru Motorul SQL, conform
formatul definit în "oDp:cSqlDate" configurat anterior în [Link] [SQLDATE].
Cade așa:
SQLTODATE(CFECHA)
Convierte las fechas SQL en fecha xBase, según el formato definido en “oDp:cSqlDate”
predefinit anterior în [Link] [SQLDATE]. Unele funcții MAX sau MIX de SQL
aplicate asupra câmpurilor de tip dată, generează expresii de tip caracter care
reuie să fie convertită într-o formă de dată reală.
bDate:=SQLGETMAX(“DATABLA”,”CAMPO”,<WHERE>) // 2005-05-02
bData:=SQLTODATE(cFecha) // 02/05/2005
Numele tabelului
<aFields> Lista de campos, puede ser un arreglo un una lista de campos entre comillas
BDLIST(CTABLE,AFIELDS,LGROUP,CWHERE)
Numele tabelului
Lista de câmpuri, poate fi un aranjament sau o listă de câmpuri între ghilimele
separas con coma, ejemplo: “Campo1,Campo2,Campo3”
<lGroup> și este adevărat .[Link]ă cursorul folosind GROUP BY în toate câmpurile.
Valoarea sa implicită este .f.
Valor opțional, poate constitui clauza WHERE a interogării și permite
filtrați liniile interogării.
Prezenta la consulta prin intermediul unui editor de înregistrări care permite selectarea oricărei
registro devolvând valoarea primei linii. Are o utilizare ridicată în casetele de interval și
criteriu în executarea unui raport, permițând importarea valorilor dintr-un câmp către
casillas.
Exemplu:
uValue:=BDLIST(“NMTRABAJADOR”,”CODIGO,APELLIDO,NOMBRE,SALARIO”)
BDSELECT(CTABLE,AFIELDS,LGROUP,CWHERE))
cValue:=BDSELECT(“NMTRABAJADOR”,”CODIGO,APELLIDO,NOMBRE,SALARIO”)
Și dacă utilizatorul a selectat patru muncitori, valoarea lui cValue va fi: "001","002","003","004"
aList:=MacroEje(„{“+cValue+”}”)
De asemenea, recomandată:
aList:=_Vector(cValue)
GETOPTIONS("TABLA","CAMPO")
Returnează într-un array toate opțiunile înregistrate pentru un câmp dintr-un anumit tabel.
Exemplu:
aOpcion:=GETOPTIONS(„DPTABLAS”,„CAM_TYPE”)
Devuelve una lista o arreglo con los siguientes valores: “Numerico”, ”Date (Fecha)”,
”Carácter”, ”Logica” y ”Memo”.
SAYOPTIONS(cTable,cField,uValue)
cOpcion:=SAYOPTIONS(“DPTABLAS”,”CAM_TYPE”,”C”)
INNERJOIN(cTabela1,cTabela2,cInner)
Exemplu: INNERJOIN("DPTABLAS","DPCAMPOS")
SQLINCREMENTAL(tabel,câmp,condiț ie)
MsgAlert( SQLINCREMENTAL(„DPCLIENTES”,„CLI_CODIGO”) )
VIZUALIZEAZĂARRAY(aArray)
OBIECTE
Clase TTable
Clasa DpLbxRun
Clase DpEdit
Clasă TDocEnc
Clase TDocGrid
Clasa TGridCol
Formulare de Documente compuse din Antet ș i Corp.
Acest tip de documente se generează în mod obișnuit de tabele de bază corelate, primul
se ocupă de antet, cum ar fi: Factura, Comprovante contabile și
a doua tabelă se referă la rândurile sau corpul care formează documentul, cum ar fi
exemplu: Linii de factură, Înregistrări Contabile, printre altele. De asemenea, tabelul de
antetul și tabelul corpului se leagă de alte tabele, de exemplu: Pentru factură se
relacionați cu clienții și rândurile se leagă de produse.
Pentru a începe formularul, folosim funcția DOCENC care returnează obiectul definit în
la clasa tDOCENC.
DOCENC(cTitle,cForm,cFileEdt)
Parámetros:
cTitlu Título del formulario, puede ser “Titulo”
cForm Numele obiectului pentru formular, exemplu:
oForm
cFileEdt Numele fiș ierului în care să stocaț i
parametrii controalelor.
Metodos
formular
cFile=Archivo BMP
cText=Mensaje Tooltip
cWhen=Condiție de activare.
cAction=Proces care trebuie executat
cFind = Identificación del Botón
AddBtnEdit(cFile,cText,cWhen,cAction,cFind) Agrega un botón cuando se active el
mod de editare (Includere sau Modificare)
cFile=Archivo BMP
cText=Mensaje Tooltip
cWhen=Condiția de activare.
cAction=Procesul care trebuie executat
cFind = Identificación del Botón
SetMemo(cField,cTitle,nTop,nLeft,nWidth,nHeight) Adaugă butonul "Câmp memo" în
bara de opțiuni pentru modul de editare
„Includere sau Modificare”.
cField=Indică câmpul care face
referință cu tabela DPMEMO
cTitle = Titulo de la ventana.
nTop,nLeft,nWidth,nHeight , área
vizualizare în pixeli pentru caseta de dialog
despre la fereastră principal
oDp:oFrameDp
ListBrw(cFileBrw) Realiza prezentarea lista de
câmpuri prin intermediul fișierului *.brw conform
data ::cList
Este compus din două tipuri de fișiere "Traditionale HLP" care formează ajutorul
oferită de librăriile FiveWin și acestea nu fac parte din licență.
TPUBLIC
Această clasă generează un obiect public care este disponibil în întregul sistem și are ca
finalitatea de a stoca toate valorile de care sistemul are nevoie pentru funcționarea sa
tehnic și conceptual. Acest model de date inovator este extrem de productiv, evitând
uso excesiv de memorie pentru a declara variabile publice.
oDp:cMiDato:=”Cualquier Dato”
MsgAlert(oDp:MiDato)
Va afișa fereastra de dialog Alert, indicând „Orice Date”
Programul DPINI este prima execuție DpXbase care se realizează la inițierea Datapro. Aici
se alocă majoritatea valorilor care definesc execuția și/sau prezentările sistemului.
De exemplu, dimensiunea butoanelor
Metode:
Dacă doriți să cunoașteți toate valorile obiectului oDp, rulați programul INSPET scris în
DpxBase.
TABEL
Este o clasă proprietară a DpXbase care accesează interogări SQL folosind funcția
OpenTable(cSql,lRead) care returnează un obiect conținând interogarea SQL în stilul de
date RDD (xBase). Ttabla moștenește toate câmpurile structurii într-o formă dinamică
permițând să navighezi în fiecare înregistrare și să cunoști conținutul fiecărui câmp, exemplu:
oCursor:CAMPO.
Ttable este utilizat în întreaga aplicație pentru a accesa interogările bazei de date
necesare în Browsere, Formulare, Consultări și Raporturi.
Sintaxă: Ttable():Nou(cSql)
Commit(<cWhere>): Executa comanda UPDATE pentru a actualiza unul sau mai multe
registrele conform clauzei WHERE, pregătite anterior cu metoda Replace().
PROCE MAIN()
LOCAL oTable
ÎNTORCE
În acest exemplu se poate observa că cursorul <oTable> este necesar fără date,
por este rațiune la funcție OpenTable("SELECT * FROM
XTABLA”,.F.).A solicitat prin .F. cursul în formă goală, deoarece doar
este necesară structura tabloului și cum va fi realizat procesul de incluziune
nu este necesar să citiți datele din tabel.
#INCLUDE "[Link]"
PROCE MAIN()
LOCAL oTable,xValor,nLen
xValor:=SQLGET("XTABLA", "MAX(XCAMPO)")
xValor:=VAL(xValor)
ÎNTORCE
TTable, utiliza las tablas declaradas en el diccionario de datos que contiene el DSN o Base
de date legate, din acest motiv nu este obligatoriu să indicați baza de date unde în
găsește tabela, totuși este posibil să indicăm baza de date sau să adăugăm una nouă
tablă în formă directă.
ADDTABLE("0998","MITBLE",oDp:cDsnData,.F.)
LOCAL oDB,cSql,otable
oTable:=DeschideTabel(„MITABLE”,.T.,oDB)
Acces la tabele indicând baza de date fără a verifica dicționarul de date, astfel se evită
utilizați funcțiaADDTABLE("0998","MITBLE",oDp:cDsnData,.F.)exemplu:
oTable:=DeschideTabela(“MITABLE”,.T.,oDB,.F.,)
TDPEDIT
Este o clasă DpXbase care permite proiectarea de formulare de tip (MDI) într-o formă declarativă,
adica prin comenzi xbase pentru declararea Controalelor care in timpul
execuția poate fi redesenată vizual. Formularul acceptă ca metode
Exemplu
#INCLUDE "[Link]"
PROCE MAIN()
LOCAL oFont
oFrm:=DPEDIT():New("Titlu","[Link]","oFrm", .T. )
oFrm:cVarName:=SPAȚIU(20)
oFrm:nValor :=100
oFrm:dFecha :=oDp:dFecha
Test de text
DIMENSIUNE 120,10 DREAPTA;
COLOR CLR_HBLUE,CLR_YELLOW
Nume
XSAY("Valoare")
XSAY("Data")
BUTOANE "Accepta";
MARIME 36,12;
ACTION oFrm:Aceptar()
oFrm:Activează()
ÎNTORCE
FUNCȚIA MyValid()
ÎNTOARCE .T.
FUNCȚIA XSAY(cText)
LOCAL oObj
oObiect:=ATAIL(oFrm:oDlg:aControl)
RETURN .T.
FUNCTION ACEPTAR()
MsgAlert("Aici se execută procesul")
ÎNTOARCE .T.
Metodele clasei
Nou(<cTitulo>,<cFichero>,<coFrm>,<lWindows>):Incepe construcț ia de
formular
bEnd:Bloc de Cod care trebuie să fie executat la închiderea formularului, dacă acesta
return .f., formularul nu poate fi închis. Această utilitate este de mare ajutor pentru
efectuarea verificărilor de închidere.
bResize: Bloc de cod care se execută atunci când dimensiunea feroniei este
reajustat cu Mouse-ul.
Data de la Clase:
bValid: Bloc de cod care permite validarea închiderii formularului, poate evita
a ieși cu [X] pe fereastra MDI.
lActivează: Indică dacă formularul a fost activat sau a fost executată metoda Activate().
lMsgBar: Con .F. suprime la barra de mensajes ubicada en la parte inferior del
dialog
Caseta de Selectare
OFrm:lVar:=.T.
OFrm:oBtn:lCancel:=.T.
OFrm:oBtn:cToolTip:="Cerrar Formulario"
OFrm:oBtn:cMsg :=”Mensaje en la Barra Inferior”
oFrm:nValor:=1000
ELEMENTE oFrm:aLista;
OF oFrm:oDlg;
PE SCHIMBARE .T.;
VALABIL .T.;
FONT oFont;
MESSAGE "Seleccione una Opción";
CAND .T.
oFrm:oCol:=oFrm:oBrw:aCols[1]
Cod
oFrm:oCol:nWidth :=140
oFrm:oCol:=oFrm:oBrw:aCols[2]
oFrm:oCol:cHeader:="Apellido"
oFrm:oCol:nWidth :=200
oFrm:oCol:=oFrm:oBrw:aCols[3]
oFrm:oCol:cHeader:="Nombre"
oFrm:oCol:nWidth :=200
oFrm:oBrw:bClrStd := {|oBrw|oBrw:=oFrm:oBrw,;
{0, iif( oBrw:nArrayAt%2=0, 15790320, 16382457 ) } }
oFrm:oBrw:CreareDinCod()
#INCLUDE “[Link]”
PROCE MAIN()
oFrm:=DPEDIT():New("Titlu","[Link]","oFrm" , .F. )
oFrm:CreazaFereastra()
oFrm:Activeaza({||oFrm:FăBară()})
ÎNTOARCE
FUNCȚIE HacerBarra()
LOCAL oCursor,oBtn
ÎNTORCE .T.
MODULURI HRB
Programa [Link]
// Amplasat c:\dpnmwin\hrb\[Link]
#INCLUDE "[Link]"
MEMVAR oDp
FUNCȚIA HRBtest(cText)
MensajeErr(oDp:cEmpresa,cText)
ÎNTORCE NIL
// eof
Puteți observa că [Link] are funcția HrbTest() care poate fi executată din orice loc.
parte din DpXbase. Funcția HrbTest() poate face apeluri la funcții proprii DpXbase
„MensajeErr” și apeluri la proceduri Dpxbase cu doar a indica:
EXECUTĂ(„XPROGRAMA”,xValoare)
CONSTRUIE TEST
Este necesar să încărcăm în memorie funcțiile definite în [Link], pentru aceasta utilizăm următorul
exemplu scris în DpXbase.
#INCLUDE "[Link]"
PROCE PRINCIPAL()
HRBLOAD("[Link]")
HRBTEST(„Desde DpXbase”)
ÎNTOARCEȚI
Modulele HRB sunt generate doar din compilarea unui program PRG și nu ca DLL-urile de
produsele Datapro DOS care necesitau compilare și legare (Linkado) unde se puteau
involucra mai multe programe *.PRG, fișiere obiect *.OBJ și fișiere de biblioteci *.LIB
Ambele moduri de lucru au avantajele lor. Principalul avantaj al modulelor HRB constă în
viteza de execuție care este mult mai mare decât DpXbase, plus declarația de variabile
locale-urile sunt reale; permițând crearea diverselor instanțe de controale precum dialoguri (non-modale) sau
feronier MDI. Programul sursă nu este necesar pentru executare, ceea ce permite protejarea
proprietate intelectuală a codului.
DpXbase are editorul său proprietar și este mai confortabil, să scrii, să compilezi și să execuți. Va fi întotdeauna
disponibil programul sursă. Nu permite crearea de instanțe pentru dialoguri nemodale sau feronii
MDI, de aceea trebuie întotdeauna să se bazeze pe clase precum TDPEDIT sau TMDI.
Utilizând FoxPro:
Modelul de date folosit de DpXbase este compatibil cu FoxPro, ambele utilizează tipuri de
date: Caracter, logic, memo, numeric ș i dată. Pentru a executa programe binare (EXE)
de la DpXbase este necesar să instalati FoxPro versiunea 8. În dosar
c:\dpadmwin\foxpro se encuentra el programa [Link] que contiene un ejemplo
funcț ional care citeș te parametrii creaț i din DpXbase.
De asemenea, pentru a crea rapoarte, utilizând FoxPro cu tabele DBF, puteț i folosi următorul
ejemplo:
//DpXbase
FUNCȚ IA PRINCIPALĂ()
LOCAL oMatrice
EXECUTA("FOXRUN", "[Link]")
ÎNTOARCE
Pentru o mai mare comoditate, utilizați designerul de rapoarte FoxPro pe tabelele temporare DBF
ubicadas en la carpeta “\CRISTAL” y guarde el archivo de diseño preferiblemente con el mismo
numele tabelului cu extensia FRX și în folderul „CRISTAL".
Pentru a executa raportul conceput în FoxPro, trebuie mai întâi să-l asociați cu raportul, accesați la
dizainer de rapoarte Datapro și selectează opțiunea „Crystal Report”, indică „raport nou” și
introduceți denumirea raportului „Produse proiectate cu FoxPro” și numele fișierului
cu extensia și carpeta respectivă, exemplu: C:\dpadmwin\crystal\[Link]”. Apoi, când...
raportul avea asociația cu diverse opțiuni de design, selectați raportul identificat cu
FoxPro în lista identificată „Design Cristal”, selectați opțiunea „Previzualizare Cristal” sau „Cristal
Imprimă” și în cele din urmă apasă pe „Butonul de Execuție”.
Timpul de răspuns într-o interogare SQL depinde în mare parte de modul în care
în care se indică condiț iile înregistrărilor prin intermediul clauzei WHERE. În acest
este foarte important să luam în considerare indicii tabelelor ș i secvenț a acestora
acelea ș i. Condi ț iile din clauza WHERE trebuie să fie conform pozi ț iei celor
câmpurile indexului. Exemplu:
Tabla: CampoA,CampoB,CampoC,CampoD
Índices: CampoB,CampoC
În acest fel, este mai optim, acum dacă inversăm câmpurile din clauza WHERE,
va dura mult mai mult.
Podemos hacer pruebas con las tablas del Sistemas de Gestione empresarial, la tabla puede
ser: DPDOCCLI ale căror indice sunt:
DOC_CODSUC,DOC_TIPDOC,DOC_NUMERO,DOC_TIPTRA
SELECT DOC_CODSUC,DOC_TIPDOC,DOC_NUMERO,DOC_TIPTRA,DOC_CODIGO
DIN DPDOCCLI
UNDĂ DOC_TIPDOC='FAV' Ș I
DOC_NUMERO='0000000010' Ș I
DOC_CODSUC='000001'
Acest fiș ier poate fi citit cu NOTEPAD ș i copiat, apoi cu MySQLFRONT lipit,
caută indecș ii din tabel ș i ordonează câmpurile din CLAUZA WHERE în funcț ie de
acelaș i ordinea a indicilor ș i verificarea timpului de răspuns. Apoi, că interogarea este
optimizată, trebuie să deschidă programul sursă, LBX sau Raport ș i să-i schimbe Ordinea la
câmpurile clauzei WHERE ș i apoi executaț i programul ș i cu siguranț ă veț i observa
timpuri de răspuns.
În cazul în care este necesar ș i foarte important, este să se creeze noi indici (Nu
RECOMANDĂM) pentru a optimiza interogările, datorită acestei soluț ii veț i putea face ca
baza de date este mai lentă în momentul inserării, modificării sau ș tergerii unui registru.
Este important să epuizezi ultima resursă în condiț iile WHERE înainte de a adăuga un
indice nou.
1. Crearea unei companii, selectarea companiei. În acest punct se generează baza de date cu tabele goale.
4. Selecta ț i compania care con ț ine datele ce vor fi exportate, executa ț i procesul indicat
en el paso número dos. Ahora todas las tablas contienen información. Comprimir en una
noua tabelă "[Link]", următoarele tabele: DPINV, DPGRU, DPMARCAS, DPIVATIP
DPCLIENTES, DPCTA DPACTIVIDAD_E, DPCLICLA DPPRECIOTIP,
DPPROVEEDOR, DPPROCLA, DPCTABANCO, DPBANCOS ș i DPCAJA.
6. Instala ț i sistemul pe site-ul de destina ț ie, intern pe un alt PC. Ș tergeț i con ț inutul de pe
carpeta c:\dpadmwin\ejemplo, localizaț i-vă în această folder, mai întâi decompressaț i fiș ierul
[Link] în ș i al doilea dezarchivaț i fiș ierul [Link]
7. Apoi, accesa ț i sistemul, defini ț ii ale sistemului, procese, importa ț i exemple. Acest
procesul citeș te tabelele DBF ș i adaugă datele în tabelele bazei de date. Dacă se generează
un mesaj de integritate, consulta ț i în dic ț ionarul de date „Programare, tabele,
consultaț i ierarhizarea tabelelor ș i căutaț i tabelele legate "Părinte" ale tabelelor
indicadas en el punto 4 y agregarla en dicha la lista, repetir el proceso indicado en el punto
8. Atunci când instala ț i sistemul pe o unitate diferită de C:\ în timpul instalării, instalarea
a funcț ionat perfect ș i, exceptând imaginile din meniu, pentru a corecta asta
am făcut câteva interogări SQL care corectează unitatea de destinaț ie:
SGE
Nomina
Creând o nouă funcț ionalitate pentru sistem, unde vor fi create două tabele relaț ionate
în mod ierarhic (Mărci ș i Vehicule). Prin intermediul asistentului DpXbase, utilizatorul
va trebui să creeze următoarele tabele:
Número : 7000
Table MYMARCA
Descriere: Mărci Vehicule (Se referă la numele la plural)
BD: Selectează "Múltiple", această op ț iune permite ca această tabelă să fie creată în fiecare
una dintre companii când utilizatorul intră în companie, sistemul efectuează o revizuire a
structura de date ș i creează tabelul (În acest caz, nu este necesară participarea unui
expert DBA pentru a crea tabelele în fiecare companie cu integrarea lor respectivă
referenț ial). Opț iunea „Configurare”
Aplicaț ie: Programare ș i Dicț ionar de Date.
Singular: Marca de Vehicul
Din nou, selectaț i Opț iunea Tabele ș i apăsaț i butonul „Includere”, se prezintă
formular pentru a crea tabelele ș i câmpurile. Introduceț i datele în câmpurile următoare:
Număr : 7001
Tabla AUTOVEHICULUL MEU
Descripción: Vehículos (Se refiere al nombre en plural)
BD Selectaț i „Multiple”, această opț iune permite ca această tabelă să fie creată în fiecare
una dintre companii, atunci când utilizatorul intră în companie, sistemul efectuează o revizuire a
structură de date ș i creează tabelul (În acest caz, nu este necesară participarea unui
expert DBA pentru a crea tabelele în fiecare companie cu integritatea respectivă
referenț ial). Opț iunea „Configurare
Aplica ț ie: Programare ș i Dic ț ionar de Date.
Singular : Vehículo (Se refiere al nombre singular de la tabla)
După crearea tabelului, este necesar să creaț i opț iunile pentru câmpul următor: Prin
opț iunea Tabele afiș ează toate tabelele, caută tabelul 7000 ș i selectează al 7-lea buton
„Opț iuni de câmpuri”, localizaț i câmpul: VEI_ORIGEN ș i adăugaț i două înregistrări:
Opț iune
Naț ional
Importat
Cu această funcț ionalitate, va permite asistentului de creare DpXbase să creeze un control selector
de tip „ComboBox” care îi va permite utilizatorului să selecteze „Naț ional sau Importat”, aș a
mismo, utilizatorul poate adăuga ca criteriu utilizarea câmpului
„VEI_ORIGEN” ș i sistemul va prezenta opț iuni: Naț ional, Importat sau Gol (Gol nu
nu realiza niciun filtru)
Tabla Solicitante:
Tabela : MYMARCA
Campos:MAR_CODIGO
Tabla Înregistrată:
Tabla : MYVEHICULO
Campos:VEI_CODMAR
Cu aceste indicaț ii, sistemul creează instrucț iunile SQL pentru a genera integritatea.
referenț ial. Dacă o marcă este eliminată, „toate înregistrările vehiculelor” sunt de asemenea
eliminaț i. În cazul în care marca îș i schimbă codul, vehiculele asociate de asemenea
vor fi modificate.
(Este important de precizat că ambele câmpuri trebuie să aibă acelaș i tip de date ș i aceeaș i
(longitudine) pentru acest caz ambele de tip caracter ș i de 10 caractere fiecare
Acest tip de legătură nu afectează integritatea referenț ială, este o funcț ionalitate care facilitează
creaț ie automată de programe DpXbase ș i generarea de ranguri ș i criterii prin intermediul
generator de rapoarte, reuș ind să solicite câmpul „MARCA” ș i să afiș eze numele de
marca. Când se generează un program DpXBase se creează un control de tip BMPGET ș i
control SAY contentivo al numelui mărcii. Când sistemul solicită marca,
prezintă un buton care cheamă LBX-ul conț inând marca ș i când utilizatorul selectează
marca ș i este validată, se afiș ează numele mărcii. Această funcț ionalitate economiseș te timp de
programare ș i depanare a sistemului.
Pentru a crea un link virtual, este necesar să accesaț i „Fiș iere”, situat în „Programare.
y DpXbase”, selectaț i opț iunea “Legătură între tabele”, ș i selectaț i opț iunea Includere:
Tabla Solicitante:
Tabla : MYVEHICULO
Campos:VEI_CODMAR
Din opț iunea Tabel, localizaț i tabela 7000 (MYMARCA) ș i selectaț i al ș aselea buton
(Creare listBox/Browse de Navigare).
Se prezintă un formular compus din două liste, prima lista câmpurilor tabelului ș i
a doua cu câmpurile selectate pentru listă. Utilizatorul trebuie să selecteze
următoarele câmpuri: MAR_CODIGO, MAR_DESCRI ș i MAR_ACTIVO. Toate trebuie
rămân în această ordine, câmpul cheii primare trebuie să fie întotdeauna în prima coloană.
Selectaț i butonul „Salvează” ș i se generează fiș ierul forms\
de la instrucț iunile browserului).
Din nou, din opț iunea Tabel, localizaț i tabelul 7000 (MYMARCA) ș i selectaț i-l
al saselea buton (Creare listBox/Browsare de Navigare) si se prezinta selectorul de campuri, in
pe bara de butoane se află al treilea buton "Creare program pentru a crea formular".
prezintă un nou formular compus din două liste de câmpuri, prima conț ine
câmpurile din tabel, iar al doilea formular conț ine câmpurile care să fie utilizate în
formular. Utilizatorul trebuie să selecteze următoarele câmpuri în aceea ș i ordine:
MAR_CODIGO, MAR_DESCRI, MAR_ACTIVO ș i MAR_MEMO, apoi trebuie să apasa
primul buton „Formular”, iar sistemul creează programul sursă scris în DpXbase
conț inutiv de toate instrucț iunile pentru a include, a consulta sau a modifica Mărci.
VEHICULUL MEU
Se prezintă un formular compus din două liste, prima fiind câmpurile tabelului ș i
a doua cu câmpurile selectate pentru listă. Utilizatorul trebuie să selecteze următorul
campo:
VEI_PLACA
VEI_NOMBRE
VEI_ACTIVO
VEI_AN
VEI_FCHADQ
VEI_VALOR
VEI_CODMAR
VEI_ORIGEN
Toț i trebuie să rămână în această ordine, câmpul cheii primare trebuie să fie întotdeauna în
prima coloană. Selecta ț i butonul „Salvează” ș i se generează fi ș ierul
forms\[Link] (Conț inut al instrucț iunilor Browse).
Din nou, din opț iunea Tab, localizaț i tabela 7001 (MYVEHICULO) ș i selectaț i-o.
al ș aselea buton (Creare listBox/Browse de Navigare) ș i se prezintă selectorul de câmpuri, în
bara de butoane se află al treilea buton „Creează program pentru a crea formular”. Se
prezintă un nou formular compus din două liste de câmpuri, prima conț ine
câmpuri din tabel ș i al doilea formular conț ine câmpurile care pot fi utilizate în
formular. Utilizatorul trebuie să selecteze câmpurile următoare în aceeaș i ordine:
VEI_PLACA
VEI_NOMBRE
VEI_ACTIVO
VEI_AN
VEI_FCHADQ
VEI_VALOR
VEI_CODMAR
VEI_ORIGEN
VEI_MEMO
În cele din urmă apăsaț i primul buton „ Formular”, iar sistemul creează programul sursă
scris în DpXbase conț inând toate instrucț iunile pentru a include, consulta sau modifica
Vehicule.
În acest caz, putem observa că sistemul a adăugat funcț ionalitatea linkului virtual între
Vehicul cu Marcă
Pentru a executa „LISTBOX”-ul din tabela MYMARCA, este necesar să incluză o nouă
opț iunea din tabelul DPMEMU, din Fiș iere, accesaț i opț iunea „Meniul Principal de
În secț iunea "Acces", sunt afiș ate toate opț iunile din meniul sistemului ș i vom adăuga una nouă
opț iune, selectaț i butonul „Includere” ș i introduceț i datele în următoarele câmpuri:
În cele din urmă pentru a exporta din dicț ionarul de date, toate noile funcț ionalităț i. De la
opț iunea „Altele”, exportaț i structura de date, se prezintă formular, conț inând toate
tabelele de date, selectaț i „toate”, prin intermediul celui de-al treilea buton este posibil să filtraț i tabelele
creaț i dintr-un interval de date, se afiș ează tabelele MYMARCA ș i MYVEHICULO,
executa primul buton, prezintă un nou formular pentru a indica dosarul unde se
vor păstra toate tabelele într-un fi ș ier numit [Link],
[Languages]
Name: "spanish"; MessagesFile: "compiler:Languages\[Link]"
[Tasks]
Name: "desktopicon"; Description: Creare incono de &birou icono"; GroupDescription:
"Additional icons:"; MinVersion: 4,4
[Files]
Source: "c:\plugin\datadbf\*.*"; DestDir: "{app}\plugin"; CopyMode: alwaysoverwrite
Source: "c:\plugin\forms\*.*"; DestDir: "{app}\forms"; CopyMode: alwaysoverwrite
Source: "c:\plugin\dpxbase\*.*"; DestDir: "{app}\dpxbase"; CopyMode: alwaysoverwrite
Source: "c:\plugin\*.*"; DestDir: "{app}\innosetup"; CopyMode: alwaysoverwrite
Source: "c:\plugin\datadbf\*.*"; DestDir: "c:\plugin\datadbf"; CopyMode: alwaysoverwrite
Source: "c:\plugin\forms\*.*"; DestDir: "c:\plugin\forms"; CopyMode: alwaysoverwrite
Source: "c:\plugin\dpxbase\*.*"; DestDir: "c:\plugin\dpxbase"; CopyMode: alwaysoverwrite
Source: "c:\plugin\*.*"; DestDir: "c:\kanguro"; CopyMode: alwaysoverwrite
[Rulaț i]
Filename: "{app}\[Link]"; Description: Executa aDaptaPro Sistem de Gestion
Empresarial"; Steaguri: acumș teaptă postinstalare sareț ie dacă este silenț ios
// Programa : DPEXPADAPTA
// Fecha/Hora : 13/12/2011 21:50:51
// Scop : Localizarea Programelor Adaptate
// Creat de : Juan Navas
// Apelat de: Programare
// Aplicación :
// Tabla :
#INCLUDE "[Link]"
FUNCȚ IA PRINCIPALĂ()
LOCAL aTablas
CursorWait()
ÎNAPOI NIL
FUNCȚ IE LEERADAPTA()
LOCAL aTablas:={},I,cTable,oTable,aFiles:={},cPass,aTotal:={}
LOCAL cDir:="DPEXPADAPTA"
LOCAL cFileZip:=cDir+"[Link]"
lMkDir(cDir)
aFiles:=DIRECTOR(cDir+"*.*")
AEVAL(aFiles,{|aFile| ferase(cDir+aFile[1])})
aFiles:={}
cTable:=cDir+"\"+aTablas[I,1]+".DBF"
FERASE(cTable)
DACA EJECUTAR("DBISTABLE",oDp:cDsnConfig,aTablas[I,1])
aTablas[I,4]:=oTable:RecCount()
oTable:FINALIZE()
AADD(aFiles,cTable)
ENDIF
URMĂTORUL I
aTotal:=ATOTALES(aTablas)
MensajeErr("Fiș ierul " + cFileZip + " Generat cu " + LSTR(aTotal[4]) + " Adaptări")
// ViewArray(aTablas)
ÎNTOARCE aTablas
// EOF
Pentru a manipula șirurile de caractere în acest caz și a obține diversele valori: Contribuabil, condiție, % de
retenția de TVA necesită utilizarea următoarelor funcții și expresii:
Pentru mai multe informaț ii despre funcț iile Xbase ș i DpXbase, puteț i consulta următorul link:
[Link]
Utilizăm: Ș iruri, Câmpuri Memo, Funcț ii pentru ș iruri, citirea fiș ierului text
(TXT)
// Programă : LEERRIF
// Fecha/Hora : 16/07/2013 16:12:42
// Scop: Citirea RIF-ului Clientului ș i obț inerea datelor fiscale
// Creat de : Juan Navas
// Apelat de:
// Aplicación :
// Tabla :
#INCLUDE "[Link]"
PROCE MAIN(cRif)
LOCAL cUrl,cTemp
LOCAL cWeb:="[Link]
LOCAL nAt,I,aData:={},cMemo:=""
DEFAULT cRif:="J312344202"
FERASE(cTemp) // Ș terge fiș ierul, necesar pentru a determina dacă este protejat sau deschis.
// Si fiș ierul temporar nu există, probabil nu există conectivitate cu [Link] sau domeniul,
poate fi colapsat
DACĂ !FIȘ IER(cTemp)
ÎNTOARCE .F.
ENDIF
DACA nAt=0
// Avem nevoie doar de prima linie a Memo-ului, este convertită într-un aranjament
cMemo:=_VECTOR(cMemo,CHR(10))[1] // Transformă în Arregism ș i ia primul element, CHR(10) împarte
Linii
MensajeErr(cMemo,"RIF no Validado")
ÎNTORCE .F.
ENDIF
Dacă nAt>0
Se obț in datele până la sfârș itul câmpului
aData[I]:=SUBS(aData[I],nAt+1,LEN(aData[I]))
ENDIF
DACA nAt>0
// Obț ine datele de la începutul câmpului
aData[I]:=LEFT(aData[I],nAt-1)
ENDIF
NEXT I
Dacă nAt>0
// Si este găsit (, doar luăm caracterele de la început până la ( minus 1 pentru a nu include (
aData[2]:=STÂNGA(adata[2],nAt-1)
ENDIF
Retención: "+aData[5]
ÎNTOARCE .T.
/*
<?xml version="1.0" encoding="ISO-8859-1"?>
<rif:Rif xmlns:rif="rif" xmlns:xsi="[Link]
rif:numeroRif="J312344202">
<rif:Nombre>SERVICIOS INFORMATICOS DATAPRO C.A. (SERVICIO INFORMATICOS DATAPRO, C.A)</rif:Nombre>
<rif:AgenteRetencionIVA>NO</rif:AgenteRetencionIVA>
<rif:ContribuyenteIVA>SI</rif:ContribuyenteIVA>
<rif:Tasa>75</rif:Tasa>
</rif:Rif>
*/
// EOF
Glosario de Términos
UDF: Funcț ie definită de utilizator. Definiț ie acordată definiț iilor create de utilizator.
CURSOR
Răspuns primit într-un plan bidimensional (Linii ș i Coloane) dintr-o interogare SQL.
DSN: Nume sursă de date. Numele conexiunilor ODBC cu serverele de baze de date,
predefinite în sursele de date ODBC din Instrumentele administrative ale panoului de control
Control de Windows.
CLASE: Codul sursă sau partitura acțiunilor unui obiect, conține: clasa părinte (opțional dacă
heredat dintr-un alt obiect), metode care indică ce face obiectul și Date care indică ce are
obiect. Trebuie să aibă neapărat o metodă constructor denumită NEW() și un Destructor
denumit END().
METODĂ. Metoda clasei. Conformă funcțiile sau activitățile pe care le desfășoară obiectul, într-o formă
analógica poate fi comparată cu funcțiile statice ale unui program care pot fi doar
a folosi din același program în care a fost declarată. Pentru a utiliza metoda unei clase, trebuie să fie
apelând numele obiectului, urmat de două puncte și în cele din urmă numele metodei cu
parametrii lor respectivi. Exemplu: oObiect:Metoda(uPar1,uPar2,uParn). Metodă Virtuală, a fost
o definiție suplimentară implementată în DpXbase.
DATE: Valorile sau conținuturile Obiectului se reprezintă prin nume valide, cum ar fi variabilele.
De asemenea, poate fi definit ca „Ce are obiectul”. Exemplu: Obiect:xData.
OBIECT: Componentă abstractă care realizează activități conform sarcinilor definite în metode
și valori stocate în memorie (date). Obiectul permite a lucra de mai multe ori în formă
simultane (Instanțe). O clasă poate fi definită pe baza unei alte clase, profitând de tot
partitura (hereditate).
FUNC ȚIE: Definirea unui program compus din parametrii, declara ț ia variabilelor,
instrucțiuni, apeluri la alte funcții și care returnează o valoare. Funcția trebuie să fie identificată
cu un nume și trebuie să primească parametrii din instrucțiunea care o execută: Exemplu:
Suma(10,20).
FUNCTIE Sumar(nValor1,nValor2)
RETURN nValor1+nValor2
ENLAZARE: Definiția procesului final pentru generarea unui program executabil sau DLL
unde se utilizează programele obiect produse de compilare și bibliotecile care le conțin
funcțiile invocate de programele sursă.
COMPILARE: Procesul de conversie a fiș ierului obiect (OBJ) pe baza instrucț iunilor scrise
în formă (umană) de un programator.