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); }
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; }
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(); }
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..."); }
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; }
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); }