Llame a la oficina en asp.net para hacer varios gráficos estadísticos (3D)

 
1. Descarga los componentes COM de owc11

http://www.microsoft.com/downloads/details.aspx?FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76&displaylang=en

2. Registrar owc11

  Agregue la referencia owc11.dll en C: / Archivos de programa / Archivos comunes / Microsoft Shared / Web Components / 11 en el proyecto o agregue com como se muestra a continuación


3. Agregue en el proyecto

    utilizando OWC11;

4. Ejemplos de codificación inicial son los siguientes:

 public class ChartFactory
 {   public ChartFactory ()   {    InitTypeMap ();    //    // TODO: agregue la lógica del constructor aquí    //   }   protected System.Web.UI.WebControls.Image imgHondaLineup;   private string [] chartCategoriesArr;   private string [] chartValuesArr;   private OWC11.ChartChartTypeEnum chartType = OWC11.ChartChartTypeEnum.chChartTypeColumn3D; //   tabla hash estática privada predeterminada chartMap = new Hashtable ();   cadena estática privada chartTypeCh = "histograma vertical";   cadena estática privada chartTitle = "";













  private void InitTypeMap ()
  {    chartMap.Clear ();    OWC11.ChartChartTypeEnum [] chartTypes = new OWC11.ChartChartTypeEnum [] {ChartChartTypeEnum.chChartTypeColumnClustered,                     ChartChartTypeEnum.chChartTypeColumn3D,                     ChartChartTypeEnum.chChartTypeBarClustered,                     ChartChartTypeEnum.chChartTypeBar3D,                     ChartChartTypeEnum.chChartTypeArea,                     ChartChartTypeEnum.chChartTypeArea3D,                     ChartChartTypeEnum.chChartTypeDoughnut,                     ChartChartTypeEnum.chChartTypeLineStacked,                     ChartChartTypeEnum.chChartTypeLine3D,










                    ChartChartTypeEnum.chChartTypeLineMarkers,
                    ChartChartTypeEnum.chChartTypePie,
                    ChartChartTypeEnum.chChartTypePie3D,
                    ChartChartTypeEnum.chChartTypeRadarSmoothLine,
                    ChartChartTypeEnum.chChartTypeSmoothLine};
   string [] chartTypesCh = new String [] "" gráfico de barras verticales [] "gráfico de barras verticales "Imagen"," horizontal 3D gráfico estadístico de columna "," gráfico estadístico de área "," gráfico estadístico de área 3D "," gráfico circular hueco "," gráfico estadístico de línea "," gráfico estadístico de polilínea 3D "," gráfico estadístico de polilínea con puntos "," gráfico circular ", "3D Pie Chart", "Network Statistics Chart", "Arc Chart"};
  
   para (int i = 0; i <chartTypes.Length; i ++)
   {     chartMap.Add (chartTypesCh [i], chartTypes [i]);    }   }


  public ChartSpaceClass BuildCharts ()
  {    string chartCategoriesStr = String.Join ("/ t", chartCategoriesArr);    string chartValuesStr = String.Join ("/ t", chartValuesArr);

   OWC11.ChartSpaceClass oChartSpace = nuevo OWC11.ChartSpaceClass ();

   // ------------------------------------------------ ------------------------
   // Dale a los gráficos circulares y de anillos una leyenda en la parte inferior. Para el resto de
   // ellos, deje que el control lo resuelva por sí solo.
   // ------------------------------------------------ ------------------------

   chartType = (ChartChartTypeEnum) chartMap [chartTypeCh];

   if (chartType == ChartChartTypeEnum.chChartTypePie ||
    chartType == ChartChartTypeEnum.chChartTypePie3D ||
    chartType == ChartChartTypeEnum.chChartTypeDoughnut)
   {     oChartSpace.HasChartSpaceLegend = true;     oChartSpace.ChartSpaceLegend.Position = ChartLegendPositionEnum.chLegendPositionBottom;    }


   oChartSpace.Border.Color = "azul";
   oChartSpace.Charts.Add (0);
   oChartSpace.Charts [0] .HasTitle = true;
   oChartSpace.Charts [0] .Type = chartType;
   oChartSpace.Charts [0] .ChartDepth = 125;
   oChartSpace.Charts [0] .AspectRatio = 80;
   oChartSpace.Charts [0] .Title.Caption = chartTitle;
   oChartSpace.Charts [0] .Title.Font.Bold = true;

   oChartSpace.Charts [0] .SeriesCollection.Add (0);
   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection.Add ();

   // ------------------------------------------------ ------------------------
   // Si está trazando un gráfico circular o una variación del mismo, los porcentajes tienen mucho
   // más sentido que los valores ...
   // ------------------------------------------------ ------------------------
   if (chartType == ChartChartTypeEnum.chChartTypePie ||
    chartType == ChartChartTypeEnum.chChartTypePie3D ||
    chartType == ChartChartTypeEnum.chChartTypeDoughnut)
   {     oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .HasPercentage = true;     oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .HasValue = false;    }     // ----------------------------------------------- -------------------------




    // No es así para otros tipos de gráficos donde los valores tienen más significado que
    // los porcentajes.
    // ------------------------------------------------ ------------------------
   else
   {     oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .HasPercentage = false;     oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .HasValue = true;    }    // ----------------------------------------------- -------------------------    // Conecte sus propias campanas y silbidos visuales aquí    // ------------- -------------------------------------------------- ---------    oChartSpace.Charts [0] .SeriesCollection [0] .Caption = String.Empty;



               




   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Font.Name = "verdana";
   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Font.Size = 10;
   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Font.Bold = true;
   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Font.Color = "rojo";
   oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Position = ChartDataLabelPositionEnum.chLabelPositionCenter;
  
   si (chartType == ChartChartTypeEnum.chChartTypeBarClustered ||
    chartType == ChartChartTypeEnum.chChartTypeBar3D ||
    chartType == ChartChartTypeEnum.chChartTypeColumnClustered ||
    chartType == ChartChartTypeEnum.chChartTypeColumn3D)
   {
    oChartSpace.Charts [0] .SeriesCollection [0] .DataLabelsCollection [0] .Position = ChartDataLabelPositionEnum.chLabelPositionOutsideEnd;
   }
  
   oChartSpace.Charts [0] .SeriesCollection [0] .SetData (OWC11.ChartDimensionsEnum.chDimCategories,
    Convert.ToInt32 (OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartCategoriesStr);

   oChartSpace.Charts [0] .SeriesCollection [0] .SetData (OWC11.ChartDimensionsEnum.chDimValues,
    Convert.ToInt32 (OWC11.ChartSpecialDataSourcesEnum.chDataLiteral), chartValuesStr);

   return oChartSpace;
  }

  # región 属性 设置
  cadena pública [] chartCategoriesArrValue
  {    get    {     return chartCategoriesArr;    }    establecer    {     chartCategoriesArr = valor;    }   }








  cadena pública [] chartValuesArrValue
  {    get    {     return chartValuesArr;    }    establecer    {     chartValuesArr = valor;    }   }   cadena pública chartTypeValue   {    get    {     return chartTypeCh;    }    establecer    {     chartTypeCh = valor;    }   }   cadena pública chartTitleValue   {    get    {     return chartTitle;    }    establecer    {     chartTitle = value;    }   }   #endregion  }
































// Llamar primero, debe colocar una imagen en la página para mostrar el gráfico estadístico generado

  public void ShowChart ()
  {

// Asignación inicial
   chartFactory.chartCategoriesArrValue = chartCategories;
   chartFactory.chartValuesArrValue = chartValues;
   chartFactory.chartTitleValue = chartTitle;
   chartFactory.chartTypeValue = chartType;

   OWC11.ChartSpaceClass oChartSpace = chartFactory.BuildCharts ();
   string path = Server.MapPath (".") + @ "/ Images / Chart.jpeg"; // Generar imagen y guardar página puede ser png gif imagen
   oChartSpace.ExportPicture (ruta , "jpeg", 745, 500);
   Image1.ImageUrl = path; // mostrar gráfico estadístico
  }

// Consulte el artículo anterior para guardar gráficos estadísticos

// Debido a que cada vez que el gráfico estadístico generado sobrescribirá la imagen original, puede usar la fecha y la hora como el nombre de la imagen si es necesario, pero esto producirá muchas imágenes que deben procesarse a tiempo, si no lo hace ' No es necesario sobrescribirlo con el mismo nombre. La imagen original está bien.

Supongo que te gusta

Origin blog.csdn.net/jinzhengquanqq/article/details/5878244
Recomendado
Clasificación