<?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:blogger='http://schemas.google.com/blogger/2008' 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-3168236734782657368</id><updated>2024-10-25T04:04:04.558-06:00</updated><category term="RIA"/><category term="SQL"/><category term="ASPX"/><category term="Casos de Uso"/><category term="UML"/><category term="Bases de Datos"/><category term="Estructuras dinámicas"/><category term="Funciones SQL"/><category term="Java"/><category term="Stored Procedures"/><category term="AJAX"/><category term="C#"/><category term="Flex"/><category term="Imagenes"/><category term="Metodología"/><category term="dotNet"/><category term="Ruby"/><category term="WebServices"/><category term="ActiveDirectory"/><category term="Apache"/><category term="Borland"/><category term="Configuracion de Servers"/><category term="Delphi"/><category term="Diagramas de Actividad"/><category term="Diagramas de Contexto"/><category term="ISAPI/DLL"/><category term="JBuilder"/><category term="Libros"/><category term="Menús"/><category term="Python"/><category term="RUP"/><category term="Referencia"/><category term="Seguridad"/><category term="Testing"/><category term="Testing WebApps"/><category term="VB.Net"/><category term="Watir"/><category term="comentario general"/><category term="email"/><category term="hacks"/><category term="lazlo"/><category term="linux"/><category term="ubuntu"/><category term="árboles"/><title type='text'>Softtlan</title><subtitle type='html'>Blog dedicado a temas de desarrollo de Software, Programación, Bases de Datos, Análisis, Diseño, Metodología, y demás...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-1529332276491396575</id><published>2022-04-07T10:29:00.000-05:00</published><updated>2022-04-07T10:29:37.665-05:00</updated><title type='text'>Eliminar todas las gemas de ruby instaladas</title><content type='html'>&lt;a href=&quot;https://www.blogger.com/blogger.g?rinli=1&amp;amp;pli=1&amp;amp;blogID=3168236734782657368&quot;&gt;&lt;/a&gt;

&lt;br /&gt;
En mas de una ocasión, mientras desarrollas en ruby, te topas con problemas con tus aplicaciones que se deben más que nada a incompatibilidad o errores de instalación de las gemas. En el afán de resolver el problema terminas instalando gemas que no querías y no ocupas para nada.
&lt;br /&gt;
&lt;br /&gt;
Una solución radical es eliminar todas las gemas de un solo golpe.&lt;br /&gt;
&lt;br /&gt;
He aquí la sentencia salvadora:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;div&gt;&lt;code&gt;
  
  ruby -e &quot;`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(&#39; &#39;)[0]}` unless line.empty? }&quot;
&lt;/code&gt;
&lt;div&gt;&lt;code&gt;&lt;span style=&quot;background-color: black; color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/1529332276491396575/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2018/08/eliminar-todas-las-gemas-de-ruby.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1529332276491396575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1529332276491396575'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2018/08/eliminar-todas-las-gemas-de-ruby.html' title='Eliminar todas las gemas de ruby instaladas'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-7719176509433838442</id><published>2016-11-27T19:50:00.000-06:00</published><updated>2016-11-27T19:50:35.432-06:00</updated><title type='text'>Configurar MySQL para aplicaciones Rails.</title><content type='html'>Mas de una ocasión he tenido problemas para configurar mysql en aplicaciones Rails. Dejo un breve instructivo para hacerlo en &lt;i&gt;Windows&lt;/i&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1. Copiar la configuración actual de la aplicación en un archivo que nos pueda servir como respaldo.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: black; color: white; padding-left: 10px;&quot;&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;
copy database.yml database.yml.sqlite3&lt;/code&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
2. Respaldar la base de datos y su información.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: black; color: white; padding-left: 10px;&quot;&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;
bundle exec rake db:dump&lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
3. Instalar la gema &lt;b&gt;mysql2 &lt;/b&gt;en modo de compilación desde los fuentes.&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: black; color: white; padding-left: 10px;&quot;&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;gem install mysql2 -s http://rubygems.org -- &#39;--with-mysql-lib=&quot;c:\Program Files\MySQL\MySQL Server 5.5\lib&quot; --with-mysql-include=&quot;c:\Program Files\MySQL\MySQL Server 5.5\include&quot;&#39;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: es importante señalar que para ello debe estar instalado &lt;b&gt;DevKit &lt;/b&gt;para poder compilar desde los fuentes cualquier gema.

&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/7719176509433838442/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2016/11/configurar-mysql-para-aplicaciones-rails.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7719176509433838442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7719176509433838442'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2016/11/configurar-mysql-para-aplicaciones-rails.html' title='Configurar MySQL para aplicaciones Rails.'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-8503669359065667912</id><published>2013-08-01T23:35:00.002-05:00</published><updated>2013-08-01T23:35:36.141-05:00</updated><title type='text'>Pogramadores Copy-Paste from Google &quot;apestan&quot;</title><content type='html'>Ah! Como me caen mal los programadores que piensan que ya todo está hecho en cuanto a temas de programación. Que &quot;San Google&quot; todo se los va a resolver, va a pensar por ellos y con un màgico &quot;copy-paste&quot; ya va a jalar todo el pe...&lt;br /&gt;
&lt;br /&gt;
Y luego presumen sus programas que solo son &quot;pegotes&quot; de algo que encontraron en la web. Lo cual no se dieron a la tarea de investigar si realmente servia. Hacen dos pruebas ped... luego dicen &quot;si jala, ...&quot; y posteriormente se dan a la tarea de seudo-explicar diciendo:&amp;nbsp; &quot;se debe a la transición de la espiroqueta cuántica del Spring en combinación con la inyección de dependencias del Struts&quot;. Y yo pongo cara de &quot;AY NO MA....mmmacita, no los dejes así, explícales ... por fa&#39;&quot;&lt;br /&gt;
&lt;br /&gt;
Neta que se pasan de presumidos y men... s ... ok ya.&lt;br /&gt;
&lt;br /&gt;
No mis niños, no todo se resuelve con copy-paste. San Google si ayuda, pero hay cosas que debes pensar bien, diseñarlas, estructurarlas bien. Luego implementarlas y PROBAR. No hacer las cosas al ch... &quot;ahi se va.&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
He dicho. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3168236734782657368&quot;&gt;&lt;/a&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/8503669359065667912/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2013/08/pogramadores-copy-paste-from-google.html#comment-form' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8503669359065667912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8503669359065667912'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2013/08/pogramadores-copy-paste-from-google.html' title='Pogramadores Copy-Paste from Google &quot;apestan&quot;'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-8027880606139649364</id><published>2013-07-26T23:10:00.001-05:00</published><updated>2013-07-26T23:54:55.979-05:00</updated><title type='text'>Instalar Ruby on Rails con MySql</title><content type='html'>Para instalar Ruby on Rails preparado para conectarse con MySQL como base de datos, en Fedora 17+, sigue los pasos que se describen a continuación:&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
* Despues de haber instalado el paquete para lenguaje Ruby, abre una terminal y ejecuta los siguientes comandos &lt;b&gt;yum&lt;/b&gt; como &lt;b&gt;root&lt;/b&gt; ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# yum install rubygem-rails ruby-mysql                                                &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp;                                                                                     &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# yum install rubygem-mongrel*&amp;nbsp;                                                       &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp;                                                                                     &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;yum install rubygem-json&amp;nbsp;                                                           &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp;                                                                                     &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# yum install rubygem-git&amp;nbsp;                                                            &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;                                      &amp;nbsp;                                               &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# yum install rubygem-actionmailer rubygem-activerecord rubygem-activesupport         
                                                                                      
# yum install ruby-devel&amp;nbsp;                                                             &lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;                                                                                      &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span&gt;ahora puedes crear una aplicación rails para probar tu instalación&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;rails new demo&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;create                                                                 
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/mailers
      create  app/models
      create  app/views/layouts/application.html.erb
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  log
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  public/images
      create  public/images/rails.png
      create  public/stylesheets
      create  public/stylesheets/.gitkeep
      create  public/javascripts
      create  public/javascripts/application.js
      create  public/javascripts/controls.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/effects.js
      create  public/javascripts/prototype.js
      create  public/javascripts/rails.js
      create  script
      create  script/rails
      create  test
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  test/unit
      create  tmp
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  vendor/plugins
      create  vendor/plugins/.gitkeep
&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;por ultimo ejecutas la aplicación&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-size: 12px;&quot;&gt;&lt;span style=&quot;color: #fff2cc;&quot;&gt;&lt;span style=&quot;background-color: black;&quot;&gt;# rails server &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3168236734782657368&quot;&gt;&lt;/a&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/8027880606139649364/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2013/07/instalar-ruby-on-rails-con-mysql.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8027880606139649364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8027880606139649364'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2013/07/instalar-ruby-on-rails-con-mysql.html' title='Instalar Ruby on Rails con MySql'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-6702752714161862151</id><published>2013-07-26T22:32:00.005-05:00</published><updated>2013-07-26T22:37:30.698-05:00</updated><title type='text'>De regreso</title><content type='html'>Hola a todos, amables lectores.&lt;br /&gt;
&lt;br /&gt;
Despues de una larga ausencia, por necesidad de tener una &quot;memoria&quot; de tips y trucos. Y viendo que este humilde y &quot;descuidado&quot; blog tiene una buena cantidad de visitantes. Me siento entusiasmado en regresar. Comenzare a publicar artículos de todo lo relacionado con el desarrollo de software y temas afines, con la esperanza que sean de utilidad.&lt;br /&gt;
&lt;br /&gt;
Gracias a todos.&lt;br /&gt;
&lt;br /&gt;
Reciban un afectuoso saludo desde Monterrey, NL,. Mexico. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB0xYk9zFqNbjExt2zYyPYiLOpafA8rfqS6zNpKfFVoXWIq3ROooLfnrvootvOlSn7aiqTk4kmLGaJpwJSG-6iiKw_5eaPFRw9cOuQMl4y3_mF3WMPvlAvViY4YzlFe8Ko-zVht43vTiEW/s1600/ef4d16d9-a20e-4246-b5a6-63e365434508&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB0xYk9zFqNbjExt2zYyPYiLOpafA8rfqS6zNpKfFVoXWIq3ROooLfnrvootvOlSn7aiqTk4kmLGaJpwJSG-6iiKw_5eaPFRw9cOuQMl4y3_mF3WMPvlAvViY4YzlFe8Ko-zVht43vTiEW/s320/ef4d16d9-a20e-4246-b5a6-63e365434508&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3168236734782657368&quot;&gt;&lt;/a&gt;

&lt;br /&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/6702752714161862151/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2013/07/de-regreso.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6702752714161862151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6702752714161862151'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2013/07/de-regreso.html' title='De regreso'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB0xYk9zFqNbjExt2zYyPYiLOpafA8rfqS6zNpKfFVoXWIq3ROooLfnrvootvOlSn7aiqTk4kmLGaJpwJSG-6iiKw_5eaPFRw9cOuQMl4y3_mF3WMPvlAvViY4YzlFe8Ko-zVht43vTiEW/s72-c/ef4d16d9-a20e-4246-b5a6-63e365434508" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-7650969771661238479</id><published>2007-12-10T15:28:00.000-06:00</published><updated>2007-12-10T16:50:17.968-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Instalar JDK en Linux Ubuntu  (7.04) Feisty Fawn</title><content type='html'>&lt;p&gt;Estoy adentrandome en el fabuloso mundo de linux, después de conocer Windows Vista y experimentar la frustración que produce usar un sistema operativo altamente inestable, pas a experimentar con otro tambien inestable, pero un poco mas seguro. Ubuntu 7.04 Festy Fawn, francamente me ha gustado, asi que de aqui para adelante me considero un fanático Linuxero.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Para empezar comparto mis frustraciones con la instalacion de Java en Ubuntu 7.04, que despues de visitar decenas de paginas y leer no se cuantas instrucciones, la mas efectiva en mi caso fue: Usar Synaptics, el instalador de paquetes de Ubuntu.  Solo basta elegir los paquetes sun, para que todo funcione a la perfeccion.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Lo que se tiene que hacer es:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;1.- Entrar al menu Sistema--&gt;Administracion--&gt;Gestor de Paquetes Synaptic.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2.- Luego seleccione el boton de Buscar y escriba: sun-java, presione enter.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3.- Seleccione los paquetes de java a instalar, comenzando con sun-java5-jdk y sun-java6-bin.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;4.- Haga click en el boton de aplicar, y espere. !Listo¡&lt;/p&gt;&lt;p&gt;&lt;br /&gt;5.- En la linea de comando de una Terminal, verifique a versión de java para comprobar que todo se haya instalado correctamente, con el comando: java -version&lt;/p&gt;&lt;p&gt;La vista debe ser similar a la siguiente:&lt;br /&gt;&lt;/p&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4yD6dYZkVQUMFHvoKlKSpT2Xl15R-5gQHDPll9hH5C3NUgQs-v_Cs6CFUPA7jzPMV16GN7ptD-sbGCeGzKRhtV15niWKZeeuOF1y8TbiL_GhniluX9CjPGjj2HmK5nSspfd1wOBVwC9E5/s1600-h/Pantallazo-Gestor+de+Paquetes+Synaptic+.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4yD6dYZkVQUMFHvoKlKSpT2Xl15R-5gQHDPll9hH5C3NUgQs-v_Cs6CFUPA7jzPMV16GN7ptD-sbGCeGzKRhtV15niWKZeeuOF1y8TbiL_GhniluX9CjPGjj2HmK5nSspfd1wOBVwC9E5/s320/Pantallazo-Gestor+de+Paquetes+Synaptic+.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5142480128336639794&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;p&gt;&lt;br /&gt;Si desea algo diferente, hechele un vistazo a este enlace. &lt;a href=&quot;http://fetishcode.wordpress.com/2007/09/30/instalar-jdk-en-ubuntu-feisty704/&quot;&gt;Installar JDK en ubuntu&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/7650969771661238479/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/12/instalar-jdk-en-linux-ubuntu-7.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7650969771661238479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7650969771661238479'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/12/instalar-jdk-en-linux-ubuntu-7.html' title='Instalar JDK en Linux Ubuntu  (7.04) Feisty Fawn'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4yD6dYZkVQUMFHvoKlKSpT2Xl15R-5gQHDPll9hH5C3NUgQs-v_Cs6CFUPA7jzPMV16GN7ptD-sbGCeGzKRhtV15niWKZeeuOF1y8TbiL_GhniluX9CjPGjj2HmK5nSspfd1wOBVwC9E5/s72-c/Pantallazo-Gestor+de+Paquetes+Synaptic+.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-8522134790528492665</id><published>2007-05-16T11:26:00.000-05:00</published><updated>2007-07-19T14:48:30.066-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><title type='text'>Recolector de emails sencillo en Ruby</title><content type='html'>Estudiando un poco para desenpolvar las neuronas, aqui publico un ejercicio en Ruby, el cual básicamente lo que hace es leer el directorio actual, filtrar archivos que no sean .txt, .htm, o .html. Luego busca linea por linea que haya una cuenta de correo electrónico por medio de una sencilla expresión regular. Y luego lo imprime la(s) cuenta(s) encontrada(s). Con unas pequeñas modificaciones se pueden hacer que en automatico cheque una página, evalue el contenido y se vaya buscando. Rayos, por eso siempre les insistí a mis amigos y contactos de hotmail, que nunca reenvien (forward) las malditas &lt;em&gt;cadenas&lt;/em&gt;, porque solo sirven para recolectar cuentas de correo que luego se usan para el maldito spam.&lt;br /&gt;Aqui esta una prueba contundente:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;FILTER: none; OVERFLOW: scroll; WIDTH: 550px; SCROLLBAR-BASE-COLOR: steelblue; HEIGHT: 350px&quot;&gt;&lt;br /&gt;&lt;!-- &lt;h1&gt;Nuevo video de Edgar &lt;/h1&gt; --&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;puts &lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;email harvester...&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;dirp = &lt;span style=&quot;color:#008080;&quot;&gt;Dir&lt;/span&gt;.open(&lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt; fn &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;in&lt;/b&gt;&lt;/span&gt; dirp&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;case&lt;/b&gt;&lt;/span&gt; fn&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;when&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;^.*\.txt&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;,&lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;^.*\.htm.&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                f = &lt;span style=&quot;color:#008080;&quot;&gt;File&lt;/span&gt;.open(fn)&lt;br /&gt;                f.each &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;do&lt;/b&gt;&lt;/span&gt;  &lt;span style=&quot;color:#008080;&quot;&gt;line&lt;/span&gt;&lt;br /&gt;                        re = &lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;[A-z0-9_\.\[]*@[A-z0-9\.]*&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; line =~ &lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;[A-z0-9_\.]*@[A-z0-9\.]*&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;/&lt;/span&gt;&lt;br /&gt;                                &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;while&lt;/b&gt;&lt;/span&gt; re.match(line)&lt;br /&gt;                                        puts re.match(line)&lt;br /&gt;                                        line = line.sub(re,&lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;                                &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;dirp.close&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/ruby&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/massive email&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;email&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/email harvester&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;email harvester&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/8522134790528492665/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/05/recolector-de-emails-sencillo-en-ruby.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8522134790528492665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8522134790528492665'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/05/recolector-de-emails-sencillo-en-ruby.html' title='Recolector de emails sencillo en Ruby'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-3695125874428780645</id><published>2007-03-26T10:06:00.000-06:00</published><updated>2007-05-07T16:43:00.839-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="Testing"/><category scheme="http://www.blogger.com/atom/ns#" term="Testing WebApps"/><category scheme="http://www.blogger.com/atom/ns#" term="Watir"/><title type='text'>Prueba automatica de aplicaciones web con Ruby</title><content type='html'>&lt;p&gt;Es increible lo que se puede hacer con los lenguajes de programación nuevos. En este caso gracias a &lt;a href=&quot;http://rubyforge.org/&quot;&gt;Ruby&lt;/a&gt; nos es posible automatizar la prueba de nuestras aplicaciones web, mientras vamos desarrollando. Todo sin necesidar de comprar herramientas costosas, como winrun, testrobot, o cualquiera.&lt;br /&gt;&lt;a href=&quot;http://wtr.rubyforge.org/&quot;&gt;WATIR &lt;/a&gt;es el nombre de esta nueva herramienta basada en ruby y con un script tan sencillo como el siguiente, podemos hacer cosas geniales. &lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;overflow: scroll; height: 350px;&quot;&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(160, 32, 240);&quot;&gt;require&lt;/span&gt; &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;watir&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&#39;&lt;/span&gt;   &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;# the watir controller&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;# set a variable&lt;/span&gt;&lt;br /&gt;  test_site = &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&lt;a href=&quot;http://localhost/Sorteo&quot;&gt;http://localhost/Sorteo&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&#39;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;# open the IE browser&lt;/span&gt;&lt;br /&gt;  ie = &lt;span style=&quot;color: rgb(0, 128, 128);&quot;&gt;Watir&lt;/span&gt;::&lt;span style=&quot;color: rgb(0, 128, 128);&quot;&gt;IE&lt;/span&gt;.new&lt;br /&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;# print some comments&lt;/span&gt;&lt;br /&gt;  puts &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;## Beginning of test: Abrir la aplicacion&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;  puts &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  puts &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;Step 1: go to the test site: &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt; + test_site&lt;br /&gt;  ie.goto(test_site)&lt;br /&gt;  puts &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;  Action: login &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt; + test_site + &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt; in the address bar.&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;  ie.text_field(&lt;span style=&quot;color: rgb(0, 128, 128);&quot;&gt;:name&lt;/span&gt;, &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;txtUserName&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;).set(&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;admin&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;  ie.text_field(&lt;span style=&quot;color: rgb(0, 128, 128);&quot;&gt;:name&lt;/span&gt;, &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;txtUserPass&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;).set(&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;admin&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;  ie.button(&lt;span style=&quot;color: rgb(0, 128, 128);&quot;&gt;:name&lt;/span&gt;, &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;btnLogin&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;).click&lt;br /&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; ie.contains_text(&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;Documentos&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;     ie.goto(&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&lt;a href=&quot;http://localhost/Sorteo/AsignacionesABC.aspx&quot;&gt;http://localhost/Sorteo/AsignacionesABC.aspx&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;  &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;&lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;     puts &lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;error al intentar loggearse&lt;/span&gt;&lt;span style=&quot;color: rgb(106, 90, 205);&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;  &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;&lt;b&gt;end&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;El emplo anterior abre una pantalla de entrada (Login) y captura usuario y password, ademas valida que se haya logrado firmar. Simplemente fabuloso... :-)&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/3695125874428780645/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/03/prueba-automatica-de-aplicaciones-web.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3695125874428780645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3695125874428780645'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/03/prueba-automatica-de-aplicaciones-web.html' title='Prueba automatica de aplicaciones web con Ruby'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-1373799338871889253</id><published>2007-03-23T14:49:00.000-06:00</published><updated>2007-03-23T15:13:37.607-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Python morphing o Pythonizando programas</title><content type='html'>&lt;br /&gt;&lt;p&gt;Estoy llevando una clase de programación orientada a objetos con &lt;strong&gt;python&lt;/strong&gt;, y bueno al igual que en muchos otros lenguajes, se nos esta pidiendo que procuremos aprovechar las ventajas o el poder de &lt;strong&gt;python&lt;/strong&gt;; se usa el termino &lt;em&gt;pythonizar&lt;/em&gt; para entender que usando las caracteristicas propias del lenguaje podemos ahorrar pasos y hacer las cosas mas rapido.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Yo no comparto para nada esa idea, sin embargo me parece muy interesante el fenómeno que se observa al &lt;em&gt;pythonizar&lt;/em&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Ejemplo&lt;/strong&gt;: Tenemos un programa que calcula la diferencia en dias, entre dos fechas. Lo que hago es cambiar la fecha a dias, para hacer la resta. Mi estrategia es un poco rudimentaria, cambiar la fecha de formato &lt;strong&gt;dd/mm/aaaa&lt;/strong&gt; al formato &lt;strong&gt;aaaammdd&lt;/strong&gt;. Luego para calcular los dias multiplico aaaa por 365 el mes hago la suma de dias correspondientes hasta el mes actual menos uno y a continuación le sumo el dia. Por ultimo calculo los años bisiestos y le agrego un dia por cada uno. El programa queda como sigue.&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 500px; BORDER-BOTTOM: 1px solid; HEIGHT: 350px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;FILTER: none; OVERFLOW: scroll; WIDTH: 100%; SCROLLBAR-BASE-COLOR: steelblue; HEIGHT: 350px&quot;&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;dias_mes = [31,28,31,30,31,30,31,31,30,31,30,31]&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;def&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;COLOR: #008080&quot;&gt;calcDias&lt;/span&gt;(fecha):&lt;br /&gt;    year = int(fecha[1:4])&lt;br /&gt;    _mes = int(fecha[4:6])-1&lt;br /&gt;    mes = 0&lt;br /&gt;    &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;for&lt;/strong&gt;&lt;/span&gt; i &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; range(_mes):&lt;br /&gt;        mes += dias_mes[i];&lt;br /&gt;&lt;br /&gt;    dias = year * 365 + mes + int(fecha[6:8])&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;    for i in range(year):&lt;br /&gt;         &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/span&gt; i % 4 == 0:&lt;br /&gt;              dias = dias + 1&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; dias&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#fec1 = raw_input(&quot;Fecha1:&quot;)&lt;/span&gt;&lt;br /&gt;fec1 = &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;01/01/2007&lt;/span&gt;&quot;&lt;br /&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#fec2 = raw_input(&quot;Fecha2:&quot;)&lt;/span&gt;&lt;br /&gt;fec2 = &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;15/03/2007&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;def&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;COLOR: #008080&quot;&gt;dateToSAAAAMMDD&lt;/span&gt;(fecha):&lt;br /&gt;    &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; fecha[6:10] + fecha[3:5] + fecha[0:2]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f1 = dateToSAAAAMMDD(fec1)&lt;br /&gt;f2 = dateToSAAAAMMDD(fec2)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;print&lt;/strong&gt;&lt;/span&gt; &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;Entre &lt;/span&gt;&quot; + fec1 + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;y &lt;/span&gt;&quot; + fec2 + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;hay &lt;/span&gt;&quot; + str(calcDias(f2) - calcDias(f1)) + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;dias&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Esta solución es al mas puro estilo del programador &lt;em&gt;cavernícola,&lt;/em&gt; que todo lo quiere resolver desde cero y por si mismo, aunque redescubra el hilo negro (asi como yo). Sin embargo, buscando un poco en nivel de ayuda, nos encontramos con una funcion llamada &lt;strong&gt;toordinal&lt;/strong&gt;() que forma parte de la case date, la cual pasa la fecha a dias en el calendario gregoriano. Con ella el programa se comprime considerablemente.&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 500px; BORDER-BOTTOM: 1px solid; HEIGHT: 250px&quot;&gt;&lt;br /&gt;&lt;div style=&quot;FILTER: none; OVERFLOW: scroll; WIDTH: 100%; SCROLLBAR-BASE-COLOR: steelblue; HEIGHT: 250px&quot;&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#fec1 = raw_input(&quot;Fecha1:&quot;)&lt;/span&gt;&lt;br /&gt;fec1 = &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;01/01/2007&lt;/span&gt;&quot;&lt;br /&gt;&lt;span style=&quot;COLOR: #0000ff&quot;&gt;#fec2 = raw_input(&quot;Fecha2:&quot;)&lt;/span&gt;&lt;br /&gt;fec2 = &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;15/03/2007&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;def&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;COLOR: #008080&quot;&gt;strToDate&lt;/span&gt;(fecha):&lt;br /&gt;    &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/span&gt; date(int(fecha[6:10]) , int(fecha[3:5]) , int(fecha[0:2]))&lt;br /&gt;&lt;br /&gt;f1 = strToDate(fec1)&lt;br /&gt;f2 = strToDate(fec2)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;print&lt;/strong&gt;&lt;/span&gt; &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;Entre &lt;/span&gt;&quot; + fec1 + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;y &lt;/span&gt;&quot; + fec2 + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;hay &lt;/span&gt;&quot; + str(f2.toordinal() - f1.toordinal()) + &quot;&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;dias&lt;/span&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;En fin, esto lo podemos hacer en la mayoria de los lenguajes que consideramos &quot;decentes&quot;, y no necesariamente es una ventaja. Además de que con un sencillo &quot;refactoring&quot; tal vez lleguemos a una solucion mas elegante, visible, o porque no decirlo, artistica. Como dice Kernighan en &quot;&lt;a href=&quot;http://cm.bell-labs.com/cm/cs/tpop/&quot;&gt;La práctica de la programación&lt;/a&gt;&quot; un programa debe estar tan bien escrito que debe dar gusto leerlo. Para este caso, en aplicaciones mas complejas el ahorro de cientos de lineas de código puede tener un impacto considerable en el desempeño de los programas. Eso es innegable.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/oop&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;oop&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/programming&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;programming&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/python&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;python&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/python%20programming&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;python programming&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/1373799338871889253/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/03/python-morphing-o-pythonizando.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1373799338871889253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1373799338871889253'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/03/python-morphing-o-pythonizando.html' title='Python morphing o Pythonizando programas'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-8939259037177610222</id><published>2007-03-22T09:59:00.000-06:00</published><updated>2007-03-22T10:29:09.487-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASPX"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>Manejo alternativo de Ventanas Emergentes en ASPX y C#</title><content type='html'>&lt;p&gt;Cuantas veces no te has visto en la necesidad de que tus aplicaciones web, envien pequeños mensajes al viejo estilo de las aplicaciones &lt;em&gt;desktop,&lt;/em&gt; y ¿cual alternativa nos da dotNet? ninguna, o por lo menos eso parece. Sin embargo, con la experiencia en otras plataformas de desarrollo se van descubriendo alternativas. Tenemos por ejemplo, la facilidad de usar el recurso clásico: JavaScript, pero ¿que sucede si no queremos usar JavaScript? ¿Existe algún otro recurso? La respuesta es siempre si, hay componentes, sin embargo dichos componentes lo que hacen es tambien producir codigo javascript. Tal parece que es imposible deshacerse de él.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Que sucede si queremos que nuestra ventana emergente (&lt;em&gt;popup window&lt;/em&gt;) se vea como en la siguiente imagen:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnIULvTobDXAQ3wZQHSdymexaxakXRnIE8HLq5eGKLNgGFWBb0Sc0ADhGcp6IrEQNmX1HC89N9Duwtw_uO4x8SmXgKPgtiTP3l3pSf3BS7wtsfntCUNDq21JmykMQgSM10TN8jFB4eCGt9/s1600-h/PopupWin01.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnIULvTobDXAQ3wZQHSdymexaxakXRnIE8HLq5eGKLNgGFWBb0Sc0ADhGcp6IrEQNmX1HC89N9Duwtw_uO4x8SmXgKPgtiTP3l3pSf3BS7wtsfntCUNDq21JmykMQgSM10TN8jFB4eCGt9/s400/PopupWin01.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5044785619022075378&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;La respuesta puede venir igualmente desde el paradigma que plantea javascript (ante el cual no estoy en contra, en lo absoluto, al contrario); agregar un DIV en mi HTML de la ASPX y ocultarlo o mostrarlo via JavaScript. Sin embargo esto mismo puede hacerse desde dotNet, C# en este caso. ¿como? simple, cambiar los tags de HTML a componentes dotNet via usar la propiedad &lt;strong&gt;RUNAT=&quot;SERVER&quot;&lt;/strong&gt;. Este sencillisimo truco puede agregar funcionalidad muy util a los tags de HTML al volverlos componentes manejables desde el servidor. Como el manejo de eventos por decir algo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;En este caso basta con crear un DIV o una simple Tabla y añadirle &lt;strong&gt;runat=server&lt;/strong&gt; para extener la funcionalidad y de esa forma cubrir nuestras necesidades. Ejemplo.- Si queremos que despues de guardar los datos de nuestra pantalla de clientes, (figura de arriba), se muestre la ventana de mensaje indicando el resultado, ya haya sido un error o un resultado favorable, debemos hacer lo siguiente:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Añadir el DIV o la Tabla en nuestra pagina ASPX.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Añadir la propiedad &lt;strong&gt;runat=server&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Cambiar establecer la propiedad visible en &lt;strong&gt;false.&lt;/strong&gt; &lt;em&gt;Nota: dicha propiedad no es considerada por defecto en html, pero al extenderlo a control dotnet ya es posible usarla. de otra forma se tendria que modificar la propiedad &lt;strong&gt;style.&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Añadir el codigo de activación de la ventana en los eventos de servidor, en este caso en el on_click del boton &quot;guardar&quot;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Si nuestra ventana la queremos eliminar despues de hacer click, agregamos el codigo de servidor para el evento indicando que ahora la ventana estara invisible.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/C%23&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;C#&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/Popup%20Windows&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Popup Windows&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/dotNet&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;dotNet&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/8939259037177610222/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/03/manejo-alternativo-de-ventanas.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8939259037177610222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/8939259037177610222'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/03/manejo-alternativo-de-ventanas.html' title='Manejo alternativo de Ventanas Emergentes en ASPX y C#'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnIULvTobDXAQ3wZQHSdymexaxakXRnIE8HLq5eGKLNgGFWBb0Sc0ADhGcp6IrEQNmX1HC89N9Duwtw_uO4x8SmXgKPgtiTP3l3pSf3BS7wtsfntCUNDq21JmykMQgSM10TN8jFB4eCGt9/s72-c/PopupWin01.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-5560700410239800841</id><published>2007-03-16T10:39:00.000-06:00</published><updated>2007-07-26T18:00:29.806-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Casos de Uso"/><category scheme="http://www.blogger.com/atom/ns#" term="Metodología"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Tutorial de Casos de Uso (Paso a &amp;#39;pasito&amp;#39;)</title><content type='html'>&lt;p&gt;Si quisieramos aprender a modelar sistemas orientados a objetos por medio de &lt;a href=&quot;http://softtlan.blogspot.com/2007/01/casos-de-uso-introduccin.html&quot;&gt;Casos de Uso&lt;/a&gt;, ¿cuales serían los pasos a seguir? es decir, ¿existe una forma generalmente aceptada que nos diga el &lt;strong&gt;&#39;como&#39;&lt;/strong&gt;, para realizarlos?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bien, efectivamente existe, pero tampoco no es un dogma, son solo guias generales. Dichos pasos son:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Identificar actores&lt;/strong&gt;. Los actores son mejor dicho, los roles que un usuario o usuarios del sistema llevan a cabo en algun momento del tiempo. Tambien pueden ser otros sistemas con los que el &#39;sistema&#39; en proceso de modelado tiene interacción. Ejemplo: Para un sistema de ventas (directas y por catalogo), nuestros actores pueden ser: Vendedor, Cliente, Supervisor de Ventas.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Identificar Metas&lt;/strong&gt; (Metas, objetivos generales o responsabilidades). Todos los actores en el entorno a modelar tienen metas u objetivos, o en su defecto responsabilidades, o en su defecto, acciones que desean realizar u obtener del sistema. Por ejemplo: Para el sistema de Ventas, el Vendedor tiene como meta, objetivo o responsabilidad (&lt;em&gt;Ofrecer productos&lt;/em&gt;, &lt;em&gt;Cerrar Venta&lt;/em&gt;, Ganar mucho dinero via &lt;em&gt;Cobrar comisiones&lt;/em&gt;).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Obtener o identificar los Casos de Uso a partir de las Metas&lt;/strong&gt;. Las metas son importantes porque a partir de su identificación pasamos a realizarlas y estas se convierten en los Casos de Uso, de esta forma tan sencilla obtenemos la información de funcionalidad que requiere nuestro sistema.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Especificar cada Caso de Uso&lt;/strong&gt;. Una vez identificados seguimos a especificarlos uno a uno, es probable que en el &lt;em&gt;inter&lt;/em&gt;, de esos sencillos pasos algunos casos de uso desaparezcan o se fusionen con otros, por ambiguedades detectadas o por detalles que se hayan escapado durante el proceso. Es importante recordar que de eso se trata el &lt;strong&gt;modelado&lt;/strong&gt;, no es indispensable que quede al cien por ciento el modelo desde la primera vez, por eso hay que hacerlo en &lt;em&gt;iteraciones&lt;/em&gt; o ciclos. La especificación de los casos de uso contiene varias partes, las fundamentales son Nombre, Descripcion, Actores, Flujo Principal y Flujos Alternos. Este grupo de elementos constituyen lo que se conoce como plantilla (Template), y nos podemos encontrar un sinnumero de plantillas en la red. Por ejemplo ésta:&lt;/li&gt;&lt;br /&gt;&lt;li style=&quot;LIST-STYLE-TYPE: none&quot;&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Id&lt;/strong&gt;. Clave o numero de control del Caso de Uso&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Nombre&lt;/strong&gt;. Es el &lt;em&gt;Caso de Uso&lt;/em&gt; en si&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Descripción&lt;/strong&gt;. Aqui detallamos lo que el caso de uso resuelve con base a su objetivo primordial.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Actores&lt;/strong&gt;. En esta sección especificamos el actor o actores principales y los actores secundarios o auxiliares en el caso de uso. Podemos detallar su nombre, una breve descripción y en que otros casos de uso intervienen si se desea. Aunque preferentemente esta especificacion se puede hacer por separado en otro documento.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Pre-condiciones&lt;/strong&gt;. Las reglas o condiciones que se deben cumplir antes de que sea iniciado el caso de uso. Por ejemplo, usuario firmado (logged), pago realizado, etc.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Post-condiciones&lt;/strong&gt;. Condiciones que se deben cumplir cuando termine el caso de uso.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Flujo Principal&lt;/strong&gt; En la secuencia de pasos del flujo principal, podemos usar texto solamente numerando cada paso, podemos usar un diagrama de flujo, un diagrama de secuencia, o una grafica de estados para efectos de dar claridad.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Variaciones&lt;/strong&gt;. Aqui listamos los pasos&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Extensiones.&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Requerimientos no funcionales.&lt;/strong&gt;Cualquier elemento indispensable para la realizacion del caso de uso, que no tenga impacto en la funcionalidad.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Diagrama de Contexto.&lt;/strong&gt; Nos ilustra el alcance del caso de uso, entradas y salidas generales.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Diagrama de Navegación.&lt;/strong&gt; Este diagrama nos ayuda a ilustrar el flujo entre las pantallas (prototipo) que tendra el sistema para el caso de uso.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovfEr8suaDSnWwAQjT27mCxP3vWj2wupvXRFIkMTnnr-jA8BMJVOq-ugy2D9uEyFq3rA6YwIRtYQnHiQbwVpfSyIyPP6M3oGcWdAB8xNQExq3aRUMhF78EIs5dLjvITtLDgxFa1qKedSg/s1600-h/image001.gif&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovfEr8suaDSnWwAQjT27mCxP3vWj2wupvXRFIkMTnnr-jA8BMJVOq-ugy2D9uEyFq3rA6YwIRtYQnHiQbwVpfSyIyPP6M3oGcWdAB8xNQExq3aRUMhF78EIs5dLjvITtLDgxFa1qKedSg/s400/image001.gif&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5060812884853294994&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;&lt;strong&gt;Prototipos de Pantallas.&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;noindent&quot; style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;br /&gt;&lt;div style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/UML&quot; rel=&quot;tag&quot;&gt;UML&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/UML%20Tutorials&quot; rel=&quot;tag&quot;&gt;UML Tutorials&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/Use%20Cases&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/Use+Cases&quot; rel=&quot;tag&quot;&gt;&lt;img style=&quot;border:0;vertical-align:middle;margin-left:.4em&quot; src=&quot;http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=Use+Cases&quot; alt=&quot; &quot; /&gt;Use Cases&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/5560700410239800841/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/03/tutorial-de-casos-de-uso-paso.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/5560700410239800841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/5560700410239800841'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/03/tutorial-de-casos-de-uso-paso.html' title='Tutorial de Casos de Uso (Paso a &amp;#39;pasito&amp;#39;)'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiovfEr8suaDSnWwAQjT27mCxP3vWj2wupvXRFIkMTnnr-jA8BMJVOq-ugy2D9uEyFq3rA6YwIRtYQnHiQbwVpfSyIyPP6M3oGcWdAB8xNQExq3aRUMhF78EIs5dLjvITtLDgxFa1qKedSg/s72-c/image001.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-7836368676887029419</id><published>2007-02-22T11:13:00.000-06:00</published><updated>2007-05-17T11:31:39.143-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Casos de Uso"/><category scheme="http://www.blogger.com/atom/ns#" term="Diagramas de Actividad"/><category scheme="http://www.blogger.com/atom/ns#" term="Diagramas de Contexto"/><category scheme="http://www.blogger.com/atom/ns#" term="Metodología"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Casos de Uso - Ejemplos</title><content type='html'>&lt;h3&gt;Sistema de Gestion para un Laboratorio de Analisis Fisico-Quimicos y Microbiologicos&lt;/h3&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;h4&gt;&lt;em&gt;Diagrama de Casos de Uso&lt;/em&gt;&lt;/h4&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;!-- diagrama UC aqui --&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK14kd6dNrhPbwVvPZXuPhGMlxkI7HrWBWxHMoElDSfkXKlrY-QVPgDpV3Xg_jkpSgnR3aO0Yk-xt2YbgXivykflGzGrfF4CaWyuNI8hyphenhyphencxT5Tok9EysxIqDyesoW0O-8VMYHrRLQPiWIk/s1600-h/Use+Case+Diagram.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK14kd6dNrhPbwVvPZXuPhGMlxkI7HrWBWxHMoElDSfkXKlrY-QVPgDpV3Xg_jkpSgnR3aO0Yk-xt2YbgXivykflGzGrfF4CaWyuNI8hyphenhyphencxT5Tok9EysxIqDyesoW0O-8VMYHrRLQPiWIk/s400/Use+Case+Diagram.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5065529848380314866&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;h4&gt;&lt;em&gt;Detalle del &lt;a href=&quot;http://softtlan.blogspot.com/2007/01/casos-de-uso-introduccin.html&quot;&gt;Caso de uso&lt;/a&gt;: Registro de Muestras&lt;/em&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: justify&quot;&gt;&lt;br/&gt;&lt;strong&gt;Descripcion&lt;/strong&gt;&lt;br/&gt;Este caso de uso documenta el proceso de recepción y registro de muestras. Tanto para clientes comunes como para clientes-convenio.&lt;br/&gt;Los clientes comunes entregan la muestra al auxiliar tecnico administrativo, quien llena el formato F-CAL-030-1 con la información de las muestras y los estudios a realizar.&lt;br/&gt;Un cliente convenio puede tener su propio formulario (Hoja de Custodia) para llenado de las muestras recibidas tanto como su manejo.&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Detalles&lt;/strong&gt;&lt;br/&gt;Prioridad: Normal&lt;br/&gt;Estatdo: Casual&lt;br/&gt;Autor: Isidro Leos Viscencio&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Pre condiciones&lt;br/&gt;&lt;/strong&gt;· Los usuarios deben estar firmados (logged)&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Post condiciones&lt;/strong&gt;&lt;br/&gt;Success end condition&lt;br/&gt;&lt;br/&gt;· La muestra es registrada y se puede conocer su estatus (Registro, Almacen, Analisis, Aprobación de Resultados, Informe Listo, Entregado al Cliente, Disposicion, Liberado)&lt;br/&gt;· Se imprime la copia de custodia para cliente, entregable y para-archivo&lt;br/&gt;· Se efectua el registro de entradas y salidas de Almacenamiento:; Anaquel o Refrigerador&lt;br/&gt;· Se efectua el registro de resultados&lt;br/&gt;· Se efectua la autorizacion o rechazo&lt;br/&gt;· Se controlan las modificaciones a custodia - estudios&lt;br/&gt;· Se elabora en automatico el informe de resultados&lt;br/&gt;· Se realiza la generacion y el control de bitácora&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Condicion de fallo&lt;/strong&gt;&lt;br/&gt;El ATA no puede capturar la muestra y no se altera lo anterior&lt;br/&gt;El Responsable de Laboratorio no autoriza los resultados se queda pendiente de autorizacion&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Minimos requisitos&lt;br/&gt;-&lt;br/&gt;Equipo funcionando&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Actores Principales&lt;/strong&gt;&lt;br/&gt;Auxiliar Tecnico Administrativo&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Actores Secundarios&lt;br/&gt;&lt;/strong&gt;Analista de Area Microbiologia&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Escenario principal&lt;/strong&gt;&lt;br/&gt;1. El cliente entrega la muestra al Auxiliar Tecnico Administrativo&lt;br/&gt;2. El Auxiliar Tecnico Administrativo Captura los datos de la muestra (Formato F-CAL-030-1)&lt;br/&gt;3. El Auxiliar Tecnico Administrativo Imprime copia de la Custodia y la entrega al Cliente.&lt;br/&gt;4. El Auxiliar Tecnico Administrativo envía la custodia al Analista de Area Fisico-Quimica y al Analista de Area Microbiologia para realizar analisis.&lt;br/&gt;5. El Auxiliar Tecnico Administrativo lleva las muestras al almacen&lt;br/&gt;6. El Auxiliar Tecnico Administrativo elabora la bitacora&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Extensiones&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1a. Se requiere FAX&lt;br /&gt;&lt;hay/&gt;&lt;br/&gt;1. If ( Hay fax ) then&lt;br/&gt;1.1. Recibir y llenar custodia en base a FAX&lt;br/&gt;2. Else&lt;br/&gt;2.1. Esperar a recibir FAX&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;2a. Existe el Cliente &amp;lt;¿Es cliente nuevo?&amp;gt;&lt;br/&gt;1. Dar de alta al Cliente&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Variaciones&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;~2a. Cliente Convenio&lt;br/&gt;1. Capturar los datos de la muestra utilizando el formato 001 para registrar la muestra&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Diagrama de Flujo&lt;/h4&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXi1YVF-crRRS3WUpxD8F19xIOSBYFSGzZR5_wIB-m2qHsyk9pqtDHRbUSezIwr80BFOTSfw1yi8IMGIDYaZt_SDFEieubK1scr2kH-lV8dvN8krCRjNqKfv96t2Dhz6v3-G9BhaclLiul/s1600-h/Laboratorio+-+Registro+de+Muestras+-+Diagrama+de+Flujo.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXi1YVF-crRRS3WUpxD8F19xIOSBYFSGzZR5_wIB-m2qHsyk9pqtDHRbUSezIwr80BFOTSfw1yi8IMGIDYaZt_SDFEieubK1scr2kH-lV8dvN8krCRjNqKfv96t2Dhz6v3-G9BhaclLiul/s400/Laboratorio+-+Registro+de+Muestras+-+Diagrama+de+Flujo.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5065530535575082242&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Diagrama de Contexto&lt;/h4&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZK_Fh8iWDPpxBUkYEmsgWorMlj8UgmEA6OE06D5bA8EaV-zSDWvmiw98rWjctReIbN3l0JNibXDhilQHjo9dXkxkUxOJnBJ2EiEjMb-fTWCBQZi8Wh3tWuuyfIgGrbZN3LcC2o5shR0xC/s1600-h/Laboratorio+-+Registro+de+Muestras+-+Diagrama+de+Contexto.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZK_Fh8iWDPpxBUkYEmsgWorMlj8UgmEA6OE06D5bA8EaV-zSDWvmiw98rWjctReIbN3l0JNibXDhilQHjo9dXkxkUxOJnBJ2EiEjMb-fTWCBQZi8Wh3tWuuyfIgGrbZN3LcC2o5shR0xC/s400/Laboratorio+-+Registro+de+Muestras+-+Diagrama+de+Contexto.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5065567991984870674&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/7836368676887029419/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/02/casos-de-uso-ejemplos.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7836368676887029419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7836368676887029419'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/02/casos-de-uso-ejemplos.html' title='Casos de Uso - Ejemplos'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK14kd6dNrhPbwVvPZXuPhGMlxkI7HrWBWxHMoElDSfkXKlrY-QVPgDpV3Xg_jkpSgnR3aO0Yk-xt2YbgXivykflGzGrfF4CaWyuNI8hyphenhyphencxT5Tok9EysxIqDyesoW0O-8VMYHrRLQPiWIk/s72-c/Use+Case+Diagram.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-2128659650583241804</id><published>2007-02-20T15:47:00.000-06:00</published><updated>2007-05-04T08:40:58.950-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASPX"/><category scheme="http://www.blogger.com/atom/ns#" term="Bases de Datos"/><category scheme="http://www.blogger.com/atom/ns#" term="Funciones SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Imagenes"/><title type='text'>¿Como almacenar una imagen JPG dentro de una Base de Datos con ASPX y C#?</title><content type='html'>&lt;p&gt;Hace algunos meses escribí un pequeño artículo sobre &lt;a href=&quot;http://softtlan.blogspot.com/2006/10/como-desplegar-una-imagen-jpg-desde-una.html&quot;&gt;como leer una imagen que se encuentra guardada en una base de datos, para desplegarla en una página web ASPX&lt;/a&gt;. Ahora, si nos hacemos la pregunta ¿como fue grabada esa imagen? Bueno, despues de un buen tiempo, aqui subo la respuesta:&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;¿como guardar una imagen en una base de datos?&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style=&quot;overflow: scroll; width: 100%; height: 350px;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;void&lt;/span&gt; &lt;strong&gt;btnSave_Click&lt;/strong&gt;(&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;object&lt;/span&gt; sender, System.EventArgs e)&lt;br /&gt;{&lt;br /&gt;       Int32 iFileLength = System.Convert.ToInt32(&lt;strong&gt;fileUpload&lt;/strong&gt;.PostedFile.InputStream.Length);&lt;br /&gt;       &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;string&lt;/span&gt; sContentType = &lt;strong&gt;fileUpload&lt;/strong&gt;.PostedFile.ContentType;&lt;br /&gt;       &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;string&lt;/span&gt; sFileName = &lt;strong&gt;fileUpload&lt;/strong&gt;.PostedFile.FileName.Substring(&lt;strong&gt;fileUpload&lt;/strong&gt;.PostedFile.FileName.LastIndexOf(&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;&lt;/span&gt;) + &lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;1&lt;/span&gt;);&lt;br /&gt;       &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;byte&lt;/span&gt;[] &lt;span style=&quot;color: rgb(128, 0, 64);&quot;&gt;&lt;strong&gt;bFileDataBuffer&lt;/strong&gt; &lt;/span&gt;= &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;byte&lt;/span&gt;[iFileLength + &lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;1&lt;/span&gt;];&lt;br /&gt;       &lt;strong&gt;fileUpload&lt;/strong&gt;.PostedFile.InputStream.Read(&lt;strong style=&quot;color: rgb(128, 0, 64);&quot;&gt;bFileDataBuffer&lt;/strong&gt;, &lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;0&lt;/span&gt;, iFileLength);&lt;br /&gt;&lt;br /&gt;       &lt;strong&gt;SqlTransaction&lt;/strong&gt; trans=&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;       con.Open();&lt;br /&gt;&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;try&lt;/span&gt;&lt;br /&gt;       {&lt;br /&gt;               trans = con.BeginTransaction();&lt;br /&gt;&lt;br /&gt;               spUploadInsertNew.Transaction = trans;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@DocumentID&quot;&lt;/span&gt;].Value = iDocumentID;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@UserID&quot;&lt;/span&gt;].Value = txtAuthor.Text;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@Title&quot;&lt;/span&gt;].Value = txtTitle.Text;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@FileName&quot;&lt;/span&gt;].Value = sFileName;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@FileData&quot;&lt;/span&gt;].Value = bFileDataBuffer;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@ContentType&quot;&lt;/span&gt;].Value = sContentType;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@DatePosted&quot;&lt;/span&gt;].Value = txtDatePosted.SelectedDate;&lt;br /&gt;               spUploadInsertNew.Parameters[&lt;span style=&quot;color: rgb(255, 0, 255);&quot;&gt;&quot;@FileLength&quot;&lt;/span&gt;].Value = iFileLength;&lt;br /&gt;&lt;br /&gt;               spUploadInsertNew.ExecuteNonQuery();&lt;br /&gt;&lt;br /&gt;               trans.Commit();&lt;br /&gt;&lt;br /&gt;       }&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;       {&lt;br /&gt;               System.Console.WriteLine(ex.ToString());&lt;br /&gt;               trans.Rollback();&lt;br /&gt;       }&lt;br /&gt;       &lt;span style=&quot;color: rgb(128, 64, 64);&quot;&gt;finally&lt;/span&gt;&lt;br /&gt;       {&lt;br /&gt;               con.Close();&lt;br /&gt;       }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Necesitamos un &lt;strong&gt;Stored Procedure&lt;/strong&gt; como el siguiente:&lt;br /&gt;&lt;div style=&quot;border-top: 1px none black; overflow: scroll; width: 100%; height: 350px;&quot;&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Courier New;font-size:10;&quot;  &gt;&lt;br /&gt;&lt;span class=&quot;sql1-comment&quot; style=&quot;color: rgb(0, 128, 0);&quot;&gt;/****** Object:  Stored Procedure dbo.Uploads_I    Script Date: 14/11/2006 03:49:32 p.m. ******/&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 160);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;strong&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 160);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;CREATE&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;PROCEDURE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;dbo&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;sql1-identifier&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;Uploads_I&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@DocumentID&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@UserID&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;CHAR&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;),&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@Title&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;),&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileName&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;),&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileData&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@ContentType&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;VARCHAR&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;),&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@DatePosted&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;DateTime&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileLength&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;Integer&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 128);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;strong&gt;AS&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;strong&gt;BEGIN&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;strong&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;DECLARE&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@UploadID&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-datatype&quot;&gt;Integer&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;strong&gt;SELECT&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@UploadID&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-function&quot; style=&quot;color: rgb(128, 0, 0);&quot;&gt;&lt;strong&gt;ISNULL&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-function&quot; style=&quot;color: rgb(0, 0, 255);&quot;&gt;MAX&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-identifier&quot;&gt;UploadID&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;strong&gt;FROM&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;&lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt;&lt;span class=&quot;sql1-space&quot;&gt;&lt;strong&gt;Uploads&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;strong&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;INSERT&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;INTO&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-identifier&quot;&gt;&lt;strong style=&quot;color: rgb(0, 128, 0);&quot;&gt;Uploads&lt;/strong&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[UploadID] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[DocumentID] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[UserID] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[Title] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[FileName] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[FileData] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[ContentType] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[DatePosted] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-delimitedidentifier&quot;&gt;[FileLength] &lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt;&lt;br /&gt;               &lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;strong&gt;VALUES&lt;/strong&gt;&lt;/span&gt;&lt;span class=&quot;sql1-space&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@UploadID&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@DocumentID&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@UserID&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@Title&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileName&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileData&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@ContentType&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@DatePosted&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;sql1-variable&quot;&gt;@FileLength&lt;/span&gt;&lt;span class=&quot;sql1-symbol&quot;&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;sql1-reservedword&quot;&gt;&lt;strong style=&quot;color: rgb(0, 0, 255);&quot;&gt;END&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/2128659650583241804/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/02/softtlan-como-desplegar-una-imagen-jpg.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/2128659650583241804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/2128659650583241804'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/02/softtlan-como-desplegar-una-imagen-jpg.html' title='¿Como almacenar una imagen JPG dentro de una Base de Datos con ASPX y C#?'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-3049287134757251934</id><published>2007-02-09T12:17:00.000-06:00</published><updated>2007-03-20T09:00:04.026-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Casos de Uso"/><category scheme="http://www.blogger.com/atom/ns#" term="RUP"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Diferencia [Casos de Uso] y [Diagramas de Casos de Uso]</title><content type='html'>&lt;br /&gt;&lt;p&gt;Es importante diferenciar &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;casos de uso&lt;/span&gt; con &lt;span style=&quot;FONT-STYLE: italic&quot;&gt;diagrama de casos de uso&lt;/span&gt;. Tal vez suene un poco confuso, y quizá lo sea. Sin embargo vamos a tratar de hacer la distinción y precisar en que consisten ambos.&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;h4&gt;Casos de Uso&lt;/h4&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;El caso de uso es una serie de cosas, es una técnica de analisis de sistemas, es una tecnica para recopilar requerimientos, puede ser usada como estrategia de desarrollo o conduccion de proyectos de sistemas (Use case driving proyects), y su aplicación se ha vuelto muy importante. El creador de los Casos de uso &lt;a href=&quot;http://www.ivarjacobson.com/home.cfm&quot; title=&quot;Ivar Jackobson&quot;&gt;Ivar Jackobson&lt;/a&gt; se unió a Grady Booch y James Rambaugh en &lt;a href=&quot;http://www.rational.com/&quot;&gt;Rational Rose&lt;/a&gt;, para trabajar en lo que hoy conocemos como &lt;a href=&quot;http://www.uml.org/&quot;&gt;UML&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;Un caso de uso se forma de varios elementos, tiene una estructura, aunque no estandarizada oficialmente, el uso repetitivo en diferentes ambitos, nos permite conocer algunos de esos formatos o plantillas, las cuales por lo general cuentan de lo siguiente:&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;ul&gt;&lt;br /&gt;&lt;li style=&quot;list-style: none&quot;&gt;&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Nombre del Caso de Uso&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Objetivo o Meta General&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Descripcion&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Actores&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Pre-Condiciones&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Post-Condiciones&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Diagrama de Caso de Uso&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flujo de Eventos&lt;br/&gt;&lt;ul&gt;&lt;br /&gt;&lt;li style=&quot;list-style: none&quot;&gt;&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flujo Principal&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flujos Alternos&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Extensiones&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Diagrama de Contexto&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Diagrama de Navegacion (Entre Pantallas)&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Prototipos de Pantallas&lt;br/&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Algunas plantillas presentan manejo de información adicional como control de versiones, autor, fechas, etc.&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;h4&gt;Diagrama de Casos de uso&lt;/h4&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;&lt;br/&gt;El diagrama de casos de uso forma parte del conjunto de herramientas del UML y es muy simple elaborar un diagrama de este tipo. Básicamente se conforma de dos figuras elementales el &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;actor&lt;/span&gt; y el &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;caso de uso&lt;/span&gt;.&lt;br/&gt;Un &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;actor&lt;/span&gt; que puede ser una persona, pero en particular el rol que desempeña dentro del sistema o entorno que estemos analizando, se representa con un &lt;span style=&quot;FONT-STYLE: italic&quot;&gt;muñequito&lt;/span&gt;.&lt;br/&gt;Un &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;caso de uso&lt;/span&gt;, que es una meta, accion, funcion, o tarea que desarrolla uno o varios actores y se representa con un elipse.&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjCb5AAfrEpSgEDGD2SOrezGoIq9lorqTRbKfbJQ6VHrxFL-4CEs3A5ew6NBL_Qf8cB5cUawykVFQUxSOfiT8kWGPAgaLWrh4Hx-P1JCABpEyTV_bxeCPT-n2axJewXPRFmudnGOzKEJLK/s1600-h/Registro_de_Muestras.png&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjCb5AAfrEpSgEDGD2SOrezGoIq9lorqTRbKfbJQ6VHrxFL-4CEs3A5ew6NBL_Qf8cB5cUawykVFQUxSOfiT8kWGPAgaLWrh4Hx-P1JCABpEyTV_bxeCPT-n2axJewXPRFmudnGOzKEJLK/s400/Registro_de_Muestras.png&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; name=&quot;BLOGGER_PHOTO_ID_5031439701668236562&quot; height=&quot;297&quot; width=&quot;400&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5031439701668236562&quot;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWgaHNa-1OMAG3eDfq_mVDtjQEFqp47tr8y4kvA2nd8OFIin4ehruWzl4eqOTHAdW1WhjcSprMlAM3n72-ZaHsE1aHBuXzkVWNiMIh7Kgg9aAN4IeR1icVrRHlhkjaIyxNHJjA3Xn0v4O6/s1600-h/Realizar_Analisis_de_Muestra.png&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWgaHNa-1OMAG3eDfq_mVDtjQEFqp47tr8y4kvA2nd8OFIin4ehruWzl4eqOTHAdW1WhjcSprMlAM3n72-ZaHsE1aHBuXzkVWNiMIh7Kgg9aAN4IeR1icVrRHlhkjaIyxNHJjA3Xn0v4O6/s400/Realizar_Analisis_de_Muestra.png&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; name=&quot;BLOGGER_PHOTO_ID_5031439705963203874&quot; height=&quot;172&quot; width=&quot;400&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5031439705963203874&quot;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Nota:&lt;/strong&gt;Diagramas generados con &lt;a href=&quot;http://www.visual-paradigm.com&quot;&gt;Visual Paradigm Community Edition&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/UML&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;UML&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/Use%20Case%20Diagram&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Use Case Diagram&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/Use%20Cases&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Flickr&lt;/span&gt; : &lt;a href=&quot;http://www.flickr.com/photos/tags/UML&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;UML&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/photos/tags/Use+Case+Diagram&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Use Case Diagram&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/photos/tags/Use+Cases&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/3049287134757251934/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/02/diferencia-casos-de-uso-y-diagramas-de.html#comment-form' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3049287134757251934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3049287134757251934'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/02/diferencia-casos-de-uso-y-diagramas-de.html' title='Diferencia [Casos de Uso] y [Diagramas de Casos de Uso]'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjCb5AAfrEpSgEDGD2SOrezGoIq9lorqTRbKfbJQ6VHrxFL-4CEs3A5ew6NBL_Qf8cB5cUawykVFQUxSOfiT8kWGPAgaLWrh4Hx-P1JCABpEyTV_bxeCPT-n2axJewXPRFmudnGOzKEJLK/s72-c/Registro_de_Muestras.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-4067437601010329392</id><published>2007-01-16T11:33:00.000-06:00</published><updated>2007-04-27T09:34:21.835-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Casos de Uso"/><category scheme="http://www.blogger.com/atom/ns#" term="Metodología"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Casos de Uso - Introducción</title><content type='html'>&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Un caso de uso es una herramienta que sirve para representar la forma como un cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en la cual, los elementos interactuan, a estas acciones se les llama &lt;strong&gt;operaciones&lt;/strong&gt; o &lt;strong&gt;Casos de uso&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;Los casos de uso se utilizan básicamente en el proceso de modelado de sistemas, partiendo de una percepción o perspectiva que nos plantea el paradigma de la &lt;strong&gt;orientación a objetos&lt;/strong&gt;, y en este caso el analisis y diseño orientados a objetos.&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;Los casos de uso forman parte del Lenguaje Unificado de Modelado &lt;a href=&quot;http://www.uml.org/&quot;&gt;UML&lt;/a&gt; por sus siglas en ingles (Unified Modeling Languaje) el cual a su vez se compone de muchas otras herramientas, básicamente diagramas como: Diagramas de Clase, Diagramas de Secuencia, Colaboracíón, Transición de Estados, Diagramas de Actividad, Componentes, Deployment, entre otros. Todas ellas usadas a lo largo de las etapas o ciclo de vida del proceso de desarrollo.&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;La aplicación principal de los casos de uso es en el proceso de análisis y diseño pero de manera particular en la definición de requerimientos del usuario. Es una excelente herramienta de comunicación debido a la sencillez de su elaboración asi como su comprensión. En teoría los usuarios deberían conocer como hacer sus propios casos de uso, pero eso solo es en &quot;teoría&quot;.&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;Un &lt;a href=&quot;http://softtlan.blogspot.com/2007/02/diferencia-casos-de-uso-y-diagramas-de.html&quot;&gt;diagrama de casos de uso &lt;/a&gt;consta de los siguientes elementos: Actor, Casos de Uso y Relaciones.&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Elementos&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;l&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Actor&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Una definición previa, es que un&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Actor&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra&lt;/span&gt; &lt;span style=&quot;font-family:Times New Roman;color:#ff0000;&quot;&gt;rol&lt;/span&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.Como &lt;a href=&quot;http://softtlan.blogspot.com/2007/02/casos-de-uso-ejemplos.html&quot;&gt;ejemplo&lt;/a&gt; para ilustrar la definición anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;l&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Caso de Uso&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;l&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Relaciones&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote style=&quot;margin-top:0;margin-bottom:0;&quot;&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;¡&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Asociación.&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra&lt;/span&gt; operación (caso de uso). Dicha relación se denota con una flecha simple.&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;¡&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Dependencia o Instanciación.&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir,&lt;/span&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;se instancia (se crea). Dicha relación se denota con una flecha punteada.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span style=&quot;font-family:Wingdings;font-size:0;&quot;&gt;¡&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Generalización.&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su&lt;/span&gt; estereotipo, que puede ser de:&lt;/p&gt;&lt;br /&gt;&lt;blockquote style=&quot;margin-top:0;margin-bottom:0;&quot;&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Uso&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;(&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;) o de&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Herencia&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;(&amp;lt;&amp;lt;extends&amp;gt;&amp;gt;).&lt;/span&gt; Este tipo de relación esta orientado exclusivamente para casos de uso (y no para actores).&lt;/p&gt;&lt;br /&gt;&lt;blockquote style=&quot;margin-top:0;margin-bottom:0;&quot;&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;extends.&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Se recomienda utilizar cuando un caso de uso es similar a otro (características).&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;uses.&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;Se recomienda utilizar cuando se tiene un conjunto de características que son similares en&lt;/span&gt; más de un caso de uso y no se desea mantener copiada la descripción de la característica. De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde esta la duda clásica de &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;usar&lt;/span&gt;&lt;/strong&gt; &lt;span style=&quot;font-family:Times New Roman;&quot;&gt;o&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;heredar&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family:Times New Roman;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/Casos%20de%20Uso&quot; rel=&quot;tag&quot;&gt;Casos de Uso&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/Use%20Cases&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Del.icio.us&lt;/span&gt; : &lt;a class=&quot;ztag&quot; href=&quot;http://del.icio.us/tag/Casos+de+Uso&quot; rel=&quot;tag&quot;&gt;Casos de Uso&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://del.icio.us/tag/Use+Cases&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/4067437601010329392/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/01/casos-de-uso-introduccin.html#comment-form' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/4067437601010329392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/4067437601010329392'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/01/casos-de-uso-introduccin.html' title='Casos de Uso - Introducción'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-5952455169338350884</id><published>2007-01-11T16:14:00.000-06:00</published><updated>2007-03-20T08:37:15.414-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Casos de Uso"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Tutorial ultra express de Casos de Uso</title><content type='html'>&lt;br /&gt;&lt;p&gt;He estado evaluando varias herramientas para modelado y me he encontrado con esta que esta genial. ¿Quieres aprender rapidamente a hacer &lt;a href=&quot;http://softtlan.blogspot.com/2007/01/casos-de-uso-introduccin.html&quot;&gt;Casos de Uso&lt;/a&gt;? Visual Use Case es la respuesta:&lt;a href=&quot;http://www.visualusecase.com/index.html&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY47vHeu5mgjKEsRuZ0LOiajzjWQUlxpEamXGoSly-uE0R1mY_m_NHnQPt2dY9E_ulMSl7VxKoXdEbXKwGchM3xYtnWF2-tbva88vzLU5DP5970wJ9C4q9PGeEU62kbFwJ1y-VmM-o5Tvp/s320/visualUseCase.png&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; TEXT-ALIGN: center&quot; name=&quot;BLOGGER_PHOTO_ID_5018920382866898738&quot; height=&quot;71&quot; width=&quot;318&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5018920382866898738&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/Casos%20de%20Uso&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Casos de Uso&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/Tutorials&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Tutorials&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/UML&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;UML&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/Use%20Cases&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Use Cases&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/5952455169338350884/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/01/tutorial-ultra-express-de-casos-de-uso.html#comment-form' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/5952455169338350884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/5952455169338350884'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/01/tutorial-ultra-express-de-casos-de-uso.html' title='Tutorial ultra express de Casos de Uso'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY47vHeu5mgjKEsRuZ0LOiajzjWQUlxpEamXGoSly-uE0R1mY_m_NHnQPt2dY9E_ulMSl7VxKoXdEbXKwGchM3xYtnWF2-tbva88vzLU5DP5970wJ9C4q9PGeEU62kbFwJ1y-VmM-o5Tvp/s72-c/visualUseCase.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-617806199325079988</id><published>2007-01-09T08:57:00.002-06:00</published><updated>2007-01-15T09:03:10.230-06:00</updated><title type='text'>De vuelta</title><content type='html'>Bueno, pues aqui reportandome despues de unas ligeras vacaciones, volvemos a la rutina: levantarse temprano, dirigirse al trabajo, llegar a la oficina, tomar un delicioso cafecito, darle una visitada rapida a los diferentes sitios de internet ya cotidianos, y a repsasar el itinerario. En fin, volvemos a la rutina, a darle duro al trabajo, no hay de otra.&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/617806199325079988/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2007/01/de-vuelta.html#comment-form' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/617806199325079988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/617806199325079988'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2007/01/de-vuelta.html' title='De vuelta'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-2806052172072573847</id><published>2006-12-18T09:21:00.000-06:00</published><updated>2007-01-11T18:02:58.457-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Borland"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="JBuilder"/><title type='text'>El mejor IDE ahora en versión Open Source - JBuilder2007</title><content type='html'>&lt;p&gt;Esto me ha llegado a mi buzón de correo, es una excelente noticia. JBuilder 2007 es ahora un producto de código abierto. Cuídense eclipse y netbeans. :-)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;------------&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Estimado Desarrollador de Java:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;¿Cómo puede Usted avanzar hacia la meta del código abierto sin sacrificar su productividad, la eficiencia del equipo y la confiabilidad de su ambiente de desarrollo? ¡Con un IDE diseñado exclusivamente para alcanzar este objetivo!&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;&lt;br /&gt;&lt;/span&gt;El nuevo JBuilder 2007, compatible con versiones anteriores de JBuilder, integra las reconocidas herramientas de desarrollo rápido de aplicaciones (RAD) y los frameworks de colaboración de JBuilder con la plataforma abierta Eclipse. Ahora Usted puede crear aplicaciones empresariales sólidas y poderosas - en forma individual y en equipo - ¡más rápido que nunca! ¡También recibe una copia de JBuilder 2006 en la misma caja! Todo esto, más un descuento especial de actualización, si actúa con rapidez y hace &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://www.borland.com/us/products/jbuilder/index.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color:#b02a17;&quot;&gt;clic aquí&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color:#b02a17;&quot;&gt;.&lt;/span&gt; ¡Solo JBuilder 2007 le ofrece la combinación de factores de éxito que son actualmente indispensables para todo desarrollador de Java!&lt;script type=&quot;text/javascript&quot; space=&quot;preserve&quot;&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&amp;amp;lt;!--&lt;br /&gt;D([&quot;mb&quot;,&quot;&lt;br /&gt; &lt;br /&gt; &lt;span&amp;amp;gt;velocidad&lt;\/span&amp;amp;gt;&gt; &lt;span&amp;amp;gt;¡ábrase&gt; el desarrollo Web a velocidad &amp;amp;lt;i&gt;warp&lt;\/i&amp;amp;gt;!&lt;br /&gt; &lt;span&amp;amp;gt;&gt;&lt;\/span&amp;amp;gt; \n&amp;amp;lt;\/span&amp;amp;gt;JBuilder 2007 viene con una paleta de herramientas JBuilder de productividad comprobada, especialmente mejoradas para brindar más \nventajas que nunca. La completa estación de trabajo para desarrollo gráfico ahora brinda Servicios Web SOA visuales de dos vías \ny desarrollo EJB, soporte para las tecnologías Java y plataformas AppServer más recientes, además de modelado completo en  \nUML 2.0 para Java, con ingeniería LiveSource en ambos sentidos. También tiene al JBuilder Optimizeit ™, para realizar la \noptimización del rendimiento y la depuración avanzada de defectos.&amp;amp;lt;br&gt; &lt;br /&gt; &lt;br /&gt; &lt;span&amp;amp;gt;balance&lt;\/span&amp;amp;gt;&lt;br /&gt; \n&amp;amp;lt;span&amp;amp;gt;Administración eficiente de sus proyectos complejos, integrando &amp;amp;lt;br&gt; diversos equipos de desarrollo y diferentes husos \nhorarios.&amp;amp;lt;br&gt; &lt;span&amp;amp;gt;&gt;&lt;\/span&amp;amp;gt;              &lt;\/span&amp;amp;gt;JBuilder TeamInsight mantiene sincronizados y al día a los equipos \ninvolucrados en el proyecto.  Viene con un &amp;amp;amp;quot;stack&amp;amp;amp;quot; (acervo) integrado y configurable de las mejores soluciones de código abierto \n- para el control colaborativo del código, requerimientos de proyectos, seguimiento de defectos y administración de proyectos.&amp;amp;lt;br&gt; \n&amp;amp;lt;br&gt; &lt;br /&gt; &lt;span&amp;amp;gt;&gt; &lt;span&amp;amp;gt;componentes&gt; garantía de un ambiente comercial de desarrollo.&amp;amp;lt;br&gt; &lt;span&amp;amp;gt;&gt;&lt;\/span&amp;amp;gt;              &lt;\/span&amp;amp;gt;Ahora Usted puede \naprovechar los cientos de mejoras que se encuentran disponibles, ya sea de parte de la plataforma de código abierto Eclipse como de parte de los \n&quot;plug-ins&quot; comerciales. Al ser una solución comercial reconocida, JBuilder 2007 le brinda a los desarrolladores la confianza de que \npodrán expandir sus capacidades a través de un solo punto de descarga e integración de código abierto y \ntecnologías comerciales, permaneciendo en un ambiente controlado.&amp;amp;lt;br&gt; &lt;span&amp;amp;gt;&gt;&lt;\/span&amp;amp;gt; JBuilder 2007 realmente mete \nel acelerador a su desarrollo en Java de código abierto y con nuestro descuento de actualización el sentarse tras el volantes es muy \nfácil. Tome el control de su ambiente de desarrollo en Java ahora mismo: elija la edición de JBuilder 2007 que le convenga y haga su \npedido hoy.          &quot;,1]&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;//--&amp;amp;gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;Velocidad&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;¡Ábrase camino a través de Java, el código abierto y&lt;br /&gt;el desarrollo Web a velocidad &lt;em&gt;warp&lt;/em&gt;!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;JBuilder 2007 viene con una paleta de herramientas JBuilder de productividad comprobada, especialmente mejoradas para brindar más ventajas que nunca. La completa estación de trabajo para desarrollo gráfico ahora brinda Servicios Web SOA visuales de dos vías y desarrollo EJB, soporte para las tecnologías Java y plataformas AppServer más recientes, además de modelado completo en UML 2.0 para Java, con ingeniería LiveSource en ambos sentidos. También tiene al JBuilder Optimizeit ™, para realizar la optimización del rendimiento y la depuración avanzada de defectos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;Balance&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;Administración eficiente de sus proyectos complejos, integrando&lt;br /&gt;diversos equipos de desarrollo y diferentes husos horarios.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;JBuilder TeamInsight mantiene sincronizados y al día a los equipos involucrados en el proyecto. Viene con un &quot;stack&quot; (acervo) integrado y configurable de las mejores soluciones de código abierto - para el control colaborativo del código, requerimientos de proyectos, seguimiento de defectos y administración de proyectos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;Seguridad&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size:0;&quot;&gt;Componentes y herramientas de código abierto con la&lt;br /&gt;garantía de un ambiente comercial de desarrollo.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Ahora Usted puede aprovechar los cientos de mejoras que se encuentran disponibles, ya sea de parte de la plataforma de código abierto Eclipse como de parte de los &quot;plug-ins&quot; comerciales. Al ser una solución comercial reconocida, JBuilder 2007 le brinda a los desarrolladores la confianza de que podrán expandir sus capacidades a través de un solo punto de descarga e integración de código abierto y tecnologías comerciales, permaneciendo en un ambiente controlado.&lt;br /&gt;&lt;p&gt;&lt;span style=&quot;font-size:0;&quot;&gt;&lt;br /&gt;Atentamente,&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;El Equipo JBuilder 2007 de Borland&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/2806052172072573847/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/12/el-mejor-ide-ahora-en-versin-open.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/2806052172072573847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/2806052172072573847'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/12/el-mejor-ide-ahora-en-versin-open.html' title='El mejor IDE ahora en versión Open Source - JBuilder2007'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-6833493478961971983</id><published>2006-11-03T14:04:00.000-06:00</published><updated>2006-11-03T14:08:01.858-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASPX"/><category scheme="http://www.blogger.com/atom/ns#" term="dotNet"/><category scheme="http://www.blogger.com/atom/ns#" term="VB.Net"/><title type='text'>Componente para ventanas emergentes (PopUp Windows en dotNet)</title><content type='html'>Componente para ventanas emergentes (&lt;strong&gt;PopUpWindows&lt;/strong&gt;) estílo MSN Messenger. &lt;br /&gt;&lt;br /&gt;http://www.codeproject.com/aspnet/asppopup.asp&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/6833493478961971983/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/11/componente-para-ventanas-emergentes.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6833493478961971983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6833493478961971983'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/11/componente-para-ventanas-emergentes.html' title='Componente para ventanas emergentes (PopUp Windows en dotNet)'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-1803601330050692848</id><published>2006-10-25T10:43:00.000-05:00</published><updated>2006-10-25T10:49:50.889-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASPX"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="dotNet"/><category scheme="http://www.blogger.com/atom/ns#" term="Estructuras dinámicas"/><category scheme="http://www.blogger.com/atom/ns#" term="Funciones SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Menús"/><category scheme="http://www.blogger.com/atom/ns#" term="WebServices"/><title type='text'>Menu de árbol - TreeView en ASPX y C#</title><content type='html'>&lt;a href=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/1600/TreeViewDyn.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;&quot; src=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/1600/TreeViewDyn.png&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;--- ASPX ---&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;&amp;lt;%&lt;/font&gt;@ &lt;font color=&quot;#008080&quot;&gt;Page&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;language&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;c#&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;Codebehind&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;Menu.aspx.cs&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;AutoEventWireup&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;false&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;Inherits&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;Sorteo.Menu&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;%&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot; &amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;HTML&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;HEAD&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;TITLE&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&lt;b&gt;Menu&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;TITLE&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;META&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;content&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Microsoft Visual Studio .NET 7.1&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;name&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;GENERATOR&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;META&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;content&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;C#&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;name&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;CODE_LANGUAGE&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;META&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;content&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;JavaScript&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;name&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;vs_defaultClientScript&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;META&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;content&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;a href=&quot;http://schemas.microsoft.com/intellisense/ie5&quot;&gt;http://schemas.microsoft.com/intellisense/ie5&lt;/a&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;name&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;vs_targetSchema&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;LINK&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;href&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;default.css&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;type&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;rel&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;        &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;HEAD&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;BODY&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; ms_positioning=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;GridLayout&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;!&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;--&amp;lt;FORM runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                        &amp;lt;TABLE width=&amp;quot;100%&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                &amp;lt;TR&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;TD colspan=&amp;quot;3&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                &amp;lt;DIV style=&amp;quot;BACKGROUND-IMAGE: url(&lt;a href=&quot;http://localhost/Sorteo/images/logo&quot;&gt;http://localhost/Sorteo/images/logo&lt;/a&gt; sorteo jaguar ur - watermark 1.jpg);WIDTH: 783px;POSITION: relative;HEIGHT: 144px&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                        ms_positioning=&amp;quot;GridLayout&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                        &amp;lt;ASP:IMAGE id=&amp;quot;Image1&amp;quot; style=&amp;quot;Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px&amp;quot; runat=&amp;quot;server&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                                height=&amp;quot;128px&amp;quot; width=&amp;quot;128px&amp;quot; imageurl=&amp;quot;images/logo sorteo jaguar ur.jpg&amp;quot;&amp;gt;&amp;lt;/ASP:IMAGE&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                        &amp;lt;ASP:LABEL id=&amp;quot;Label1&amp;quot; style=&amp;quot;Z-INDEX: 102; LEFT: 152px; POSITION: absolute; TOP: 24px&amp;quot; runat=&amp;quot;server&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                                width=&amp;quot;352px&amp;quot; font-size=&amp;quot;XX-Large&amp;quot; font-names=&amp;quot;Times New Roman&amp;quot;&amp;gt;Sorteo Jaguar UR&amp;lt;/ASP:LABEL&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                        &amp;lt;ASP:LABEL id=&amp;quot;lblSorteo&amp;quot; style=&amp;quot;Z-INDEX: 103; LEFT: 512px; POSITION: absolute; TOP: 24px&amp;quot;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                                runat=&amp;quot;server&amp;quot; font-size=&amp;quot;XX-Large&amp;quot; font-names=&amp;quot;Times New Roman&amp;quot;&amp;gt;2006&amp;lt;/ASP:LABEL&amp;gt;&amp;lt;/DIV&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;/TD&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                &amp;lt;/TR&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                &amp;lt;TR&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;TD width=&amp;quot;209&amp;quot; style=&amp;quot;WIDTH: 209px&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                                &amp;lt;DIV style=&amp;quot;MARGIN: 0px; OVERFLOW: scroll; WIDTH: 208px; CLIP: rect(0px auto auto 0px); POSITION: static; HEIGHT: 500px&amp;quot;&amp;gt;--&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;DIV&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SCRIPT&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; languaje=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        classPath = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;class.tree&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2blank = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2blank.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2doc = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2doc.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2folderclosed = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2folderclosed.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2folderopen = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2folderopen.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2lastnode = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2lastnode.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2link = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2link.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2mlastnode = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2mlastnode.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2mnode = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2mnode.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2node = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2node.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2plastnode = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2plastnode.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2pnode = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2pnode.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        ftv2vertline = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ftv2/ftv2vertline.gif&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        basefrm = &lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;main&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SCRIPT&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SCRIPT&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;src&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;class.tree/ftiens4.js&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;type&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;                        &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SCRIPT&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SPAN&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;id&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;spnJavaScript&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt; runat=&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;server&amp;quot;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SPAN&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;DIV&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;&amp;lt;!&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;--&amp;lt;/TD&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;TD width=&amp;quot;60%&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;middle&amp;quot;&amp;gt;&amp;lt;IMG height=&amp;quot;400&amp;quot; alt=&amp;quot;&amp;quot; src=&amp;quot;images/logo sorteo jaguar ur - fondo.jpg&amp;quot; width=&amp;quot;425&amp;quot;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;/TD&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                        &amp;lt;TD width=&amp;quot;25%&amp;quot;&amp;gt;&amp;lt;/TD&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                                &amp;lt;/TR&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                        &amp;lt;/TABLE&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;                &amp;lt;/FORM&amp;gt;--&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;BODY&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;HTML&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;--- C# ---&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Collections;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.ComponentModel;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Data;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Drawing;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web.SessionState;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web.UI;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web.UI.WebControls;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web.UI.HtmlControls;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; Sorteo;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; Sorteo&lt;br /&gt;{&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Summary description for Menu.&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt; Menu : System.Web.UI.Page&lt;br /&gt;        {&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/font&gt; System.Web.UI.HtmlControls.HtmlGenericControl spnJavaScript;&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; Page_Load(Object sender, EventArgs e)&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                        buildMenu();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; buildMenu()&lt;br /&gt;                {&lt;br /&gt;                        MenuWS ws = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; MenuWS();&lt;br /&gt;&lt;br /&gt;                        DataSet menuDS = ws.getMenu();&lt;br /&gt;                        DataTable menuDT = menuDS.Tables[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Menu&amp;quot;&lt;/font&gt;];&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; varName=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; papaVarName=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; treeCommand = &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; hayHijos;&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; caption;&lt;br /&gt;                        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt; url;&lt;br /&gt;&lt;br /&gt;                        spnJavaScript.Controls.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; LiteralControl(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;lt;scr&amp;quot;&lt;/font&gt; + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ipt languaje=&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;javascript&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;gt;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;));&lt;br /&gt;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;foreach&lt;/b&gt;&lt;/font&gt;(DataRow opcion &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;in&lt;/b&gt;&lt;/font&gt; menuDT.Rows)&lt;br /&gt;                        {&lt;br /&gt;                                varName = &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;aux&amp;quot;&lt;/font&gt; + opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Nivel&amp;quot;&lt;/font&gt;];&lt;br /&gt;                                papaVarName = &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;aux&amp;quot;&lt;/font&gt; + Convert.ToString(Convert.ToInt32(opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Nivel&amp;quot;&lt;/font&gt;])-&lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt;);&lt;br /&gt;                                caption = Convert.ToString(opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Opcion&amp;quot;&lt;/font&gt;]).Trim();&lt;br /&gt;                                url = Convert.ToString(opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;URL&amp;quot;&lt;/font&gt;]).Trim();&lt;br /&gt;&lt;br /&gt;                                &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; (Convert.ToInt32(opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Nivel&amp;quot;&lt;/font&gt;]) == &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt;)&lt;br /&gt;                                {&lt;br /&gt;                                        treeCommand = varName + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;= gFld(&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + caption + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;, &lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + url + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;)&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                                }&lt;br /&gt;                                &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                                {&lt;br /&gt;                                        hayHijos = Convert.ToString(opcion[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;hayHijos&amp;quot;&lt;/font&gt;]);&lt;br /&gt;                                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; (hayHijos.Equals(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Y&amp;quot;&lt;/font&gt;))&lt;br /&gt;                                        {&lt;br /&gt;                                                treeCommand = varName + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;= insFld(&amp;quot;&lt;/font&gt; + papaVarName + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;, gFld(&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + caption + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;, &lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + url + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;))&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                                        }&lt;br /&gt;                                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;else&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;                                        {&lt;br /&gt;                                                treeCommand = &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;insDoc(&amp;quot;&lt;/font&gt; + papaVarName + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;, gLnk(&amp;quot;&lt;/font&gt; + papaVarName + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;, &lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + caption + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;, &lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; + url + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;))&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;;&lt;br /&gt;                                        }&lt;br /&gt;                                }&lt;br /&gt;&lt;br /&gt;                                treeCommand = treeCommand.Replace(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;aux0&amp;quot;&lt;/font&gt;,&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;foldersTree&amp;quot;&lt;/font&gt;);&lt;br /&gt;                                spnJavaScript.Controls.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; LiteralControl(treeCommand));&lt;br /&gt;                        }&lt;br /&gt;                        spnJavaScript.Controls.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; LiteralControl(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;initializeDocument()&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;));&lt;br /&gt;                        spnJavaScript.Controls.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; LiteralControl(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;lt;/scr&amp;quot;&lt;/font&gt; + &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;ipt&amp;gt;&lt;/font&gt;&lt;font color=&quot;#6a5acd&quot;&gt;\n&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;));&lt;br /&gt;                }&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                #region Web Form Designer generated code&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;override&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; OnInit(EventArgs e)&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;//&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// CODEGEN: This call is required by the ASP.NET Web Form Designer.&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;//&lt;/font&gt;&lt;br /&gt;                        InitializeComponent();&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;base&lt;/b&gt;&lt;/font&gt;.OnInit(e);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Required method for Designer support - do not modify&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; the contents of this method with the code editor.&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; InitializeComponent()&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.Load += &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.EventHandler(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.Page_Load);&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                #endregion&lt;/font&gt;&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;--- WebService ---&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;&amp;lt;%&lt;/font&gt;@ &lt;font color=&quot;#008080&quot;&gt;WebService&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;Language&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;c#&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;Codebehind&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;MenuWS.asmx.cs&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#008080&quot;&gt;Class&lt;/font&gt;=&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;Sorteo.MenuWS&lt;/font&gt;&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;%&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;--- WebService C# ---&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Collections;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.ComponentModel;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Data;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Diagnostics;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;using&lt;/b&gt;&lt;/font&gt; System.Web.Services;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;namespace&lt;/b&gt;&lt;/font&gt; Sorteo&lt;br /&gt;{&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Summary description for CartasWS.&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;        &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;class&lt;/b&gt;&lt;/font&gt; MenuWS : System.Web.Services.WebService&lt;br /&gt;        {&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; MenuWS()&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;//CODEGEN: This call is required by the ASP.NET Web Services Designer&lt;/font&gt;&lt;br /&gt;                        InitializeComponent();&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlConnection con;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlDataAdapter spGetMenuDA;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlCommand spGetMenu;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                #region Component Designer generated code&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;//Required by the Web Services Designer &lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; IContainer components = &lt;font color=&quot;#ff00ff&quot;&gt;null&lt;/font&gt;;&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Required method for Designer support - do not modify&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; the contents of this method with the code editor.&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; InitializeComponent()&lt;br /&gt;                {&lt;br /&gt;                        System.Configuration.AppSettingsReader configurationAppSettings = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Configuration.AppSettingsReader();&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.con = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlConnection();&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenuDA = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlDataAdapter();&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlCommand();&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// con&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.con.ConnectionString = ((&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;)(configurationAppSettings.GetValue(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;con.ConnectionString&amp;quot;&lt;/font&gt;, &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;typeof&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;string&lt;/b&gt;&lt;/font&gt;))));&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.con.InfoMessage += &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlInfoMessageEventHandler(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.con_InfoMessage);&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// spGetMenuDA&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenuDA.SelectCommand = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenuDA.TableMappings.AddRange(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.Common.DataTableMapping[] {&lt;br /&gt;                                                                                                                                                                                                  &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.Common.DataTableMapping(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Table&amp;quot;&lt;/font&gt;, &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Menu&amp;quot;&lt;/font&gt;, &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.Common.DataColumnMapping[&lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt;])});&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// spGetMenu&lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#0000ff&quot;&gt;// &lt;/font&gt;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu.CommandText = &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;dbo.[spGetMenu]&amp;quot;&lt;/font&gt;;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu.CommandType = System.Data.CommandType.StoredProcedure;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu.Connection = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.con;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu.Parameters.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlParameter(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;@RETURN_VALUE&amp;quot;&lt;/font&gt;, System.Data.SqlDbType.Int, &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt;, System.Data.ParameterDirection.ReturnValue, &lt;font color=&quot;#ff00ff&quot;&gt;false&lt;/font&gt;, ((System.Byte)(&lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt;)), ((System.Byte)(&lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt;)), &lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;&amp;quot;&lt;/font&gt;, System.Data.DataRowVersion.Current, &lt;font color=&quot;#ff00ff&quot;&gt;null&lt;/font&gt;));&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt;.spGetMenu.Parameters.Add(&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; System.Data.SqlClient.SqlParameter(&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;@iIDMenu&amp;quot;&lt;/font&gt;, System.Data.SqlDbType.Int, &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt;));&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Clean up any resources being used.&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;override&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; Dispose( &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;bool&lt;/b&gt;&lt;/font&gt; disposing )&lt;br /&gt;                {&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt;(disposing &amp;amp;&amp;amp; components != &lt;font color=&quot;#ff00ff&quot;&gt;null&lt;/font&gt;)&lt;br /&gt;                        {&lt;br /&gt;                                components.Dispose();&lt;br /&gt;                        }&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;base&lt;/b&gt;&lt;/font&gt;.Dispose(disposing);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#a020f0&quot;&gt;                #endregion&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; Regresa el arbol del menu ordenado ... por default el menu 1&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;summary&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#0000ff&quot;&gt;///&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt; &lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;returns&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;Regresa un DataSet con los datos del menu, ya ordenado, en forma de arbol.&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;lt;/&lt;/font&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;returns&lt;/b&gt;&lt;/font&gt;&lt;font color=&quot;#008080&quot;&gt;&amp;gt;&lt;/font&gt;&lt;br /&gt;                [WebMethod]&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/font&gt; DataSet getMenu()&lt;br /&gt;                {&lt;br /&gt;                         DataSet ds = &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/font&gt; DataSet();&lt;br /&gt;&lt;br /&gt;                        con.Open();&lt;br /&gt;                        spGetMenu.Parameters[&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;@iIDMenu&amp;quot;&lt;/font&gt;].Value = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt;; &lt;font color=&quot;#0000ff&quot;&gt;// Cargar el menu por default&lt;/font&gt;&lt;br /&gt;                        spGetMenuDA.Fill(ds,&lt;font color=&quot;#ff00ff&quot;&gt;&amp;quot;Menu&amp;quot;&lt;/font&gt;);&lt;br /&gt;                        con.Close();&lt;br /&gt;&lt;br /&gt;                        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; ds;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; con_InfoMessage(&lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;object&lt;/b&gt;&lt;/font&gt; sender, System.Data.SqlClient.SqlInfoMessageEventArgs e)&lt;br /&gt;                {&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/1803601330050692848/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/menu-de-rbol-treeview-en-aspx-y-c.html#comment-form' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1803601330050692848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/1803601330050692848'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/menu-de-rbol-treeview-en-aspx-y-c.html' title='Menu de árbol - TreeView en ASPX y C#'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-7667342306176067508</id><published>2006-10-25T09:51:00.000-05:00</published><updated>2007-05-04T08:49:11.725-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Imagenes"/><category scheme="http://www.blogger.com/atom/ns#" term="ISAPI/DLL"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>Desplegar una imagen JPG dinámicamente desde una Base de Datos SQL en Delphi</title><content type='html'>&lt;p&gt;Hace algunos años tuve la necesidad en mi trabajo de hacer un aplicación que desplegara dinámicamente una imagen JPG que se encontraba almacenada en una base de datos MS SQL, y otra imagen identica almacenada en una base de datos DB2. Indagando entre los ejemplos y tutoriales de Delphi me encontre un ejercicio para generar &quot;on-the-fly&quot; una imagen BMP, de ahi me surgio la idea de hacer eso mismo para la imagen JPG.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;La solución es una aplicación web ISAPI/DLL, la cual puede ser utilizada desde cualquier archivo HTML usando el tag &lt;strong&gt;&amp;lt;IMG..&amp;gt;&lt;/strong&gt; indicando en la propiedad &lt;strong&gt;src&lt;/strong&gt; el url donde se encuentra la imagen, en este caso no seria una dirección aboluta sino relativa, una llamada a la ISAPI que había creado. Esto me dió la ventaja de poder utilizar dicha DLL tanto en ASP, como en JSP, dándome una enorme ventaja sobre otras alternativas. Además de que la DLL se ejecuta muy rápidamente en comparación con algun servlet o una ASP simple.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;La estructura de la solución se ilustra en el siguiente diagrama de clase:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/1600/Class%20Diagram.jpg&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/400/Class%20Diagram.jpg&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; border=&quot;0&quot; width=&quot;400&quot; height=&quot;240&quot;/&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Y la lógica básica en este diagrama de secuencia:&lt;br/&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/1600/New%20Sequence%20Diagram.jpg&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/400/New%20Sequence%20Diagram.jpg&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; border=&quot;0&quot; width=&quot;400&quot; height=&quot;221&quot;/&gt;&lt;/a&gt;&lt;br/&gt;A continuación escribimos el código fuente de Delphi, para la versión 6 y 7:&lt;br/&gt;----&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br/&gt;library ShowSignImage;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;uses&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  ActiveX,&lt;br/&gt;  ComObj,&lt;br/&gt;  WebBroker,&lt;br/&gt;  ISAPIThreadPool,&lt;br/&gt;  ISAPIApp,&lt;br/&gt;  uShowSignImage &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;in&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;uShowSignImage.pas&#39;&lt;/span&gt; &lt;span style=&quot;COLOR: #0000ff&quot;&gt;{WebModule1: TWebModule}&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #a020f0&quot;&gt;{$R *.res}&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;exports&lt;br/&gt;  GetExtensionVersion,&lt;br/&gt;  HttpExtensionProc,&lt;br/&gt;  TerminateExtension;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  CoInitFlags := COINIT_MULTITHREADED;&lt;br/&gt;  Application.Initialize;&lt;br/&gt;  Application.CreateForm(TWebModule1, WebModule1);&lt;br/&gt;  Application.Run;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br/&gt;----&lt;br/&gt;&lt;a href=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/1600/uShowSignImage.png&quot;&gt;&lt;img src=&quot;http://photos1.blogger.com/blogger2/4952/386747648288898/400/uShowSignImage.png&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; border=&quot;0&quot; width=&quot;400&quot; height=&quot;262&quot;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;----&lt;br/&gt;&lt;pre xml:space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;unit&lt;/strong&gt;&lt;/span&gt; uShowSignImage;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;interface&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;uses&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  SysUtils, Classes, HTTPApp, DB, ADODB;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;type&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  TWebModule1 = class(TWebModule)&lt;br/&gt;    con: TADOConnection;&lt;br/&gt;    q: TADOQuery;&lt;br/&gt;    qSUCURSAL: TFloatField;&lt;br/&gt;    qACCOUNT: TStringField;&lt;br/&gt;    qNUMIMAG: TStringField;&lt;br/&gt;    qIMAGE: TBlobField;&lt;br/&gt;    &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;procedure&lt;/strong&gt;&lt;/span&gt; WebModule1WebActionItem1Action(Sender: TObject;&lt;br/&gt;      Request: TWebRequest; Response: TWebResponse; &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/span&gt; Handled: &lt;span style=&quot;COLOR: #2e8b57&quot;&gt;&lt;strong&gt;Boolean&lt;/strong&gt;&lt;/span&gt;);&lt;br/&gt;  &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style=&quot;COLOR: #0000ff&quot;&gt;{ Private declarations }&lt;/span&gt;&lt;br/&gt;  &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style=&quot;COLOR: #0000ff&quot;&gt;{ Public declarations }&lt;/span&gt;&lt;br/&gt;  &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  WebModule1: TWebModule1;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;implementation&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;uses&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  Windows, ShellAPI;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  MAX_PATH = &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;255&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;COLOR: #a020f0&quot;&gt;{$R *.dfm}&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;procedure&lt;/strong&gt;&lt;/span&gt; TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;&lt;br/&gt;  Request: TWebRequest; Response: TWebResponse; &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/span&gt; Handled: &lt;span style=&quot;COLOR: #2e8b57&quot;&gt;&lt;strong&gt;Boolean&lt;/strong&gt;&lt;/span&gt;);&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  S: TMemoryStream;&lt;br/&gt;  sucursal, cuenta, numfirma: &lt;span style=&quot;COLOR: #2e8b57&quot;&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;  try&lt;br/&gt;    S := TMemoryStream.Create;&lt;br/&gt;    try&lt;br/&gt;      // get url parameters&lt;br/&gt;      sucursal := Request.QueryFields.Values[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;sucursal&#39;&lt;/span&gt;];&lt;br/&gt;      cuenta := Request.QueryFields.Values[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;cuenta&#39;&lt;/span&gt;];&lt;br/&gt;      numfirma := Request.QueryFields.Values[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;numimag&#39;&lt;/span&gt;];&lt;br/&gt;&lt;br/&gt;      q.Parameters[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;0&lt;/span&gt;].Value := StrToFloat(sucursal);&lt;br/&gt;      q.Parameters[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;1&lt;/span&gt;].Value := StrToFloat(cuenta);&lt;br/&gt;      q.Parameters[&lt;span style=&quot;COLOR: #ff00ff&quot;&gt;2&lt;/span&gt;].Value := StrToFloat(numfirma);&lt;br/&gt;      q.Open;&lt;br/&gt;      try&lt;br/&gt;        S.Position := &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;0&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;        qIMAGE.SaveToStream(S);&lt;br/&gt;&lt;br/&gt;        S.Position := &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;0&lt;/span&gt;;&lt;br/&gt;        Response.ContentType := &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;image/jpeg&#39;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;        Response.ContentStream := S;&lt;br/&gt;        Response.SendResponse;&lt;br/&gt;      finally&lt;br/&gt;        q.&lt;span style=&quot;COLOR: #008080&quot;&gt;Close&lt;/span&gt;;&lt;br/&gt;      &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;    finally&lt;br/&gt;      S.Free;&lt;br/&gt;   &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;  except&lt;br/&gt;    on E: Exception &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;do&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;      Response.Content := &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;Ocurrio un error (&#39;&lt;/span&gt; +&lt;br/&gt;        E.ClassName + &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;: &#39;&lt;/span&gt; + E.Message + &lt;span style=&quot;COLOR: #ff00ff&quot;&gt;&#39;)&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&#39;&lt;/span&gt;;&lt;br/&gt;  &lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;COLOR: #804040&quot;&gt;&lt;strong&gt;end&lt;/strong&gt;&lt;/span&gt;.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;----&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, pero no existe...&lt;/div&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a href=&quot;http://technorati.com/tag/Delphi&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;Delphi&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/ISAPI&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;ISAPI&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/JPG%20to%20SQL%20Data&quot; class=&quot;ztag&quot; rel=&quot;tag&quot;&gt;JPG to SQL Data&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/7667342306176067508/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/desplegar-una-imagen-jpg-dinmicamente.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7667342306176067508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7667342306176067508'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/desplegar-una-imagen-jpg-dinmicamente.html' title='Desplegar una imagen JPG dinámicamente desde una Base de Datos SQL en Delphi'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-6470555428566061944</id><published>2006-10-20T14:07:00.000-05:00</published><updated>2006-10-20T14:09:51.180-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Flex"/><category scheme="http://www.blogger.com/atom/ns#" term="Funciones SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><category scheme="http://www.blogger.com/atom/ns#" term="Stored Procedures"/><category scheme="http://www.blogger.com/atom/ns#" term="WebServices"/><title type='text'>Web Services para Flex en java y FDS (jrun)</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; * BalanceGeneral.java&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; * Created on 20 de abril de 2005, 05:07 PM&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;package&lt;/span&gt; sinapsys.contabilidad.ws;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;import&lt;/span&gt; java.sql.*;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;import&lt;/span&gt; java.util.ArrayList;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;import&lt;/span&gt; java.util.Properties;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;import&lt;/span&gt; sinapsys.acceso.ws.*;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; *&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;* &lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;@author&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; Administrator&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; BalanceGeneral {&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; String JDBC2ODBC_DRIVER = &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;sun.jdbc.odbc.JdbcOdbcDriver&quot;&lt;/span&gt;; &lt;span style=&quot;color:#0000ff;&quot;&gt;// Driver de JDBC a utilizar, en este caso JDBC2ODBC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;/**&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt; Creates a new instance of BalanceGeneral &lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;*/&lt;/span&gt;&lt;br /&gt;    &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; BalanceGeneral() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;protected&lt;/b&gt;&lt;/span&gt; String getUrl(UserDSNEmpresa dsn) {&lt;br /&gt;        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;jdbc:odbc:&quot;&lt;/span&gt; + dsn.getDSN();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; ArrayList getBalanceGeneral(UserDSNEmpresa dsn, String fechaInicio, String fechaFin) {&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;// get UserDSNEmpresa&lt;/span&gt;&lt;br /&gt;        String urlEmpresa = getUrl(dsn);&lt;br /&gt;        String DB_USER = dsn.getDB_USER();&lt;br /&gt;        String DB_PSW = dsn.getDB_PSW();&lt;br /&gt;&lt;br /&gt;        String strSQL = &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;SELECT * FROM CON_BALANCE (&quot;&lt;/span&gt;+fechaInicio+&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;,&quot;&lt;/span&gt;+fechaFin+&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;)&quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        Connection con;&lt;br /&gt;        Statement stmt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt; {&lt;br /&gt;            Class.forName(JDBC2ODBC_DRIVER);&lt;br /&gt;&lt;br /&gt;            &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt; {&lt;br /&gt;                con = DriverManager.getConnection(urlEmpresa, DB_USER, DB_PSW);&lt;br /&gt;&lt;br /&gt;                stmt = con.createStatement();&lt;br /&gt;&lt;br /&gt;                ResultSet rs = stmt.executeQuery(strSQL);&lt;br /&gt;&lt;br /&gt;                ArrayList balanceList = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;while&lt;/b&gt;&lt;/span&gt; (rs.next()) {&lt;br /&gt;                    &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;b&gt;int&lt;/b&gt;&lt;/span&gt; ID = rs.getInt(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;ID&quot;&lt;/span&gt;);&lt;br /&gt;                    String CUENTA = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;CUENTA&quot;&lt;/span&gt;);&lt;br /&gt;                    String DESCRIPCION = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;DESCRIPCION&quot;&lt;/span&gt;);&lt;br /&gt;                    String T1 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T1&quot;&lt;/span&gt;);&lt;br /&gt;                    String T2 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T2&quot;&lt;/span&gt;);&lt;br /&gt;                    String T3 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T3&quot;&lt;/span&gt;);&lt;br /&gt;                    String T4 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T4&quot;&lt;/span&gt;);&lt;br /&gt;                    String T5 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T5&quot;&lt;/span&gt;);&lt;br /&gt;                    String T6 = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;T6&quot;&lt;/span&gt;);&lt;br /&gt;                    String TIPO = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;TIPO&quot;&lt;/span&gt;);&lt;br /&gt;                    String HIJO = rs.getString(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;HIJO&quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;                    BalanceRow balancerow = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; BalanceRow(ID,CUENTA,DESCRIPCION,T1,T2,T3,T4,T5,T6,TIPO,HIJO);&lt;br /&gt;                    balanceList.add(balanceList);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                stmt.close();&lt;br /&gt;                con.close();&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; balanceList;&lt;br /&gt;&lt;br /&gt;            } &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;(SQLException ex) {&lt;br /&gt;                String COD_ERROR = &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;SQLException: &quot;&lt;/span&gt; + ex.getMessage();&lt;br /&gt;                System.err.println(COD_ERROR);&lt;br /&gt;                &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:#ff00ff;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        } &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;(java.lang.ClassNotFoundException e) {&lt;br /&gt;            System.err.print(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;ClassNotFoundException: &quot;&lt;/span&gt;);&lt;br /&gt;            System.err.println(e.getMessage());&lt;br /&gt;            &lt;span style=&quot;color:#804040;&quot;&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color:#ff00ff;&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/6470555428566061944/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/web-services-para-flex-en-java-y-fds.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6470555428566061944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/6470555428566061944'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/web-services-para-flex-en-java-y-fds.html' title='Web Services para Flex en java y FDS (jrun)'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-7171856839909292294</id><published>2006-10-18T11:04:00.000-05:00</published><updated>2007-04-25T12:57:05.626-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bases de Datos"/><category scheme="http://www.blogger.com/atom/ns#" term="Funciones SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Stored Procedures"/><title type='text'>Cantidad con letra en MS SQL</title><content type='html'>Siempre es necesario convertir una cantidad a su expresion literal. Y para aportar algo a la comunidad, comparto esta funcion de MS SQL, gracias a la aportacion de mi camarada el &lt;a href=&quot;mailto:shsergio@hotmail.com&quot;&gt;Checo &lt;/a&gt; y con algunas pequeñas modificaciones que le hice, aqui la tenemos: Funcion Cantidad con letra en pesos mexicanos.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;FUNCTION&lt;/font&gt; [dbo].[CantidadConLetra]&lt;br /&gt;(&lt;br /&gt;    @Numero             &lt;font color=&quot;#6a5acd&quot;&gt;Decimal&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;18&lt;/font&gt;,&lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt;)&lt;br /&gt;)&lt;br /&gt;RETURNS &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;Varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;180&lt;/font&gt;)&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;BEGIN&lt;/font&gt;&lt;br /&gt;    DECLARE @ImpLetra &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;Varchar&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;180&lt;/font&gt;)&lt;br /&gt;        DECLARE @lnEntero INT,&lt;br /&gt;                        @lcRetorno &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;VARCHAR&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;512&lt;/font&gt;),&lt;br /&gt;                        @lnTerna INT,&lt;br /&gt;                        @lcMiles &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;VARCHAR&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;512&lt;/font&gt;),&lt;br /&gt;                        @lcCadena &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;VARCHAR&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;512&lt;/font&gt;),&lt;br /&gt;                        @lnUnidades INT,&lt;br /&gt;                        @lnDecenas INT,&lt;br /&gt;                        @lnCentenas INT,&lt;br /&gt;                        @lnFraccion INT&lt;br /&gt;        &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;  @lnEntero = CAST(@Numero &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; INT),&lt;br /&gt;                        @lnFraccion = (@Numero - @lnEntero) * &lt;font color=&quot;#ff00ff&quot;&gt;100&lt;/font&gt;,&lt;br /&gt;                        @lcRetorno = &lt;font color=&quot;#ff00ff&quot;&gt;&#39;&#39;&lt;/font&gt;,&lt;br /&gt;                        @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt;&lt;br /&gt;  WHILE @lnEntero &amp;gt; &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt;&lt;br /&gt;  &lt;font color=&quot;#6a5acd&quot;&gt;BEGIN&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* WHILE */&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Recorro terna por terna&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcCadena = &lt;font color=&quot;#ff00ff&quot;&gt;&#39;&#39;&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnUnidades = @lnEntero % &lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnEntero = CAST(@lnEntero/&lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; INT)&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnDecenas = @lnEntero % &lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnEntero = CAST(@lnEntero/&lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; INT)&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnCentenas = @lnEntero % &lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnEntero = CAST(@lnEntero/&lt;font color=&quot;#ff00ff&quot;&gt;10&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; INT)&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Analizo las unidades&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcCadena =&lt;br /&gt;            CASE &lt;font color=&quot;#0000ff&quot;&gt;/* UNIDADES */&lt;/font&gt;&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;UN &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;3&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;TRES &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CUATRO &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;5&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CINCO &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;6&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SEIS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;7&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SIETE &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;8&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;OCHO &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnUnidades = &lt;font color=&quot;#ff00ff&quot;&gt;9&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;NUEVE &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; @lcCadena&lt;br /&gt;            &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* UNIDADES */&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Analizo las decenas&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcCadena =&lt;br /&gt;            CASE &lt;font color=&quot;#0000ff&quot;&gt;/* DECENAS */&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DIEZ &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;ONCE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DOCE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;3&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;TRECE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CATORCE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;5&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;QUINCE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;6&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DIEZ Y SEIS &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;7&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DIEZ Y SIETE &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;8&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DIEZ Y OCHO &#39;&lt;/font&gt;&lt;br /&gt;                  WHEN &lt;font color=&quot;#ff00ff&quot;&gt;9&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DIEZ Y NUEVE &#39;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;              CASE @lnUnidades&lt;br /&gt;                WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;VEINTE &#39;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;VEINTI&#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;3&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;              CASE @lnUnidades&lt;br /&gt;                WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;TREINTA &#39;&lt;/font&gt;&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;TREINTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CUARENTA&#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CUARENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;5&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CINCUENTA &#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CINCUENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;6&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SESENTA &#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SESENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;7&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                 CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SETENTA &#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SETENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                 &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;8&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;OCHENTA &#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt;  &lt;font color=&quot;#ff00ff&quot;&gt;&#39;OCHENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              WHEN @lnDecenas = &lt;font color=&quot;#ff00ff&quot;&gt;9&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt;&lt;br /&gt;                CASE @lnUnidades&lt;br /&gt;                    WHEN &lt;font color=&quot;#ff00ff&quot;&gt;0&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;NOVENTA &#39;&lt;/font&gt;&lt;br /&gt;                    &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;NOVENTA Y &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;                &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; @lcCadena&lt;br /&gt;            &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* DECENAS */&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Analizo las centenas&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcCadena =&lt;br /&gt;            CASE &lt;font color=&quot;#0000ff&quot;&gt;/* CENTENAS */&lt;/font&gt;&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CIENTO &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;DOSCIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;3&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;TRESCIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CUATROCIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;5&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;QUINIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;6&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SEISCIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;7&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;SETECIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;8&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;OCHOCIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              WHEN @lnCentenas = &lt;font color=&quot;#ff00ff&quot;&gt;9&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;NOVECIENTOS &#39;&lt;/font&gt; + @lcCadena&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; @lcCadena&lt;br /&gt;            &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* CENTENAS */&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Analizo la terna&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcCadena =&lt;br /&gt;            CASE &lt;font color=&quot;#0000ff&quot;&gt;/* TERNA */&lt;/font&gt;&lt;br /&gt;              WHEN @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; @lcCadena&lt;br /&gt;              WHEN @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; @lcCadena + &lt;font color=&quot;#ff00ff&quot;&gt;&#39;MIL &#39;&lt;/font&gt;&lt;br /&gt;              WHEN @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;3&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; @lcCadena + &lt;font color=&quot;#ff00ff&quot;&gt;&#39;MILLONES &#39;&lt;/font&gt;&lt;br /&gt;              WHEN @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;4&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;THEN&lt;/font&gt; @lcCadena + &lt;font color=&quot;#ff00ff&quot;&gt;&#39;MIL &#39;&lt;/font&gt;&lt;br /&gt;              &lt;font color=&quot;#6a5acd&quot;&gt;ELSE&lt;/font&gt; &lt;font color=&quot;#ff00ff&quot;&gt;&#39;&#39;&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* TERNA */&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#0000ff&quot;&gt;-- Armo el retorno terna a terna&lt;/font&gt;&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcRetorno = @lcCadena  + @lcRetorno&lt;br /&gt;            &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lnTerna = @lnTerna + &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt;&lt;br /&gt;   &lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;/* WHILE */&lt;/font&gt;&lt;br /&gt;   &lt;font color=&quot;#6a5acd&quot;&gt;IF&lt;/font&gt; @lnTerna = &lt;font color=&quot;#ff00ff&quot;&gt;1&lt;/font&gt;&lt;br /&gt;       &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @lcRetorno = &lt;font color=&quot;#ff00ff&quot;&gt;&#39;CERO&#39;&lt;/font&gt;&lt;br /&gt;   DECLARE @sFraccion &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;VARCHAR&lt;/b&gt;&lt;/font&gt;(&lt;font color=&quot;#ff00ff&quot;&gt;15&lt;/font&gt;)&lt;br /&gt;   &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SET&lt;/b&gt;&lt;/font&gt; @sFraccion = &lt;font color=&quot;#ff00ff&quot;&gt;&#39;00&#39;&lt;/font&gt; + LTRIM(CAST(@lnFraccion &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; &lt;font color=&quot;#2e8b57&quot;&gt;&lt;b&gt;varchar&lt;/b&gt;&lt;/font&gt;))&lt;br /&gt;   &lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; @ImpLetra = RTRIM(@lcRetorno) + &lt;font color=&quot;#ff00ff&quot;&gt;&#39; PESOS &#39;&lt;/font&gt; + SUBSTRING(@sFraccion,LEN(@sFraccion)&lt;font color=&quot;#ff00ff&quot;&gt;-1&lt;/font&gt;,&lt;font color=&quot;#ff00ff&quot;&gt;2&lt;/font&gt;) + &lt;font color=&quot;#ff00ff&quot;&gt;&#39;/100 M.N.&#39;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;   &lt;font color=&quot;#6a5acd&quot;&gt;RETURN&lt;/font&gt; @ImpLetra&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;END&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;Como ejemplo puedo crear una vista que contenga totales con numero y letra, es obvio que cada quien le dara el uso que le venga en su regalada gana. &lt;em&gt;jejeje&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;CREATE&lt;/b&gt;&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;VIEW&lt;/font&gt; [dbo].[Totales]&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt;     TC.IDColaborador, TC.IDAsignacion, SUM(T.Monto) &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; MontoTotal, dbo.CantidadConLetra(SUM(T.Monto)) &lt;font color=&quot;#6a5acd&quot;&gt;AS&lt;/font&gt; MontoConLetra&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;FROM&lt;/font&gt;         dbo.Colabora C INNER JOIN&lt;br /&gt;                      dbo.Talonario_Colabora TC &lt;font color=&quot;#6a5acd&quot;&gt;ON&lt;/font&gt; C.IDColaborador = TC.IDColaborador INNER JOIN&lt;br /&gt;                      dbo.Talonarios T &lt;font color=&quot;#6a5acd&quot;&gt;ON&lt;/font&gt; TC.IDTalonario = T.IDTalonario&lt;br /&gt;&lt;font color=&quot;#6a5acd&quot;&gt;GROUP&lt;/font&gt; &lt;font color=&quot;#6a5acd&quot;&gt;BY&lt;/font&gt; TC.IDColaborador, TC.IDAsignacion&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Al consultar el &lt;em&gt;&lt;strong&gt;View&lt;/strong&gt;&lt;/em&gt; con un simple &lt;strong&gt;SELECT&lt;/strong&gt; se ve &lt;em&gt;bien bonito&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=&quot;#804040&quot;&gt;&lt;b&gt;SELECT&lt;/b&gt;&lt;/font&gt; [MontoTotal], [MontoConLetra]&lt;br /&gt;    &lt;font color=&quot;#6a5acd&quot;&gt;FROM&lt;/font&gt; [dbo].[Totales]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; MontoTotal  MontoConLetra&lt;br /&gt; ----------  ------------------------------------&lt;br /&gt; 25000       VEINTICINCO MIL PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 5000        CINCO MIL PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 5000        CINCO MIL PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt; 5000        CINCO MIL PESOS 00/100 M.N.&lt;br /&gt; 2500        DOS MIL QUINIENTOS PESOS 00/100 M.N.&lt;br /&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/7171856839909292294/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/cantidad-con-letra-en-ms-sql.html#comment-form' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7171856839909292294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/7171856839909292294'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/cantidad-con-letra-en-ms-sql.html' title='Cantidad con letra en MS SQL'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-3181136614337035888</id><published>2006-10-13T10:48:00.000-05:00</published><updated>2007-05-04T08:26:42.409-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASPX"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="dotNet"/><category scheme="http://www.blogger.com/atom/ns#" term="Imagenes"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>¿Como desplegar una imagen JPG desde una Base de Datos con ASPX y C#?</title><content type='html'>Siempre es necesario tener guardadas imagenes de fotografías, firmas, o documentos en una base de datos. Actualmente ha proliferado la necesidad de digitalización de documentos y su uso desde aplicaciones Web. Lo tradicional es que las imagenes se guarden en disco duro, en el &lt;em&gt;file system&lt;/em&gt;, lo cual conlleva problemas para el programador y para los sitemas, si no se tiene un esquema robusto para su correlacion con datos generalmente provenientes de un servidor SQL. Por ello es muy útil poder almacenar dichas imágenes en una BD, pero lo mas importante poderlas mostrar posteriormente.&lt;br /&gt;La técnica común de lectura de imágenes consiste en leer la imagen de desde un campo tipo BLOB, (&lt;b&gt;Image&lt;/b&gt; si se trata de MS SQL), después guardarla en el disco duro y accederla desde ahí con HTML, asp&#39;s y similares. Esto impacta en el desempeño de la aplicación de manera significativa a pesar de ser una técnica relativamente sencilla y de fácil implementación.&lt;br /&gt;Sin embargo es posible mostrar la imagén al vuelo, es decir desde que se lee de la base de datos, mandarla al web, sin tener que dar el paso intermedio de grabación en disco. La técnica es mucho mas sencilla. Con una aplicación asp o aspx basta con leer la imagen de la BD y mandarla al Reponse, únacamente cambiando el tipo de respuesta &lt;strong&gt;Response.ContentType&lt;/strong&gt;, asignando el valor &lt;strong&gt;&#39;image/JPEG&#39;&lt;/strong&gt;. Esto es súmamente fácil de implementar en cualquier lenguaje. Un ejemplo en ASPX con C# lo mostramos a continuación. (También publicaremos el ejemplo en &lt;a href=&quot;http://softtlan.blogspot.com/2006/10/desplegar-una-imagen-jpg-dinmicamente.html&quot;&gt;Delphi&lt;/a&gt;, PHP y Java para ilustrarlo mas ampliamente)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;&amp;lt;%&lt;/span&gt;@ Page language=&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;c#&quot;&lt;/span&gt; Codebehind=&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;ViewImage.aspx.cs&quot;&lt;/span&gt; AutoEventWireup=&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;false&quot;&lt;/span&gt; Inherits=&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;Sorteo.ViewImage&quot;&lt;/span&gt; &lt;span style=&quot;color:#6a5acd;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;HEAD&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;TITLE&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&lt;strong&gt;ViewImage&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;TITLE&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;META&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;GENERATOR&quot;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;content&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;Microsoft Visual Studio .NET 7.1&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;META&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;CODE_LANGUAGE&quot;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;content&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;C#&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;META&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;vs_defaultClientScript&quot;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;content&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;JavaScript&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;META&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;name&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;vs_targetSchema&quot;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;content&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;&lt;a href=&quot;http://schemas.microsoft.com/intellisense/ie5&quot;&gt;http://schemas.microsoft.com/intellisense/ie5&lt;/a&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;HEAD&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;BODY&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;ms_positioning=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;GridLayout&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;FORM&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;id&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;Form1&quot;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;method&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;post&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;runat=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;server&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;FORM&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;BODY&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- C# ---&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; System;&lt;br /&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; System.Data.SqlClient;&lt;br /&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;using&lt;/strong&gt;&lt;/span&gt; System.Web.UI;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;namespace&lt;/strong&gt;&lt;/span&gt; Sorteo&lt;br /&gt;{&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;summary&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Devuelve una imagen almacenada en una BD&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;summary&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/span&gt; ViewImage : System.Web.UI.Page&lt;br /&gt;        {&lt;br /&gt;                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/span&gt; System.Data.SqlClient.SqlConnection con;&lt;br /&gt;                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/span&gt; SqlCommand cmdImage;&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; Page_Load(&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;object&lt;/strong&gt;&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;                {&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;                        {&lt;br /&gt;                                con.Open();&lt;br /&gt;                                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;/span&gt; iIDPremio = Convert.ToInt32(Request.QueryString[&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;IDPremio&quot;&lt;/span&gt;]);&lt;br /&gt;                                cmdImage.Parameters[&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;@IDPremio&quot;&lt;/span&gt;].Value = iIDPremio;&lt;br /&gt;                                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;object&lt;/strong&gt;&lt;/span&gt; o=cmdImage.ExecuteScalar();&lt;br /&gt;                                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;/span&gt;[] bufr=(&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;byte&lt;/strong&gt;&lt;/span&gt;[])o;&lt;br /&gt;                                Response.ContentType=&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;image/JPEG&quot;&lt;/span&gt;;&lt;br /&gt;                                Response.OutputStream.Write(bufr,&lt;span style=&quot;color:#ff00ff;&quot;&gt;0&lt;/span&gt;,bufr.Length);&lt;br /&gt;                        }&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/span&gt;(Exception except)&lt;br /&gt;                        {&lt;br /&gt;                                Response.Write(cmdImage.CommandText + &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;&lt;/span&gt; + except.ToString()) ;&lt;br /&gt;                        }&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;finally&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;                        {&lt;br /&gt;                                con.Close();&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;#region Web Form Designer generated code&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;override&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; OnInit(EventArgs e)&lt;br /&gt;                {&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;//&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// CODEGEN: This call is required by the ASP.NET Web Form Designer.&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;//&lt;/span&gt;&lt;br /&gt;                        InitializeComponent();&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;base&lt;/strong&gt;&lt;/span&gt;.OnInit(e);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;summary&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;Required method for Designer support - do not modify&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;the contents of this method with the code editor.&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;///&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;summary&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/span&gt; &lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/span&gt; InitializeComponent()&lt;br /&gt;                {&lt;br /&gt;                        System.Configuration.AppSettingsReader configurationAppSettings = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; System.Configuration.AppSettingsReader();&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.cmdImage = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; System.Data.SqlClient.SqlCommand();&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.con = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; System.Data.SqlClient.SqlConnection();&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// &lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// cmdImage&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// &lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.cmdImage.CommandText = &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;SELECT Imagen FROM Premios WHERE (IDPremio = @IDPremio)&quot;&lt;/span&gt;;&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.cmdImage.Connection = &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.con;&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.cmdImage.Parameters.Add(&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; System.Data.SqlClient.SqlParameter(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;@IDPremio&quot;&lt;/span&gt;, System.Data.SqlDbType.VarChar, &lt;span style=&quot;color:#ff00ff;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;IDPremio&quot;&lt;/span&gt;));&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// &lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// con&lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#0000ff;&quot;&gt;// &lt;/span&gt;&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.con.ConnectionString = ((&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt;)(configurationAppSettings.GetValue(&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;con.ConnectionString&quot;&lt;/span&gt;, &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;typeof&lt;/strong&gt;&lt;/span&gt;(&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/span&gt;))));&lt;br /&gt;                        &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.Load += &lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/span&gt; System.EventHandler(&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;this&lt;/strong&gt;&lt;/span&gt;.Page_Load);&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;span style=&quot;color:#a020f0;&quot;&gt;#endregion&lt;/span&gt;&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;&lt;br /&gt;Para ejecutar el programa basta llamarlo desde el browser para que muestre directamente la imagen almacenada en la base de datos.&lt;br /&gt;&lt;br /&gt;http://localhost/MyImageApp/ViewImage.aspx?IDPremio=1&lt;br /&gt;&lt;br /&gt;El campo IDPremio es el ID del registro que contiene la imagen, para este ejemplo es un listado de premios de un sorteo. Este se puede modificar segun la necesidad. Y se puede hacer mas generico o parametrizable.&lt;br /&gt;&lt;br /&gt;Explicación Tecnica:&lt;br /&gt;&lt;br /&gt;El programa utiliza una sencilla llamada SELECT a una Tabla Premios en la cual hay un campo Image que &lt;a href=&quot;http://softtlan.blogspot.com/2007/02/softtlan-como-desplegar-una-imagen-jpg.html&quot;&gt;guarda imagenes&lt;/a&gt; tipo JPG. Basicamente el resultado es leido en forma de un arreglo de bytes y enviado a la respuesta de la aplicacion, especificando el ContentType como &#39;image/JPEG&#39; para que sea identificado por el browser.&lt;br /&gt;&lt;br /&gt;Si la necesidad es mostrar la imagen dentro de una pagina o en una tabla, o dentro de un DataGrid, se debe hacer uso del tag &amp;lt;IMG src...&amp;gt; y en la propiedad &lt;strong&gt;src&lt;/strong&gt; (source) indicar la url de la aplicación en cuestión. Por ejemplo:&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;img&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;src&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;ViewImage?IDPremio=1&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Esta sencilla llamada hara que se muestre la imagen desde cualquier pagina HTML. Por otro lado, si se quiere llamar desde una aplicacion asp, el código quedaría mas o menos asi:&lt;br /&gt;&lt;pre space=&quot;preserve&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#804040;&quot;&gt;&lt;strong&gt;img&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#2e8b57;&quot;&gt;&lt;strong&gt;src&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;ViewImage?IDPremio=&lt;/span&gt;&lt;span style=&quot;color:#6a5acd;&quot;&gt;&amp;lt;%=&lt;/span&gt;NumPremio&lt;span style=&quot;color:#6a5acd;&quot;&gt;%&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#ff00ff;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#008080;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Donde se sobreentiende que &lt;strong&gt;NumPremio&lt;/strong&gt; es una variable cuyo valor dependera del programa asp, esto es puede venir de una base de datos o de un ciclo for.&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, pero no existe...&lt;/div&gt;&lt;br /&gt;&lt;p class=&quot;zoundry_bw_tags&quot;&gt;&lt;br /&gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;&lt;span class=&quot;ztags&quot;&gt;&lt;span class=&quot;ztagspace&quot;&gt;Technorati&lt;/span&gt; : &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/BLOB&quot; rel=&quot;tag&quot;&gt;BLOB&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/Image&quot; rel=&quot;tag&quot;&gt;Image&lt;/a&gt;, &lt;a class=&quot;ztag&quot; href=&quot;http://technorati.com/tag/JPG&quot; rel=&quot;tag&quot;&gt;JPG&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/3181136614337035888/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/como-desplegar-una-imagen-jpg-desde-una.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3181136614337035888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3181136614337035888'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/como-desplegar-una-imagen-jpg-desde-una.html' title='¿Como desplegar una imagen JPG desde una Base de Datos con ASPX y C#?'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3168236734782657368.post-3418257690611341245</id><published>2006-10-13T09:27:00.000-05:00</published><updated>2006-10-13T09:30:34.190-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AJAX"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="RIA"/><title type='text'>BackBase AJAX for Java</title><content type='html'>BackBase es un producto AJAX para Java muy interesante, podemos conocerlo en este sitio &lt;a href=&quot;http://www.backbase.com/&quot;&gt;http://www.backbase.com/&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Softtlan es la tierra prometida, visitala...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softtlan.blogspot.com/feeds/3418257690611341245/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://softtlan.blogspot.com/2006/10/backbase-ajax-for-java.html#comment-form' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3418257690611341245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3168236734782657368/posts/default/3418257690611341245'/><link rel='alternate' type='text/html' href='http://softtlan.blogspot.com/2006/10/backbase-ajax-for-java.html' title='BackBase AJAX for Java'/><author><name>Isidro Leos Viscencio</name><uri>http://www.blogger.com/profile/09825277199423314697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>