<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Velneo: panta rei. Desde mi perspectiva</title>
	<atom:link href="http://cagonmimantu.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://cagonmimantu.wordpress.com</link>
	<description>Velneo,  desde mi perspectiva</description>
	<lastBuildDate>Tue, 11 Nov 2008 15:24:35 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/30e30edf82aba3041f49eac7c9e7584f?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Velneo: panta rei. Desde mi perspectiva</title>
		<link>http://cagonmimantu.wordpress.com</link>
	</image>
			<item>
		<title>Sincronizaciones en menús ( I ): dos búsquedas</title>
		<link>http://cagonmimantu.wordpress.com/2008/11/10/sincronizaciones-en-menus-i-dos-busquedas/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/11/10/sincronizaciones-en-menus-i-dos-busquedas/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 09:31:22 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[Objetos visuales]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=115</guid>
		<description><![CDATA[Una posibilidad a la que podemos dar buen uso y sacar partido rápido es la sincronización de objetos en un menú.
Los objeos que vamos a poder sincronizar entre sí serán

Variables
Búsquedas
Casilleros
HTMlL

Entre una variable y una búsqueda lo vimos aquí y ahora veremos entre dos búsquedas.
Supongamos el caso que nos comenta Javier. Tenemos por un lado una búsqueda [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=115&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Una posibilidad a la que podemos dar buen uso y sacar partido rápido es la sincronización de objetos en un menú.</p>
<p>Los objeos que vamos a poder sincronizar entre sí serán</p>
<ol>
<li>Variables</li>
<li>Búsquedas</li>
<li>Casilleros</li>
<li>HTMlL</li>
</ol>
<p>Entre una variable y una búsqueda <a href="http://cagonmimantu.wordpress.com/2008/02/18/sincronizaciones-en-menus/">lo vimos aquí</a> y ahora veremos entre dos búsquedas.</p>
<p>Supongamos el caso que nos comenta <a href="http://cagonmimantu.wordpress.com/2008/02/04/busquedas-en-velneo-un-ejemplo-sencillo/#comment-46">Javier</a>. Tenemos por un lado una búsqueda de clientes y por otro lado una búsqueda de Facturas.</p>
<p>El objetivo es que una vez que tenga en un menú las dos búsquedas colocadas, al moverme por los registros de la de Clientes, me muestre en la de Facturas todas las facturas de dicho cliente seleccionado.</p>
<p>Para lograr esto necesitamos:</p>
<p>En la tabla Clientes:</p>
<ol>
<li>Una rejilla en la que mostrar los clientes: CLIENTES-SINCRO, por ejemplo.</li>
<li>Una variable <strong>global en memoria</strong>  que llamaremos COD-CLIENTE en la que guardaremos el código del cliente sobre el que estamos</li>
<li>Un proceso con origen lista de la tabla Clientes, y en la que su única linea de proceso será:              Modificar variable global, $COD-CLIENTE$, %CODIGO%</li>
</ol>
<p>          Esta linea irá guardando en la varialble en memoria el código del cliente según nos vayamos     posicionando sobre sus registros. Le llamaremos ONCLIENT, por ejemplo.</p>
<p>    4. En la rejilla CLIENTES SINCRO, activaremos el check &#8220;Cambio selección simple &#8221; y escogeremos el proceso ONCLIENT.</p>
<p>    5. Una búsqueda en la tabla CLIENTES , rejilla para ver resultado, CLIENTES-SINCRO y a la que llamaremos CLIENTESTODOS</p>
<p>En la tabla de Facturas:</p>
<ol>
<li>Una rejilla para mostrar los registros.</li>
<li>Un índice alimentado por el campo CLIENTES, acepta repetidas.</li>
<li>Una búsqueda por el índice CLIENTES, modo de buscar, parte izquierda de la clave, y resolviendo el CLIENTE  con la variable COD-CLIENTE , a la que llamaremos FACTURAS-CLIENTES , por ejemplo.</li>
</ol>
<p>En un menú tipo formulario, pondremos las dos búsquedas CLIENTES TODOS y  FACTURAS-CLIENTES.</p>
<p>Hay que tener claro cuál de las dos búsquedas es la que &#8220;manda&#8221;. En este caso, es la búsqueda de CLIENTES, dado que al variar el cliente, variará la búsqueda de facturas para sólo mostrar las del cliente seleccionado.</p>
<p>Una vez colocadas en el menú, cogemos el foco sobre CLIENTES-TODOS. En la barra de menú, vamos a la opción Controles&#8212;Sincronizar. En el cuadro de diálogo que nos aparece, escogemos la búsqueda FACTURAS-CLIENTES  y ya tenemos sincronizadas las dos búsquedas.</p>
Posted in Objetos visuales  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=115&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/11/10/sincronizaciones-en-menus-i-dos-busquedas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>
	</item>
		<item>
		<title>¿Tubos?&#8230;¿y eso qué es? (y iii)</title>
		<link>http://cagonmimantu.wordpress.com/2008/04/03/%c2%bftubos%c2%bfy-eso-que-es-y-iii/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/04/03/%c2%bftubos%c2%bfy-eso-que-es-y-iii/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 10:23:45 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[Análisis]]></category>
		<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Tablas]]></category>
		<category><![CDATA[Tubos]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=105</guid>
		<description><![CDATA[Veamos con un ejemplo real la diferencia de actuación de los tubos de lista y de ficha.
Supongamos una aplicación en la que hacemos albaranes y facturas con una estructura de tablas como la siguiente.
He puesto las tablas de cabeceras de albaranes y de facturas como submaestra de años para aprovechar su código como contador y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=105&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://cagonmimantu.files.wordpress.com/2008/04/multi-2.jpg" title="multi-2.jpg"></a>Veamos con un ejemplo real la diferencia de actuación de los tubos de lista y de ficha.</p>
<p>Supongamos una aplicación en la que hacemos albaranes y facturas con una estructura de tablas como la siguiente.</p>
<p><img border="0" align="left" width="502" src="http://cagonmimantu.files.wordpress.com/2008/03/esquema.jpg?w=502&#038;h=484" alt="Esquema de tablas" height="484" />He puesto las tablas de cabeceras de albaranes y de facturas como submaestra de años para aprovechar su código como contador y así que comience a contar en 1 en cada año <a href="http://cagonmimantu.wordpress.com/2007/12/11/%c2%bfmestra-o-submaestra/">( ver articulo )</a></p>
<p>Así mismo las lineas son a su vez submaestras de las cabeceras correspondientes.</p>
<p>Los campos que tenemos en las tablas cabeceras son practicamente los mismo en una y en otra tabla , al igual que ocurre con los campos de las tablas lineas.</p>
<p>Hagamos ahora los objetos visuales que nos permitirán facturar un albarán.</p>
<p>El proceso general para hacerlo sérá: tenemos una ficha de Cabecera de Albarán de la que</p>
<p> cuelgan sus históricos Lineas de Albarán. Tomaremos los datos de la CAlbarán y los pasaremos a un ficha de CFacturas. Una vez hecho esto, he de recorrer las lineas de LAlbaranes para hacer lo mismo, es decir, llevarlas a LFacturas pero indicándoles a dichas lineas a qué CFactura pertenecen. Para ello usaremos dos métodos. El primero mediante dos tubos de ficha y el segundo con un tubo de ficha y otro de lista.</p>
<p><strong>Método 1: dos tubos de ficha</strong></p>
<p>Crearemos primero el tubo de ficha para pasar datos desde una Cabecera de Albarán a una Cabecera de factura</p>
<p><img border="0" align="right" width="503" src="http://cagonmimantu.files.wordpress.com/2008/04/tubo-de-cabecera.jpg?w=503&#038;h=333" alt="Tubo de cabecera" height="333" /></p>
<p>Vemos que los capilares que usamos son pocos, no  utilizamos todos los campos, sólamente los que son necesarios para definir la factura al final del tubo, el cliente, el año y el almacén, en caso de ser multialmacén. El resto de los campos de CFactura, se &#8220;rellenarán&#8221; o bien por contenidos iniciales de los mismos o bien <a href="http://cagonmimantu.wordpress.com/2008/02/25/vdeveloper-vayamos-por-partes-y-vi-recapitulacion/">mediante actualizaciones desde las lineas </a></p>
<p>Después creamos el tubo de ficha para las lineas en el que usaré dos capilares, el puntero al Artículo y la cantidad de unidades vendidas.</p>
<p>El proceso para facturar un único albarán será el siguiente.</p>
<p> Proceso en el que ser realiza la facturación de un albarán.</p>
<p><img border="0" align="middle" width="653" src="http://cagonmimantu.files.wordpress.com/2008/04/proceso-1-albaran.jpg?w=653&#038;h=660" height="660" /></p>
<p>Con lo que obtenemos la factura con sus lineas correspondientes. </p>
<p> <strong>Método dos: un tubo de ficha para las cabeceras y un tubo de lista para las lineas</strong></p>
<p>Creamos el tubo de lista desde LAlbaranes a LFacturas, con los mismos capilares que los usados en el tubo de ficha. Los cambios irán en el proceso de facturación que se lanza desde la ficha de CAlbarán</p>
<p><img border="0" align="right" width="643" src="http://cagonmimantu.files.wordpress.com/2008/04/proceso.jpg?w=643&#038;h=504" alt="Facturación" height="504" /></p>
<p>Observar que en el post del primer tubo, ya no uso los Set para guardar valores en varialbles locales sino la instrucción de proceso</p>
<p>Guardar ficha, lo que nos permitirá usar un Tubo de lista con inducción. Esta inducción nos permite indicar a todas y cada una de las lineas de factura que se van creando a la salida del tubo de lista a qué ficha de maestro( CFactura) pertenecen.</p>
<p>La inducción hace que cada línea de la factura apunte a la misma cabecera, es decir, introduce el código del registro de la cabecera de la factura en el campo enlazado de los registros de Líneas de Factura.</p>
<p>Cualquiera de los dos métodos es válido. El primero, con tubo de ficha en las lineas, nos permite modificar los registros de salida del tubo, en cambio el tubo de lista no lo permite.</p>
<p>En el caso de tener que facturar varios albaranes en una única factura, podríamos hacer un proceso con origen lista de CAlbaranes para poder lanzarlo como una opción desde una toolbar en una  búsqueda de albaranes presentada en una rejilla multiselección, para ejecutarlo contra los seleccionados. Dividiremos así mismo el proceso en dos. En el primero, ordenamos la lista por Cliente para luego multipartirlo por ese mismo campo. Con ello logramos una &#8220;minilista&#8221; con cada todos los albaranes de un cliente, y por cada una de esas minilistas, ejecutamos el proceso que los factura.</p>
<p> Proceso llamador </p>
<p><img border="0" align="middle" width="642" src="http://cagonmimantu.files.wordpress.com/2008/04/multi-1.jpg?w=642&#038;h=444" height="444" /></p>
<p>  </p>
<p>Proceso llamado en el que se realiza la facturación de la minilista de los albaranes de un único cliente. Este proceso se repetirá por cada una de las multiparticiones que se obtengan en el proceso llamador.</p>
<p><img border="0" align="middle" width="657" src="http://cagonmimantu.files.wordpress.com/2008/04/multi-2.jpg?w=657&#038;h=594" height="594" /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/105/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/105/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=105&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/04/03/%c2%bftubos%c2%bfy-eso-que-es-y-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/03/esquema.jpg" medium="image">
			<media:title type="html">Esquema de tablas</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/04/tubo-de-cabecera.jpg" medium="image">
			<media:title type="html">Tubo de cabecera</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/04/proceso-1-albaran.jpg" medium="image" />

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/04/proceso.jpg" medium="image">
			<media:title type="html">Facturación</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/04/multi-1.jpg" medium="image" />

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/04/multi-2.jpg" medium="image" />
	</item>
		<item>
		<title>¿Tubos?&#8230; ¿y eso qué es? (ii)</title>
		<link>http://cagonmimantu.wordpress.com/2008/03/03/%c2%bftubos-%c2%bfy-eso-que-es-ii/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/03/03/%c2%bftubos-%c2%bfy-eso-que-es-ii/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 00:21:34 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Objetos visuales]]></category>
		<category><![CDATA[Tubos]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=100</guid>
		<description><![CDATA[Les toca el turno ahora a los tubos de lista. Antes hemos visto que los tubos en general producen altas en una tabla de destino tomando datos de una tabla origen. En el caso de los tubos de lista, además, tanto el origen como el destino pueden ser no tablas de nuestra aplicación sino bases [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=100&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Les toca el turno ahora a los tubos de lista. Antes hemos visto que los tubos en general producen altas en una tabla de destino tomando datos de una tabla origen. En el caso de los tubos de lista, además, tanto el origen como el destino pueden ser no tablas de nuestra aplicación sino bases de datos externas.</p>
<p><img border="0" align="middle" width="503" src="http://cagonmimantu.files.wordpress.com/2008/03/tubolista.jpg?w=503&#038;h=448" alt="Tubo de lista" height="448" /></p>
<p>Cuando en la galería de objetos escogemos un tubo de lista nos encontramos con este cuadro de diálogo. En él podemos ver las características esenciales de un tubo de lista:</p>
<p><strong>Estilos</strong>:</p>
<p>Privado: Si se activa esta opción el tubo solamente podrá ser disparado desde donde el programador indique, si está desactivado el usuario final podrá dispararlo desde cualquier lista de la tabla de datos de origen del tubo. Hemos de tener en cuenta que en ejecución, cuando tenemos en pantalla una lista resultado de una búsqueda en la barra de Herramientas la opción Procesos, nos aparece un desplegable en el que podremos lanzar tubos o procesos SI NO ESTÁN MARCADOS COMO PRIVADOS<br />
No indexar y hacer regen al final: Si se trata de un Tubo de importación, de puede activar o desactivar esta opción. Reduce enormemente el tiempo de duración de la importación de datos. Primero realiza la importación de datos y posteriormente regenera los índices de tabla de destino.  Antes de ejecutar un tubo de importación con esta opción activada, es aconsejable borrar previamente los registros de la tabla de datos de destino (la de Velneo) o que esta contenga muy pocos registros, pues esta opción ni comprueba los campos código ni lo indexa hasta que no se hayan importado todos los registros. Velneo recomienda  no utilizar nunca esta opción en el caso de que la tabla de destino tenga definido el contenido del campo código como Siguiente al último, pues, al no indexarse los registros al ejecutar el tubo, todos los registros importados quedarán con el mismo código. De hecho es siempre aconsejable que la importación la hagamos previamente a un tabla intermedia, no a la tabla definitiva, para evitar problemas. Una vez que hacemos todas las comprobaciones, con un nuevo tubo de lista pero esta vez interno, nos llevamos los datos de la intermedia  a la definitiva.</p>
<p>Usar contenido inicial campos destino: Si se activa esta opción al generarse los registros se dispararán los contenidos iniciales definidos en los campos de la tabla de datos de destino. Es aconsejable por tanto no crear en el tubo capilares para los campos de la tabla de destino que tengan establecido un contenido inicial.<br />
Usar código automático en destino: Este estilo solamente estará activo cuando se haya desactivado el estilo anterior (usar contenido inicial campos destino). En el caso de que la tabla de destino sea maestra, es decir, que tenga definido un campo CODIGO y, si su contenido inicial es Siguiente al último, habrá que activar este estilo para que la codificación de los registros de la tabla de sea automática. Si este estilo está desactivado y el código se pasa en un capilar, si en la tabla de destino existe algún registro con el mismo código, el registro no será dado de alta.</p>
<p>Usar actualizaciones en destino: Si la tabla de datos de destino tiene definidas actualizaciones, si se activa esta opción al generarse los registros éstas serán disparadas, si no, no.</p>
<p>Además los flujos de la informacion pueden ser internos, de importación o de exportación. He de confesar que tanto el In-com Serie como el Out-com Serie no los he usado nunca, pero tengo entendido que son un primer intento de comunicación mediante puerto serie, antes de que ese objeto visual concreto se desarrollara.</p>
<p>En los casos de flujo Interno, es decir, cuando el origen y el destino son tablas de Velneo, es posible hacer un alta de ficha en un maestro de la tabla destino. Señalando la opción ¿Dar alta?, se activan las listas desplegables Maestro,  Formulario, y Formulario visualización final salida tubo. En la primera se elige la tabla maestra donde se desea realizar el alta. En la segunda se elige el formulario para el alta. En la tercera se indica el formulario donde se puede ver el resultado final del tubo.</p>
<p>La casilla de verificación ¿Pedir? se utiliza para declarar el formulario mediante el cual se puede introducir un valor fijo en uno o en varios campos de todas las fichas de destino.</p>
<p>La forma de crear los capilares es idéntica a la de los tubos de ficha.</p>
<p> Una diferecia fundamental a la hora de elegir entre recorrer una lista para lanzar un tubo de ficha por cada uno de los registros o cargar una lista y lanzar un tubo de lista estriba en que a la salida del tubo de lista no podemos hacer nada en los registros recién dados de alta, es decir, en el tubo de lista no hay Pre y Post como en el de ficha. A veces esto puede ser una ventaja y otras no, eso depende del gusto de cada uno. Particularmente, cuando necesito hacer traspasos masivos uso el de lista pero en la mayoría de los procesos, prefiero los tubos de ficha pues me permiten un mayor control sobre la salida del tubo, en el Pre puedo modificar campos, por ejemplo. Pero esto debe tomarse no como una recomendación ha tener en cuenta, sino como un simple gusto personal o manía, llamadlo como querais.</p>
<p>En el siguiente artículo, veremos dos procesos de facturación de albaranes, uno con tubos de lista y otros con tubos de ficha.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/100/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/100/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=100&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/03/03/%c2%bftubos-%c2%bfy-eso-que-es-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/03/tubolista.jpg" medium="image">
			<media:title type="html">Tubo de lista</media:title>
		</media:content>
	</item>
		<item>
		<title>Foro de Velneo:mucho más que un foro</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/27/foro-de-velneomucho-mas-que-un-foro/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/27/foro-de-velneomucho-mas-que-un-foro/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 16:57:21 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=99</guid>
		<description><![CDATA[Estimados amigos que entrais en este blog, permitidme al menos por esta vez, una reflexión muy personal .
 Desde que el 21 de septiembre de 2005 me dí de alta en el foro de Velneo, no he hecho más que disfrutar con él y con la gente que allí nos reunimos. No tengo más que palabras [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=99&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estimados amigos que entrais en este blog, permitidme al menos por esta vez, una reflexión muy personal .</p>
<p> Desde que el 21 de septiembre de 2005 me dí de alta en <a href="http://forum.velneo.com/es/index.php">el foro de Velneo,</a> no he hecho más que disfrutar con él y con la gente que allí nos reunimos. No tengo más que palabras de agradecimiento hacia él. En dicho Foro he hecho grandes amigos, me ha permitido conocer a gentes de todos los lugares del Mundo y ponerme en contacto personal con ellos.</p>
<p>Disfruto cada día entrando en él y aportando o preguntando. De veras que es una gran comunidad, llena de entusiastas de Velneo y de detractores del mismo. Su grandeza reside en que nadie es apartado, nadie es criticado, nadie es maltratado.</p>
<p>A todo el mundo que se acerca con una duda o un problema, se le intenta ayudar, de forma desinteresada y altruísta. Eso si que es Globalización, eso si que es compartir conocimientos, eso si que es trasmitir.</p>
<p>Enhorabuena a todos los foreros o casi decir forofos de este <a href="http://forum.velneo.com/es/index.php">FORO</a>, con mayúsculas y a <a href="http://www.velneo.com/web/index.pro">Velneo</a> por haber tenido una idea tan buena con su creación y mantenimiento.</p>
<p align="center"><a href="http://forum.velneo.com/es/memberlist.php"><font color="#000080"><strong>Gracias Foreros</strong></font></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/99/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/99/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=99&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/27/foro-de-velneomucho-mas-que-un-foro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>
	</item>
		<item>
		<title>¿Tubos?&#8230;¿y eso qué es? (i)</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/25/%c2%bftubos%c2%bfy-eso-que-es-i/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/25/%c2%bftubos%c2%bfy-eso-que-es-i/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 23:43:51 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Objetos visuales]]></category>
		<category><![CDATA[Tubos]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=96</guid>
		<description><![CDATA[A raiz de una pregunta aparecida en le foro de Velneo hecha por lordnight en la que casi al final del hilo pedía una explicación sobre lo que son los tubos, me dispongo a dar una pequeña anotación sobre ellos.
Los objetos visuales de Velneo, aparecen en la parte derecha del vDeveloper y son la forma de comunicación [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=96&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A raiz de una pregunta aparecida en le <a href="http://forum.velneo.com/es/viewtopic.php?t=18262">foro de Velneo</a> hecha por <a href="http://forum.velneo.com/es/profile.php?mode=viewprofile&amp;u=4675">lordnight</a> en la que casi al final del hilo pedía una explicación sobre lo que son los tubos, me dispongo a dar una pequeña anotación sobre ellos.</p>
<p>Los objetos visuales de Velneo, aparecen en la parte derecha del vDeveloper y son la forma de comunicación entre la estructura y sus datos y el usuario final. Se encargan tambiénd de facilitarnos la vida y el trabajo a los desarrolladores y ahorrarnos un montón de quebraderos de cabeza. Uno de estos objetos visuales son los tubos.</p>
<p>¿..Y eso de los tubos qué hace en realidad?. Pues los tubos se usan para traspasar datos de una tabla a otra. Tienen una tabla origen y una tabla destino, con la particularidad de que en la salida del tubo, se producen altas de registros en la tablas destino.</p>
<p><img border="0" align="right" width="515" src="http://cagonmimantu.files.wordpress.com/2008/02/tubo-de-ficha.jpg?w=515&#038;h=574" alt="Tubo de ficha" height="574" /></p>
<p>Los tubos conectan dos tablas entre sí y sólo dos tablas y no todos los campos tienen porqué &#8220;viajar&#8221; de una tabla a la otra. Para determinar que campos van a llevarse a la tabla de destino se usan los capilares. En un capilar escogeremos un campo de destino y el origen del dato, que puede ser un campo de la tabla origen o una concatenación de campos o de variables globales o de funciones, ya que de nuevo nos encontramos con el asistente de fórmulas. En este ejemplo concreto he creado un tubo de ficha para traspasar datos de las Lineas de Albarán a las lineas de facturas. Los capilares son el puntero a Artículo y la cantidad. El resto de los campos no los necesito llevar al destino, ya que en ella se ejecutarán al darse de alta los nuevos registros que salen por el tubo tanto los contenidos inciales de los campos , como los campos de tipo fórmula como <a href="http://cagonmimantu.wordpress.com/2008/02/20/vdeveloper-vayamos-por-partes-v/">los triggers o eventos de tabla</a> que afecten a las altas así como <a href="http://cagonmimantu.wordpress.com/2008/02/25/vdeveloper-vayamos-por-partes-y-vi-recapitulacion/">las actualizaciones </a>que tengamos definidas.</p>
<p>Los tubos pueden se suelen lanzar desde procesos y siempre desde una linea cuyo origen sea ficha de la tabla origen . Un tubo de ficha lanzado desde un proceso puede ser llamado de dos formas, con dos lineas dsitintas:</p>
<p>Tubo de ficha, en el que es necesario que hayamos definido un formulario de salida del tubo, un formulario que nos presenta la ficha para darla de alta en la tabla destino y Tubo de ficha sin pedir formulario, en el que no nos pide dicho formulario. Esta última es la más utilizada.</p>
<p>Si usamos Tubo de ficha simplemente y dicho tubo no tiene definido un formulario de salida, la linea de proceso no se ejecuta, con lo que es más recomendable usar Tubo de ficha sin pedir formulario</p>
<p>Acompañando a estas lineas de procesos de tubo de ficha<img border="0" align="right" width="284" src="http://cagonmimantu.files.wordpress.com/2008/02/tubo.jpg?w=284&#038;h=153" alt="Tubo de ficha" height="153" /> aparecen dos lineas cuyo origen es siempre la ficha de la tabla destino. En el Pre, podremos cambiar cualquier valor de cualquier campo del registro de salida, pero en el Post no, solo podremos hacer comprobaciones, por ejemplo, o guardar valores en variables locales o globales.</p>
<p>Los tubos pueden darnos un gran juego  a la hora de hacer cosas como facturar albaranes. Cuando veamos en el siguiente artículo los tubos de lista, haremos un ejemplo práctico de factuación de un único albarán en una factura o de varios albaranes en una única factura.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/96/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/96/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=96&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/25/%c2%bftubos%c2%bfy-eso-que-es-i/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/tubo-de-ficha.jpg" medium="image">
			<media:title type="html">Tubo de ficha</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/tubo.jpg" medium="image">
			<media:title type="html">Tubo de ficha</media:title>
		</media:content>
	</item>
		<item>
		<title>vDeveloper: vayamos por partes (y vi). Recapitulación.</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/25/vdeveloper-vayamos-por-partes-y-vi-recapitulacion/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/25/vdeveloper-vayamos-por-partes-y-vi-recapitulacion/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 00:03:44 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=89</guid>
		<description><![CDATA[Como componente final de las tablas tenemos las actualizaciones. Una actualización no permite modificar registros de otras tablas con las que estemos unidos mediante un puntero a singular,es decir, puedo modificar registros de tablas a las que apunte mediante un puntero a maestro, un puntero indirecto o un hermano contiguo.
Su mayor potencia reside en su [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=89&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Como componente final de las tablas tenemos las actualizaciones. Una actualización no permite modificar registros de otras tablas con las que estemos unidos mediante un puntero a singular,es decir, puedo modificar registros de tablas a las que apunte mediante un puntero a maestro, un puntero indirecto o un hermano contiguo.</p>
<p>Su mayor potencia reside en s<a href="http://cagonmimantu.files.wordpress.com/2008/02/actualizacion-a-maestro.jpg" title="actualizacion-a-maestro.jpg"></a>u autorecálculo. Me explico. Supongamos que mediante una actualización, voy llevando a un campo de la tabla Cabeceras de facturas el número de artículos que voy vendiendo. Cada vez que introduzco una linea y pongo las unidades vendidas, al dar de alta la linea se lanza la actualización y me aumenta el contador. Pues bien, si de nuevo entro en la linea y cambio el valor de las unidades, la actualización se rehace, deshace la actualización con el anteriro valor y la rehace con el nuevo. Pero si por alguna causa, borramos una linea, también se recalcula la actualización <font color="#ff0000"><u><strong>Y SIN TENER QUE ESCRIBIR NI UNA SOLA LINEA DE CODIGO.</strong></u></font></p>
<p><font color="#000000">Con  un ejemplo práctico veremos la potencia que encierran las actualizaciones. Supongamos una aplicación para hacer albaranes de venta. Vendemos artículos que tienen un stockaje de almacén y que pueden ir grabados con distintos tipos de IVA. Además queremos llevar en una tabla el IVA repercutido por meses de los distintos tipos de IVA por separado.</font> </p>
<p>TABLA TIPO TABLA DE DATOS PADRE<br />
CLIENTES Maestro normal con clave numérica -<br />
ARTICULOS Maestro normal con clave numérica -<br />
ALBARANES VENTAS Maestro normal con clave numérica -<br />
LÍNEAS ALBARANES VENTAS Sub Maestro ALBARANES VENTAS<br />
FACTURAS Maestro normal con clave numérica -<br />
LINEAS FACTURAS Sub Maestro FACTURAS</p>
<p>AÑOS. mestra normal con clave numérica</p>
<p>IVA ACUMUALDO. Histórica de Años<br />
A las tablas se han añadido los siguientes campos:</p>
<p><u>Tabla de ARTICULOS</u>:<br />
IDENTIFICADOR PVP NOMBRE P.V.P. TIPO Numérico LONGITUD 3<br />
IDENTIFICADOR IVA NOMBRE I.VA. TIPO Numérico LONGITUD 1 RANGO MÁXIMO 99 CONT. INI $IVA1$<br />
IDENTIFICADOR PVP-SIN-IVA NOMBRE PVP sin IVA TIPO Fórmula Numérica<br />
FÓRMULA fRedondear( 100 * %PVP% / (100+%IVA%),2 )<br />
IDENTIFICADOR STOCK  NOMBRE Stock TIPO Numérico LONGITUD 2 SIGNO Activado</p>
<p><u>Tabla de ALBARANES VENTAS:</u><br />
IDENTIFICADOR FECHA NOMBRE Fecha TIPO Fecha CONTENIDO INICIAL fHoy ()<br />
IDENTIFICADOR NLINEAS NOMBRE Número de líneas TIPO NuméricoLONGITUD 2<br />
Declaramos tres bases imponibles (una por cada tipo de IVA):</p>
<p>IDENTIFICADOR BASE1 NOMBRE Base Imponible 1ª TIPO Numérico LONGITUD 4 SIGNO Activado<br />
IDENTIFICADOR IVA1 NOMBRE I.VA. 1º TIPO Numérico LONGITUD 1 RANGO MÁXIMO 99 CONT INI $IVA1$<br />
Declaramos también otros dos IVA&#8217;s más.<br />
IDENTIFICADOR IMP-IVA1 NOMBRE Importe I.V.A. 1º TIPO Fórmula NuméricaSIGNO Activado<br />
FÓRMULA fRedondear(fPorcentaje(%BASE1%,%IVA1% ) )<br />
fPorcentaje (Valor, porcentaje), devuelve el número resultante de aplicar el porcentaje al valor.</p>
<p>Declaramos otros dos campos para calcular el Importe de IVA 2º y del IVA 3º, respectivamente de igual forma que el anterior</p>
<p>IDENTIFICADOR TOTAL NOMBRE TotalTIPO Fórmula NuméricaSIGNO Activado<br />
FÓRMULA %BASE1%+%BASE2%+%BASE3%+ %IMP-IVA1%+%IMP-IVA2%+%IMP-IVA3%<br />
IDENTIFICADOR FACTURADO NOMBRE ¿Facturado?TIPO Booleano (Sí / No) CONTENIDO INICIAL 0<br />
<strong><u>Tabla de LINEAS ALBARANES VENTAS:<br />
</u></strong>IDENTIFICADOR CANTIDAD NOMBRE Cantidad TIPO Numérico LONGITUD 2<br />
IDENTIFICADOR PVP NOMBRE P.V.P. TIPO Numérico LONGITUD 3 CONTENIDO INICIAL %ARTICULOS.PVP%<br />
IDENTIFICADOR IVA NOMBRE % I.V.A. TIPO Numérico LONGITUD 1 CONTENIDO INICIAL %ARTICULOS.IVA%<br />
IDENTIFICADOR IMPORTE-SIN-IVA NOMBRE Importe sin Iva TIPO Fórmula numérica SIGNO Activado<br />
FÓRMULA %CANTIDAD% * %PVP%<br />
IDENTIFICADOR IMPORTE-DEL-IVA NOMBRE Importe del Iva TIPO Fórmula numérica SIGNO Activado<br />
FÓRMULA fRedondear(fPorcentaje(%IMPORTE-SIN-IVA%, %IVA%))<br />
IDENTIFICADOR IMPORTE+IVA NOMBRE Importe con Iva TIPO Fórmula numérica SIGNO Activado<br />
FÓRMULA %IMPORTE-SIN-IVA%+%IMPORTE-DEL-IVA%<br />
La tabla FACTURAS tiene la misma estructura que la de ALBARANES VENTAS, a excepción de los campos NLINEAS y FACTURADO, que no los tiene.</p>
<p><strong>TABLA AÑOS:</strong> nos quedamos con el campo código y borramos el campo nombre y los índices NOMBRE, PALABRAS Y TROZOS. Esta tabla, en la que sólo vamos a llevar los años, podemos cargarla de datos con un proceso llamado desde el AUTOEXEC-ON-INIT que tendrá la siguiente estructura<img border="0" align="right" width="431" src="http://cagonmimantu.files.wordpress.com/2008/02/procesoanos.jpg?w=431&#038;h=286" alt="Genera los años" height="286" /></p>
<p><strong>TABLA IVAREPERCUTIDO. </strong>Tendrá los campos</p>
<p>TRIMESTRE 1 IVA1: numérico , longitud 4 con 2 decimales y signo</p>
<p>TRIMESTRE 2 IVA1: numérico , longitud 4 con 2 decimales y signo</p>
<p>TRIMESTRE 3 IVA1: numérico , longitud 4 con 2 decimales y signo</p>
<p>TRIMESTRE 4 IVA1: numérico , longitud 4 con 2 decimales y signo</p>
<p>En estos campos llevaremos los IVAS repercutidos por trimestre, para las bases imponibles que correspondan al IVA del tipo 1.  Para los otros tipos de IVAS no tenemos más que hacer otros tantos campos del mismo tipo que el anterior, cuatro por cada tipo</p>
<p>La estructura de tablas queda como sigue</p>
<p><img border="0" align="left" width="472" src="http://cagonmimantu.files.wordpress.com/2008/02/esquema.jpg?w=472&#038;h=451" alt="Esquema de tablas" height="451" />Para tener guardados los valores de los IVAS usaremos tres varialbles globales en disco, de tipo numérico y con longitud 3 y dos decimales.</p>
<p>Para guardar los datos generales de la empresa tenemos dos opciones, o bien usar también variables globales en disco en las que iremos guardando los datos de la empresa, como razón social, NIF, domicilio, código postal, población &#8230;. así como un objeto visual tipo dibujo para el logo de la empresa usado en los albaranes o las facturas u otra opción que suelo usar y que es crear una tabla llamada CONFIGURACION en la que se crean los diferentes campos que necesite para definir los datos generales de la empresa, incluidos uno o varios campos objeto dibujo en los que guardar distintos logos.</p>
<p>Con ella, nos evitamos tener que tocar con le vDeveloper un objeto dibujo si la empresa cambia de logo, por ejemplo. Para usarla desde las tablas de las cabeceras de Albaranes o Facturas, simplemente, hacemos un puntero a maestro en cada una de ellas a la tabla configuración, con lo que tenemos acceso a todos los campos sobre todo a la hora de imprimir los informes.</p>
<p>Para rellenar inicalmente los valores de la única ficha de esta tabla, podemos lanzár un proceso llamado desde el AUTOEXEC-ON -INIT que tenga las siguientes lineas</p>
<p><img border="0" align="right" width="469" src="http://cagonmimantu.files.wordpress.com/2008/02/configuracion.jpg?w=469&#038;h=356" alt="Proceso de configuracion" height="356" />En este mismo proceso podríamos controlar si se ha dado valor a al menos una de las variables globales donde se guardan los IVAS y mostrar el formulario de Configuración en el que tendremos los controles de edición de las variables.</p>
<p>Al mismo nivel que Cargar lista-&gt;CONF&#8230;..                     </p>
<p>añadimos</p>
<p>if $IVA-1$=0</p>
<p>cargar lista , CONFIGURACION, CODIO</p>
<p>seleccionar ficha por posición-&gt;1</p>
<p>modificar ficha seleccionada con formulario, CONFIGURACION</p>
<p>Vayamos con las primeras actualizaciones. Desde la tabla de Lineas de facturas haremos actualizaciones a los campos donde guardamos las distintas bases imponibles, dependiendo del valor del IVA que se aplique al artículo de la linea. Para ello vamos a la carpeta de actualizaciones e insertamos una nueva. Toda actualización necesita un puntero a una ficha para poder actualizar un valor de la tabla apuntada con un valor de un campo de la tabla origen. En este caso, tenemos el puntero a maestro desde la tabla Lineas de Facturas a la tabla Cabeceras. Usaremos este puntero para actualizar las tres bases imponibles, dependiendo del tipo de IVA que se haya usado para la linea.</p>
<p><img border="0" align="right" width="545" src="http://cagonmimantu.files.wordpress.com/2008/02/actualizacion-a-maestro.jpg?w=545&#038;h=352" alt="Actualización a Maestro" height="352" />Para ello usaremo la fórmula condición para modificar. En el caso editado de la base 1, si el iva de la lineas es igual al guardado en la variable IVA 1 lanzaremos la actualización, modificando el campo BASE1, del modo acumular ( sumar a lo que ya había ) lo que está guardado en el campo IMPORTE SIN IVA.</p>
<p>Para el resto de los campos BASE, lo único que variará será la condición de modificación además del campo a modificar.</p>
<p>Si borramos, o modificamos una linea afectando el valor del campo IMPORTE SIN IVA la actualización, ella sóla y sin programar nada más, se encargará de corregir los datos anteriores y salvaguardar los nuevos</p>
<p>Hagamos ahora una actualización a través de <a href="http://cagonmimantu.wordpress.com/2007/12/11/punteros-indirectos/" title="Punteros indirectos">un puntero a tabla de datos indirecta real</a>. </p>
<p>En la tabla Cabeceras de Facturas creamos un puntero indirecto a la tabla IVAS Repercutidos a través del índice de clave única AÑOS  de esta última tabla, resolviendo el AÑO del origen que el AÑO del destino, y activando el flag Dar de alta si no existe por si es la primera factura de un año determinado que introducimos y por tanto en la tabla IVAS Repercutidos aún no hay creado un registro para ese año.</p>
<p><img border="0" align="right" width="534" src="http://cagonmimantu.files.wordpress.com/2008/02/puntero.jpg?w=534&#038;h=373" alt="Puntero" height="373" /></p>
<p>Sólo nos queda lanzar una nueva actualización a través de este puntero para que nos lleve los ivas repercutidos en los trimestres adecuados de cada año.</p>
<p> Para ello creamos una nueva actualización a través del puntero indirecto.La haremos para el primer trimeste del IVA 1.</p>
<p>La condición será que el trimestre de la fecha sea el 1 y actualizaremos el campo TRIMESTRE 1 IVA 1 con lo que haya guardado en el campo IMP-IVA 1  de la tabla Cabeceras de facturas.</p>
<p>Lo mismo haremos ,cambiano la condición para los diferentes trimestes e IVAS.</p>
<p>Podríamos también hacerlo para los doce meses de cada año. Sólo tenemos que hacer 12 campos por IVA y montar las actualizaciones de la misma forma.</p>
<p> <img border="0" align="left" width="1" src="//cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg?w=1&#038;h=1" height="1" /></p>
<p><img border="0" align="left" width="1" src="//cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg?w=1&#038;h=1" alt="Actualizar por puntero indirecto" height="1" /></p>
<p>Si tenemos también implementada a parte de compras en nuestra aplicación, podríamos llevar el IVA soportado en la misma tabla y llevar desde la Cabecera de Facturas de Compra todos los IVAs soportados por trimestre o por meses de cada año, y a la vez un campo fórmula en el que nos calculara la diferencia entre el soportado y el repercutido.</p>
<p>Como hemos visto, con las actualizaciones y los punteros y <font color="#ff0000">sin escribir ni una sola linea de código</font>, hemos hecho toda la labor, todo en la parte izquiera del vDeveloper. Combinando toda la potencia de los componentes de las tablas con un buen análisis del problema, tenemos el 90% de la aplicación hecha, a falta de hacer los objetos visuales y de resolver cosas que Velneo no tiene implementadas de forma tan directa pero que haremos con los procesos.</p>
<p><img border="0" align="middle" width="610" src="http://cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg?w=610&#038;h=429" alt="Actualizacion puntero indirecto" height="429" /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/89/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/89/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=89&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/25/vdeveloper-vayamos-por-partes-y-vi-recapitulacion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/procesoanos.jpg" medium="image">
			<media:title type="html">Genera los años</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/esquema.jpg" medium="image">
			<media:title type="html">Esquema de tablas</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/configuracion.jpg" medium="image">
			<media:title type="html">Proceso de configuracion</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/actualizacion-a-maestro.jpg" medium="image">
			<media:title type="html">Actualización a Maestro</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/puntero.jpg" medium="image">
			<media:title type="html">Puntero</media:title>
		</media:content>

		<media:content url="//cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg" medium="image" />

		<media:content url="//cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg" medium="image">
			<media:title type="html">Actualizar por puntero indirecto</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/actualizacion-puntero.jpg" medium="image">
			<media:title type="html">Actualizacion puntero indirecto</media:title>
		</media:content>
	</item>
		<item>
		<title>vDeveloper: vayamos por partes (v)</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/20/vdeveloper-vayamos-por-partes-v/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/20/vdeveloper-vayamos-por-partes-v/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 10:28:02 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Tablas]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=86</guid>
		<description><![CDATA[El tercer elemento de una tabla son los triggers o eventos de tablas.
Con ellos vamos a poder lanzar procesos que se ejecutarán siempre con origen una ficha de una tabla. Van a sernos muy útiles a la hora de hacer comprobaciones, de modificar valores de campos dependiendo de las condiciones que establezcamos&#8230;. además se dá [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=86&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>El tercer elemento de una tabla son los triggers o eventos de tablas.</p>
<p>Con ellos vamos a poder lanzar procesos que se ejecutarán siempre con origen una ficha de una tabla. Van a sernos muy útiles a la hora de hacer comprobaciones, de modificar valores de campos dependiendo de las condiciones que establezcamos&#8230;. además se dá la ventaja de que tenemos la seguridad de que siempre se ejecutan pues no dependen de una pérdida de foco o de que el usuario haya pulsado un determinado botón.</p>
<p>Los eventos de tablas o triggers son de tres tipos: anteriores a , internos a y posteriores a.  A su vez se pueden lanzar desde tres sitios distintos: en un alta, en una modificación y en una baja. Por lo tanto, mezclando ambas cosas tendremos nueve maneras o formas de lanzarlos</p>
<p><img border="0" align="left" width="378" src="http://cagonmimantu.files.wordpress.com/2008/02/tipos-de-triggers.jpg?w=378&#038;h=214" alt="Tipos de triggers" height="214" /> ¿En qué orden son lanzados los triggers?</p>
<p>1. Trigger anterior</p>
<p>2.La acción asociada: alta, modificación o baja</p>
<p>3. Trigger interno</p>
<p>4. Actualizaciones, que veremos a continuación</p>
<p>5. Trigger posterior.</p>
<p>A la hora de usar los triggers debemos de tener en cuenta varias particularidades: en la versión C/S no incluir  nada que implique la intervención del usuario, por ejemplo, visualizar un mensaje, mostrar un formulario, una pregunta, petición de un dato, etc. El motivo es que este tipo de operaciones se llevan a cabo en el Servidor, por lo que el mensaje o el formulario no serían presentados en el Cliente, sino en el propio Servidor. Si en un evento de tabla se incluyese algo que implicase la intervención del usuario, será obviado por el Servidor. Sólo en los triggers anteriores a se pueden cambiar valores de campos de las fichas , si ponemos una instrucción de proceso &#8220;modificar campo&#8221; ésta sólo se ejecutará si el trigger es anterior a.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/86/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/86/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=86&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/20/vdeveloper-vayamos-por-partes-v/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/tipos-de-triggers.jpg" medium="image">
			<media:title type="html">Tipos de triggers</media:title>
		</media:content>
	</item>
		<item>
		<title>Exitos con Velneo. CURSAR</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/18/exitos-con-velneo-cursar/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/18/exitos-con-velneo-cursar/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 06:18:14 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=77</guid>
		<description><![CDATA[Con permiso del departamento de I+D de textiles Saroni, os traigo un artículo publicado recientemente en el blog de Velneo de un caso de desarrollo. Tengo el placer de conocer personalmente a Juan y a  Héctor. Son dos grandísimos programadores que en poco más de un año han resuelto el problema informático de su empresa gracias [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=77&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Con permiso del departamento de I+D de textiles Saroni, os traigo un artículo publicado recientemente en <a href="http://blog.es.velneo.com/web/p.pro?vdis=4&amp;p=33703" title="Cursar">el blog de Velneo</a> de un caso de desarrollo. Tengo el placer de conocer personalmente a Juan y a  Héctor. Son dos grandísimos programadores que en poco más de un año han resuelto el problema informático de su empresa gracias a su trabajo y a Velneo. Como podeis comprobar además, su presentación está muy bien cuidada y el interface con el usuario es de un diseño elegante y bonito.</p>
<p>Enhorabuena a ambos.</p>
<p><b>Poco más de un año más tarde&#8230;..</b></p>
<p>Lo prometido es deuda, lo que sucede es que todo tiene que llegar a su tiempo:</p>
<p>Hace un poco más de un año, el Grupo Textiles Saroni empezó la búsqueda de un sistema de gestión integrado para resolver todas sus necesidades. Necesidades logísticas, de gestión, diseño, control de almacenes, producción; un sistema que permita la expansión de la empresa y al mismo tiempo un control de la misma.</p>
<p>Se realizó un sondeo en diferentes empresas. Se contactó con diferentes empresas de informática, sistemas basados en Oracle, SqlServer, y un largo etc.</p>
<p>El principal problema que nos encontramos en todas las versiones probadas era la no adaptación a nuestra forma de trabajo, no cumplir las necesidades mínimas, aplicaciones poco intuitivas y muy poco adaptables al modelo de empresa.</p>
<p>Al final nos decantamos por realizar el programa a medida. De nuevo otro sondeo para determinar el sistema de desarrollo para la aplicación, siempre hablando de un RAD, y viendo que nuestros recursos informáticos eran mínimos.</p>
<p>Al final se tomó como punto de partida Velneo, pensado en que con la futura versión V7, y con las características de la V6 podríamos desarrollar un programa adaptado a nuestras necesidades. Nos pusimos en contacto con Velneo</p>
<p><img border="0" align="middle" width="1024" src="http://cagonmimantu.files.wordpress.com/2008/02/acerda_de.jpg?w=1024&#038;h=735" height="735" /></p>
<p><b>Fases en el desarrollo de Cursar:</b></p>
<p><b>Equipo de desarrollo compuesto por dos personas, tiempo empleado 15 meses.</b></p>
<p><b></b></p>
<p><b></b></p>
<p><b></b></p>
<p><b>Fase 1:</b></p>
<p><i>Formación del personal.</i></p>
<p>1 semana de formación de nuestro departamento de I+D. Dos personas fueron formadas en las características de Velneo. Modo de trabajo, tablas, punteros, formularios, consultas, informes, en definitiva todo lo necesario para la realización de la aplicación.</p>
<p><b>Fase 2:</b></p>
<p><i>Pruebas de campo.</i></p>
<p>Dedicamos dos meses para hacer pruebas y desarrollo de mini aplicaciones enfocadas a nuestras necesidades, además para hacernos con la forma de trabajo de Velneo y sus particularidades, el &#8220;cambio de chip&#8221;.</p>
<p><b>Fase 3:</b></p>
<p><i>Análisis de necesidades.</i></p>
<p>Nuestra empresa por la particularidad de la misma, trabaja para clientes diversos: Inditex, Etiem, Caramelo, Induyco, Women Secret, etc.. El estudio de necesidades es un poco abstracto, nunca tienes el estudio terminado, los cambios son constantes, nuevas normativas, nuevas adaptaciones, con lo que en otro sistema hubiese sido una odisea.</p>
<p>Velneo permite que las modificaciones no sean tan problemáticas; además la urgencia de un sistema de gestión interno nos hizo tener que trabajar con datos reales y con las mínimas pruebas, &#8220;necesito esto para ayer&#8221;, y todo esto en una empresa en constante evolución.</p>
<p>Otro problema añadido fue la descentralización de nuestra empresa, sedes en Coruña, Portugal y la sede central en Verín.</p>
<p><b></b></p>
<p><b>Fase 4:</b></p>
<p><i>Desarrollo.</i></p>
<p>Comenzamos el desarrollo, analizando la urgencia de cada caso.</p>
<p>Decidimos basar el desarrollo en la plantilla vGestión con sus pros y sus contras, pero la urgencia implicaba utilizar desarrollo ya realizado, aunque al final poco o muy poco queda de la base inicial, pero si nos ha servido para el conocimiento de la herramienta. Es una buena base para el desarrollo de una aplicación. Sin entrar en valoraciones, es un muy buen punto de partida.</p>
<p>Packing list, uno de nuestros dolores de cabeza. La diversidad de empresas con las que trabajamos hace que el packing list sea toda una odisea, tanto a nivel de informes como en forma de trabajo, tiendas, diferentes codificaciones, tallas, colores.</p>
<p>Nuestros primeros packing se hacían bien desde la web, o desde programas como Excel, donde en cualquiera de los dos casos los tiempos eran de horas.</p>
<p>Recuerdo como anécdota que el primer packing de Women Secret nos llevo 16 horas, entre etiquetas y embalado, eran 25.000 prendas, ahora con cantidades de 48.000 el packing puede rondar las 4 o 6 horas.</p>
<p>Control de pedidos. En este sector es muy importante el control de las fechas de servicio, así como las cantidades servidas, etiquetado, control de cada cliente y pedido. Esto era una odisea. Todo un reto preparar un informe de prendas pendientes de servir, o prendas servidas. Ahora con Velneo, y nuestro programa Cursar, todo esto está en tiempo real, con estado de etiquetas, alarmas, y un largo etc..</p>
<p><img border="0" align="middle" width="1024" src="http://cagonmimantu.files.wordpress.com/2008/02/control_pedido_pedido.jpg?w=1024&#038;h=711" height="711" /></p>
<p>En cada una de las fases nos encontramos con problemas, desde el desarrollo del modulo de distribución hasta la agenda de tareas, todos y cada uno de ellos solucionados de una u otra manera.</p>
<p>De ahí el eslogan de nuestro departamento de I+D:</p>
<p><b>&#8220;Si el problema tiene solución, cual es el problema.&#8221;</b></p>
<p><b>Fase 5:</b></p>
<p><i>VServer y primeras pruebas.</i></p>
<p>Dada la necesidad de un programa, las pruebas fueron mínimas, siempre trabajando con datos reales, y hasta la fecha con escasos problemas. Gracias a la estructura de tablas y al buen manejo de índices, el departamento de I+D se preocupa de programar y analizar.</p>
<p>Toda esta fase de implementación no supuso grandes quebraderos de cabeza. El único quebradero de cabeza fué la poca capacidad de subida de nuestras ADSL, lo que nos hizo tener que desarrollar Cursar con el mínimo consumo de recursos. Nuestra aplicación compilada en .vam no llega a un megabyte, mientras que hablamos de 2,5 megas el mapa.</p>
<p>Todo esto junto con las pruebas realizadas con Citrix Metaframe, hace que nuestro programa corra sin problemas desde Coruña y Portugal con una ADSL de 384Kb de subida.</p>
<p>La ventaja de Citrix es la integración con el escritorio dado que en Terminal Server, la mensajería de Velneo suponía un problema, así como las impresoras remotas.</p>
<p>En poco más de un año nuestra aplicación se compone de los módulos de:</p>
<p><b>Compras.</b></p>
<p><b>Ventas.</b></p>
<p><b>Control de Pedidos.</b></p>
<p>Ventas a clientes, pedidos pendientes, estado de pedidos, control de etiquetas, etc..</p>
<p><b></b></p>
<p><b>Gestión documental.</b></p>
<p>Un apartado muy importante dentro de la empresa. Inicialmente toda la información de modelos, fotos, escalados, pedidos en pdf, toda la documentación generada en las campañas se almacenaba en carpetas. Las búsqueda eran eternas, y siempre sin saber en qué carpeta guardó el usuario toda esa información. Esto en Cursar y con Velneo y su servidor de disco está solucionado y, lo mejor de todo, sin ocupar espacio en la base de datos, miles de fotos y pdf&#8217;s, documentos accesibles con un solo clic.</p>
<p><b>Modelos &#8211; Premodelos</b>.</p>
<p>Toda la gestión de modelos y premodelos, fechas de aprobación, calidades, temporadas, carta de colores, tallas, existencias.</p>
<p><b>Medidas modelos.</b></p>
<p>Control de escalados, medidas, rectificaciones, corte, patrón, gestión documental.</p>
<p>Presentaciones de modelos a clientes, versiones, reservas&#8230;</p>
<p><b>Packing List.</b></p>
<p>Aprobaciones de color.</p>
<p>Multialmacén.</p>
<p>Agenda tareas &#8211; departamento &#8211; secciones</p>
<p>Empleados, salarios, vacaciones.</p>
<h1>Control de acceso a tablas, por tabla y usuario</h1>
<p><b>Control de diseño</b>.</p>
<p><b>Modulo de distribución</b>, con control por proceso, tinte, corte, etc..</p>
<p><b>Módulo de control de versiones</b>, un premodelo puede tener múltiples versiones con escandallo por cada una de las versiones.</p>
<p>Y un largo etc..</p>
<p>Resumiendo, nuestro departamento de I+D con esta herramienta ha desarrollado un programa con el cual hemos reducido horas de trabajo al usuario, teniendo a su vez cantidad de información y documentación en la que basar futuros diseños, cálculos de costes, y un largo etc. La información es poder, pero una buena información, filtrada y preparada para que todos la puedan entender.</p>
<p>Los requerimientos iniciales de Grupo Textiles Saroni no eran llegar a un programa que controlara todo, pero los usuarios, visto las posibilidades del sistema, cada día piden cosas nuevas a Cursar. Se puede hacer, pues &#8230;. después de un pequeño estudio, si se puede, &#8220;pero ya tenemos datos&#8221;.</p>
<p>El secreto de la nueva era del software es que este se adapte a la empresa, que sea sencillo y, muy importante, que sea intuitivo y amigable dado que el usuario pasa horas delante del programa. Todo esto nos lo permite Velneo. Nuestro programa nació pensando en la V7, pero no hemos tenido problema para desarrollarlo en V6. Ahora esperamos impacientes la V7, multidioma, multiplataforma, y un largo etc&#8230;</p>
<p>&#8220;Si el problema tiene solución, cual es el problema.&#8221;</p>
<p align="right"><b>Equipo de I+D de Grupo Textiles Saroni.</b></p>
<p align="right">Juan José Pérez Pérez</p>
<p align="right">Héctor Valladares Mangas.</p>
<p align="right">&nbsp;</p>
<p align="right">&nbsp;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/77/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/77/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=77&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/18/exitos-con-velneo-cursar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/acerda_de.jpg" medium="image" />

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/control_pedido_pedido.jpg" medium="image" />
	</item>
		<item>
		<title>Sincronizaciones en Menús</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/18/sincronizaciones-en-menus/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/18/sincronizaciones-en-menus/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 05:53:18 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Objetos visuales]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=64</guid>
		<description><![CDATA[Una de opciones de menú que se suele utilizar es la búsqueda, cualquiera de ellas, Busqueda que devuelve una rejilla con los registros encontrados ( excepto si no hay ninguno ), Busqueda permite vacío que nos devuelve la rejilla aunque sea vacía de contenido o la Búsqueda formulario que nos devuelve el resultado en una [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=64&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://cagonmimantu.files.wordpress.com/2008/02/menu.jpg" title="menu.jpg"></a>Una de opciones de menú que se suele utilizar es la búsqueda, cualquiera de ellas, <em><strong>Busqueda</strong></em> que devuelve una rejilla con los registros encontrados ( excepto si no hay ninguno ), <strong><em>Busqueda permite vacío</em></strong> que nos devuelve la rejilla aunque sea vacía de contenido o la <strong><em>Búsqueda formulario</em></strong> que nos devuelve el resultado en una rejilla si encuentra más de un registro o en el formulario asignado como de modificación en la rejilla asociada a la búsqueda si sólo encuentra un elemento por ese criterio..</p>
<p>Las búsquedas son una de las pistolas que pueden lanzar dos balas. La primera bala es la búsqueda en sí y la segunda puede ser un formulario, un histórico , un gráfico o una página web. La más usada es posiblemente el histórico. Cuando nos movemos por los registros de la búsqueda , va mostrando los valores del histórico de la ficha marcada. Este es un primer paso de sincronización entre dos componentes, una búsqueda y el histórico.</p>
<p>Pero en muchos casos necesitamos movernos por registros de una tabla y que varíen los registros de otra relacionada con</p>
<p>ella sin que la relación sea directamete de maestro-&gt;histórico.</p>
<p>Esto lo podemos solucionar de una manera sencilla con la sin</p>
<p>cronización de búsquedas en un Menú. En los menús, podemos sincronizar varias cosas entre sí: variables globales, búsquedas, casilleros y páginas html. Empecemos por un caso sencillo.</p>
<p>Tenemos una aplicación en la que tenemos una estructura Cabecera de factuas , Lineas de Facturas, Clientes y Artículos.</p>
<p>En la tabla Cabeceras hemos creado un campo fecha y su índice correspondiente, acepta repetidas</p>
<p><img border="0" align="middle" width="680" src="http://cagonmimantu.files.wordpress.com/2008/02/esquema.jpg?w=680&#038;h=312" alt="Esquema" height="312" /></p>
<p>Lo que vamos a hacer primero es crear una sincronización en un menú, con una varible global fecha, en memoria, y una búsqueda de CFacturas por fecha.</p>
<p><img border="0" align="left" width="305" src="http://cagonmimantu.files.wordpress.com/2008/02/fecha.jpg?w=305&#038;h=272" alt="Variable Fecha" height="272" /></p>
<p>El índice por el que vamos a buscar las facturas es la FECHA, de forma parte izquierda de la clave, y resolviendo por el valor de la variable $FECHA$.</p>
<p>Nos queda colocar los controles en un Menú que llamaremos Sincronización.</p>
<p><img border="0" align="left" width="418" src="http://cagonmimantu.files.wordpress.com/2008/02/barra1.jpg?w=418&#038;h=126" alt="Barra del menú" height="126" /></p>
<p>En la barra encontramos los distintos controles que podemos usar. En nuestro caso usaremos un Calendario, que irá asociado a la variable $FECHA$ y una búsqueda que será la que acabamos de crear</p>
<p>También podríamos colocar un control de edición de variable, pero queda mejor en ejecucíón el control calendario.</p>
<p><a href="http://cagonmimantu.files.wordpress.com/2008/02/menu.jpg" title="menu.jpg"></a> Una vez que los dos controles están colocados, tenemos que ver qué control manda.<img border="0" align="right" width="395" src="http://cagonmimantu.files.wordpress.com/2008/02/sincronizar.jpg?w=395&#038;h=439" alt="Menú sicronizado" height="439" /></p>
<p>Al variar la $FECHA$ tendrán que cambiar las facturas y mostrarnos las que sean de esa fecha determinada.</p>
<p>Luego $FECHA$ sincroniza a la búsqueda . Con un único click del botón izquierdo del ratón hacemos que el calendario coja el foco.</p>
<p>En la barra de herramientas, vamos a la opción Controles&#8211;&gt;sincronizar y de las opciones que aparecen escojemos la búsqueda de facturas a fecha.</p>
<p>Con esto ya tenemos sincronizada la variable con la búsqueda.</p>
<p>Este caso es el más sencillo. Veamos a continuación cómo sincronizar dos búsquedas entre sí.</p>
<p>Tenemos el caso de de dos búsquedas, una de clientes ordenadas alfabéticamente ( índice Nombre ) y otra de todas las facturas por cliente (índice Clientes ) y queremos que al movernos por los registros de clientes, varíen las facturas y nos muestre sólo las de ese cliente seleccionado en la rejilla. El método es siempre el mismo.</p>
<p>Primero saber cuál de las dos búsquedas &#8220;manda &#8221; sobre la otra. Al variar el cliente cambian las facturas.</p>
<p>Segundo crear una variable global en memoria que guarde en qué registro de la que manda estamos. Lo habitual y más lógico es guardar el códigod de la ficha.</p>
<p>Tercero. Un proceso con origen ficha de la tabla principal cuya única linea haga que se guarde en la variable global el valor del índice de la ficha.</p>
<p>Cuarto: indicarle a la rejilla usada en la búsqueda principal que tiene que lanzar ese proceso al cambiar de ficha ( flag &#8220;Cambio selección simple &#8221; en la rejilla )</p>
<p>Quinto. Sincronizar la primera con la segunda búsqueda en el menú.</p>
<p>En nuestro ejemplo: la búsqueda de clientes &#8221; manda &#8221; o más correctamente SINCRONIZA  a la búsqueda de facturas. Una variable global en la que guardar el código del clientes seleccionado. Un proceso con origen ficha de Clientes en el que modificamos la anterior variable con el valor del campo código. Este proceso lo asignaremos como el que hay que disparar al activar el flag &#8221; Cambio selección simple &#8221; en la rejilla asociada a la búsqueda de Clientes</p>
<p><img border="0" align="left" width="231" src="http://cagonmimantu.files.wordpress.com/2008/02/sicrocliente.jpg?w=231&#038;h=149" height="149" /></p>
<p>La búsqueda de Facturas la haremos por el índice Clientes, forma de buscar, parte izquierda de la clave y como límite inicial de la búsqueda, la variable en donde hemo guardado el código del cliente.</p>
<p> <img border="0" align="right" width="493" src="http://cagonmimantu.files.wordpress.com/2008/02/proceso1.jpg?w=493&#038;h=168" height="168" /></p>
<p>Por último sólo nos queda hacer que la búsqueda, la de clientes, SINCRONIZA la segunda búsqueda de Cabeceras de Facturas.</p>
<p>Si necesitásemos sincronizar esta segunda búsqueda con otra tercera, solo tenemos que seguir los pasos explicados para conseguirlo.</p>
<p>De este modo en un solo menú podemos tener tantas sincronizaciones como necesitemos.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=64&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/18/sincronizaciones-en-menus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/esquema.jpg" medium="image">
			<media:title type="html">Esquema</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/fecha.jpg" medium="image">
			<media:title type="html">Variable Fecha</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/barra1.jpg" medium="image">
			<media:title type="html">Barra del menú</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/sincronizar.jpg" medium="image">
			<media:title type="html">Menú sicronizado</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/sicrocliente.jpg" medium="image" />

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/proceso1.jpg" medium="image" />
	</item>
		<item>
		<title>Búsquedas en Velneo: un ejemplo sencillo.</title>
		<link>http://cagonmimantu.wordpress.com/2008/02/04/busquedas-en-velneo-un-ejemplo-sencillo/</link>
		<comments>http://cagonmimantu.wordpress.com/2008/02/04/busquedas-en-velneo-un-ejemplo-sencillo/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 12:48:15 +0000</pubDate>
		<dc:creator>Agustin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Inicio]]></category>
		<category><![CDATA[Objetos visuales]]></category>

		<guid isPermaLink="false">http://cagonmimantu.wordpress.com/?p=59</guid>
		<description><![CDATA[A partir de una pregunta aparecida en el foro Oficial de Velneo intentaré explicar cómo hacer búsquedas sencillas con el vDeveloper.
Según expliqué aquí , los índices de una tabla nos permiten tener los datos indexados por varios criterios para luego poder acceder a esos registros mediante las búsquedas.
Supongamos un ejemplo muy sencillo. Tenemos una tabla de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=59&subd=cagonmimantu&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://cagonmimantu.files.wordpress.com/2008/02/cruzada.jpg" title="cruzada.jpg"></a><a href="http://cagonmimantu.files.wordpress.com/2008/02/proceso.jpg" title="proceso.jpg"></a>A partir de<a href="http://forum.velneo.com/es/viewtopic.php?t=18079" title="Búsqueda de registros"> una pregunta aparecida </a>en el <a href="http://forum.velneo.com/es/index.php" title="Foro Oficial Velneo">foro Oficial de Velneo</a> intentaré explicar cómo hacer búsquedas sencillas con el vDeveloper.</p>
<p>Según expliqué <a href="http://cagonmimantu.wordpress.com/2008/01/20/vdeveloper-vayamos-por-partes-ii/">aquí </a>, los índices de una tabla nos permiten tener los datos indexados por varios criterios para luego poder acceder a esos registros mediante las búsquedas.</p>
<p>Supongamos un ejemplo muy sencillo. Tenemos una tabla de Facturas en la que hemos creado dos índices, el índice Código, el propio de Velneo con su característica de clave única y alimentado por el campo Código siguiente al último  y un índice Fecha aceptar repetidas y alimentado por el campo fecha de la Factura.</p>
<p>Vamos a hacer un objeo visual búsqueda en el que mediante un formulario de petición de datos, busquemos una factura concreta por su código. La metodología a seguir, sea cual sea el índice a utilizar es más o menos siempre la misma:</p>
<p>1. Creamos una variable global en la que introducir el dato concreto a buscar. En nuestro caso es el código, de tipo numérico, luego nuestra variable será de tipo numérico, con la misma longitud de rando o superior al campo código y con persistencia en memoria independiente de cada tarea en segundo plano. La llamaremos  FACTURA  ($FACTURA$)</p>
<p>2. Creamos un Formulario para Búsquedas en la tabla Facturas, y en él pondremos un texto estático &#8220;Factura a buscar&#8221; y un control de edición al que le asignaremos la variable $FACTURA$</p>
<p>3. Creamos una búsqueda de la tabla Facturas, índice Código, forma de búsqueda parte izquierda de la clave, contenido inicial del campo la variable $FACTURAS$</p>
<p>4 Formulario inicial de la búsqueda: el que acabamos de crear.</p>
<p> <a href="http://cagonmimantu.files.wordpress.com/2008/02/busqueda.jpg" title="busqueda.jpg"><img src="http://cagonmimantu.files.wordpress.com/2008/02/busqueda.jpg" alt="busqueda.jpg" /></a></p>
<p>Nos quedaría crear una opción de menú con la que lanzar la búsqueda. En ejecución se nos presentará el formulario para pedirnos el código de la factura a buscar y nos devolverá una rejilla con la factura encontrada.</p>
<p>Añadámosle una funcionalidad más a la búsqueda. Supongamos que me interesa usar el mismo formulario para buscar también las facturas entre dos fechas determinadas. Para que nos valga para ambas búsquedas a la vez, usaremos una característica de los índices en las búsquedas que es la condición activa.</p>
<p>Sigamos los mismos pasos.</p>
<p>1.Creamos dos variables globales tipo fecha $Fecha ini$ y $Fecha fin$</p>
<p>2. En el formulario especial para búsquedas ponemos dos controles de edición para poder dar valores a ambas variables fecha.</p>
<p>3. A la búsqueda le añadimos un nuevo índice con mezcla <strong>cruzar</strong>, fecha, forma de búsqueda entre límites, límite inicial $Fecha ini$ y límite final $Fecha fin$. La mezcla <strong>cruzar </strong>nos permite concatenar varios índices en una sola búsqueda. Si los indices están cruzados, la lista mostrada será la que compartan ambos criterios de búsqueda. Es como un Y booleao, los que cumplen un criterio Y los que cumplen el otro.</p>
<p><a href="http://cagonmimantu.files.wordpress.com/2008/02/busqueda.jpg" title="busqueda.jpg"></a><a href="http://cagonmimantu.files.wordpress.com/2008/02/cruzada.jpg" title="cruzada.jpg"><img src="http://cagonmimantu.files.wordpress.com/2008/02/cruzada.jpg" alt="cruzada.jpg" /></a></p>
<p>Usemos en el índice Fechas la condición de activo. Dicha condición al evaluarse su fórmula, hace que la búsqueda por ese índice se realice o no. Es decir si le ponemos una condición y se cumple, realizará la búsqueda con la mezcla que le hayamos indicado y de la forma que hayamos establecido. Lo más lógico en nuestro caso es que se realice entre fechas si se les dan valores a las dos variables globales    ( fCampoVacio( $FECHA-INI$)=0 ) &amp; ( fCampoVacio( $FECHA-FIN$ )=0 ).</p>
<p>Lo mismo podríamos hacer para condicionar la búsqueda por el código  $FACTURA$ ! 0</p>
<p>Debemos por tanto forzar un contenido inicial a las variables cuando abramos el formulario de búsqueda, poner a cero $FACTURA$  y como vacías las dos fechas. Para ello , creamos un proceso con origen ficha de la tabla Factura. Sus tres lineas serán.</p>
<p><a href="http://cagonmimantu.files.wordpress.com/2008/02/proceso.jpg" title="proceso.jpg"><img src="http://cagonmimantu.files.wordpress.com/2008/02/proceso.jpg" alt="proceso.jpg" /></a></p>
<p><strong><font color="#ff0000">Tened en cuenta, que cuando se crea un proceso por primera vez, para que los camios se guarden, hay que salir por el icono de la puerta  , no cerrando con la X la ventana del proceso .</font></strong></p>
<p>Por último nos posicionamos en el formulario especial para búsqueda y con la combinación Alt+Intro accedemos a su cuadro de propiedades y escogeremos este proceso como Proceso a ejecutar al crearse el formulario.</p>
<p><a href="http://cagonmimantu.files.wordpress.com/2008/02/alcrearse.jpg" title="alcrearse.jpg"><img src="http://cagonmimantu.files.wordpress.com/2008/02/alcrearse.jpg" alt="alcrearse.jpg" /></a></p>
<p>Ya tenemos hecha la búsqueda. Si queremos ir añadiendo índices a la misma, sólo tenemos que realizar los pasos y condicionar o no su uso, así como inicializando las variables en el proceso de apertura del formulario.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/cagonmimantu.wordpress.com/59/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/cagonmimantu.wordpress.com/59/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cagonmimantu.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cagonmimantu.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cagonmimantu.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cagonmimantu.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cagonmimantu.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cagonmimantu.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cagonmimantu.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cagonmimantu.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cagonmimantu.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cagonmimantu.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=cagonmimantu.wordpress.com&blog=2302566&post=59&subd=cagonmimantu&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://cagonmimantu.wordpress.com/2008/02/04/busquedas-en-velneo-un-ejemplo-sencillo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b14cc4879cc44ab9d00d4309509a6cb9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">cagonmimantu</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/busqueda.jpg" medium="image">
			<media:title type="html">busqueda.jpg</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/cruzada.jpg" medium="image">
			<media:title type="html">cruzada.jpg</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/proceso.jpg" medium="image">
			<media:title type="html">proceso.jpg</media:title>
		</media:content>

		<media:content url="http://cagonmimantu.files.wordpress.com/2008/02/alcrearse.jpg" medium="image">
			<media:title type="html">alcrearse.jpg</media:title>
		</media:content>
	</item>
	</channel>
</rss>