Posteado por: ascpepeto | 26 enero 2010

Glosario B

Seguimos con nuestro vocabulario y le toca el turno a la B

  • Base de datos, es la aplicación que permite crear estructuras de para almacenar datos y gestionarlos posteriormente a través de consultas.

  • Base de datos externa, es el objeto que permite establecer conexiones con otras bases de datos a través de un driver ODBC.

  • Bloc de formularios, es un objeto que nos permite ver las fichas de una lista, facilitando el movimiento al registro anterior/siguiente y primero/último.

  • Búsqueda, es el objeto que permite realizar consultas sobre los registros de una tabla, para ello podemos utilizar los indices y condicionar dichas consultas para mostrar únicamente los registros necesarios.

Posteado por: ascpepeto | 25 enero 2010

Pack: Las tablas de datos a fondo

En este pack, he agrupado todos los artículos referentes al Objeto:  Tabla de datos, para que podais localizarlos más facilmente:

Las tablas de datos en detalle

Las tablas de datos I: las tablas

Las tablas de datos II: campos

Las tablas de datos III: enlaces a maestros

Las tablas de datos IV: enlace a tabla estática

Las tablas de datos V: indices

Las tablas de datos VI: actualizaciones

Las tablas de datos VII: plurales

Las tablas de datos VIII: eventos

Tipos de campo en las tablas de datos

Tipos de indice en las tablas de datos

Utiliza la categoría PACK para localizar todos los artículos que han sido divididos por ser demasiado extensos.

Posteado por: ascpepeto | 25 enero 2010

Las constantes y otros objetos

La definición de constante, es aquella en la que el valor almacenado en una estructura de datos no cambia a lo largo de la ejecución de la aplicación.

Por lo demás, se definen exactamente igual que las variables globales, y pueden ser de los mismos tipos que ellas.

Por tanto, podemos utilizar las constantes para definir valores invariables como:

$PI = 3.14

Otros objetos del proyecto de datos

Si te fijas en el panel de nuevos objetos del proyecto de datos, puedes ver que hay mas objetos de los que hemos visto hasta ahora, pero no desesperes que ya los veremos más adelante, por el momento vamos a dar por concluidos los artículos que he dedicado a proyectos de datos, y vamos a continuar con otras cosas.

Posteado por: ascpepeto | 22 enero 2010

Change a LML

Cambia a LML, si te atreves. :D

En realidad, éste artículo me refiero a “change” como otra mas de las etiquetas básicas del lenguaje LML, y tiene como misión, cambiar el simbolo utilizado como separador entre el número de nivel y la etiqueta, que por defecto es “:

Cuando escribimos un archivo en LML, se utilizara por defecto el simbolo o caracter especificado en la primera linea junto a la etiqueta begin,

Según esto, en este ejemplo, <0:begin language=”lml> se utilizará el carácter “:” como separador y

según este ejemplo, <0#begin language=”lml> se utilizará el carácter “#” como separador

pero en LML podemos cambiar este simbolo en cualquier momento por otro más adecuado al contenido de nuestro archivo y solo tenemos que indicarlo con la sentencia

<0:change sep=”$”> y la siguiente linea debería ser escrita como,

<0$change sep=”|”> y la siguiente linea debería ser escrita como,

<0|change default> con esta sentencia, el separador en la siguiente linea volverá a ser “:”

Debes notar que el separador indicado en los atributos, debe utilizarse siempre a partir de la siguiente etiqueta.

Veamos un ejemplo de lo aprendido hasta ahora,

<0:begin language=”lml”>

<1:etiqueta-1>valor-1

<2:etiqueta-2>valor-2

<2:etiqueta-3>valor-3

<2:change sep=”|”>

<2|etiqueta-4>valor-4

<2|etiqueta-5>valor-5

<1|change default>

<1:etiqueta-6>valor-6

<0:end>

Y esto no termina aqui …

Posteado por: ascpepeto | 22 enero 2010

Begin in LML

Empecemos con LML y que mejor manera de ver las 2 etiquetas basicas: BEGIN y END

Para construir un archivo bien estructurado en LML, la primera etiqueta de la primera linea debe ser BEGIN,

Debemos iniciar todos los archivos de la siguiente forma

<0:Begin language=”lml>NULL

con esta etiqueta iniciamos la estructura de nuestro archivo, pero debemos observar, que delante de la etiqueta begin, indicamos el número de nivel correspondiente a dicha etiqueta, el “0“. Y como separador entre el número de nivel y la propia etiqueta, hemos utilizado “:” (dos puntos), y podria utilizarser cualquier otro signo pero esplicaremos esto más adelante.

a continuación debes indicar todas las etiquetas necesarias para construir tu archivo LML, pero de eso hablaremos en otro artículo.

Aclarar también que para escribir cada etiqueta, no es necesario utilizar una nueva linea y retorno de carro, pero si es aconsejable, ya que facilita enormemente la lectura a los usuarios. Entendemos que la maquina será capaz de leer el archivo en cualquier condición siempre que siga una estructura apropiada, pero, a veces también resulta imprescindible mirar el contenido con un simple editor de texto. ;)

y para terminar el archivo LML debemos utilizar END

Tiene gracia, si lo que prentendía con LML era eliminar las etiquetas finales del “XML”, porque necesitamos END para construir nuestro archivo LML.

Y tiene una explicación lógica,

1. porque es la única etiqueta que vamos a usar para “cerrar”

2. porque indica el final del archivo, y con esto nos asegurarmos de que ha sido creado o leido correctamente

Finaliza el archivo con

<0:end>NULL

en este caso la etiqueta de Nivel también es “0“, ya que regresamos al nivel inicial para finalizar el archivo.

Asi que, en adelante todos nuestros archivos empezaran y finalizaran según este ejemplo

<0:Begin language=”lml”>

contenido del archivo LML

<0:end>

y sobre el contenido ya hablaremos en otra ocasión.

Posteado por: ascpepeto | 21 enero 2010

Conoce lo básico de LML

Como casi la mayoría de las ideas, LML surge por una única razón, para trabajar menos, pero esto supone que hay que trabajar más en la idea y desarrollarla para luego trabajar menos en el uso de esa idea, que la idea prospere o no es otro cantar. Pero al margen de ésto, este proyecto me ha permitido ahorrar muchas horas de trabajo, y las que me ahorrará en el futuro.

Y de paso, porque no decirlo, convencerme aún más, de que no podemos resignarnos a lo que conocemos por el mero hecho de que te lo impone la sociedad, o quién quiera que sea el culpable.

Agradezco a todos aquellos que he consultado y me han dado una respuesta ¡sincera!, aunque la respuesta no fuera la que más me apetecia oir, pero reconozco que es cierto.

Todos coincideron al decirme: ¡Es un gran trabajo! pero “XML” es el estandar y eso no lo puedes cambiar.

¡Gracias a todos!, y no es mi intención quitarle el puesto a “XML” ya que hay muchos intereses creados detrás de un lenguaje tan conocido, pero crei un día que podía mejorar la sintaxis de XML y lo intenté y aqui os dejo el fruto de este trabajo.

Solo espero que pueda seros de tanta utilidad como ya me ha sido a mi, si es que decidis utilizarlo, y si teneis cualquier duda, no tendre inconveniente en asesorar a los que decidan usarlo en sus proyectos.

empezamos a conocer LML  ¡ya! …

Posteado por: ascpepeto | 21 enero 2010

Nueva URL del blog

Estamos en continuos cambios, intentando mejorar poco a poco, y le ha tocado el turno al blog.

Nueva dirección:

http://www.ascsl.com

Aún no esta funcionando al 100% pero duarnte los proximos dias podreis seguir los articulos publicados en cualquiera de los 2 blogs.

Y os recuerdo que este blog dejara de funcionar en unos días.

Posteado por: ascpepeto | 21 enero 2010

Casilleros sincronizados III

Continuamos con el ejercicio, y le toca el turno a los casilleros.

Necesitamos un objeto: casillero para las familias y vemos como en el panel de propiedades de este casillero, necesitamos indicar la tabla asociada al casillero: Familias y el formulario que habiamos creado para mostrar las celdas de cada una de las familias.

En este casillero hemos indicado solo una columna para mostrar las familias, ya que en el diseño de nuestro interfaz, te recuerdo que las familias aparecian a la izquierda y los artículos a la derecha utilizando la mayor parte del area de trabajo.

Si te atreves, intenta crear el casillero de artículos por ti mismo, sin fijarte en las propiedades.

Si aún tienes problemas para entenderlo, aqui tienes las propiedades, pero no te acostumbres a que te lo den todo hecho, que no hay que ser tan perezoso (dicen que es pecado) :) .

Necesitamos otro objeto: casillero para mostrar los articulos y también podemos ver en la imagen como en el panel de propiedades, hemos asignado el casillero a la tabla de Articulos y hemos utilizado como formulario para mostrar las celdas de los articulos, el que habiamos creado anteriormente.

En este caso hemos indicado 5 columnas para mostrar el casillero de articulos.

sugerencia para Velneo:

Aprovecho para sugerir a Velneo que, como ya propuse en una de mis Ideas en el foro apropiado, los casilleros mejorarian considerablemente si:

- La propiedad columnas: se pudiera definir por medio de una Fórmula con contenido inicial y que pudiera cambiar durante la ejecución.

- Que también podamos disponer de una propiedad Filas: para indicar las caracteristicas,

- Que la barra de desplazamiento de un casillero, pudiera ser visible/oculta según las necesidades

- Que las dimensiones del formulario asociado al casillero se ajustase a las dimensiones del casillero en ejecucion, teniendo en cuenta las Filas y Columnas definidas.

- Vamos, en definitiva, que en V6 los casilleros funcionaban “de cojones” y la única pega era no poder definir nº filas y nº columnas, pero con la opción automatico se funcionaba “muy bien”.

Posteado por: ascpepeto | 20 enero 2010

ASC al concurso de Open Apps

Concurso Open Apps V7 ene-2010Desde A.S.C., y éste blog como medio de difusión, hacemos pública nuestra participación en el concurso de Open Apps organizado por Velneo, y para ello he metido al horno una pequeña aplicación que estará lista en los próximos dias.

Y vamos a participar, no con el animo de ganar, ya que esperamos que el nivel de calidad de las aplicaciones presentadas a concurso, va a ser muy alto, pero si con el animo de aportar un grano a ese granero, y esperando que la gente del foro V7 se anime también.

Os mantendré informados en breve a través de este blog y animo a los que aún lo estan pensando.

Posteado por: ascpepeto | 20 enero 2010

Las variables globales

Son estructuras de datos que pueden almacenar valores para ser utilizados en cualquier parte de la ejecución de una aplicación. Como su nombre indica, su valor puede cambiar durante la ejecución, y estará siempre disponible hasta finalizar y salir de la aplicación.

Según el tipo de dato a almacenar, la variable puede ser definida como:

Alfabético Se usa para almacenar caracteres alfanuméricos.
Numérico Permite almacenar valores numéricos. El tamaño del valor almacenado, depende directamente del numero de bytes que indicamos en la definición del campo. Del mismo modo, también podemos indicar los decimales usados, hasta un máximo de 5 dígitos.
Fecha Almacena datos de tipo fecha según la norma ISO-8601
Hora Almacena datos de tipo hora. El formato utilizado para la hora es HH:MM:SS.
Tiempo Permite introducir tiempos con el formato DD:MM:AA HH:MM:SS.sss
Booleano (Si / No) Permite almacenar valores lógicos ( True/False, Si/No, 1/0 ).

Y según el tipo de persistencia, podemos definir las variables, en:

  • Variables en Disco: aquellas que son almacenadas en en el Disco duro del sistema y que son comunes a todos los usuarios, e incluso permanecen después de abandonar la aplicación. Si un usuario cambia el valor de una variable en disco, esta variable afectara al resto de los usuarios en futuras comprobaciones de la misma.
  • Variables en Memoria: a diferencia de las anteriores, se almacenan en memoria, por lo que deben ser inicializadas en el inicio de la aplicación y serán destruidas al finalizar la ejecución. En este caso, las variables son creadas de forma local, e independientes para cada usuario que ejecuta el programa.

También podemos decidir si la variable va a permitir uno o mas valores, convirtiéndola en un Array mediante la propiedad correspondiente en el panel de propiedades del objeto.

« Entradas Recientes - Entradas antiguas »

Categorías

Seguir

Get every new post delivered to your Inbox.