15 Mayo 2010

Lr+Ec·d=Lm

Archivado en: Inventos — voet

Lámpara rota + Escurrecubiertos de los chinos · Dremel = Lampara molona

  • RSS
  • Facebook
  • Meneame
  • Twitter
  • MySpace
  • Digg
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Slashdot
  • StumbleUpon
  • Technorati
  • Wikio
  • Google Bookmarks
Archivado en: Inventos

27 Abril 2010

zvcExcel 0.9beta

Archivado en: ABAP/IV, Inventos — voet

Hola sufridos programadores de ABAP:

Es difícil tener la ocasión de escribir “SAP” y “glamour” en la misma frase, a pesar de esta misma.

Esto es especialmente cierto a la hora de exportar ALVs como excel, sobretodo desde versiones antiguas de R/3, pues los resultados son horrorosos a la vista. Y aunque tampoco es la única manera que existe de generar hojas de cálculo desde R/3, ya que tenemos clases ABAP dedicadas, en este caso tenemos que hablar de fealdad a la hora de programarlas.

Si además queremos construir excels un tanto complejos con fórmulas, diversidad de titulares, disposiciones no estrictamente tabulares, etc…, etc… entonces estamos en un auténtico aprieto.

ejemplo elemental de uso de la librería
Para resolver todo esto presento la librería zvcExcel que, aunque no está todo lo acabada que me gustaría, en su forma actual ofrece muchas posibilidades, siendo su mejor baza el enfoque de programación que soporta, muy cercano, en el fondo, al del usuario de Office.

Un humano, a la hora de generar hojas de cálculo, se dedica a mover el cursor e ir rellenando allí donde le apetece o le parece más adecuado, gozando de mucha libertad a la hora de hacer el diseño. Un programa, sin embargo, por lo general sólo se limita a rellenar filas y columnas de datos con una línea de cabecera y gracias.

zvcExcel utiliza una especie de cursor que podemos “mover” libremente (utilizando un lenguaje de macros) rellenando las casillas que nos interesan, dotándolas así de diferente estética, contenidos… y ¡hasta de fórmulas!

Mientras que lo habitual a la hora de totalizar o realizar cálculos en la exportación de éxceles es incrustarlos a piñon en el resultado, zvcExcel permite que introduzcas auténticas fórmulas de excel para que el usuario final, si lo desea, pueda modificar valores en la hoja resultante sin que las cifras se descuadren.

Lo mejor para entender cómo funciona la librería es leer este código de ejemplo, que es el que genera el gráfico de arriba y está ampliamente comentado. Lo único que precisa para funcionar es el include que al final de este artículo adjunto, junto con este mismo programa, en un zip:

REPORT zvcexcel_ejemplo.

INCLUDE zvcexcel.

DATA it_excel TYPE TABLE OF vcxt_excel.
DATA it_ekpo TYPE TABLE OF ekpo WITH HEADER LINE.

START-OF-SELECTION.

  SELECT *
  FROM ekpo
  INTO TABLE it_ekpo
  UP TO 10 ROWS
  WHERE netpr NE 0
    AND menge NE 0
    AND txz01 NE space.

* COMIENZA LA GENERACIÓN DEL EXCEL
* refrescamos nuestra tabla it_excel, que hemos definido nosotros.
  REFRESH it_excel.

* este macro borra las definiciones anteriores y establece un estilo
* de texto por defecto para toda la hoja, y sitúa el cursor en A1
  vcx_initialize.

* este macro hace que cada vez que ejecutemos VCX_CELLVAL, el cursor
* avance una casilla en horizontal. con VCX_AUTOXINC_OFF desactivamos.
  vcx_autoxinc_on.

* empezamos a definir la estética. es necesario saber CSS
* en algunos casos, como ciertas fórmulas, deberemos investigar
* los CSS propios de microsoft, que comienzan por mso-
  vcx_classcss 'titulo' 'font-family:impact;font-size:24px'.
  vcx_classcss 'cabeza' 'font-weight:bolder;font-size:14px;' &
  'background-color:#660000;color:#ffffff'.
  vcx_classcss 'numero' 'color:#ff9900;font-size:12px;' &
  'font-weight:bolder'.
  vcx_classcss 'total' 'font-size:14px;border-top:1px #000000 solid'.
* definimos la clase fecha, para campos tipo datum, utilizando
* un valor por defecto de la librería
  vcx_classcss 'fecha' vcxdefaultdateformat.

* vamos a cargar la primera celda de título.
* le asignamos una estética ANTES de dar valor
  vcx_cellclass 'titulo'.
* fusionamos 6 celdas en horizontal para que quepa bien el título
  vcx_cellspan 6.
* y al final le damos valor. debido a VCX_AUTOXINC_ON avanza el cursor
  vcx_cellval 'ejemplo de excel generado con zvcExcel'.
* salto de línea
  vcx_crlf.
* la celda de abajo la usaremos de comentario y tomará estética defecto
  vcx_cellval 'un tanto elemental'.
  vcx_crlf.

* esta instrucción hace que TODAS las celdas definidas a partir de ahora
* tengan estética tipo 'cabeza'.
  vcx_autoclass 'cabeza'.
  vcx_cellval 'Pedido'.
  vcx_cellval 'Pos.'.
  vcx_cellval 'Concepto'.
  vcx_cellval 'Fecha'.
  vcx_cellval 'Cant.'.
  vcx_cellval 'Un.'.
  vcx_cellval 'Precio'.
* con space desactivamos la clase 'cabeza'.
  vcx_autoclass space.
  vcx_crlf.

* internamente no se trabaja en formato A1 típico excel, sino con
* coordenadas x,y type i. vcx_x y vcx_y recogen en todo momento las
* coordenadas actuales del cursor.

* filainicio y filafin nos servirá para delimitar el rango de una suma
  DATA filainicio TYPE i.
  DATA filafin TYPE i.

  filainicio = vcx_y.

* un vulgar loop nos permite rellenar la hoja rápidamente
  LOOP AT it_ekpo.
    vcx_cellclass 'numero'.
    vcx_cellval it_ekpo-ebeln.
    vcx_cellval it_ekpo-ebelp.
    vcx_cellval it_ekpo-txz01.
    vcx_cellclass 'fecha'.
    vcx_cellval it_ekpo-aedat.
    vcx_cellval it_ekpo-menge.
    vcx_cellval it_ekpo-meins.
    vcx_cellval it_ekpo-netpr.
    vcx_crlf.
  ENDLOOP.

* como al final hay un salto de línea, restamos uno para rango de suma
  filafin = vcx_y - 1.

* vamos a poner la fila de totales con una raya encima
  vcx_autoclass 'total'.
* desplazamos el cursor a la derecha hasta la columna F
  DO 5 TIMES.
    vcx_cellval ''.
  ENDDO.
* también podríamos haber utilizado VCX_XINC que mueve cursor a derecha

* escribimos la leyenda para el total.
  vcx_cellval 'SUMA:'.

* la siguiente instrucción nos va a meter en la celda la fórmula
* =SUMA(G4:G53)
* aunque nosotros lo hacemos como si dijeramos (7,4):(7,53) y no G4:G53
  vcx_cellsum 7 filainicio 7 filafin.
  vcx_cellval space.

* en este ejemplo VCX_CELLFORMULA, más complicado: permite introducir
* cualquier fórmula siempre que sea en el formato interno de excel, en
* el que el nombre de las funciones no es el español. también debemos
* utilizar coordenadas alfanuméricas y no numéricas. no es problema:

* si queremos convertir una coordenada x en letras,
* lo haremos con VCX_NUMBER2ALFA. no hay límite más allá que
* el del propio excel.

* del mismo modo, VCX_COORDS2ALFA convierte (x,y) en formato A1. si uno
* de los valores es 0, lo transforma en totalidad de fila o columna
* ejemplo: ncoords2alfa 4 3 valor. hace valor = 'D3'.
* ejemplo: ncoords2alfa 4 0 valor. hace valor = 'D'.

* aunque aquí ya no haría falta, desactivamos la clase 'total'.
  vcx_autoclass ''.

* generamos el excel dentro de la tabla
  vcx_excelgenerate it_excel.

* y lo descargamos localmente.
  vcx_exceldownload it_excel 'c:prueba.xls'.

* importante: si excel ya tiene abierto el fichero, no lo podremos
* descargar.

* otros macros están descritos dentro de la librería y no
* necesitan mucha explicación

Lo único que lamento de esta librería es el hecho de que todavía no está lo suficientemente completa para mi gusto, puesto que las posibilidades de ampliación son enormes. Pero no dudo que lo iré haciendo a medida que necesite funcionalidades.

Como siempre, recomiendo el uso de esta librería siempre que se respete la autoría, el link a este glob, etc… y animando a aquellas personas que decidan ampliarla a compartir su trabajo tras hacerlo.

Podéis descargar el include zvcExcel y el programa de ejemplo aquí.

  • RSS
  • Facebook
  • Meneame
  • Twitter
  • MySpace
  • Digg
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Slashdot
  • StumbleUpon
  • Technorati
  • Wikio
  • Google Bookmarks
Archivado en: ABAP/IV, Inventos

8 Marzo 2010

sheppard software

Archivado en: Acertijos, Software — voet

Hoy he redescubierto una página de juegos de geografía, Sheppard Software.

En ella se puede jugar/aprender con varios niveles de dificultad; desde adivinar como se llama la zona señalada al azar, hasta colocar regiones, o países, en su lugar correcto con la mayor precisión posible.

Aunque es una página orientada a niños, me vino muy bien hace unos años para aprenderme por fin y de una vez por todas la situación de los estados y las principales ciudades de USA. Encuentro muy útil conocer bien la geografía del Imperio, aunque sea sólo para situarse en las películas estadounidenses cuando se cita la procedencia de los personajes, o los lugares donde se desplazan, o en los que transcurre la acción.

Y voy a ver si estos días me repaso bien las repúblicas ex-soviéticas de Asia, que me hago mucho lío con las que acaban en -stán.

  • RSS
  • Facebook
  • Meneame
  • Twitter
  • MySpace
  • Digg
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Slashdot
  • StumbleUpon
  • Technorati
  • Wikio
  • Google Bookmarks
Archivado en: Acertijos, Software

24 Febrero 2010

mensaje secreto

Archivado en: Acertijos, Tecnología — voet

MzAzMTMxMzAzMDMwMzEzMDMwMzEzMTMxMzAzMDMxMzAzMDMxMzEzMDMw
MzAzMDMxMzAzMTMxMzEzMDMxMzEzMDMwMzEzMTMwMzEzMTMxMzEzMDMw
MzEzMTMxMzAzMTMwMzAzMDMxMzAzMDMwMzAzMDMwMzEzMTMwMzEzMDMw
MzAzMDMxMzEzMDMwMzAzMDMxMzAzMTMxMzEzMDMwMzEzMTMwMzAzMTMw
MzAzMDMwMzAzMDMxMzEzMDMwMzEzMDMwMzAzMTMxMzAzMDMxMzAzMTMw
MzEzMTMxMzAzMDMxMzEzMDMxMzEzMDMwMzAzMTMxMzAzMTMxMzEzMDMx
MzAzMTMwMzEzMTMwMzAzMDMxMzAzMDMxMzEzMDMxMzAzMDMxMzAzMTMx
MzAzMDMxMzAzMTMwMzEzMTMxMzAzMDMxMzAzMDMxMzEzMTMwMzEzMDMw
MzAzMTMxMzAzMTMxMzEzMTMwMzAzMTMwMzAzMDMwMzAzMDMxMzEzMDMw
MzEzMDMxMzAzMTMxMzAzMTMxMzAzMDMwMzAzMTMwMzAzMDMwMzAzMDMx
MzEzMDMxMzEzMDMxMzAzMTMxMzAzMDMxMzAzMTMwMzEzMTMwMzEzMTMx
MzAzMDMxMzEzMTMwMzAzMTMxMzAzMTMxMzAzMDMwMzAzMTMwMzEzMTMw
MzEzMDMxMzAzMDMxMzEzMDMwMzEzMDMxMzAzMDMxMzAzMDMwMzAzMDMw
MzEzMTMxMzAzMDMxMzEzMDMxMzEzMDMwMzEzMDMxMzAzMTMxMzAzMDMw
MzEzMTMwMzEzMTMxMzAzMDMxMzAzMDMxMzEzMDMwMzEzMDMxMzAzMTMx
MzEzMDMxMzAzMDMwMzEzMTMwMzEzMTMxMzEzMDMwMzEzMDMwMzAzMDMx

Es mucho más fácil de lo que parece. La primera persona que lo descubra recibirá… una satisfacción personal tremenda.

  • RSS
  • Facebook
  • Meneame
  • Twitter
  • MySpace
  • Digg
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Slashdot
  • StumbleUpon
  • Technorati
  • Wikio
  • Google Bookmarks
Archivado en: Acertijos, Tecnología

1 Febrero 2010

tartaleta de chorizo a la confitura de naranja ácida

Archivado en: Inventos, Recetas — voet


Tiembla, Ferrán Adriá. Esta receta integra tu sentido de la experimentación con la contundencia de una invasión vikinga.

Está diseñada a partir de conceptos de ingeniería de sonido: del mismo modo que una mezcla de audio sonará límpida siempre que cada instrumento tenga su propio rango de frecuencias en cada canal, en este caso integro sabores que, aunque parezca increíble, no se estorban entre sí.

Si además, y vuelvo al sonido, consigo que los instrumentos rellenen todo el espacio de frecuencias disponible, obtendré un tema denso y redondo. Aquí también ocurre lo mismo, pero a nivel culinario.

INGREDIENTES

  • pasta quebrada salada
  • hojas de parra en salazón
  • chorizo de pueblo picante
  • confitura de naranja ácida

PROCEDIMIENTO

Preparamos la pasta quebrada salada como se indica en este enlace y le damos forma de tartaleta sobre una bandeja de teflón o silicona para no se pegue. En caso de no disponer de material antiadherente, esparceremos unas gotas de aceite sobre la bandeja para evitar que se pegue.

Una vez dada forma a la tartaleta, la cubriremos con hojas de parra, sin pasarse, ya que su sabor puede ser demasiado fuerte. A continuación cortaremos el chorizo picante en rodajas muy finas y formaremos con él dos o tres capas sobre la pasta.

Por último, verteremos encima la confitura, cuanto más espesa mejor, hasta que tape todo el chorizo.

Introducimos todo en el horno, a no demasiada temperatura, hasta que la pasta se haga del todo, el chorizo suelte la grasilla y la confitura penetre en todos los huecos. Si esta se dora o requema ligeramente, mejor que mejor.

Respecto al éxito de esta receta, comentaré la siguiente anécdota: la primera vez que la preparé la lleve a una reunión de una docena de personas. Obviamente fuí objeto de toda clase de chanza y recochineo, que asumí con paciencia. Ah, el precio de ir siempre por delante, a un metro del abismo.

Pero 10 minutos después de posar la tartaleta sobre la mesa no quedaban ni las migas. Porque está realmente buena.

  • RSS
  • Facebook
  • Meneame
  • Twitter
  • MySpace
  • Digg
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Slashdot
  • StumbleUpon
  • Technorati
  • Wikio
  • Google Bookmarks
Archivado en: Inventos, Recetas
índice   cranf.net   wordnadapress
123