Gridview: Agrupar columnas en encabezado.

Cuando queremos que nuestro Gridview nos puede agrupar encabezado y que nos quede bien alineado a sus celdas correspondientes nos puede “doler” un poco esta tarea así que aquí un pequeño tip que espero sea de ayuda. A raíz de una pregunta en los grupos de noticias de ASP.NET dejo aquí los pasos a seguir con imágenes…

Mas abajo se encuentra para descargar el ejemplo

 

La idea…

Tenemos una tabla cuyo encabezado es así
image
Y queremos que nos quede asi
Agrupando y encima con dos filas …
image 

Utilizando CSS Friendly Adapter….

Antes cabe aclarar que estoy utilizando ASP.NET 2.0 CSS Friendly Control Adapters 1.0 
Por que?

Para que la tabla sea lo mas “amigable” a CSS y a Javascript (por si queremos tambien utilizar jQuery con ella) [+ info aqui]
Se renderiza…

Sin CSS Adapter Con CSS Adapter
image image

Es mucho pero que este ya que genera en cada celda (TR) contenido “sucio” pudiendo tranquilamente con estilos prevenirlo

No hay que hacer mucho trabajo para agregarlo a nuestro proyectos, simplemente descargar de CodePlex: http://www.codeplex.com/cssfriendly
Y luego mirar el ejemplo que es didáctico o te descargas el ejemplo al final de este articulo que estoy utilizando.

Algunos artículos en Geeks.ms sobre este componente:

 

 

Pasos a seguir para agrupar celdas en un encabezado (y no morir en el intento)

  1. Tenemos un grilla (con un listado de Jedis)
    image
    El encabezado
    image
     
  2. Empezamos con la primera aproximación, agrupando encabezado
    Queremos agrupar las tres primeras columnas y las dos ultimas.
    Para ello necesitamos el atributo colSpan de las celdas de una tabla, que aqui podremos obtenerlo en el evento RowDatabound del gridview
    Protected Sub GridView2_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound
           Select Case e.Row.RowType
               Case DataControlRowType.Header
    
                   'Agrupando las dos primeras columnas  (col=0, col=1 y col=2)
                   e.Row.Cells(0).ColumnSpan = 3
                   e.Row.Cells(1).Visible = False
                   e.Row.Cells(2).Visible = False
    
                   'Agrupando las dos ultimas columnas (col=3 y col=4)
                   e.Row.Cells(3).ColumnSpan = 2
                   e.Row.Cells(4).Visible = False
    
           End Select
       End Sub

    Y con esto nos queda agrupados

    Toma el texto de la primer columna del grupo ya que las demas no se renderizan

    image

    El HTML resultante de la parte del encabezado es:

    <thead>
        <tr>
            <th class="tipoImagen" colspan="3" scope="col">Imagen</th>
            <th colspan="2" scope="col">Especie</th>
        </tr>
    </thead>

  3. Ahora necesitamos un encabezado con dos filas

    Aqui podremos tener dos opciones para insertar una tabla en la celda agrupada, generando la tabla dinámicamente o insertándola

    • Opcion 1: Generando tabla dinámicamente

      Por ejemplo para el grupo 1

      'Agrupando las dos primeras columnas (col=0, col=1 y col=2)
        e.Row.Cells(0).ColumnSpan = 3
        e.Row.Cells(1).Visible = False
        e.Row.Cells(2).Visible = False
      
        'Opcion 1: Generando un tabla dinamicamente
        Dim tableCol1 As New HtmlTable
        Dim fila1, fila2 As New HtmlTableRow
        Dim celda11, celda21, celda22, celda23 As New HtmlTableCell
      
        'Creando la primer fila para el encabezado (a dos filas)
        'y agrupo por las cantidad de columnas hijas que tenga
        celda11.InnerText = "Datos Personales"
        celda11.ColSpan = 3
        fila1.Cells.Add(celda11)
      
        'Contenido a las celdas de la fila de abajo
        celda21.InnerText = "Imagen"
        celda22.InnerText = "Nombre"
        celda23.InnerText = "Fecha Nac."
      
        'Agregando celdas a las filas
        fila2.Cells.Add(celda21)
        fila2.Cells.Add(celda22)
        fila2.Cells.Add(celda23)
        tableCol1.Rows.Add(fila1)
        tableCol1.Rows.Add(fila2)
      
        'Formateando tabla
        tableCol1.Border = "0"
        tableCol1.CellPadding = "0"
        tableCol1.CellSpacing = "0"
      
        'Agregando una tabla generada dinamicamente a la celda 1 del encabezado 
        'que previamente la argupamos
        e.Row.Cells(0).Controls.Clear()
        e.Row.Cells(0).Controls.Add(tableCol1)

    • Opcion 2

      Aqui insertamos el html en crudo en la celda por código o hacemos una template para poder escribir el HeaderTemplate. Asi que depende de tu elección… 🙂

      • Opcion 2.1

        El código es muy “artesanal”

        'Agrupando las dos ultimas columnas (col=3 y col=4)
        e.Row.Cells(3).ColumnSpan = 2
        e.Row.Cells(4).Visible = False
        
        'Opcion 2: Agregando una tabla generada dinamicamente
        e.Row.Cells(3).Text = "<table border=0 cellpadding=0 cellspacing=0><tr><td colspan=2>Otros datos</td></tr><tr><td>Especie</td><td>GUID</td></tr></table>"

      • Opcion 2.2

        Creando una columna template para poder escribir en el HeaderTemplate

        <asp:TemplateField>
           <ItemTemplate>
               Contenido
           </ItemTemplate>
           <HeaderTemplate>
             <table border=0 cellpadding=0 cellspacing=0><tr><td colspan=2>Otros datos</td></tr><tr><td>Especie</td><td>GUID</td></tr></table>    
           </HeaderTemplate>
        </asp:TemplateField>

         
         
         
        El resultado de todo esto debería ser algo así:

        image

        Pero por tenemos un problema de alineación de estas celdas que están en una tabla en el encabezado (THEAD) con las celdas del cuerpo (TBODY) de nuestra tabla principal

        image

  4. Entonces el ultimo paso: Es Alinear las celdas del encabezado con las celda de datos mediante CSS

    Utilizando unos estilos “especiales” damos formato a estas celdas

    /* 
    -------------------------------------------------------------------
    TIPO DE COLUMNAS PARA JEDIS 🙂
    -------------------------------------------------------------------
    */
    /*COLUMNA: Imagen*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoImagen
    {
        width:50px;
        max-width:50px;
        text-align:center;
    }
    /*  imagen dentro de la columna Imagen*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoImagen img
    {
        width:50px;
        height:71px;
    }
    
    
    /*COLUMNA: Nombre*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoNombre 
    {
        width:100px;
    }
    .YodaGrilla .AspNet-GridView table th .tipoNombre 
    {
        
    }
    /*COLUMNA: Fecha*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoFecha
    {
        width:90px;
        text-align:center;
    }
    
    /*COLUMNA: Especie*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoEspecie
    {
        width:120px;
        min-width:120px;
        text-align:center;
        /*background-color:Fuchsia;*/
    }
    
    /*COLUMNA: Guid*/
    .YodaGrilla .AspNet-GridView table tbody tr td.tipoGuid
    {
    
        text-align:center;
        /*background-color:Yellow;*/
    }

         
        El estilo hay que insertarlo tanto en las celdas del encabezado como en las celdas de datos

        En las celdas de datos

        <asp:GridView ID="GridView4" runat="server" AutoGenerateColumns="False" CssSelectorClass="YodaGrilla"
                DataSourceID="ObjectDataSource4">
                <Columns>
                     <asp:ImageField DataImageUrlField="ImagenURL" HeaderText="Imagen">
                        <ItemStyle  CssClass="tipoImagen" />
                        <HeaderStyle CssClass="" />
                    </asp:ImageField>
                    <asp:BoundField DataField="Nombre" HeaderText="Nombre" 
                        SortExpression="Nombre">
                        <ItemStyle CssClass="tipoNombre" />
                    </asp:BoundField>
                    <asp:BoundField DataField="FechaNacimiento" HeaderText="Fecha Nacimiento" 
                        SortExpression="FechaNacimiento">
                        <ItemStyle CssClass="tipoFecha" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Especie" HeaderText="Especie" 
                        SortExpression="Especie">            
                        <ItemStyle CssClass="tipoEspecie" />
                        <HeaderStyle CssClass="" />
                    </asp:BoundField>         
                    <asp:BoundField DataField="Guid" HeaderText="Guid" SortExpression="Guid">            
                        <ItemStyle CssClass="tipoGuid" />
                    </asp:BoundField>           
                </Columns>
            </asp:GridView>


        Y en las celdas del encabezado…

        Ya sea en la tabla generada

        'Contenido a las celdas de la fila de abajo
        celda21.InnerText = "Imagen"
        celda21.Attributes.Add("class", "tipoImagen")
        celda22.InnerText = "Nombre"
        celda22.Attributes.Add("class", "tipoNombre")
        celda23.InnerText = "Fecha Nac."
        celda23.Attributes.Add("class", "tipoFecha")

        Y en la tabla insertada en crudo

        'Opcion 2: Agregando una tabla generada dinamicamente
        e.Row.Cells(3).Controls.Clear()
        e.Row.Cells(3).Text = "<table border=0 cellpadding=0 cellspacing=0><tr><td colspan=2>Otros datos</td></tr><tr><td class='tipoEspecie'>Especie</td><td class='tipoGuid'>GUID</td></tr></table>"

        Y alli…visualizaremos

        image

 

Ejemplo para la descarga

 

Si no funciona la incrustación de arriba click aqui

Enlaces

Gráficos en ASP.NET: Línea/Torta/Radial/otros (free y comerciales) … en HTML/CSS, Imágenes, Javascript, Flash y Silverlight

He aquí un simple pero extenso listado de componentes para insertar gráficos en ASP.NET, pero no solo queda ahí sino también para insertar gráficos en paginas HTML mediante Javascript, Flash, Silverlight y hasta con puro CSS.
Hace bastante tenia este post en "borrador" hasta que un amigo virtual (eso que uno gana en los newsgroup y foros) Javier Santamaría me dio pie para postearlo por aquí para tenerlos de referencia.
También por que en estos días mi amiga Gabriela  necesitaba mostrar sus datos de su sistema de encuesta, retome de nuevo este post.

Al mejor estilo de listado como de articulo anterior:
            Manuales, libros, enlaces sobre ASP.NET 2.0

Aquí se viene un recopilación de componentes para crear gráficos en ASP.NET…algunos son componentes del lado del servidor que nos ayudan a renderizar en gráficos de imagen, Javascript , Flash y/o Silverlight

El orden aquí no es importante, es decir no es que recomiendo el primero de cada lista. Solo que asi ya quedo guardado mientras lo iba completando al post. Para cada caso particular y como el desarrollador se sienta mas "comodo/a gusto" y por supuesto los requerimientos del usuario final.

NOTA: Si deseas insertar otro mas… escríbeme un comentario

FREE

  • Microsoft Chart Controls for Microsoft .NET Framework 3.5
  • WebChart – Free Chart control for ASP.NET (renderiza en imagen png, jpg, gif)
  • Logi Report 
  • ASP.NET Resource Kit (aqui venían componente comerciales con licencia free, habia que registrarse, pero ya quedo en la historia. No están disponibles los enlaces)
  • Reports Starter Kit (ejemplo de graficos como imagen para utilizar)
  • Nplot – Free charting library for .NET (para asp.net y para winform)
  • WebChart: Roll your own ASP.NET Chart Control (CodeProject)
  • ZedGraph. (Recomendación de Javier Santamaría)
  • Basados en Flash:
    • FusionCharts Free v2 (gráficos en Flash y XML, no es un componente)
    • amCharts (graficos en Flash, componente para ASP.NET)
    • Open Flash Chart y ASP.NET (en Flash)
    • Gráficas Flash para todos. Basados en XML y Flash (free)
    • XML/SWF Charts
  • Basados en Silverlight
    • VISIfire. Open Source Data Visualization Component
    • Silverlight Toolkit
    • Silverlight 2.0 Pie Chart (Beta)
  • Basados en javascript:
    • jQuery: fgCharting
    • jQuery: jqChart
    • jQuery: Sparkline . Incrustar pequeños graficos inline
    • jQuery: Flot. Flot is a pure Javascript plotting library for jQuery.
    • Emprise JavaScript Charts. La versión personal es free
    • PlotKit – Javascript Chart
    • AjaxMGraph (XHTML y CSS)
    • WebFx Chart
  • Basados en CSS:
    • Dynamic Pie Chart with CSS
    • SAC Simple Accessible Charts
    • CSS for bar graph
    • Bar Chart with CSS
  • Frameworks para graficar en web
    • Google Chart API
    • Google Visualization API Gallery
    • Yahoo! UI Library: Charts
  • Mas componentes para graficar
    http://www.asp.net/community/control-gallery/browse.aspx?category=7

 

 

MANUALMENTE ("artesanalmente")

Utilizando System.Drawing…

 

COMERCIALES

  • Dundas Charts
  • ComponentoONE
  • ChartDirector for .NET.
  • Nevron Chart for .NET
  • Infragistics
  • .netCHARTING
  • Office Web Components (COM)
  • Software Siglo XXI team 
  • RChart 2.1 for .NET

 

…con mas detalle…

 

FREE

 


  • Microsoft Chart Controls for Microsoft .NET Framework 3.5

Por fin Microsoft saca su propio componente de controles (mmm! es Dundas Chart por si te parece conocida la interfaz)… todavía no lo utilice. Hace un par de días nos comentaba elBruno en este articulo:

Ejemplos: Samples Environment for Microsoft Chart Controls (ASP.NET y Winform)
Algunos enlaces:

 

  • WebChart – Free Chart control for ASP.NET

 

  • Logi Report


Reportes basados en XML. Interesante herramienta para generar reportes y exportarlos a muchos formatos (Excel, Word, CSV, HTML y PDF), y poder tener acciones/eventos a una fila/encabezado o reporte completo. Podemos generar a partir de un template de PDF o Excel.
Integración con .NET/J2EE, ASP.NET

Logi Report

Requerimientos:

  • Microsoft Internet Information Server (IIS)
  • Microsoft .NET Framework
  • MDAC 2.7 or higher (Windows 2003 has MDAC 2.8 preinstalled)
  • ODBC or OLEDB compliant database (such as MSDE, SQL server, or Oracle) connectivity

 

  • ASP.NET Resource Kit

Aquí ya toco de oído, porque este enlace en alguno momento lo comentaron los newsgroups. Ahora no funciona, lo dejo por aqui para “recordarlo”.
Un poco de historia….
No se si esto servirá para asp.net 2.0, pero bueno lo dejo por aqui para que si alguien lo lee conozca que algunas vez teniamos componentes comerciales free!! (ComponentOne Studio for ASP.NET, Infragistics WebGrid part of NetAdvantage 2004, IP*Works! CC ICharge Component, Sax.net Security for ASP.NET, telerik r.a.d.rotator and r.a.d. spell components.)
ASP.NET Resource Kit trae el ComponentOne Studio for ASP.NET con licencia, pero hay que registrarse (y la web para registrarse ya no funciona)
http://msdn.microsoft.com/asp.net/asprk/ >> este enlace ya no funciona ;( ahora es aquí (un poco mas largo)
http://www.microsoft.com/downloads/details.aspx?FamilyID=aef6aa76-ab88-4264-87b4-8e946ef584d7&displaylang=en

 

 

  • Reports Starter Kit

(Esto lo aporto el gran Juan T. Llibre) Aquí  dentro tenemos ejemplos de gráficos… parece que amándolo artesanalmente. Pero podemos aprovechar el ejemplo para nuestros proyectos.
http://www.asp.net/StarterKits/DownloadReports.aspx?tabindex=0&tabid=1
image

 

  • Nplot – Free charting library for .NET

image

Esto lo vi pero nunca lo llegue a probar tanto para ASP.NET como para Winform.
http://netcontrols.org/nplot/wiki/

Estadísticas de su utilización(Febrero 2008) http://www.scimatic.com/?q=node/229 

 

image image image image

 

  • WebChart: Roll your own ASP.NET Chart Control (Codeproject)

Es un poco antiguo el articulo Junio/2003, pero por ahí puede alguien modificar para utilizarlo en proyectos de ASP.NET 2.0
Url: http://www.codeproject.com/KB/custom-controls/webchart.aspx
image image

 

 

  • ZedGraph

URL: http://zedgraph.org/wiki/index.php?title=Main_Page
Articulo en CodeProject: A flexible charting library for .NET (by JChampion)

image image image image  image

 

  • FusionCharts Free v2

Aqui hay que escribir un poco de XML, ya que los gráficos son película flash que hay que enviarles los datos y configuración mediante un xml, ya sea por querystring, o por flashvar. O sea no esta integrado a nuestor IDE, pero nos brinda de un modo sencillo poder incrustar gráficos rápidamente.

 

 

  • amCharts

Al igual que el anterior paquete, amChart renderiza con una película flash, que podemos cargarla desde un xml, dentro de la misma pagina, o recuperarlo desde un url diferente, logrando así que nuestro gráfico sea dinámico y muy estilizado.
Aqui si existe un componente para ASP.NET para manipularlo desde el codigo, para no estar generando esos lindos tag de xml, y para enlazarlos a nuestros proveedores de datos.

 

 

 

  • Open Flash Chart y ASP.NET

Basados en un articulo en buayacorp, sobre estas dos tecnologías.
Url del articulo: http://www.buayacorp.com/archivos/graficos-con-open-flash-chart-y-aspnet/
Open Flash: http://teethgrinder.co.uk/open-flash-chart/
Open Flash Librería para .NET: http://teethgrinder.co.uk/open-flash-chart/dot-net.php
(existen para Java, Perl, Python, Ruby and Rails y PHP…)
image image image
Solución en Visual Studio 2008 (del articulo de Alex en buayacorp)

 

 

  • Gráficas Flash para todos

XML y Flash.. listo para utilizar
URL: http://www.soitu.es/soitu/2008/03/25/met/1206461193_108279.html
image image

 

  • XML/SWF Charts

XML y Flash.. listo para utilizar
URL: http://www.maani.us/xml_charts/index.php
Licencia: http://www.maani.us/xml_charts/index.php?menu=License
 

image

 

 

  • VISIfire. Open Source Data Visualization Component (Powered by Microsoft Silverlight)

URL: http://www.visifire.com/
Galeria: http://www.visifire.com/silverlight_charts_gallery.php
Licencia: http://www.visifire.com/license.php (Tiene licencia dual, tanto Open Source GPL 3.0 o Comercial)

image

 

 

  • Silverlight Toolkit

image Aqui podemos tener acceso a multiples add-ins que son controles para Silverlight

URL: http://www.codeplex.com/Silverlight/
Charting: http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&referringTitle=Home
image image

  • Silverlight 2.0 Pie Chart

URL: http://petermcg.wordpress.com/2008/05/18/silverlight-20-pie-chart/

image

 

  • jQuery: fgCharting

Aqui podemos visualizar un ejemplo de lo que podemos hacer con este libreria que es un plugin de jQuery, la empresa que nos brinda Filament Group

http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/

Alli tambien hay un ejemplo para la descarga

 

  • jQuery: jqChart

Recien por la version 0.1, aqui el ejemplo:
 http://www.reach1to1.com/sandbox/jquery/jqchart/

image

 

  • jQuery: Sparkline

Generar pequeños graficos inline ya sea por incrustación HTML o medinate JS (Sparkline en wikipedia: Es un tipo de informacion grafica que repredenta una simple y condensada manera de visualizar variaciones y comparaciones)
URL: http://omnipotent.net/jquery.sparkline/

Ejemplos:

  • Mouse speed clip_image001
  • Inline clip_image002line graphs clip_image003
  • Bar charts clip_image004 negative values: clip_image005
  • Composite inline clip_image006
  • Inline with normal range clip_image007
  • Composite bar clip_image008
  • Discrete clip_image009
    Discrete with threshold clip_image010
  • Customize size and colours clip_image011
  • Tristate charts clip_image012
    (think games won, lost or drawn)
  • Tristate chart using a colour map: clip_image013
  • Pie charts clip_image014clip_image015clip_image016
  • Bullet charts
    clip_image017
    clip_image018
    clip_image019

 

  • jQuery: Flot

Sencillo para utilizar, lo interesante es la interactividad con el grafico y el zoom

URL: http://code.google.com/p/flot/
Ejemplos: http://people.iola.dk/olau/flot/examples/
image image image

 

  • Emprise Javascript Chart

Muychas propiedades “altamente deseables”: Plugin Free: 100% Pure JavaScript Charting Solution
Interactivo: Hints, Mouse Tracking, Mouse Events, Key Tracking and Events, Zooming, Scrolling, y Crosshairs
Axis Scaling, Auto Zooming, Scrolling, Stackable Series, Multiple Chart Types, Ajax-Driven Data, Customizable

URL: http://www.ejschart.com/
Ejemplos: http://www.ejschart.com/examples/index.php
Licencia: es Free (con algunas restricciones) para uso Personal en un solo sitio
http://www.ejschart.com/pricing.php

  image  image image image image

 

  • PlotKit – Javascript Chart

Framework Javascript para armar gráficos y presentarlos a través de HTML Canvas y SVG vía Adobe SVG Viewer
URL: http://www.liquidx.net/plotkit/
Tutorial: http://media.liquidx.net/js/plotkit-doc/PlotKit.QuickStart.html

image image image

 

  • AjaxMGraph

Basado en Prototype… simple
URL: http://dragan.yourtree.org/code/ajax-mgraph
Un Articulo: http://dragan.yourtree.org/blog/en/2007/03/31/ajax-mgraph/

image image

 

  • WebFx Chart

Interesante metodo de VML en IE o utiliza Canvas o SVG en cualquier otro browser. También tiene una forma de salida a Javascript
URL: http://webfx.eae.net/dhtml/chart/chart.html
Demo: http://webfx.eae.net/dhtml/chart/demo.html

image image image

 

  • Dynamic Pie Chart with CSS

Con imagenes de fondo y CSS…
image
la idea:

<div class="pie size35"></div> 
   <p class="percent">37%</p> 
</div> 


image

 

  • SAC Simple Accessible Charts

CSS.. es decir Accesible, Rapido, no quiere javascript (version basica), Redimensionable,  facil extension…

URL: http://www.grassegger.at/xperiment/sac-simple-accessible-charts-css/

Ejemplo: http://grassegger.at/xperimente/charts-daten-semantik-css/

image

 

  • CSS for bar graph

URL: http://applestooranges.com/blog/post/css-for-bar-graphs/?id=55

image image image

 

 

  • Bar Chart with CSS

URL: http://www.cssplay.co.uk/menu/barchart.html

image image

 

 

  • Google Chart API

Tener graficos rapidamente sin tener compoenentes extraños :), solamente referenciando una URL para obtener la imagen que genera Google por nosotros.

Mediante la URL formateamos los datos que necesita y listo! a utilizarlo

http://code.google.com/apis/chart/

Un articulo anterior Gráficos a la carta: Google Chart API

Componente .NET:

  • Google Visualization API

Aqui hay que escribir un poco de javascript (o encapsularlo en algun componente que lo haga por nosotros) para que Google nos renderice a SVG o VML, y en otros casos en una imagen

Existen tambien algunos graficos que renderizan a Flash.

Interesante es el tipo de consultas que podemos hacer tanto en queryString como en variables en JS ya que todo lo guarda en un Datatable, podemos hacer una consulta a una fuente de datos que se guarde en este objeto (no tiene nada que ver con del DataTable de .NET)

La galeria tiene los graficos tipicos: Area, Lineas, Tortas, Barras, pero tambien se pueden generar Word Cloud, Motion Chart, Panorama Analytics Gadget, Timeline Gadget, Time Series Chart, Gauge, Gantt

 

  • Yahoo! UI Library: Charts

Aqui la idea mediante sencillos js poder crear graficos en Flash

Todavia esta etapa experimental pero es bueno tenerla en mente

URL: http://developer.yahoo.com/yui/charts/ 
Ejemplo: http://developer.yahoo.com/yui/examples/charts/index.html 

[solo para Flash]

Aqui podemos destacar que podemos tener tambien ayuda si estamos desarrollando dentro de Flash ya que nos brindan una seria de componentes (para Flash y para Flex) llamado ASTRA (ActionScript Toolkit for Rich Applications) donde tenemos algo especial para graficos

http://developer.yahoo.com/flash/astra-flash/charts/

 

 

 

 

MANUALMENTE ("artesanalmente")

Manualmente, como siempre digo… "artesanalmente". Lo mas free de todos (hacerlo con nuestros propios dedos) con GDI+ dentro de System.Drawing

Ejemplos:

 

  


 

COMERCIALES

Cambiar clave/serial de Office 2007 (idem para XP/2003)

Aquí un pequeño tip que en una empresa necesitábamos para modificar sus key de instalación.
Esto es un resumen con imágenes 🙂

  1. Cerrar cualquier programa de Office
  2. Abrir el editor de Registro de Windows (regedit.exe)
  3. Buscar la subclave correcta para Office 2007
     En Win32
         HKEY_LOCAL_MACHINE SoftwareMicrosoftOffice12.0Registration
    En Win34
         HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftOffice12.0Registration

    (Para mas info sobre las clave de registro sobre Office XP/2003 ir aquí)

    (Nota: mas adelante escribiré un post como detectar desde una app32 bit que estamos en un win64 en modo WOW)

  4. Importante: Realizar un backup de esta subclave
    image
    Este paso es para “abrir el paraguas por si llueve” :), por las dudas…
  5. Dentro de Registration encontraremos algunos GUID, algo así
    image
    Hay que buscar cual es el que corresponde a nuestro Office
    Como?
    En cada uno tiene una Entrada que dice ProductName y alli tendremos que encontrar nuestra instalación del paquete ofimático
    image
  6. Cuando tengamos la sección que corresponde con la instalación debemos quitar dos entradas.
    Simplemente las seleccionamos y damos Eliminar. Las entradas son: ProductID y DigitalProductID
      • image
      • image
  7. Cerramos luego el Editor de Registro
  8. Abrimos cualquier programa Office que nos solicitara la nueva clave/serial

Mas abajo dejo el enlace a Microsoft Support donde detalla mas aun este proceso.

 

Enlaces