示例#1
0
        private void button7_Click(object sender, EventArgs e)
        {
            List <Apontamentos> lista = new List <Apontamentos>();

            try
            {
                Connection.obterConexao();
                var biz = new br.com.iasdjf.biz.ApontamentosBIZ();

                //deleta todos os apontamentos
                biz.DeleteAll();

                //lista = dataGridView1.DataSource;
                lista = biz.GetAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao inserir apontamentos. Detalhes:" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Connection.fecharConexao();
            }
        }
示例#2
0
        private void OnLoad(object sender, EventArgs e)
        {
            List <Apontamentos> lista = new List <Apontamentos>();

            try
            {
                Connection.obterConexao();
                var biz = new br.com.iasdjf.biz.ApontamentosBIZ();
                lista = biz.GetAll();

                //agrupo por datas
                var grupoSabados = lista.GroupBy(c => c.Saturday);
                //cria uma tabela dinamica
                var Dtb_Apontamentos = new DataTable();

                //Acrescenta coluna ID Pessoa para posteriormente inserir no DAO Apontamentos
                Dtb_Apontamentos.Columns.Add("Id_Pessoa");

                var listaIdNomesDistintos = (from p in lista select p.Id_Pessoa).ToList().Distinct();
                foreach (var item in listaIdNomesDistintos)
                {
                    var row = Dtb_Apontamentos.NewRow();
                    row["Id_Pessoa"] = item;
                    Dtb_Apontamentos.Rows.Add(row);
                    Dtb_Apontamentos.AcceptChanges();
                }

                //Acrescenta coluna Nome Pessoa
                Dtb_Apontamentos.Columns.Add("Nome");
                var listaNomesDistintos = (from p in lista select p.Nome).ToList().Distinct();

                int rows = 0;
                foreach (DataRow row in Dtb_Apontamentos.Rows)
                {
                    row["Nome"] = listaNomesDistintos.ElementAtOrDefault(rows);
                    Dtb_Apontamentos.AcceptChanges();
                    rows++;
                }

                int count = 0;
                //insere as n datas como colunas no datatable
                foreach (var itemColuna in grupoSabados)
                {
                    //Adiciona coluna de Sabado concatenando com o Id do Sabado
                    Dtb_Apontamentos.Columns.Add(itemColuna.Key.ToString("dd/MM") + "_" + itemColuna.ElementAtOrDefault(count).Id_Saturday.ToString());
                    foreach (DataRow row in Dtb_Apontamentos.Rows)
                    {
                        var presence = itemColuna.Where(c => c.Nome == row["Nome"].ToString()).FirstOrDefault();
                        if (presence != null)
                        {
                            row[itemColuna.Key.ToString("dd/MM") + "_" + itemColuna.ElementAtOrDefault(count).Id_Saturday.ToString()] = presence.Presence;
                        }
                        else
                        {
                            row[itemColuna.Key.ToString("dd/MM") + "_" + itemColuna.ElementAtOrDefault(count).Id_Saturday.ToString()] = "";
                        }
                    }
                    count++;
                }

                //Faz o bind para o datagrid
                dataGridView1.DataSource = Dtb_Apontamentos;

                //Oculta a 1ª coluna
                this.dataGridView1.Columns["Id_Pessoa"].Visible = false;

                //Altera o texto de exibicao das colunas retirando o codigo
                for (int i = 2; i < dataGridView1.Columns.Count; i++)
                {
                    dataGridView1.Columns[i].HeaderText = dataGridView1.Columns[i].Name.Split('_')[0];
                }


                //Altera cores celulas
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    //Trava a 1ª coluna para edicao
                    foreach (DataGridViewColumn column in dataGridView1.Columns)
                    {
                        if (column.Index == 1)
                        {
                            column.ReadOnly = true;
                        }

                        //Desabilita a ordenacao das colunas
                        column.SortMode = DataGridViewColumnSortMode.NotSortable;

                        DataGridViewCell cell = dataGridView1.Rows[row.Index].Cells[column.Index];
                        if (cell.Value != null)
                        {
                            if (cell.Value.Equals("P"))
                            {
                                cell.Style.BackColor = Color.Cyan;
                            }
                            else if (cell.Value.Equals("F"))
                            {
                                cell.Style.BackColor = Color.Pink;
                            }
                        }
                    }
                }

                //Redimensiona as colunas
                dataGridView1.AutoResizeColumns();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao buscar apontamentos. Detalhes:" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Connection.fecharConexao();
            }
        }