Example #1
0
        private NetOffice.PowerPointApi._Slide AgregarGraficaDatosAnioGeneral(NetOffice.PowerPointApi._Slide diapositiva)
        {
            NetOffice.PowerPointApi.Chart     grafica     = null;
            NetOffice.PowerPointApi.ChartData graficaInfo = null;
            NetOffice.ExcelApi._Workbook      cuaderno    = null;
            NetOffice.ExcelApi._Worksheet     hoja        = null;

            try
            {
                IEnumerable <DatosTablaDto> datos        = (IEnumerable <DatosTablaDto>)RecuperarDatosParaTabla();
                IEnumerable <DatoTablaDto>  datosGrafica = datos.First().DatoTablaDtosList;

                grafica     = (NetOffice.PowerPointApi.Chart)diapositiva.Shapes[NumElemGrafica[1]].Chart;
                graficaInfo = grafica.ChartData;

                cuaderno = (NetOffice.ExcelApi._Workbook)graficaInfo.Workbook;
                hoja     = (NetOffice.ExcelApi._Worksheet)cuaderno.Worksheets[9];

                IEnumerable <String> anios = datosGrafica.Where(x => x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL) && !(x.Titulo.Equals(ConstantesBl.TOTAL))).Select(x => x.Titulo).Distinct();
                int numRenglon             = 3;
                int cAnios = 0;

                if (datosGrafica != null && datosGrafica.Count() > 0)
                {
                    cAnios = 0;
                    foreach (String anio in anios)
                    {
                        if (cAnios >= 2 || anios.Count() <= 3)
                        {
                            ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("B{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, anio);

                            ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("C{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.ENTERO, datosGrafica.Where(x => x.Titulo.Equals(anio) && x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL)).Select(x => x.Importe).Sum());
                            numRenglon++;
                        }
                        cAnios++;
                    }
                }

                grafica.ApplyDataLabels();
                grafica.Refresh();
            }
            catch (Exception ex)
            {
                Excepcion.InsertarException(ex, CodUsuario);
            }
            finally
            {
                if (cuaderno != null)
                {
                    cuaderno.Save();
                    cuaderno.Close(true);
                    grafica.Application.Quit();
                    grafica.Dispose();
                }
            }

            return(diapositiva);
        }
Example #2
0
        private NetOffice.PowerPointApi._Slide AgregarGraficaDatosAnio(NetOffice.PowerPointApi._Slide diapositiva)
        {
            NetOffice.ExcelApi._Workbook      libro       = null;
            NetOffice.ExcelApi._Worksheet     hoja        = null;
            NetOffice.PowerPointApi.ChartData graficaInfo = null;
            NetOffice.PowerPointApi.Chart     grafica     = null;


            try
            {
                libro = (NetOffice.ExcelApi._Workbook)graficaInfo.Workbook;
                hoja  = (NetOffice.ExcelApi.Worksheet)libro.Worksheets[8];

                grafica     = (NetOffice.PowerPointApi.Chart)diapositiva.Shapes[NumElemGrafica[1]].Chart;
                graficaInfo = grafica.ChartData;

                IEnumerable <DatosTablaDto> datos        = (IEnumerable <DatosTablaDto>)RecuperarDatosParaTabla();
                IEnumerable <DatoTablaDto>  datosGrafica = datos.First().DatoTablaDtosList;

                IEnumerable <String> anios = datosGrafica.Where(x => !(x.Titulo.Equals(ConstantesBl.TOTAL))).Select(x => x.Titulo).Distinct();
                IEnumerable <String> tipos = datosGrafica.Where(x => !(x.Concepto.Equals(ConstantesBl.TOTAL_GENERAL))).Select(x => x.Concepto).Distinct();

                NetOffice.ExcelApi.Range      rango = (NetOffice.ExcelApi.Range)hoja.Cells.get_Range("A1", "B4");
                NetOffice.ExcelApi.ListObject tabla = hoja.ListObjects[1];

                tabla.Resize(rango);

                int    numRenglon = 2;
                int    cAnios     = 0;
                String columna    = "";
                if (datosGrafica != null && datosGrafica.Count() > 0)
                {
                    numRenglon = 3;
                    foreach (String tipo in tipos)
                    {
                        ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format("A{0}", numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, tipo);
                        columna = "";
                        int cColumna = 1;
                        cAnios = 0;
                        foreach (String anio in anios)
                        {
                            if (cAnios >= 2 || anios.Count() <= 3)
                            {
                                if (cColumna == 1)
                                {
                                    columna = "B{0}";
                                }
                                else if (cColumna == 2)
                                {
                                    columna = "C{0}";
                                }
                                else if (cColumna == 3)
                                {
                                    columna = "D{0}";
                                }
                                else if (cColumna == 4)
                                {
                                    columna = "E{0}";
                                }
                                else if (cColumna == 5)
                                {
                                    columna = "F{0}";
                                }
                                if (numRenglon == 3)
                                {
                                    ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, 2), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.TEXTO, anio);
                                }
                                try
                                {
                                    ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, numRenglon), Type.Missing)).FormulaR1C1 = TipoDatoBase.FormatearDato(TipoDatoAtrib.ENTERO, datosGrafica.Where(x => x.Titulo.Equals(anio) && x.Concepto.Equals(tipo)).Select(x => x.Importe).First());
                                }
                                catch
                                {
                                    ((NetOffice.ExcelApi.Range)hoja.Cells.get_Range(string.Format(columna, numRenglon), Type.Missing)).FormulaR1C1 = 0;
                                }
                                cColumna++;
                            }
                            cAnios++;
                        }
                        numRenglon++;
                    }

                    grafica.ApplyDataLabels(NetOffice.PowerPointApi.Enums.XlDataLabelsType.xlDataLabelsShowNone);
                }
                grafica.Refresh();
            }
            catch (Exception ex)
            {
                Excepcion.InsertarException(ex, CodUsuario);
            }
            finally
            {
                if (libro != null)
                {
                    libro.Save();
                    libro.Close(true);
                    grafica.Application.Quit();
                    grafica.Dispose();
                }
            }

            return(diapositiva);
        }