Introducción a JQuery

jQuery es hoy en día, una indispensable librería javascript que permite manejar el DOM y el Ajax de forma muy simple y directa. jQuery lo podemos encontrar integrados en muchos recursos para el diseño y desarrollo web, por ejemplo esta presente en Twitter Bootstrap.

jQuery es una librería en Javacript de fuente abierta (open source), que simplifica mucho la creación de páginas web, sobre todo en interfaces web que se comportan de modo muy similar a las aplicaciones de escritorio.

Algunas ventajas de jQuery

jQuery nos provee una forma simple y poderosa de trabajar en Javacript,jQuery nos propone una metodología de programación orientado a objetos en un flujo controlado por eventos, donde encontramos características tales como:

  • Alta compatibilidad entre Navegadores: Usando jQuery podemos desarrollar un código que no tenga que pelearse con una implementación particular de un navegador, por ejemplo, en el trabajo con Ajax. Es decir, trabajando con jQuery tenemos una mayor compatibilidad entre navegadores.
  • Iteración Implicita: Los selectores que usamos en jQuery para encontrar elementos en el DOM, posee iteración implicita, esto significa que nos evita tener que estar programando bluces de código para buscar todos elementos en el DOM que cumplen el criterio dado. Por ejemplo, seleccionar elementos DIV del HTML con una clase CSS de nombre PROMO se programa en una sola línea de código.
  • Encadenamiento de Métodos: Permite en una sola linea de código hacer mucho más de lo que podríamos hacer usando solamente las caracteríticas propias del Javascript. Esto es muy útil cuando recorremos el DOM de un documento HTML, buscando un elemento determinado. Es decir, con jQuery hacemos más con menos líneas de código.

DOM: Cuando un navegador carga y despliega al usuario una página web cualquiera, lo que hace internamente es interpretar todo el HTML de la página web y traducir a una estructura de datos, donde el documento HTML queda representado en un estructura de tipo árbol, esto se denomina DOM (Document Object Model).

Obteniendo la librería jQuery

Para usar jQuery en el desarrollo de una página web, disponemos de dos (2) alternativas:

  • Descargar la libreria y colocarla en nuestro sitio web.
  • O víncularla a algún CDN, como el de Google o de la propia página de jQuery.

CDN: Significa Content Delivery Network.

Si elegimos descargar la librería jQuery, la podemos descargar desde:

http://jquery.com/download/

En el momento de escribir este artículo, la página de jQuery señala que hay dos (2) tipos de versiones de la librería. Las versiones 1.x y las versiones 2.x, esta última dispone de la misma API de jQuery de versiones 1.x pero sin soporte para Internet Explorer 6, 7 y 8.

También es posible descargar jQuery, en forma mimificada (comprimida) o una versión no-mimificada (no-comprimida). En general se recomiendo en sitios wed en producción, descargar una copia de la librería en su forma comprimida para ahorrar ancho de banda y mejorar el rendimiento del navegador.

Hacer disponible jQuery a una página web

Si hemos optado por cargar la librería directamente a nuestro sitio web y no desde un CDN, entonces el código HTML5 de nuestra página podría tener uno de los siguientes aspectos.

Colocando el enlace a la librería jQuery en el HEAD del HTML:

<!DOCTYPE html>
<html lang=”es”>
    <head>
        <meta charset=”UTF-8” />
        <title>Mi página web con jQuery</title>
        …
        <link rel=”stylesheet” href=”estilo.css” media=”screen” />
        <script src=”jquery-1.11.1.min.js”></script>
    </head>
    <body>
        …
        …
    </body>
 </html>

Colocando el enlace a la librería jQuery en la parte final del BODY del HTML:

<!DOCTYPE html>
<html lang=”es”>
    <head>
        <meta charset=”UTF-8” />
        <title>Mi página web con jQuery</title>
        …
        <link rel=”stylesheet” href=”estilo.css” media=”screen” />
    </head>
    <body>
        …
        …
        <script src=”jquery-1.11.1.min.js”></script>
        …
    </body>
 </html>

Si usamos un CDN, como el del sitio de jQuery, lo único que cambiaría en el código anterior es la forma de hacer la vinculación, en ese caso sería:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

Con lo anterior tenemos disponible jQuery, pero ahora necesitamos crear nuestro propio código Javascript que use jQuery… Esto lo veremos a continuación.

Usando jQuery

Para usar jQuery necesitamos escribir código Javascript. La forma tradicional y ordenada de hacer esta tarea, es crear un nuevo archivo Javascript, por ejemplo el archivo ‘mi_js.js’:

Entonces para usar jQuery, dentro del archivo ‘mi_js.js’, debieramos escribir algo así:

$(document).on(‘ready’, inicializar);
//
//luego el código de la funcion inicializar
function inicializar() {
    //
    alert(‘Hola Mundo… desde jQuery’)
    //
}

y luego debemos vincular este archivo ‘mi_js.js’ a nuestra página HTML, quedando el código así:

<!DOCTYPE html>
<html lang=”es”>
    <head>
        <meta charset=”UTF-8” />
        <title>Mi página web con jQuery</title>
        …
        <link rel=”stylesheet” href=”css/estilo.css” media=”screen” />
    </head>
    <body>
        …
        …
        <script src=”jquery-1.11.1.min.js”></script>
        <script src=”mi_js.js”></script>
    </body>
 </html>

Es muy importante colocar el enlace a nuestro archivo CSS en una línea anterior al enlace a jQuery. Esto es necesario, para tener acceso al código de la definición de los estilos CSS.

Es bastante simple la programación en Javascript, lo que si puede costar un poco de entener en un inicio, es cuando hacemos uso de su ejecución en forma asincrónica.

Entendiendo la programación con jQuery

Para entender jQuery, necesitamos conocer algunos rudimentos de Javascript. Para empezar, en Javascript encontramos tres (3) objetos nativos en el lenguaje:

  • navigator: Es el objeto que representa al navegador, donde están los recursos del tipo: la Geolocalización, los acelerómetros y entre otros (ej. el User-agent).
  • window: Es el objeto que representa el tab del navegador, donde están accesibles características del tipo: la resolución de la pantalla, la posición, etc.
  • document: Este es el objeto que representa a la página HTML.

Entonces, si queremos crear un objeto jQuery que use, por ejemplo, el objeto document escribimos el siguiente código:

$(document);

Si queremos que el objeto anterior, ponga atención al evento de nombre ‘mi-evento’, y cuando ese evento suceda dispare una función determinada, por ejemplo la función de nombre ‘mi-funcion’. Entonces el código anterior lo debemos sustituir por:

$(document).on(‘mi-evento’, ‘mi-funcion’);
//
//Ahora definimos ‘mi-funcion’
function mi-funcion() {
    //
    alert(‘Mi primer programa usando jQuery’);
}

El método ‘on’ que vemos en el código jQuery anterior, es un listener de eventos que es usado desde jQuery 1.8, antes se usaba ‘bind’.

Naturalmente, el nombre del evento ‘mi-evento’ no lo tenemos definido, pero podemos utilizar el evento que sucede cuando el navegador carga sólo el código HTML de la página. En este caso, el código será:

$(document).on(‘ready’, ‘mi-funcion’);
//
//Ahora definimos ‘mi-funcion’
function mi-funcion() {
    alert(‘Se acaba de cargar el HTML’);
}

Frecuentemente se hace mención a jQuery como el Framework jQuery, sin embargo en este artículo nos referimos a él como la librería jQuery.




Como realizar un Select con SUM en ABAP

En este post nos vamos a centrar en como realizar desde código ABAP un select a una tabla de SAP usando SUM, este post está contenido en nuestro curso programador – analista ABAP IV para SAP, el cual puedes consultar pinchando aqui.

Algunas veces debemos hacer consultas a tablas para obtener la suma de campos númericos, en especifico los referidos a campos monetarios y cantidades, pero ¿cómo realizamos dicha consulta? pues para explicarlo aplicaremos un ejemplo:

Al igual que con los comandos de SQL, vamos a realizar un SELECT con el empleo del comando SUM, el cual permite sumar todos los valores del campo indicado, siguiendo las condiciones puestas y guardándolo en una variable.

Como ejemplo tenemos lo siguiente:

SELECT SUM( hwbas ), SUM( hwste )
INTO (lv_hwbas, lv_hwste)
FROM BSET
WHERE bukrs = p_bukrs AND
gjahr = p_gjahr.

Podemos apreciar que en el ejemplo vamos a sumar 2 campos de la tabla BSET, para lo cual se han colocado como filtros la sociedad y el año, automáticamente el programa sumará los datos que cumplan con la consulta y devolverá dichos valores en las 2 variables que se encuentran dentro de los paréntesis (lv_hwbas, lv_hwste).

 

Si te ha gustado este articulo recuerda compartirlo para que llegue al mayor número de interesados!!




Cómo utilizar Excel VBA para imprimir

Millones de propietarios de pequeñas empresas y emprendedores de todo el mundo utilizan Microsoft Excel para ayudar con las tareas comunes de contabilidad, previsión e inventario. Con las herramientas integradas de Excel, es relativamente simple enviar una hoja de cálculo o un cuadernillo de trabajo a alguien en un correo electrónico como archivo adjunto. Sin embargo, hay muchas veces que nada supera una copia con la información. Por supuesto, puedes usar la opción del menú “Archivo | Imprimir” en la barra de cinta para crear versiones impresas de la hoja de cálculo. Sin embargo, mediante el uso de Visual Basic para Aplicaciones o VBA, también puedes crear macros o botones de comando para realizar diversas tareas de impresión en Excel mucho más rápido y más eficientemente.

Activa la pestaña Programador

 1. Inicia Microsoft Excel y abre el libro o plantilla en la que deseas programar funciones de impresión con VBA. Haz clic en “Archivo” en la cinta de Excel y luego en “Opciones”.

2. Localiza y haz clic en el encabezamiento “Personalizar cinta de opciones” en el panel izquierdo de la ventana “Opciones de Excel”. Haz clic en la casilla de verificación junto a “Programador” en la sección de Pestañas principales bajo la etiqueta “Personalizar la cinta de opciones”.

3. Haz clic en el botón “Aceptar” para activar la pestaña “Programador” de la cinta y cerrar la ventana “Opciones de Excel”. Después de hacerlo Excel mostrará la pestaña “Programador” en la cinta de forma automática.

Crea un botón de impresión con VBA

 1. Haz clic en la pestaña “Programador” de la cinta. Haz clic en el icono “Insertar” de la flecha hacia abajo en la sección de “Controles” de la pestaña “Programador”. Oprime el icono “Botón de control” bajo “Controles de formulario”.

2. Haz clic en la celda de la hoja de cálculo en la que deseas colocar un botón de impresión. Después de hacer clic selecciona una celda, la ventana “Asignar macro” aparecerá automáticamente.

3. Ingresa “PrintCurrentSheet” o algo similar en el campo “Nombre de macro”. No uses espacios en el nombre. Haz clic en botón “Nuevo”. La ventana del editor de Visual Basic para Aplicaciones aparecerá y mostrará una nueva ventana de código.

4. Coloca el cursor del ratón en la línea de espacio entre los valores “PrintCurrentSheet Sub ()” y “End Sub”. Escribe el siguiente comando: ActiveSheet.PrintOut

5. Haz clic en el icono de disquete en la barra de herramientas del editor de VBA para guardar el código. Cierra la ventana del editor de VBA.

6. Haz clic con el botón derecho sobre el nuevo botón de comando y resalta el valor de texto predeterminado “Botón 1”. Cambia el texto de la etiqueta del botón a “Impresión rápida” u otro nombre descriptivo.

7. Haz clic en el botón nuevo de comando. Excel imprime la hoja de cálculo activa en la impresora predeterminada de Windows sin mostrar el cuadro de diálogo “Imprimir” normal.




Cómo depurar código Python con PyScripter

En este post vamos a daros las claves para aprovechar el uso de PyScripter como editor de código de Python para ArcGIS, tanto para escribir código como para la detección y corrección de errores de programación.

Ventajas de usar PyScripter

  • Utiliza diferentes colores, indenta y comenta el código de modo rápido, subraya una palabra determinada, busca y reemplaza, etc.
  • Es personalizable: colores, plantillas, fragmentos completos de código, etc.
  • Tiene predicción de código fuente, que agiliza nuestro trabajo y evita que cometamos errores de escritura.
  • Las ventanas del IDE y de depuración, entre las que destacamos la ventana de Variables y la ventana Intérprete ayudan durante la ejecución del script al seguimiento del código.

interprete interactivo

 

interprete interactivo2

 

La utilización de un IDE como PyScripter facilita el trabajo y reduce la posibilidad de introducir errores en nuestros programas. Aún así cometeremos fallos, sobre todo al principio, que es cuando precisamente más nos van a entorpecer.

¿Cómo reparar nuestros errores?

Un 50% del error se soluciona cuando descubrimos DONDE ESTÁ EL ERROR.

El otro 50% se soluciona cuando descubrimos POR QUÉ SE HA PRODUCIDO EL ERROR.

Respecto al primer punto, para localizar el error debemos aprender a DEPURAR EL CÓDIGO. PyScripter cuenta con una barra de herramientas de depuración:

barra de herramientas de depuración

Depurar código: Opción 1 –> ejecutando línea por línea: usaremos esta opción cuando creamos saber dónde está el error, para parar en ese punto y examinar el comportamiento del programa, los valores que adoptan las variables, etc.

1.1   Situando el cursor en la línea del script en la que queremos interrumpir la ejecución automática y pulsando la flecha azul “Ejecutar hasta el cursor” o F4. A partir del punto de interrupción cada línea de código se ejecutará cuando el usuario pulse el icono “Avanzar hasta la siguiente línea” o F8, de este modo localizamos la sentencia que falla y los valores que el programa está interpretando.

1.2    Fijando nuestros puntos de interruptor con el círculo rojo “Conmutar punto de parada” o F5 sobre cada línea en la que queramos conmutar parada y pulsando la flechita verde con bicho“Depurar” o F9.

Depurar código: Opción 2 –> ejecutando fragmentos de código: utilizaremos esta opción cuando sabemos que el programa funciona antes de haber incluido nuevas sentencias, y queremos comprobar el funcionamiento de las mismas sin tener que ejecutar para ello el script completo.

Resaltando  las líneas que nos interesan y pulsando Ctl+F7, o con botón derecho Source Code/Ejecutar Selección.

¿Cómo capturar los errores?

En cuanto a la segunda cuestión: porqué ha fallado nuestro programa, podemos “capturar el error” y mostrarlo en la ventana Intérprete de PyScripter. Para ello tendremos que utilizar la estructura try & except . Con esta estructura el programa intenta (try) ejecutar todo el código que se encuentre indentado dentro del bloque try:. Si se produce un fallo, el código se dirige al bloque except: en el que se mostrará el mensaje de error generado.

try & except

¿Cuales son los errores más típicos y cómo se interpretan?

El siguiente listado muestra los errores más típicos y el mensaje de error que muestra la ventana intérprete:

1.- Case Sensitive: Python diferencia las mayúsculas y minúsculas. Ojo con darle un nombre a una variable y pretender usarla llamándola de otro modo.

El mensaje de error que se genera depende del la palabra en la que se encuentre la confusión: si se trata del nombre de una capa o de una ruta, el mensaje mostrado nos dirá que no existe dicha capa o que no se localiza: “Input Features:  xxx.shp does not exist or is not supported”. Puede incluso no generarse ningún error, pero no darnos la respuesta que queremos.

2.- Indentación: en  Python  cada bloque de código debe ir sangrado para que el intérprete lo identifique y diferencie.

Los fallos de indentación detectados quedan marcados en rojo, además si intentamos ejecutar el script se mostrará el mensaje “IndentationError: expected an indented block”.

Ojo, puede que el código funcione, pero una frase mal indentada puede cambiar el curso del programa y su resultado.

3.- Importación de módulos. Antes de trabajar con alguna herramienta de una librería específica debemos importar esta librería. En nuestro caso, si queremos trabajar con la ArcPy para ArcGIS debemos incluir al principio del programa un “import ArcPy

El mensaje de error que nos da en caso de no haber importado la Arcpy es “name ‘arcpy’ is not defined

4.-Símbolo de igualdad y símbolo de asignación de valor. Cuando Python quiere darle un valor a una variable lo hace a través del símbolo “=”. Cuando queremos comprobar si un valor es igual a otro utilizaremos el símbolo “==”.

El mensaje de error en una sentencia como “if coordX = 3500:” será “SyntaxError:  invalid syntax”.

5.- Condiciones y bucles mal construidos. Además de la indentación del código, estas construcciones requieren que la primera frase finalice con el símbolo “:”.

El mensaje de error en una sentencia como “if coordX = =3500” será  igualmente “SyntaxError:  invalid syntax”.

La sentencia correcta es:

if coordX = =3500:
                coordY = 47000

6.- Incorrecta definición de una ruta. En Python la contrabarra “\” forma parte de sentencias clave como “\n” (nueva línea) o “\t” (tabulador). Una ruta debe precederse de la letra “r” o sustituir el símbolo “\” por “\\” o por “/”.  Ojo además con los acentos, los espacios en blanco y las mayúsculas y minúsculas.

El mensaje de error puede ser si se trata de la ubicación de una capa  “Input Features:  xxx.shp does not exist or is not supported”, o si se trata de la identificación de un espacio de trabajo, en cuyo caso, puede tomar un valor como nulo y por tanto no localizar los datos de ese workspace.

7.- Parámetros mal introducidos: en número o en orden. Centrándonos en el uso de herramientas de ArcGIS, aunque también es un error típico de otro tipo de funciones, debemos saber qué argumentos requiere cada herramienta, de qué tipo son y en qué orden deben introducirse.

El mensaje de error que se genera en este caso es “Failed to execute. Parameters are not valid.”

 sintaxix herramientas pythonSi te ha gustado nuestro post de hoy compártelo y ayúdanos a seguir, muchas gracias!!




Mini tutorial sobre SOAP. Simple Object Access Protocol

En nuestro artículo de hoy desde AEPI (Asociacion Española de Programadores Informáticos) os presentamos un pequeño tutorial sobre SOAP, este artículo forma parte de nuestro curso de PHP avanzado y MYSQL

Es un protocolo que permite la comunicación entre aplicaciones a través de mensajes por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal de los Web Services. Los mensajes SOAP son documento XML propiamente dicho, pero esto lo veremos más adelante cuando veamos un ejemplo de un mensaje SOAP.

Veamos como es la estructura básica del protocolo y la correspondiente explicación:

<?xml version=”1.0″?>
<soap:Envelope xmlns:soap=”http://www.w3.org/2001/12/soap-envelope”
Soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”>
<soap:Header>

</soap:Header>
<soap:Body>

<soap:Fault>

</soap:Fault>
</soap:Body>
</soap:Envelope>

Explicación del código anterior:

<?xml version=”1.0″?>

Como podemos ver en esta linea SOAP es un documento XML, y como tal, debe comenzar con el tag <?xml….?> y la versión correspondiente.

<soap:Envelope

Aquí se indica que comienza el envelope (sobre) del mensaje
xmlns:soap = “http://www.w3.org/2001/12/soap-envelope”

Un mensaje SOAP debe contener siempre un elemento envelope asociado con el namespace (espacio de nombres)http://www.w3.org/2001/12/soap-envelope Soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”>
En esta línea lo que se hace es indicar donde se encuentran definidos los tipos de datos utilizados en el documento.

<soap:Header>
Esta línea indica el comienzo del Header (encabezado). En esta sección se incluye información específica del mensaje, como puede ser la autenticación.

</soap:Header>

Como todo documento XML los tags que son abiertos deben ser cerrados, esta línea indica la finalización del Header(encabezado).

<soap:Body>

Aquí comienza el cuerpo del mensaje, en esta sección se incorpora toda la información necesaria para el nodo final.
Por ejemplo, los parámetros para la ejecución, o la respuesta a una petición.

<soap:Fault>

Cualquier tipo de fallo que se produzca será notificado en esta sección. La cual esta contenida dentro del cuerpo del mensaje.
</soap:Fault>

Cierre de la sección Fault.
</soap:Body>

Indica el final del cuerpo del mensaje.
</soap:Envelope>
Fin del mensaje SOAP.

 

Como diría aquel eso es todo amigos, si te ha gustado este artículo compártelo por favor y recuerda seguir leyéndonos!!