|
DpXbase soporta los mismos tipos de datos de las Tablas de Formato DBF de Dbase, Clipper o Foxpro, adicionalmente soporta tipos de datos exclusivos de Clipper tales como: Bloques de Código, Arreglos, Objetos y Nulos . Para una fácil compresión o lectura de programas escritos en DpXbase utilizamos la notación Húngara que consiste en una técnica para declarar las variables con un prefijo que indica el tipo de dato que lo representa, ejemplo: LOCAL nNumerico:=100 LOCAL cCaracter:=”Caracteres” LOCAL dFecha:=DATE() LOCAL lLogico:=.T. LOCAL bBloq :={||NIL} LOCAL aArray :={1,2,3,4,5} LOCAL oObjeto:=OpenTable(“SELECT * FROM DPINV”) Numéricos Soporta 19 enteros y siete decimales, se refiere a valores de tipo numéricos. Igualmente soporta valores enteros (sin decimales).
| Carácter o Memo Acepta caracteres o cadenas de datos y soporta hasta 4 Gigas por cada variables.
| Date o Fecha Soporta datos según el formato “dd/mm/aaaa” y se refiere a fechas que pueden soportar operaciones matemáticas y su uso está vinculado con las funciones DAY(),MONTH(),CMES(),DOW(),DTOC(),CTOD(), DTOS(), entre otras.
| Lógicos Se obtiene por la comparaciones de valores mediante operadores lógicos y relacionales, siempre su valor es verdadero .T. o Falso .F.
| Nulos Se refiere al valor por defecto que posee una variable cuando se declara sin valor, “LOCAL nValor”, de esta manera nValor es NIL. Si preguntamos por su valor: MsgAlert(ValType(nValor)), mostrará NIL.
| Arreglos También llamados vectores son listas de valores de una sola dimensión, DpXbase al igual que clipper no soporta arreglos multimensionales en forma literal sin embargo un arreglo puede esta compuestos de listas contentivas de arreglos logrando la manipulación de arreglos multidimensionales. Lo lista de los arreglos se declaran con {}, otra ventaja de los arreglos es que su contenido puede estar compuesto por datos de cualquier tipo. Ejemplo: aLista:={1,2,3,4,5,6} aLista:={“Uno”,2,date(),nil,.T.} Para declarar arreglos multidimensionales, debe utilizar la siguiente forma: aLista:={} AADD(aLista,{1,2,3,4,5,6}) // Puede Notar que estamos adicionando una lista de números Para mostrar el primer elemento, se debe utilizar la siguiente sintaxis: MsgAlert(STR(aLista[1,1])) // Mostrará 1 También puede utilizarse aLista[1][1] DpXbase provee un conjunto de funciones diseñadas exclusivamente para el manejo de arreglos: AADD(), ASORT(), AEVAL(), ASIZE(), ARREDUCE(), ADEL(), AINS(), ASCAN(), ACLONE() Etc. Varias visualizar el contenido de un arreglo, ViewArray(aLista)
| Bloques de Código Como su nombre lo indica son datos que contienen código de ejecución “que ejecutan como si fuese parte del EXE”, la gran diferencia entre un programa ejecutable “Binario” y un bloque de código están en que el programa ejecutable se encuentra almacenado en un fichero de extensión EXE y el bloque de código está almacenado en una variable. El Bloque de código es un potencial altamente aplicado en todo DpXbase y en las reglas de negocio encargadas de generar las transacciones comerciales. Declaración: bBloque:={||MsgAlert(“Hola DpXbase”)}) Para ejecutarlo: Eval(bBloque) // Muestra en un dialogo “Hola DpXbase” Los bloques de código se comportan en forma similar a una función de un programa, es decir, pueden recibir parámetros y devolver valores, ejemplo: FUNCTION SUMAR(nValor1,nValor2) LOCAL nResp:=nValor1+nValor2 RETURN nResp Para Ejecutar la suma es necesario llamar a la función sumar de la siguiente manera: SUMAR(10,20) y devuelve 30 La traducción literal de la función SUMAR() hacia bloque de código es: BSumar:={|nValor1,nValor2|nValor1+nValor2} Para ejecutar la Suma, es necesario utilizar la función EVAL() de la siguiente manera: EVAL(bSumar,10,20) // Devuelve 30 Los bloques de código están en todas partes del sistema, principalmente donde están las ejecuciones, tales como: Clic en un control (Botón, Menú, etc.). Conocer ampliamente y dominar el concepto de bloque de código le ayudará a conocer DpXbase y construir soluciones aprovechando el potencial de los bloques de código. Cada vez que el usuario presiona CLICK en un control está haciendo uso de un bloque de código que contiene la ejecución del control, ejemplo: #DEFINE “DPXBASE.CH” PROCE TESTBLQ() LOCAL oDlg,oBtn DEFINE DIALOG oDLG TITLE “Bloque de Código” @ 1,1 BUTTON oBtn PROMPT “Cerrar” oBtn:bAction:={||oDlg:End() ACTIVATE DIALOG oDLG RETURN NIL En este ejemplo puede observar que la acción de botón “Cerrar” está definida mediante un bloque de código, cuando el usuario presione “Clic” será ejecutado el bloque de código “oBtn:bAction “ que está compuesto por la llama al método “End()” cerrar del dialogo identificado con la variable “oDlg”.
| Objetos El modelo (OOP) Objetos utilizado por DpXbase está basado bajo el concepto clásico de “Programación Orientado a Objetos (OOP)”. Podemos definir que un objeto es un elemento que está compuesto por datos y que realizar actividades, como por ejemplo una calculadora: Posee teclas que realizan tareas: (indicar un numero, sumar, restar, etc.) y contiene datos “números del 0 al 9” para realizar operaciones matemáticas. Podemos notar que DpXbase posee una calculadora totalmente diseñada bajo el concepto de programación “Objeto”. Los datos de tipo objeto se obtiene mediante la llamada a una clase Objeto preexistente en DpXbase, para hacer llamada a un objeto utilizamos la siguiente sintaxis: oObjeto:=TDpEdit():New() oObjeto:=DPEDIT():New("Titulo","formsformulario.edt","oObjeto",.F.) oObjeto:Activate() Si evaluamos el tipo de dato de oObjeto con ValType(oObjeto) devuelve “O” Las funciones del objeto o mejor dicho lo que hace se denomina “Metodo()” y los datos que contiene se llama “Data”. Todos los controles Windows (GET,TEXT,COMBO,DIALOG) son manipulados mediante objetos que se definen a través de comandos predefinidos en el fichero de encabezado “DPXBASE.CH”
|
En el fichero “DPXFUNCTION.CHM” ubicado en la carpeta HELP de sistema de gestión empresarial o nómina, contiene la documentación y ejemplo de cada una de las funciones estándar xbase utilizadas en DpXbase. Por razones de comodidad y estandarización DpXbase utiliza las mismas funciones estándar xbase de Clipper 5.2 con la diferencia que están diseñadas para 32 bits.
<< Regresar
|