<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7819636509889805584</id><updated>2011-07-30T20:00:52.946-07:00</updated><category term='ordenar filtrar datatable mauricio moo dromm dataview'/><category term='el sotano desde tooltip dinámico datasource settooltip'/><category term='dr omm el sotano tablas autorefenciadas joins self joins base de datos'/><category term='dr omm el sotano sql server transacciones transact mauricio moo try catch'/><title type='text'>El Sotano</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Julius</name><uri>http://www.blogger.com/profile/10001973857256003120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-635684873504123588</id><published>2010-09-13T12:53:00.000-07:00</published><updated>2010-09-13T12:57:11.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ordenar filtrar datatable mauricio moo dromm dataview'/><title type='text'>Filtrar y Ordenar un DataTable con un DataView</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;Los que usamos &lt;b&gt;DataTables &lt;/b&gt;para llenar controles de .NET como &lt;i&gt;DataGrids, ComboBox, CheckBoxList&lt;/i&gt;, etc., generalmente obtenemos los datos de una consulta &lt;i&gt;SQL&lt;/i&gt;, y como bien saben, en ella podemos agregar filtros y ordenamiento de la información.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;¿Pero que pasa en los casos en que el &lt;b&gt;DataTable &lt;/b&gt;se llena manualmente o los datos son manipulados con código?, por ejemplo la traducción de los Nombres de los Productos. No siempre los filtros o el ordenamiento lo podemos hacer en el origen o mediante una consulta &lt;i&gt;SQL&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Usando algunos de los métodos y propiedades de los &lt;b&gt;DataViews &lt;/b&gt;de &lt;i&gt;System.Data&lt;/i&gt; podemos lograr el objetivo, por ejemplo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//Llenamos un DataTable con la información requerida&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;DataTable myDT = mifuncionLlenado();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//Creamos un DataView com el DataTable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;DataView myDV = new DataView(myDT);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;/*Para ordenar los datos usamos la propiedad Sort del DataView con el campo o los campos con los que queremos hacerlo, muy parecido a SQL*/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;myDV.Sort = "nombreProducto ASC";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;/*Y para filtrarlo usamos la propiedad RowFilter*/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;myDV.RowFilter = "productoTipo = 1";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;//Establecidas las propiedades llenamos un Control con el DataView&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;this.myDataGrid1.DataSource = myDV;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;/*Y todavia podemos llenar otro control con el mismo DataView pero con diferente filtro*/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;myDV.RowFilter = "productoTipo = 2";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;this.myDataGrid.DataSource = myDV;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;El &lt;b&gt;DataView &lt;/b&gt;puede ser la vista de un &lt;b&gt;DataTable &lt;/b&gt;al que se le puede aplicar filtros, ordenamiento, entre otras cosas, pero haciendolo en memoria.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Espero sea de ayuda y apoyo este artículo.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Happy Coding!!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Fuente: &lt;i&gt;http://msdn.microsoft.com/es-es/library/system.data.dataview(VS.80).aspx&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-635684873504123588?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/635684873504123588/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=635684873504123588' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/635684873504123588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/635684873504123588'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2010/09/filtrar-y-ordenar-un-datatable-con-un.html' title='Filtrar y Ordenar un DataTable con un DataView'/><author><name>Mauricio Moo Aguilar (Dr. Omm)</name><uri>http://www.blogger.com/profile/04459603775875774245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_QfAXz9PBcHg/THrtGFMv-AI/AAAAAAAAAc0/hRdSxDN7aNo/S220/yop.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-7370390136881816218</id><published>2010-09-01T11:34:00.001-07:00</published><updated>2010-09-01T11:34:58.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dr omm el sotano sql server transacciones transact mauricio moo try catch'/><title type='text'>Transacciones en SQL Server 2005</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Después de un rato de no estar por aquí regreso con esta pequeña entrada que se me hace muy interesante y sobre todo útil. Las &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Transacciones &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;sobre &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;SQL Server&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; son de mucha ayuda al realizar consultas algo complejas que impliquen afectar de manera riesgosa la integridad de la tablas en la Base de Datos.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Todo lo que se incluya dentro de la sección de la &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Transacción &lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;se realizará, a menos que ocurra un problema, ya que si esto pasa, todo lo que se llevaba hecho hasta entonces regresará a su estado anterior... como si nunca hubiera pasado nada.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Y utilizando el Try... Catch SQL Server podran obtener cierta información el error ocurrido.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;BEGIN TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;BEGIN TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#009900;"&gt;--Codigo riesgoso aqui. Lo que sigue es ejemplo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;declare @d decimal&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;set @d = (select 5 / 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;COMMIT TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;END TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;BEGIN CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;select &lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;'Lo sentimos ocurrio un Error. Revise los siguientes &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;datos para mas información.&lt;/span&gt;' as Mensaje, &lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_number()&lt;/span&gt; AS &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Numero_de_Error, &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_severity()&lt;/span&gt; AS Gravedad_del_Error, &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_state()&lt;/span&gt; AS Estado_del_Error, &lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_procedure()&lt;/span&gt; AS &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Procedimiento_del_Error, &lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_line()&lt;/span&gt; AS Linea_de_Error, &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#CC66CC;"&gt;error_message()&lt;/span&gt; AS Mensaje_de_Error;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;ROLLBACK TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;END CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Como conclusión, el uso de las &lt;i&gt;Transacciones &lt;/i&gt;protege los datos de la Base de Datos ante un error ocurrido durante la ejecución de las &lt;i&gt;querys&lt;/i&gt;. De esa manera, se pueden ejecutar con mucho mas confianza.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Happy Coding!!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-7370390136881816218?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/7370390136881816218/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=7370390136881816218' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/7370390136881816218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/7370390136881816218'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2010/09/transacciones-en-sql-server-2005.html' title='Transacciones en SQL Server 2005'/><author><name>Mauricio Moo Aguilar (Dr. Omm)</name><uri>http://www.blogger.com/profile/04459603775875774245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_QfAXz9PBcHg/THrtGFMv-AI/AAAAAAAAAc0/hRdSxDN7aNo/S220/yop.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-5837567989387978048</id><published>2008-04-03T15:29:00.000-07:00</published><updated>2008-12-10T03:41:31.411-08:00</updated><title type='text'>Calendario en Javascript</title><content type='html'>&lt;div&gt;&lt;div&gt;Crear un calendario en javascript es muy útil, por su aspecto vistoso. La forma para mostrarlo va a ser utilizando un botón y un textbox; es decir al dar clic en el botón se va a mostrar el calendario y después de elegir una fecha, ésta se mostrará en el textbox.&lt;br /&gt;&lt;br /&gt;El procedimiento para realizarlo es el siguiente:&lt;br /&gt;&lt;br /&gt;1. Se agrega en la carpeta del proyecto los scripts (estilos).&lt;br /&gt;&lt;br /&gt;2. Después dentro de &lt;strong&gt;Head&lt;/strong&gt; en el código HTML, se escribe el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_FJO3yvev2-A/R_VgIpIJi1I/AAAAAAAAADI/GUNTXWF1c9w/s1600-h/codigo1_cal.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185156247582247762" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_FJO3yvev2-A/R_VgIpIJi1I/AAAAAAAAADI/GUNTXWF1c9w/s400/codigo1_cal.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_FJO3yvev2-A/R_VarpIJivI/AAAAAAAAACY/2vkaLSypROI/s1600-h/codigo1_cal.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="left"&gt;Es importante mencionar que el calendario que se va a mostrar, va a ser dependiendo de los scripts que nosotros elijamos, ya que existen distintos estilos para mostrar, además de otros idiomas.&lt;br /&gt;&lt;br /&gt;3. Por ultimo, dentro de &lt;strong&gt;body&lt;/strong&gt; en el codigo HTML, se escribe el siguiente código:&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_FJO3yvev2-A/R_VheJIJi2I/AAAAAAAAADQ/aeZ54BP8Ix8/s1600-h/codigo2_cal.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185157716461063010" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_FJO3yvev2-A/R_VheJIJi2I/AAAAAAAAADQ/aeZ54BP8Ix8/s400/codigo2_cal.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_FJO3yvev2-A/R_VbpJIJixI/AAAAAAAAACo/H_1I0jqoZMg/s1600-h/codigo2_cal.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;div align="left"&gt;Donde en &lt;strong&gt;inputField&lt;/strong&gt; va a ir el nombre del textbox, en &lt;strong&gt;ifFormat &lt;/strong&gt;el formato de la fecha que se va a mostrar en el textbox y &lt;strong&gt;button&lt;/strong&gt; el nombre del botón.&lt;br /&gt;&lt;br /&gt;Si se desea presentar el calendario con solo pulsar un textbox, el código es el siguiente:&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/_FJO3yvev2-A/R_VjHJIJi3I/AAAAAAAAADY/ACodjOyWjcM/s1600-h/codigo3_cal.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185159520347327346" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_FJO3yvev2-A/R_VjHJIJi3I/AAAAAAAAADY/ACodjOyWjcM/s400/codigo3_cal.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;Este código es similar al del paso 3, solo que en este caso en &lt;strong&gt;button&lt;/strong&gt; se va a escribir el nombre del textbox, para que cuando pulsemos sobre el textbox se muestre el calendario sin la necesidad de pulsar un botón.&lt;br /&gt;&lt;br /&gt;Espero les sea de gran ayuda este código para crear un calendario. &lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-5837567989387978048?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/5837567989387978048/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=5837567989387978048' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/5837567989387978048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/5837567989387978048'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/04/calendario-en-javascript.html' title='Calendario en Javascript'/><author><name>Gris</name><uri>http://www.blogger.com/profile/02768640145741348902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FJO3yvev2-A/R_VgIpIJi1I/AAAAAAAAADI/GUNTXWF1c9w/s72-c/codigo1_cal.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-1897094146879056727</id><published>2008-04-03T12:40:00.000-07:00</published><updated>2008-12-10T03:41:32.003-08:00</updated><title type='text'>Abrir un popup (ventana emergente) y actualizar la ventana padre</title><content type='html'>&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;La idea principal es abrir un popup (ventana emergente) y producir algún cambio en las variables o base de datos, al mismo tiempo que se presiona un botón y se ven los cambios en la página padre que abrió la ventana emergente. &lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal" face="georgia"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Es muy fácil realizar la actualización, para ell&lt;/span&gt;&lt;span style="font-family:arial;"&gt;o es necesario copiar el siguiente código en las dos ventanas (padre e hijo) como se explica a continuación:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;Ventana Padre&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span lang="ES-MX"&gt;En el &lt;b&gt;load&lt;/b&gt; se escribe e&lt;/span&gt;&lt;span lang="ES-MX"&gt;l siguiente código:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt" align="left"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FJO3yvev2-A/R_U1MpIJirI/AAAAAAAAAB4/AYSO_Ci4xNc/s1600-h/codigo1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185109037301729970" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_FJO3yvev2-A/R_U1MpIJirI/AAAAAAAAAB4/AYSO_Ci4xNc/s400/codigo1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;NOTA: &lt;/span&gt;&lt;/b&gt;&lt;span lang="ES-MX"&gt;La línea que va antes de eventtarget son dos guión bajo&lt;/span&gt;&lt;span lang="ES-MX"&gt; s&lt;/span&gt;&lt;span lang="ES-MX"&gt;eguidos.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt"&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;En el botón &lt;b&gt;Abrir&lt;/b&gt; se escribe el siguiente código para mostrar la ventana emergente o ventana hijo:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18ptfont-family:arial;" &gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_FJO3yvev2-A/R_U2dJIJiuI/AAAAAAAAACQ/hAxhYu_hH5Q/s1600-h/codigo2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185110420281199330" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://1.bp.blogspot.com/_FJO3yvev2-A/R_U2dJIJiuI/AAAAAAAAACQ/hAxhYu_hH5Q/s400/codigo2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18ptfont-family:arial;" &gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: left;font-family:arial;" &gt;&lt;b&gt;&lt;u&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Ventana Hijo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18ptfont-family:arial;" &gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;En el botón &lt;b&gt;Guardar&lt;/b&gt; se escribe el siguiente código para mostrar un mensaje y actualizar:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18ptfont-family:arial;" &gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_FJO3yvev2-A/R_U1npIJitI/AAAAAAAAACI/ajNNFVqdnUo/s1600-h/codigo3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5185109501158197970" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://3.bp.blogspot.com/_FJO3yvev2-A/R_U1npIJitI/AAAAAAAAACI/ajNNFVqdnUo/s400/codigo3.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;b&gt;&lt;span lang="ES-MX"   style="font-family:arial;font-size:85%;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span lang="ES-MX"&gt;NOTA: &lt;/span&gt;&lt;/b&gt;&lt;span lang="ES-MX"&gt;La línea que va antes de &lt;/span&gt;doPostBack&lt;span lang="ES-MX"&gt; son dos guión bajo seguidos.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Como ven, es muy sencillo actualizar los datos.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Espero que les sea de mucha utilidad.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"&gt;&lt;span lang="ES-MX"  style="font-size:11;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-1897094146879056727?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/1897094146879056727/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=1897094146879056727' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/1897094146879056727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/1897094146879056727'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/04/abrir-un-popup-ventana-emergente-y.html' title='Abrir un popup (ventana emergente) y actualizar la ventana padre'/><author><name>Gris</name><uri>http://www.blogger.com/profile/02768640145741348902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_FJO3yvev2-A/R_U1MpIJirI/AAAAAAAAAB4/AYSO_Ci4xNc/s72-c/codigo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-1045687697553052190</id><published>2008-03-11T09:41:00.000-07:00</published><updated>2008-12-10T03:41:32.950-08:00</updated><title type='text'></title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial Narrow&amp;quot;;" lang="ES-MX"&gt;HotSpots en ImageMap …áreas circulares&lt;span style=""&gt;  &lt;/span&gt;en una imagen que causan postbak al dar clic sobre ellas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size: 14pt; font-family: &amp;quot;Arial Narrow&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;El&lt;span style=""&gt;  &lt;/span&gt;control &lt;i style=""&gt;ImageMap&lt;/i&gt; es usado para desplegar una imagen clickeable en una página web que puede ser usada para hacer un &lt;i style=""&gt;PostBack&lt;/i&gt; al&lt;span style=""&gt;  &lt;/span&gt;&lt;i style=""&gt;WebServer&lt;/i&gt;, o para &lt;span style=""&gt; &lt;/span&gt;abrir otra página siguiendo &lt;span style=""&gt; &lt;/span&gt;una URL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Default" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;A diferencia del control &lt;i style=""&gt;ImageButton&lt;/i&gt;, este permite definir regiones &lt;i style=""&gt;“hot-spots” &lt;/i&gt;de formas circulares &lt;i&gt;CircleHotSpot,&lt;span style=""&gt;  &lt;/span&gt;&lt;/i&gt;Rectangulares &lt;i&gt;RectangleHotSpot&lt;/i&gt;, y Poligonales &lt;i&gt;PolygonHotSpot&lt;/i&gt;&lt;span style=""&gt;  &lt;/span&gt;que causan &lt;i style=""&gt;PostBack&lt;/i&gt; cuando el usuario da clic en ellas, mientras que en un &lt;i style=""&gt;ImageButton&lt;/i&gt; dando clic en cualquier parte de la imagen se hace un &lt;i style=""&gt;PostBack.&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;El primer &lt;i style=""&gt;HotSpot&lt;/i&gt; definido toma precedencia sobre los demás, por ejemplo si tenemos dos &lt;i&gt;CircleHotSpot &lt;/i&gt;&lt;span style=""&gt;el primero con un radio menor al segundo y ambos con el mismo centro.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;El círculo menor quedaría dentro del segundo pero su área &lt;i&gt;clickeable&lt;/i&gt; siempre estaría activa y limitada por el área mayor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;Para el siguiente ejemplo, primero Agregaremos un &lt;b style=""&gt;&lt;i&gt;ImageMap&lt;/i&gt;&lt;/b&gt; y un &lt;b style=""&gt;&lt;i&gt;Label&lt;/i&gt;&lt;/b&gt; a nuestra página:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;Como serán utilizadas varias zonas circulares o &lt;i&gt;CircleHotSpot &lt;/i&gt;ara ello he creado un procedimiento que recibe las coordenadas en (x,y) del centro, el radio y la descripción en este caso el valor que será devuelto al hacer el &lt;i&gt;PostBack&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; zona_circular(&lt;span style="color: blue;"&gt;int&lt;/span&gt; x, &lt;span style="color: blue;"&gt;int&lt;/span&gt; y,&lt;span style="color: blue;"&gt;int&lt;/span&gt; radio,&lt;span style="color: blue;"&gt;string&lt;/span&gt; descripcion)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: teal;"&gt;CircleHotSpot&lt;/span&gt; chs;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;chs = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;CircleHotSpot&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;chs.X = x;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;span style=""&gt;        &lt;/span&gt;chs.Y = y;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;chs.Radius = radio;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;chs.PostBackValue = descripcion;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;ImageMap1.HotSpots.Add(chs);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;En el evento &lt;b style=""&gt;&lt;i&gt;Load&lt;/i&gt;&lt;/b&gt; de la página, establecemos la imagen que será mostrada en el &lt;i&gt;ImageMap1&lt;/i&gt;, el &lt;i&gt;AlternateText&lt;/i&gt; que será el comentario mostrado cuando se posicione el Mouse sobre el control y el &lt;i&gt;HotSpotMode&lt;/i&gt; que da el comportamiento para los objetos &lt;i&gt;HotSpot&lt;/i&gt; de un &lt;i&gt;ImageMap&lt;/i&gt; cuando se hace clic en ellos, en este caso es &lt;b style=""&gt;&lt;i&gt;PostBack&lt;/i&gt;&lt;/b&gt; pero puede ser &lt;b style=""&gt;&lt;i&gt;Inactive&lt;/i&gt;&lt;/b&gt; (sin comportamiento), &lt;b style=""&gt;&lt;i&gt;Navigate&lt;/i&gt;&lt;/b&gt; (se desplaza a una URL).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;ImageMap1.ImageUrl = &lt;span style="color: maroon;"&gt;"~/images/homer.jpg"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;ImageMap1.AlternateText = &lt;span style="color: maroon;"&gt;"This is a picture of Homero"&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;ImageMap1.HotSpotMode = &lt;span style="color: teal;"&gt;HotSpotMode&lt;/span&gt;.PostBack;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;Después llamaremos a la función zona_circular(X,Y,Radio,Descripción); &lt;span style=""&gt; &lt;/span&gt;cuantas veces sea necesario de acuerdo a las zonas que deseemos definir:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;zona_circular(124, 151, 6, &lt;span style="color: maroon;"&gt;"Left Eye Center"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;zona_circular(133, 145, 35, &lt;span style="color: maroon;"&gt;"Left Eye"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;zona_circular(193, 145, 6, &lt;span style="color: maroon;"&gt;"Right Eye center"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;zona_circular(183, 173, 20, &lt;span style="color: maroon;"&gt;"Nose"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="ES-MX"&gt;zona_circular(155, 233, 50, &lt;span style="color: maroon;"&gt;"Mouth"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;Finalmente en el evento clic del ImageMap agregamos la siguiente línea:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;Label1.Text = &lt;span style="color: maroon;"&gt;"You clicked the "&lt;/span&gt; + e.PostBackValue;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;Con esta línea traemos el valor asociado al funcionamiento del Hotspot.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;De esta forma cada vez que demos clic en un área hotspot como resultado tendremos en la etiqueta o label el&lt;span style=""&gt;  &lt;/span&gt;valor del PostBack. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-family: Calibri;" lang="ES-MX"&gt;En las imagenes puede apreciarse el mensaje del PostBackValue en el label después de&lt;span style=""&gt;  &lt;/span&gt;haber dado clic en los &lt;i&gt;HotSpots&lt;/i&gt; del&lt;i&gt; ImageMap.&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span  lang="ES-MX" style="font-family:Calibri;"&gt;&lt;i&gt;&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BouCCbKuJQo/R9a626Bsf3I/AAAAAAAAAAg/1Sk9Sg0CRi4/s1600-h/nose.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BouCCbKuJQo/R9a626Bsf3I/AAAAAAAAAAg/1Sk9Sg0CRi4/s320/nose.jpg" alt="" id="BLOGGER_PHOTO_ID_5176530274161033074" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BouCCbKuJQo/R9a7uKBsf6I/AAAAAAAAAA4/9vmV0H933rA/s1600-h/eye.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BouCCbKuJQo/R9a7uKBsf6I/AAAAAAAAAA4/9vmV0H933rA/s320/eye.jpg" alt="" id="BLOGGER_PHOTO_ID_5176531223348805538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-1045687697553052190?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/1045687697553052190/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=1045687697553052190' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/1045687697553052190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/1045687697553052190'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/hotspots-en-imagemap-reas-circulares-en.html' title=''/><author><name>NoobSaibot</name><uri>http://www.blogger.com/profile/06230448147581073508</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BouCCbKuJQo/R9a626Bsf3I/AAAAAAAAAAg/1Sk9Sg0CRi4/s72-c/nose.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-6172592897292747471</id><published>2008-03-11T09:38:00.000-07:00</published><updated>2008-03-11T10:02:32.930-07:00</updated><title type='text'>DataSet, XML y Flash</title><content type='html'>En ocaciones tenemos registros leidos desde la base de datos y almacenados en un DataSet, y se nos ocurre que podremos mostrarla en una aplicacion de Macromedia Flash, pues bien, Flash no tiene un soporte nativo para base de datos, pero si la lectura de archivos XML.&lt;br /&gt;&lt;br /&gt;Pues bien para crear un archivo XML desde el DataSet basta lo siguiente:&lt;br /&gt;&lt;br /&gt;'Esta es una clase que facilita la conexion y la ejecusion de consultas&lt;br /&gt;Dim Conn As New Conectividad() &lt;br /&gt;'Mi Objeto DataSet&lt;br /&gt;Dim ds As New DataSet&lt;br /&gt;'Llenamos el DataSet con el resultado de la consulta&lt;br /&gt;ds = Conn.Consulta("Select * from datos", strError)&lt;br /&gt;'E invocando al metodo WriteXml podemos crear tan facilmente un archivo XML&lt;br /&gt;ds.WriteXml(Server.MapPath("MyXML.XML"), XmlWriteMode.IgnoreSchema)&lt;br /&gt;&lt;br /&gt;Una ves creado el archivo XML, en Flash bastará este script para leer y mostrar cada uno de los registros del XML&lt;br /&gt;&lt;br /&gt;//Este va en el fotograma 1&lt;br /&gt;//Variables globales para control de recorrido por el XML&lt;br /&gt;_global.pos=0;&lt;br /&gt;_global.limite=0;&lt;br /&gt;&lt;br /&gt;//Nuevo Objeto XML&lt;br /&gt;var obj_xml:XML = new XML();&lt;br /&gt;obj_xml.ignoreWhite = true;&lt;br /&gt;//Esta Funcion sera invocada cuando se intente cargar un archivo XML&lt;br /&gt;obj_xml.onLoad = function(exito) {&lt;br /&gt;//La variable exito sera "true" si se cargo bien y "false" si el archivo no    //existe o no se pudo cargar por errores en su estructura&lt;br /&gt; if (exito) {&lt;br /&gt;//Numero de registros&lt;br /&gt;  _global.limite=obj_xml.firstChild.childNodes.length;&lt;br /&gt;//modelo, des y precio son los nombres de las instancias de  componentes TextInput&lt;br /&gt;modelo.text=obj_xml.firstChild.childNodes[_global.pos].childNodes[1].firstChild.nodeValue;&lt;br /&gt;des.text=obj_xml.firstChild.childNodes[_global.pos].childNodes[3].firstChild.nodeValue;&lt;br /&gt;precio.text=obj_xml.firstChild.childNodes[_global.pos].childNodes[2].firstChild.nodeValue;&lt;br /&gt;&lt;br /&gt;//img es una instancia del componente Loader, al cual le indicamos la ruta de la //imagen a mostrar&lt;br /&gt;img.contentPath=obj_xml.firstChild.childNodes[_global.pos].childNodes[4].firstChild.nodeValue;&lt;br /&gt;img.load();&lt;br /&gt;} else {&lt;br /&gt;  trace("Error"); //Que indique que hubo un error si no cargo el archivo&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Esta es la función que invoca la carga del archivo&lt;br /&gt;function cargarXML() {&lt;br /&gt; obj_xml.load("myXML.XML");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Cargamos la funcion al iniciar&lt;br /&gt;cargarXML();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si deseamos un recorrido por cada uno de los registros deberemos incluir un boton de avance y otro de retroceso y escribir el siguiente script&lt;br /&gt;&lt;br /&gt;//Boton retroceso&lt;br /&gt;on (release) {&lt;br /&gt;    //Llamamos a la función de carga del archivo XML&lt;br /&gt; _global.pos--;//Disminuimos la posicion actual&lt;br /&gt; if (_global.pos&lt;0) //Si se paso del indice 0&lt;br /&gt; _global.pos=0; //Lo ponemos en 0&lt;br /&gt;    cargarXML(); //Cargamos el archivo nuevamente, pero con la posicion indicada&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Boton Avanzar&lt;br /&gt;on (release) {&lt;br /&gt;    //Llamamos a la función de carga del archivo XML&lt;br /&gt; _global.pos++;//aumentamos la posicion actual&lt;br /&gt; if (_global.pos&gt;_global.limite - 1) //Si nos pasamos del limite&lt;br /&gt; _global.pos=_global.limite-1;// Ponemos el indice en el ultimo registro&lt;br /&gt;    cargarXML(); //Cargamos nuevamente el archivo&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Espero y alguna ves les sea util este sencillo ejercicio&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-6172592897292747471?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/6172592897292747471/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=6172592897292747471' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/6172592897292747471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/6172592897292747471'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/dataset-xml-y-flash.html' title='DataSet, XML y Flash'/><author><name>Cash.Net</name><uri>http://www.blogger.com/profile/03237342960537328635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_pfO8_62cK3s/TFya6H-9D8I/AAAAAAAAAAM/wOMUSg-pBq4/S220/logo_toluca.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-6226552987012789031</id><published>2008-03-10T08:02:00.000-07:00</published><updated>2008-03-10T08:10:59.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='el sotano desde tooltip dinámico datasource settooltip'/><title type='text'>Desde el sotano....tool tips dinámicos</title><content type='html'>&lt;div style="text-align: justify;"&gt;Cuando utilizamos un &lt;span style="font-style: italic;"&gt;ToolTip&lt;/span&gt; en Visual Studio, solo puede ser utilizado directamente sobre un control de &lt;span style="font-style: italic;"&gt;Windows Forms&lt;/span&gt;, por ejemplo un &lt;span style="font-style: italic;"&gt;TextBox&lt;/span&gt;, una &lt;span style="font-style: italic;"&gt;Label&lt;/span&gt;, un &lt;span style="font-style: italic;"&gt;Button&lt;/span&gt;, etc., ya que solo acepta dos parámetros; el control y la cadena de Texto que mostrará.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;toolTip1.SetToolTip(listBox1, “Este es mi Tip”);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sin embargo, si se deseará que el ToolTip cambiará para cada elemento de un &lt;span style="font-style: italic;"&gt;ListBox&lt;/span&gt; o de un &lt;span style="font-style: italic;"&gt;ComboBox&lt;/span&gt;, no es tan sencillo ya que no acepta en sus parámetros un evento como &lt;span style="font-style: italic;"&gt;SelectedIndex&lt;/span&gt; o &lt;span style="font-style: italic;"&gt;SelectedValue&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En un “&lt;span style="font-style: italic;"&gt;googlazo&lt;/span&gt;” me encontre con un algoritmo que mostraba como realizarlo. Ahora solo faltaba tomar la información de una Base de Datos y que el &lt;span style="font-style: italic;"&gt;ToolTip&lt;/span&gt; cambiará para cada elemento de la lista. Y esto fue lo que sucedió:&lt;br /&gt;&lt;br /&gt;1.- Se considera de antemano que se tiene listo todo el formulario completo, de acuerdo a las necesidades. Así mismo una Base de Datos, por ejemplo, un directorio telefónico. Entre esos controles se encuentra un &lt;span style="font-style: italic;"&gt;ListBox&lt;/span&gt;, el cual fue llenado en su propiedad &lt;span style="font-style: italic;"&gt;DataSource&lt;/span&gt; una consulta hecha a la Base de Datos. Digamos una lista de nombres, y que se desea mostrar en el &lt;span style="font-style: italic;"&gt;ToolTip&lt;/span&gt; su telefono.&lt;br /&gt;&lt;br /&gt;2.- Una vez tomado de la Caja de Controles un &lt;span style="font-style: italic;"&gt;ToolTi&lt;/span&gt;p, nos dirigimos al evento &lt;span style="font-style: italic;"&gt;SelectedIndexChanged&lt;/span&gt; del &lt;span style="font-style: italic;"&gt;listBox1&lt;/span&gt; y comenzamos a codificar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;private void lst_users_SelectedIndexChanged(object sender, EventArgs e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;/*Creamos un nuevo DataTable auxiliar y en el almacenamos el DataSource que contenga el listBox, convirtiendolo previamente*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;DataTable dt_aux_u = (DataTable)this.lst_users.DataSource;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;/*Se prepara una variable de tipo de string que almacenará el texto del ToolTip*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;string telefono = "";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;/*En una variable de tipo entero, se almacena el indíce del elemento seleccionado de la lista, previamente convirtiendolo a entero*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;int index = (int)this.lst_users.SelectedIndex;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;/*Si el indice del elemento seleccionado se encuentra entre el rango de la lista*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;if (index &gt;= 0 &amp;amp;&amp;amp; index &lt;&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;/*La variable telefono almacena del DataTable el valor donde la fila con valor index y la columna “telefono” coincida. Esto esta basado en la Base de Datos*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;telefono = dt_aux_u.Rows[index][“telefono"].ToString();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;//Si lo seleccionado no contiene nada&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;if (telefono =="")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;{&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;//Se prepara un texto especial, para que el ToolTip no se muestre vacio&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;telefono = "Esta persona no tiene telefono";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;/*Al final, establecemos el ToolTip con el control Windows Forms y la Variable*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;this.toolTip1.SetToolTip(this.lst_users, telefono);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.- Cabe determinar que es necesario tener funcionando primero el acceso a la Base de Datos y el llenado del &lt;span style="font-style: italic;"&gt;listBox&lt;/span&gt; correctamente, ya que la informacion para llenar el &lt;span style="font-style: italic;"&gt;Tooltip&lt;/span&gt; lo tomamos del &lt;span style="font-style: italic;"&gt;DataSource&lt;/span&gt; del control.&lt;br /&gt;&lt;br /&gt;Esperando que sea util, así comentarios y sugerencias.&lt;br /&gt;&lt;br /&gt;Dr. Omm &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-6226552987012789031?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/6226552987012789031/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=6226552987012789031' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/6226552987012789031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/6226552987012789031'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/desde-el-sotanotool-tips-dinmicos.html' title='Desde el sotano....tool tips dinámicos'/><author><name>Mauricio Moo Aguilar (Dr. Omm)</name><uri>http://www.blogger.com/profile/04459603775875774245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_QfAXz9PBcHg/THrtGFMv-AI/AAAAAAAAAc0/hRdSxDN7aNo/S220/yop.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-3857470790012231994</id><published>2008-03-07T22:00:00.000-08:00</published><updated>2008-12-10T03:41:33.166-08:00</updated><title type='text'>Imprimir WindowsForms  con vista previa en Visual Basic.NET.</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  lang="ES-TRAD" &gt;En ocasiones tenemos la tarea de imprimir una pantalla o el área cliente de un formulario en tiempo de ejecución con información y controles. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:trebuchet ms;"&gt;&lt;span lang="ES-TRAD"  style="font-size:100%;"&gt;La forma más fácil de hacerlo es utilizando el control &lt;i&gt;PrintForm&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span lang="ES-TRAD"  style="font-size:100%;"&gt;Para utilizarlo antes debemos descargar el  PrintFormComponent 1.0 ó la versión más reciente ya que no viene por default. La versión utilizada en el ejemplo siguiente  puede ser  descargada del siguiente sitio:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;  &lt;/p&gt;&lt;p class="MsoNormal"  style="text-align: left; text-indent: 18pt;font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/vbasic/aa701261.aspx"&gt;http://msdn2.microsoft.com/en-us/vbasic/aa701261.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="line-height: normal;font-family:arial;"&gt;&lt;span lang="ES-TRAD"  style="font-size:100%;"&gt;Existen dos archivos de descarga llamados:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;PrintFormSetup.exe y PrintFormSetup.msi descargamos el .PrintFormSetup.msi y lo instalamos. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="line-height: normal;font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Una vez instalado creamos un proyecto de Visual Basic para WindowsForms y seguimos los pasos siguientes:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="margin-left: 54pt; text-indent: -18pt; line-height: normal;font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;1.  ir al cuadro de herramientas principal en la sección Impresión donde podremos visualizar los controles, PagesetupDialog, PrintDialog, PrintDocument.. entre otros pero notar que no existe uno llamado PrintForm.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-left: 54pt; text-indent: -18pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;2. Dar clic derecho con el mouse y luego en &lt;b&gt;Elegir&lt;/b&gt; &lt;b&gt;elementos..&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-left: 54pt; text-indent: -18pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;3. En la lista de componentes del NET Framework buscar y seleccionar PrintForm.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-left: 54pt; text-indent: -18pt; line-height: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;4. Aceptar y ver el control PrintForm que ha sido agregado al cuadro de herramientas en la sección Impresón.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:arial;"&gt;Imprimir un Formulario windowsForm:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;En el evento clic de un botón, colocar el siguiente código&lt;/span&gt; &lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;PrintForm1.Print()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p  style="text-align: justify;font-family:arial;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:arial;"&gt;Propiedad PrintAction&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;  &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Determina si la salida es enviada directamente a la impresora, si se debe mostrar la imagen en una ventana de vista previa, o guardar la imagen como un archivo PostScript encapsulado.&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;  &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Los valores que admite la propiedad &lt;i style=""&gt;PrintAction&lt;/i&gt; son tres opciones :&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;  &lt;/div&gt;&lt;ul  style="text-align: justify;font-family:arial;" type="disc"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Printing.PrintAction.PrintToPreview      : Ventana de vista previa&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Printing.PrintAction.PrintToFile      : Imprimir a un archivo&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;Printing.PrintAction.PrintToPrinter      : Imprimir&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Pre visualizar un WindowsForm antes de imprimirlo utilizando PrintAction:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;With&lt;/span&gt;&lt;span style="font-size:85%;"&gt; PrintForm1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;     &lt;/span&gt;    .PrintAction = Printing.PrintAction.PrintToPreview&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;     &lt;/span&gt;    .Print(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;, PowerPacks.Printing.PrintForm.PrintOption.CompatibleModeClientAreaOnly)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;End&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; &lt;span style="color:blue;"&gt;With&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;b style=""&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Imprimir hacia un archivo con la propiedad PrintAction&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;pre  style="font-family:courier new;"&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;With&lt;/span&gt;&lt;span style="font-size:100%;"&gt; PrintForm1&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;            &lt;/span&gt;&lt;span style="font-size:100%;"&gt;.PrintAction = Printing.PrintAction.PrintToFile&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;            &lt;/span&gt;&lt;span style="font-size:100%;"&gt;.PrintFileName = Ruta&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;            &lt;/span&gt;&lt;span style="font-size:100%;"&gt;.Print()&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:blue;"&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;End With &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-size:85%;"&gt;&lt;b  style="font-family:arial;"&gt;I&lt;span style=";font-family:arial;font-size:100%;"  &gt;mprimir formulario scrollable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Por defecto, el printForm sólo imprime la parte visible del formulario&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;  &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Si un usuario ha cambiado de tamaño el formulario en tiempo de ejecución, el resultado puede no ser el esperado. &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;  &lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;El procedimiento siguiente muestra cómo imprimir el área cliente del &lt;i style=""&gt;Form&lt;/i&gt; desplegable incluso si se ha cambiado de tamaño en tiempo de ejecución.&lt;/span&gt;&lt;/p&gt;  &lt;pre  style="font-family:courier new;"&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;Private Sub&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Button1_Click( _&lt;/span&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; sender As System.Object, _&lt;/span&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;ByVal&lt;/span&gt;&lt;span style="font-size:85%;"&gt; e As&lt;br /&gt;System.EventArgs)Handles Button1.Click&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;        &lt;/span&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;With &lt;/span&gt;&lt;span style="font-size:85%;"&gt;PrintForm1&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;            &lt;/span&gt;&lt;span style="font-size:85%;"&gt;.PrintAction = Printing.PrintAction.PrintToPrinter&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;            &lt;/span&gt;&lt;span style="font-size:85%;"&gt;.Print(&lt;/span&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;Me&lt;/span&gt;&lt;span style="font-size:85%;"&gt;, PowerPacks.Printing.PrintForm.PrintOption.Scrollable)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;        &lt;/span&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;End With&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p style="font-family: courier new;"&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;End Sub &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Esta es la vista pr&lt;img src="file:///C:/DOCUME%7E1/Alucard/CONFIG%7E1/Temp/moz-screenshot-2.jpg" alt="" /&gt;evia de un formulario antes de imprimirlo.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BouCCbKuJQo/R9IufaBsf2I/AAAAAAAAAAY/XSMU7l4y_Uc/s1600-h/aa701261.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_BouCCbKuJQo/R9IufaBsf2I/AAAAAAAAAAY/XSMU7l4y_Uc/s200/aa701261.jpg" alt="" id="BLOGGER_PHOTO_ID_5175250038899375970" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="file:///C:/DOCUME%7E1/Alucard/CONFIG%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;p&gt;&lt;img src="file:///C:/DOCUME%7E1/Alucard/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /&gt; &lt;/p&gt;&lt;span style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:348pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\Alucard\CONFIG~1\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-3857470790012231994?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/3857470790012231994/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=3857470790012231994' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/3857470790012231994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/3857470790012231994'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/imprimir-windowsforms-con-vista-previa.html' title='Imprimir WindowsForms  con vista previa en Visual Basic.NET.'/><author><name>NoobSaibot</name><uri>http://www.blogger.com/profile/06230448147581073508</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BouCCbKuJQo/R9IufaBsf2I/AAAAAAAAAAY/XSMU7l4y_Uc/s72-c/aa701261.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-2855031545355638321</id><published>2008-03-07T09:15:00.000-08:00</published><updated>2008-12-10T03:41:33.691-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dr omm el sotano tablas autorefenciadas joins self joins base de datos'/><title type='text'>Desde el sotano... historia de una tabla autoreferenciada</title><content type='html'>&lt;div style="text-align: justify;"&gt;Corrian los tiempos en que diseñaba una Base de Datos para un sistemita. La idea era una tabla que almacenará un catálogo de servicios con una descripción, un precio, etc. Al principio, no representaba mucho reto... era relativamente fácil la creación y edición de esta para después realizar las altas, bajas, consultas y modificaciones.&lt;br /&gt;&lt;br /&gt;Pero sucedió lo que a muchos desarrolladores les tiene que pasar algún día. Los requerimientos cambiarón... y una sola tabla no sería suficiente. Ahora era necesario catálogar esos mismos servicios, y tal vez lo primero que viene a la cabeza es crear una tabla mas con los catálogos y relacionarlos con la tabla de servicios.&lt;br /&gt;&lt;br /&gt;Sin embargo, en el caso de este desarrollador que se había dormido en sus clases de Base de Datos en los temas de Joins, SelfJoins, RigthJoins, etc., era algo que le complicaba su trabajo..., tener que crear esa clase de consultas SQL me ponía en un aprieto.&lt;br /&gt;&lt;br /&gt;Tenía que encontrar una manera de resolver el problema sin complicar el acceso a los datos, sobre todo pensando a futuro que las consultas SQL podrían tardarse mucho en ejecutarse debido a la enorme cantidad de datos que algún día manejaría.&lt;br /&gt;&lt;br /&gt;Así que, al método de prueba y error, se modificó el diseño de la tabla agregando dos columnas mas:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QfAXz9PBcHg/R9F-dFSz4oI/AAAAAAAAAK4/gunnYqZ6t1Q/s1600-h/tabla.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_QfAXz9PBcHg/R9F-dFSz4oI/AAAAAAAAAK4/gunnYqZ6t1Q/s400/tabla.png" alt="" id="BLOGGER_PHOTO_ID_5175056484927791746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La columna TIPO y TIPO_RELACION resolvía mi problema. La idea era que cuando se agregará un cátalogo, este tendría automáticamente en su campo TIPO las letras CT que lo identifican como catálogo y en el campo TIPO_RELACION la letra T (o cualquier otra, incluso sin letra) concatenandole el ID del registro, que mas adelante sería utilizado.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QfAXz9PBcHg/R9F_g1Sz4qI/AAAAAAAAALI/_RGvSzwmGdU/s1600-h/tabla2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_QfAXz9PBcHg/R9F_g1Sz4qI/AAAAAAAAALI/_RGvSzwmGdU/s400/tabla2.png" alt="" id="BLOGGER_PHOTO_ID_5175057648863928994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Agregado el catálogo, ahora era posible agregar un servicio que pertenecierá a ese catálogo, relacionado por el campo TIPO_RELACION. La imágen muestra el registro 13, donde se agregó un catálogo, con TIPO CT y TIPO_RELACION C13. Posteriormente, agregando mediante el sistema un servicio, este pertenece al catálogo anterior, colocando en su campo TIPO C13. De esta manera "apuntamos" el servicio a directamente con el catálogo que lo contendrá. Cabe mencionar que el campo TIPO_RELACION se quedo vació ya que este servicio no contendrá a nadie mas.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QfAXz9PBcHg/R9GIlVSz4rI/AAAAAAAAALQ/UEDHEKN0Y2E/s1600-h/tabla3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_QfAXz9PBcHg/R9GIlVSz4rI/AAAAAAAAALQ/UEDHEKN0Y2E/s400/tabla3.png" alt="" id="BLOGGER_PHOTO_ID_5175067621777990322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fue así como conseguí, de pura casualidad una tabla autoreferenciada... o eso me lo dijo un cuate... e investigando me di cuenta que es algo muy útil, pero pocas veces utilizadas en las Bases de Datos. Analizando este método nos dimos cuenta que no solo se aplica en un solo nivel, si no que incluso se presta perfectamente para mas niveles de jerarquía, como por ejemplo, clasificar los catálogos, en otro catálogo, o incluso los servicios, podrían contener en su interior mas servicios y variantes... y a su vez estos. Un estilo de árbol jerarquíco cuya implementación es mas barata que utilizar un sin fín de tablas y relacionarlas todas entre ellas.&lt;br /&gt;&lt;br /&gt;Al final, las tablas autoreferenciadas me han funcionando muy bien, sin ninguna clase de problemas hasta la fecha.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-2855031545355638321?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/2855031545355638321/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=2855031545355638321' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/2855031545355638321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/2855031545355638321'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/desde-el-sotano-historia-de-una-tabla.html' title='Desde el sotano... historia de una tabla autoreferenciada'/><author><name>Mauricio Moo Aguilar (Dr. Omm)</name><uri>http://www.blogger.com/profile/04459603775875774245</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_QfAXz9PBcHg/THrtGFMv-AI/AAAAAAAAAc0/hRdSxDN7aNo/S220/yop.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QfAXz9PBcHg/R9F-dFSz4oI/AAAAAAAAAK4/gunnYqZ6t1Q/s72-c/tabla.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7819636509889805584.post-9023229334262066961</id><published>2008-03-06T07:18:00.000-08:00</published><updated>2008-12-10T03:41:33.913-08:00</updated><title type='text'>Instalación de Mambo</title><content type='html'>&lt;b&gt;Mambo&lt;/b&gt; es un sistema de portales CMS basado en el lenguaje de programaciónPHP y base de datos SQL de código abierto. Basa todo su aspecto en &lt;i&gt;templates&lt;/i&gt; o &lt;i&gt;themes&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Su Instalacion es bien sensilla de realizar&lt;br /&gt;&lt;br /&gt;Como requisitos previos a la instalacion, debemos contar con Servidor Web (&lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt; o IIS), &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; y una Base de Datos (&lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;, &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt;). Teniendo todo esto instalado, creamos una nueva base de datos con el nombre que deseen, la dejan en blanco (no crear ninguna tabla).&lt;br /&gt;&lt;br /&gt;Nos descargamos el &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=25577"&gt;MAMBO&lt;/a&gt; teniendo el .gz o el .zip y lo descomprimimos en la carpeta default de tu servidor Web (C:/inetpub/wwwroot en windows, /var/www/ en linux). Todo lo anterior representa la parte dificil de la instalacion de Mambo.&lt;br /&gt;&lt;br /&gt;Abrimos nuestro navegador (IE, Firefox, Opera, etc) y tecleamos la siguiente direccion http://localhost/mambo-&lt;span style="font-style: italic;"&gt;version.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;La instalacion se muestra como un asistente del tipo siguiente, siguiente, siguiente durante la cual nos pide el usuario y password de la base de datos, el nombre de la base de datos, el nombre del portal, nombre y contraseña para crear el usuario administrador, despues de completar todos los pasos hay que borrar la carpeta instalation y con eso es suficiente para crear un portal de manera rapida, sensilla.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Les dejo un pantallazo de el Mambo instalado en mi maquina&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q1g7X4aMedo/R9AOtM5NhcI/AAAAAAAAAEQ/WqdddSkUcdo/s1600-h/Screenshot-Home+-+El+Sotano+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 314px; height: 227px;" src="http://4.bp.blogspot.com/_q1g7X4aMedo/R9AOtM5NhcI/AAAAAAAAAEQ/WqdddSkUcdo/s200/Screenshot-Home+-+El+Sotano+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5174652141566789058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7819636509889805584-9023229334262066961?l=sotano-dev.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sotano-dev.blogspot.com/feeds/9023229334262066961/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7819636509889805584&amp;postID=9023229334262066961' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/9023229334262066961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7819636509889805584/posts/default/9023229334262066961'/><link rel='alternate' type='text/html' href='http://sotano-dev.blogspot.com/2008/03/instalacin-de-mambo.html' title='Instalación de Mambo'/><author><name>Julius</name><uri>http://www.blogger.com/profile/10001973857256003120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q1g7X4aMedo/R9AOtM5NhcI/AAAAAAAAAEQ/WqdddSkUcdo/s72-c/Screenshot-Home+-+El+Sotano+-+Mozilla+Firefox.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
