Posts

Showing posts from July, 2012

Carga de Archivos en Apex 4.0

Image
En esta ocasión coloco la versión de Apex en el título, por que no sé si en versiones anteriores sea así de fácil. Pero igual podrian intentar, me avisan si les sirve :P . Para carga un archivo nuestra tabla debe tener al menos un campo de tipo Blob para almacenar el archivo, y uno para el nombre o para el tipo de archivo, ya que si no los colocamos, al descargarlo el archivo estará sin nombre ni extención, para eso usaremos la columna del nombre, ya que así lo guarda con todo y extensión. Como siempre, pueden descargar los archivos de la aplicación de ejemplo aquí . Pero si les da pereza instalarla y todo, les explico lo básico. Trabajaremos en las páginas de Albums y Álbum como pudieron ver en el vídeo, la primera sera un reporte con un link de descarga del archivo y la segunda permitirá visualizarlo, cargarlo, y eliminarlo. El script de la tabla con la que trabajaremos es el siguiente: create table RELEASE ( ID_RELEASE NUMBER not null, ID_ARTIST

Procesos con Items de Opción multiple - Apex

Image
No solo con listas de opción múltiple, si no también con checkbox y shuttles. De esto no tengo referencias por que esto lo hizo un compañero hace rato y de ahí en adelante fue puro copy-paste :P Para esto usaremos una base de datos basada en 3 tablas, FANCLUB , FAN y la relación intermedia FAN_FANCLUB . La relación entre un Fan y un Fanclub es n-n (por que uno tiene derecho a que le guste más de un artista :P ), por eso se crea la tabla intermedia FAN_FANCLUB . El ejemplo con el que mostrare esto se centrara en la página de edición de Fan, en donde podremos seleccionar a que fan clubs pertenece, eso lo haremos a través de un shuttle. Al momento de aplicar cambios debemos verificar que los fanclubs al lado izquierdo del shuttle no existan ya en la Base de datos, si es así las agregamos y le asignamos un código dependiendo del ultimo código asignado en ese fanclub, es por eso que no podemos eliminarlos y volverlos a crear. También debemos eliminar las que están en la Base de datos y n

Validaciones en las filas seleccionadas de un Tabular Form- Apex

Image
Esto que puede ser tan simple me tomo casi 3 horas saber como hacerlo, el ejemplo sera para validar al momento de eliminar en Apex 4.1.1 aunque puede funcionar en otras versiones de Apex. Los archivos para correr el ejemplo pueden ser descargados aquí . El .rar incluye script de creación de BD y la aplicación. La base de datos solo contiene 2 tablas, una de artistas y otra de canciones. en este ejemplo validaremos que no se pueda eliminar un artista si tiene canciones asociadas. Lo primero es identificar el id de cada columna, para esto buscamos el id de cada columna, generalmente corresponde con el orden en el que están las columnas, en el reporte. En este caso las columnas y sus ID son: [row selector]: f01 ID_ARTIST: f02 ID_ARTIST_ROW_DISPLAY: f03 NAME: f04

Instalar Paquete de Idioma en Apex

Image
busque y busque y no lo encontré :s pero me vali de varios links para sacar el método :) . Cuando descargamos Apex, también descargamos los script necesarios para instalar 9 paquetes de idiomas. estos están alojados en apex/builder el de español es " es " y el de Japones es " ja ". Antes de ejecutar cualquier script, debemos asignar al parámetro NLS_LANG el valor American_America.AL32UTF8 Para esto en Windows ejecutamos lo siguiente set NLS_LANG=American_America.AL32UTF8 En linux creo que es así: NLS_LANG=American_America.AL32UTF8 export NLS_LANG Ahora tenemos que ejecutar el script que instalara el lenguaje que queremos, por ejemplo (y lo más probable) Español, para esto vamos a la carpeta apex/builder/es . e ingresamos a la Base de datos como Sys y nos movemos al esquema en el que esta Apex, para esto primero consultamos el nombre del esquema con la siguiente query. SELECT username FROM dba_users where username like 'APEX_%'; esto nos puede a

Restringir Tamaño de entrada en campos de un Tabular Form

Image
Este sera uno de los TANTOS posts que tendré sobre las fascinantes y generalmente frustrantes tabular forms . en esta ocación les mostrare como restringir el valor de entrada de un campo en textarea en un tabular form, funciona para los demás tipo de campos en los que el usuario ingresa texto. Lo primero que tendremos que hacer sera crear una función de JavaScript que validara la cantidad de caracteres que tiene un campo. en caso de que supere esa cantidad, recortara el contenido al limite permitido. function textSize(field,maxlimit) { if (field.value.length > maxlimit){ field.value = field.value.substring(0, maxlimit); } } Guardamos este script en un archivo, por ejemplo ' Functions.js ' y lo cargamos a Apex. Para esto vamos a " shared components > Files > Static Files >Create ", aqui. seleccionamos el archivo que creamos y lo cargamos. Ahora para importarlo en las páginas tenemos 2 opciones, importarlo en el template o en las páginas que usara

ID Basado en trigger y secuencia para todas las tablas - Oracle

Image
En ocasiones todas o la mayoría de las tablas de una base de datos requieren que su ID sea sacado de un trigger el cual llama una secuencia, por lo que tendremos que crear los trigger y las secuencias para esas tablas las cuales pueden ser muchas. esto nos lleva a 2 situaciones, en donde la base de datos no tiene ningún dato, y en donde esta ya tiene algunos, por lo que la secuencia no puede empezar desde 1. Base de Datos sin Datos :P En el primer caso basta con ejecutar el siguiente bloque pl/sql el cual nos darán el script para crear las secuencias y los triggers, podriamos hacerlo todo en un solo loop, pero queremos que el script de las secuencias nos quede en un bloque y el de los triggers en otro, solo por orden. BEGIN FOR r IN ( SELECT table_name FROM user_tables) LOOP dbms_output.put_line ('CREATE SEQUENCE S_'|| r.table_name || ' MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE'||chr(

Actualizar a Apex 4.1

Image
Hola, como había mencionado en posts anteriores, actualizaría a Apex 4.1, sin embargo queria hacerlo en Kubuntu, pero me quedo grande la instalación, 12.04 me ponía el discipador a toda velocidad y una versión anterior no me reconocía el Disco Duro, entonces finalmente lo tuve que instalar en Windows. En esta ocasión encontré las instrucciones muy bien explicadas, aunque en ingles, en esta página y no presento ningún error, lo instale en Oracle 11G XE. Upgrading to APEX 4.1 on XE 11g Solo unas observaciones adicionales y es que en esta página tienen intalado Oracle en Linux, entonces cambian algunas cosas para Windows. descomprimí el .zip en el directorio C:\Apex4.1.1 por lo tanto antes de conectarme como sys, me movia al directorio C:\Apex4.1.1\apex y en este ejecutaba los Scripts. En el ultimo Script, el de las imágenes, lo ejecute con @apxldimg.sql C:\apex_4.1.1 Y finalmente para arreglar el link de "Geting Started" Damos click derecho en el y seleccio

Colocar Emoticones Automágicamente (automáticamente) en Blogger

Image
Como se han podido dar cuenta, uso mucho las caritas de los emoticones, jeje, entonces averigüe como hacer para que automágicamente me transforme : ) por :) y encontré esta página Blogger y los emoticones En esta explican como implementar una función en Javascript que lo único que hace es correr una serie de replace() en el contenido remplazando los caracteres de las caritas por el código html para insertar una imagen. Aunque la forma en la que la implementan es solo para los comentarios, los cuales se muestran solo cuando la página esta mostrando solo un post. Yo lo implemente para mis posts y de manera controlada, ya que mientras hacia este post tuve problemas con ocaciones en las que el JavaScript me remplazaba :) por una carita cuando no quería. Aunque esto evito que hiciera el cambio tan autmágicamente, pero en ocaciones es mejor tener control de las cosas. Primero deben descargar el paquete que indican en la página, lo pueden descargar de aquí. Una ves lo descarguen, ve

Resaltador de sintaxis (SyntaxHighlighter) en Blogger

Image
Bien, esta es una función muy importante cuando uno hace un blog en el que pretende mostrar código, este articulo lo encontré de pura casualidad hace un tiempo que alguien lo público en Facebook, mucho antes de crear este blog, pero como sabia que lo utilizaría algún día, lo guarde :D entonces acá esta y lo mejor, esta en español :) Resaltador de sintaxis (SyntaxHighlighter) en Blogger Intente importar el código .css en la misma parte donde indican que se importen los ,js, pero no me funciono, finalmente tuve que copiar y pegar TODO ese código. Algo adicional que hice fue definir ese pequeño código ...Escriba su código aquí... como plantilla para mis posts, de este modo no debía consultar siempre como era, por que generalmente se me olvida, jeje, ¿como se hace? ingresan en el panel de administración del blog, en Configuración > Entradas y comentarios y allí hay una opción llamada Plantilla de entrada , ahí colocan el código que quieran que les aparezca