Etiqueta

16 mayo 2011

Primer evento Omnis Studio en Barcelona


El próximo sábado 28 de Mayo se da inicio a una serie de eventos organizados por NSCoder_BCN cuyo objetivo es el de mostrar cómo desarrollar aplicaciones para iOS. 

Todos los asistentes tendran ocasion de conocer y probar el potente framework RAID "Omnis Studio". Con el que es posible crear potentes aplicaciones cliente-servidor, para toda la gama de dispositivos iOS. Para ello, el director de producto y uno de los ingenieros de Omnis Italia se desplazarán a Barcelona, para darnos a conocer esta potente herramienta.

Rellene de inmediato el formulario de inscripción gratuita.

30 marzo 2011

¿Cómo localizar filas con valores duplicados en tablas de Oracle?


Por fin he dado con una solución práctica y sencilla para resolver éste problema, he aquí la solución:

SELECT NOMBRE,APELLIDO1,APELLIDO2
FROM BALUMNOS
GROUP BY NOMBRE,APELLIDO1,APELLIDO2
HAVING COUNT (*) > 1;

Esta sencilla sentencia SELECT devolverá las filas contenidas en la tabla BALUMNOS cuyos nombres y apellidos estén duplicados.

29 marzo 2011

La “Component Library”


El navegador o “Studio Browser” contiene muchas plantillas y asistentes (wizards) que nos facilitan la construcción de aplicaciones y como ya sabemos es posible cambiar o añadir contenidos, tanto sobre el “Studio Browser”, como sobre el “Component Store”. A continuación mostramos dos ejemplos: El primero se trata de una plantilla simple, mientras que en el segundo mostraremos como crear un sencillo asistente.

Primer ejemplo: Plantilla o “Template”, para la creación de un menú “Edición” personalizado.

1)     Pulse “botón-derecho” sobre la opción “Libraries” del navegador y escoja la opción “Show Comps.lbs”.
2)     Cree una nueva clase “Menú” y llámela “Edición”.
3)     Pulse “botón-derecho” sobre la clase recién creada y tras escoger la opción “Component Store Type…”, seleccione “Template”.

Pulse “doble-click” sobre la clase construida.

-->
 Añada el código siguiente según la opción correspondiente:

Deshacer: Standard menu command *Edit/11001 {Undo}
Cortar: Standard menu command *Edit/11002 {Cut}
Copiar: Standard menu command *Edit/11003 {Copy}
Pegar: Standard menu command *Edit/11004 {Paste}
Borrar: Standard menu command *Edit/11005 {Clear}
Seleccionar todo: Standard menu command *Edit/11006 {Select All}
Pegar desde archivo…: Standard menu command *Edit/11065 {Paste From File...}

4)     Finalmente oculte la librería de componentes (opción “Hide Comps.lbs”)

Ahora podrá encontrar bajo la opción “Class Wizard >> Menu… >> Templates”, una nueva opción denominada “Edción”, selecciónela y pulse el botón “Create” cada vez que desee añadirla a su biblioteca en construcción.

Segundo ejemplo: Asistente o “Wizard” para la creación de un menú “Archivo” personalizado.

1)     Pulse “botón-derecho” sobre la opción “Libraries” del navegador y escoja la opción “Show Comps.lbs”.
2)     Cree una nueva clase “Menú” y llámela “Archivo”.
3)     Pulse “botón-derecho” sobre la clase recién creada y tras escoger la opción “Component Store Type…”, seleccione “Wizard”.
4)     Cree una nueva clase “Object” y llámela “CreaMenuArchivo”
5)     Añada un método al objeto, llámelo “$start” y asígnele el código siguiente, así como las variables locales y de parámetros utilizadas al efecto.

De parámetro

pRef                               Item reference
pWindowClass              Character
pMenuLineText             Character

Variables locales

lAplicacion                    Character
lMethodTextRef             Item reference
lRefLine                         Item reference

Método

Do pRef.$title.$assign('Archivo')

Do pRef.$methods.$findname('$setup()') Returns lMethodTextRef

Do pRef.$methods.$remove(lMethodTextRef) Returns #F

Prompt for input Introduzca el nombre de su aplicación: /Nombre de la aplicación//15 Returns lAplicacion

If flag true

      Do pRef.$objs.$add(con('Registrar ',lAplicacion,'...')) Returns lRefLine

      Do lRefLine.$methods.$add('$event')

      Do lRefLine.$methods.$findname('$event') Returns lMethodTextRef

      Do lMethodTextRef.$methodtext.$assign(con("Do $prefs.$serialise(kTrue,'Datos de registro",lAplicacion,"',24)")) Returns #F

      Do pRef.$objs.$add('')

      Do pRef.$objs.$add(con('Imprimirá en "',sys(24),'"...')) Returns lRefLine

      Do lRefLine.$methods.$add('$event')

      Do lRefLine.$methods.$findname('$event') Returns lMethodTextRef

      Do lMethodTextRef.$methodtext.$assign("Standard menu command *File/11090 {Print Destination '$'...}") Returns #F

      Do pRef.$objs.$add('Ajustar página...') Returns lRefLine

      Do lRefLine.$methods.$add('$event')

      Do lRefLine.$methods.$findname('$event') Returns lMethodTextRef

      Do lMethodTextRef.$methodtext.$assign("Standard menu command *File/11064 {Page Setup...}") Returns #F

      Do pRef.$objs.$add('Imprimir') Returns lRefLine

      Do lRefLine.$methods.$add('$event')

      Do lRefLine.$methods.$findname('$event') Returns lMethodTextRef

      Do lMethodTextRef.$methodtext.$assign("Print top window") Returns #F

      Do pRef.$objs.$add('Imprimir informe guardado...') Returns lRefLine

      Do lRefLine.$methods.$add('$event')

      Do lRefLine.$methods.$findname('$event') Returns lMethodTextRef

      Do lMethodTextRef.$methodtext.$assign("Standard menu command *File/11079 {Print Report From Disk... }") Returns #F

End If

Tras esto sólo nos quedará añadir un método al menú “Archivo” creado anteriormente, al que denominaremos “$setup()”, con el código siguiente:

Variables locales

lObjeto                           Object                    ComponentLibrary.CreaMenuArchivo

Método

Do lObjeto.$start($cclass().$ref)

6)     Finalmente oculte la librería de componentes (opción “Hide Comps.lbs”)

Ahora podrá encontrar bajo la opción “Class Wizard >> Menu…”, una nueva opción denominada “Archivo”, tras seleccionarla y pulsar el botón “Create” se le solicitará un nombre de aplicación, que será utilizado para componer la opción “Acerca de..” del menú “Archivo”.