コード例 #1
0
        private void btnPivotArray_Click(object sender, EventArgs e)
        {
            Model.Contexto contexto = new Model.Contexto();
            var            consulta = from venda in contexto.Vendas.ToList()
                                      group venda by new { venda.data.Year, venda.data.Month } into g
            orderby g.Key.Year, g.Key.Month
                           select new
            {
                ano       = g.Key.Year,
                mes       = g.Key.Month,
                qtdVendas = g.Count()
            };

            string[] vMes = new string[13] {
                "", "jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "oct", "nov", "dez"
            };

            string folder  = @"c:\Relatorios";
            string arquivo = @"C:\Relatorios\" + "pivot.xlsx";

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }

            if (File.Exists(arquivo))
            {
                File.Delete(arquivo);
            }

            FileInfo       caminhoNomeArquivo = new FileInfo(arquivo);
            ExcelPackage   arquivoExcel       = new ExcelPackage(caminhoNomeArquivo);
            ExcelWorksheet planilha           = arquivoExcel.Workbook.Worksheets.Add("Plan1");
            int            col = 1;
            int            lin = 1;


            planilha.Cells[lin, col].Value = "ANO";
            for (int i = 1; i <= 12; i++)
            {
                planilha.Cells[lin, ++col].Value = vMes[i];
            }

            for (int ano = 2010; ano <= 2020; ano++)
            {
                planilha.Cells[++lin, col = 1].Value = ano;
                for (int mes = 1; mes <= 12; mes++)
                {
                    var dados = consulta.Where(c => c.ano == ano && c.mes == mes).ToList();
                    planilha.Cells[lin, ++col].Value = (dados.Count() == 0)?0 : dados[0].qtdVendas;
                }
            }
            arquivoExcel.Save();
            arquivoExcel.Dispose();

            System.Diagnostics.Process.Start(arquivo);
        }
コード例 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            Model.Contexto contexto = new Model.Contexto();
            // dgvDados.DataSource = contexto.Produtos.ToList();

            // dgvDados.DataSource = contexto.Produtos.OrderByDescending(p => p.quantidade).ToList();

            // dgvDados.DataSource = contexto.Produtos.OrderBy(p => p.grupo).ThenByDescending(q => q.valor).ToList();

            List <Produto> lstProdutos = contexto.Produtos.OrderBy(p => p.grupo).ThenByDescending(q => q.valor).ToList();

            dgvDados.DataSource = lstProdutos;
        }
コード例 #3
0
        private void btnGrupoAno_Click(object sender, EventArgs e)
        {
            Model.Contexto contexto = new Model.Contexto();
            var            consulta = from venda in contexto.Vendas.ToList()
                                      group venda by new { venda.data.Year, venda.data.Month } into g
            orderby g.Key.Year, g.Key.Month
                           select new
            {
                ano       = g.Key.Year,
                mes       = g.Key.Month,
                qtdVendas = g.Count()
            };

            dgvConsulta.DataSource = consulta.ToList();
        }
コード例 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            Random randNum = new Random();

            string[]       vNomeMas = { "Miguel", "Arthur", "Bernardo", "Heitor", "Davi", "Lorenzo", "Théo", "Pedro", "Gabriel", "Enzo", "Matheus", "Lucas", "Benjamin", "Nicolas", "Guilherme", "Rafael", "Joaquim", "Samuel", "Enzo Gabriel", "João Miguel", "Henrique", "Gustavo", "Murilo", "Pedro Henrique", "Pietro", "Lucca", "Felipe", "João Pedro", "Isaac", "Benício", "Daniel", "Anthony", "Leonardo", "Davi Lucca", "Bryan", "Eduardo", "João Lucas", "Victor", "João", "Cauã", "Antônio", "Vicente", "Caleb", "Gael", "Bento", "Caio", "Emanuel", "Vinícius", "João Guilherme", "Davi Lucas", "Noah", "João Gabriel", "João Victor", "Luiz Miguel", "Francisco", "Kaique", "Otávio", "Augusto", "Levi", "Yuri", "Enrico", "Thiago", "Ian", "Victor Hugo", "Thomas", "Henry", "Luiz Felipe", "Ryan", "Arthur Miguel", "Davi Luiz", "Nathan", "Pedro Lucas", "Davi Miguel", "Raul", "Pedro Miguel", "Luiz Henrique", "Luan", "Erick", "Martin", "Bruno", "Rodrigo", "Luiz Gustavo", "Arthur Gabriel", "Breno", "Kauê", "Enzo Miguel", "Fernando", "Arthur Henrique", "Luiz Otávio", "Carlos Eduardo", "Tomás", "Lucas Gabriel", "André", "José", "Yago", "Danilo", "Anthony Gabriel", "Ruan", "Miguel Henrique", "Oliver" };
            string[]       vNomeFem = { "Alice", "Sophia", "Helena", "Valentina", "Laura", "Isabella", "Manuela", "Júlia", "Heloísa", "Luiza", "Maria Luiza", "Lorena", "Lívia", "Giovanna", "Maria Eduarda", "Beatriz", "Maria Clara", "Cecília", "Eloá", "Lara", "Maria Júlia", "Isadora", "Mariana", "Emanuelly", "Ana Júlia", "Ana Luiza", "Ana Clara", "Melissa", "Yasmin", "Maria Alice", "Isabelly", "Lavínia", "Esther", "Sarah", "Elisa", "Antonella", "Rafaela", "Maria Cecília", "Liz", "Marina", "Nicole", "Maitê", "Isis", "Alícia", "Luna", "Rebeca", "Agatha", "Letícia", "Maria-", "Gabriela", "Ana Laura", "Catarina", "Clara", "Ana Beatriz", "Vitória", "Olívia", "Maria Fernanda", "Emilly", "Maria Valentina", "Milena", "Maria Helena", "Bianca", "Larissa", "Mirella", "Maria Flor", "Allana", "Ana Sophia", "Clarice", "Pietra", "Maria Vitória", "Maya", "Laís", "Ayla", "Ana Lívia", "Eduarda", "Mariah", "Stella", "Ana", "Gabrielly", "Sophie", "Carolina", "Maria Laura", "Maria Heloísa", "Maria Sophia", "Fernanda", "Malu", "Analu", "Amanda", "Aurora", "Maria Isis", "Louise", "Heloise", "Ana Vitória", "Ana Cecília", "Ana Liz", "Joana", "Luana", "Antônia", "Isabel", "Bruna" };
            Model.Contexto contexto = new Model.Contexto();

            for (int i = 0; i < 200; i++)
            {
                Model.Cliente cliente = new Model.Cliente();
                cliente.id       = -1;
                cliente.nome     = (i % 2 == 0) ? vNomeMas[i / 2] : vNomeFem[i / 2];
                cliente.telefone = randNum.Next().ToString();
                DateTime data = Convert.ToDateTime("01/01/1920");
                cliente.aniversario = data.AddDays(randNum.Next(1, 30000));

                contexto.Clientes.Add(cliente);
                contexto.SaveChanges();
            }
            MessageBox.Show("Clientes gerados com sucesso...");
        }
コード例 #5
0
        private void btnPivot_Click(object sender, EventArgs e)
        {
            Model.Contexto contexto = new Model.Contexto();
            var            consulta = from venda in contexto.Vendas.ToList()
                                      group venda by new { venda.data.Year, venda.data.Month } into g
            orderby g.Key.Year, g.Key.Month
                           select new
            {
                ano       = g.Key.Year,
                mes       = g.Key.Month,
                qtdVendas = g.Count()
            };



            var pivotTable = consulta.ToList().ToPivotTable(
                item => item.mes,                                        //coluna do pivot
                item => item.ano,                                        //linha do pivot
                items => items.Any() ? items.Sum(x => x.qtdVendas) : 0); //valor do pivot

            dgvConsulta.DataSource = pivotTable;
        }
コード例 #6
0
        private void btnHtml_Click(object sender, EventArgs e)
        {
            Model.Contexto contexto = new Model.Contexto();
            var            consulta = from itens in contexto.ItensVendas.ToList()
                                      group itens by new { itens.venda.data.Year, itens.produto.grupo } into g
            orderby g.Key.Year, g.Key.grupo
                           select new
            {
                ano         = g.Key.Year,
                grupo       = g.Key.grupo,
                qtdVendas   = g.Count(),
                qtdProdutos = g.Sum(t => t.quantidade),
                total       = g.Sum(x => x.total)
            };

            string folder  = @"c:\Relatorios";
            string arquivo = @"C:\Relatorios\" + "Grupo.HTML";

            if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
            }

            if (File.Exists(arquivo))
            {
                File.Delete(arquivo);
            }

            StreamWriter sw = new StreamWriter(arquivo);

            using (sw)
            {
                sw.WriteLine("<html>");
                sw.WriteLine("<head>");
                sw.WriteLine("<meta http-equiv='Content-Type' " +
                             "content='text/html; charset=utf-8'/>");
                sw.WriteLine("<link rel='stylesheet' href='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css' integrity='sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T' crossorigin='anonymous'>");

                sw.WriteLine("</head>");
                sw.WriteLine("<body>");
                sw.WriteLine("<h1>Relatório de Grupo de Produtos</h1>");
                sw.WriteLine("<hr align='left' border:'5px' />");
                sw.WriteLine("<table class='table table-hover'> ");
                sw.WriteLine("<tr class='thead-dark'>");
                sw.WriteLine("<th align='right' width='30px'>ID</th>");
                sw.WriteLine("<th align='left'  width='30px'>GRUPO</th>");
                sw.WriteLine("<th align='left' width='90px'>QTD VENDAS</th>");
                sw.WriteLine("<th align='left' width='90px'>QTD PRODUTOS</th>");
                sw.WriteLine("<th align='left' width='100px'>Total</th>");
                sw.WriteLine("</tr>");

                int   cont      = 0;
                float somaGeral = 0;
                float somaGrupo = 0;
                int   anoAnt    = 0;
                foreach (var item in consulta.ToList())
                {
                    if (cont == 0)
                    {
                        anoAnt = item.ano;
                    }
                    else
                    {
                        if (anoAnt != item.ano)
                        {
                            sw.WriteLine("<tr class='table-danger'>");
                            sw.WriteLine("<td align='right' width='200px'>Total do ano  " + anoAnt.ToString() + ": " + string.Format("{0:C2}", somaGrupo) + "</td>");
                            sw.WriteLine("</tr>");
                            anoAnt    = item.ano;
                            somaGrupo = 0;
                        }
                    }
                    if (cont % 2 == 0)
                    {
                        sw.WriteLine("<tr class='table-primary'>");
                    }
                    else
                    {
                        sw.WriteLine("<tr class='table-info'>");
                    }
                    sw.WriteLine("<td align='right' width='30px'>" + item.ano + "</td>");
                    sw.WriteLine("<td align='left' width='30px'>" + item.grupo + "</td>");
                    sw.WriteLine("<td align='left' width='90px'>" + string.Format("{0:#.#,0}", item.qtdVendas) + "</td>");
                    sw.WriteLine("<td align='left' width='90px'>" + string.Format("{0:#.#,0}", item.qtdProdutos) + "</td>");
                    sw.WriteLine("<td align='left' width='100px'>" + string.Format("{0:C2}", item.total) + "</td>");
                    somaGrupo = somaGrupo + item.total;
                    somaGeral = somaGeral + item.total;

                    sw.WriteLine("</tr>");
                    cont++;
                }
                sw.WriteLine("<tr class='table-danger'>");
                sw.WriteLine("<td align='right' width='200px'>Total do ano  " + anoAnt.ToString() + ": " + string.Format("{0:C2}", somaGrupo) + "</td>");
                sw.WriteLine("</tr>");
                sw.WriteLine("</table>");

                sw.WriteLine("<hr align='left' border:'5px' />");

                sw.WriteLine("<BR/><h2 width='440px'>Total Geral: " + string.Format("{0:C2}", somaGeral) + "</h2>");
                sw.WriteLine("<BR/><h2>Total de Registros impressos: " + cont + "</h2>");
                sw.WriteLine("</body>");
                sw.WriteLine("</html>");
            }
            System.Diagnostics.Process.Start(arquivo);
        }