Escolar Documentos
Profissional Documentos
Cultura Documentos
U ando e Ab
ando do Da aG idVie
Nota: No final de Outubro ser lanado no Super DVD VB contendo o site completo off-line, programas fontes em VB 2005 e Asp.Net e C#. Alm disto voc receber no DVD, como bnus, as verses completas do Visual Basic 2005 Express Edition, Visual Web Developer Express, SQL Server 2005 Express Edition , .NET Framework 2.0 e SDK preparadas e prontas para instalar com instrues em portugus para voc poder usufruir de todo o poder das ferramentas Express.
Apresentando o DataGridView
O DataGridView um controle que serve para exibir dados no formato tabular de linhas e colunas de diferentes tipos de fontes de dados proporcionando uma viso abrangente dos dados ao usurio final. Ele fcil de configurar e estender e fornece muitas propriedades, mtodos e eventos que pode ser usados para personalizar sua aparncia e comportamento. Embora voc ainda possa usar o DataGrid na verso 2.0 quando precisar exibir dados em um grid no pense duas vezes use o DataGridView pois alm dos recursos j citados ele tem um melhor desempenho.(O DataGrid somente foi mantido na vers o 2.0 por um quest o de compatiblidade.) Os tijolos que montam o DataGridView so as clulas, elas so formadas pela interseo de linhas e colunas e podem ser acessadas em uma linha ou pela seleo da interseo linha/coluna que so retornadas na propriedade SelectedCells na forma de coleo. Eu no vou perder tempo comparando os dois controles apenas vou deixar registrado que o nico recurso que no foi incorporado ao DataGridView a exibio hierrquica da informao de duas tabelas relacionadas em um nico controle. No DataGridView so necessrios dois controles para obter o mesmo resultado; assim voc vai precisar de dois controles DataGridView para exibir informao de duas tabelas que possuem um relacionamento : mestredetalhes.
3/15/12
U ando e Ab
ando do Da aG idVie
ordenar dados; permitir o modo de seleo por linha, coluna ou clula; multiseleo ou seleo nica; copiar o conte do do clipboard em m ltiplos formatos incluindo: texto, CSV e HTML Alterar a forma como os usurios editam o conte do da clula. O controle permite que voc trabalhe com os componentes individuais do Grid. Assim , voc pode: Congelar linhas e colunas para no permitir a rolagem; esconder linhas , colunas e cabealhos; alterar a forma da linha faz com que o tamanho da coluna e cabealho se ajuste; Alterar o modo como os usurio fazem seleo; Fornecer dicas e menus de atalhos para clulas, linhas e colunas individuais; Personalizar os estilos das bordas das clulas, linhas e colunas. O Controle fornece a infra-estrutura para estender e customizar o grid pela implementao de interfaces, novas aparncias das clulas, linhas e colunas
Personalizao
A classe DataGridViewElement fornece a referncia para o controle pai DataGridView e possui a propriedade State que trata o valor que representa a combinao dos valores da enumerao DataGridViewElementStates. O controle DataGridView compreender dois fundamentais tipos de objetos: c lulas e bandas. Todas as clulas derivam da classe DataGridViewCell. Existem dois tipos de bandas: DataGridViewColumn e DataGridViewRow sendo que ambas derivam da classe DataGridViewBand. Alm disto o controle interage com diversas classes sendo as mais comuns : DataGridViewCell, DataGridViewColumn, e DataGridViewRow. A clula, como eu j disse, a unidade bsica de interao para o DataGridView. A exibio est centrada nas clulas e a entrada de dados frequentemente realizada atravs das clulas. Voc pode acessar clulas usando a coleo Cells da classe DataGridViewRow e voc pode acessar as clulas selecionadas usando a coleo SelectedCells do controle. Vejamos o esquema a seguir:
2/5
3/15/12
U ando e Ab
ando do Da aG idVie
A classe abstrata DataGridViewCell e de onde todas as clulas derivam; ela e os seus tipos derivados no so controles do tipo Windows Forms. Os objetos DataGridViewCell no controlam sua prpria aparncia ao invs o DataGridView o responsvel pela aparncia dos objetos DataGridViewCell. Para compreender a estrutura bsica do controle DataGridView temos que compreender como o objeto DataGridViewCell funciona. Para as clulas em uma coluna que no est vinculada e o grid no est no modo virtual, as clulas armazenam o valor na instncia da clula. Para clulas vinculadas a dados a clula no sabe ou mantm o valor. A qualquer momento que precisar obter o valor da clula o grid vai at a fonte de dados e procura pelo valor para a coluna e linha e retorna o valor da clula. No modo virtual a rotina similar exceto pelo fato do grid disparar o evento CellValueNeeded para obter o valor da clula. A nvel de clula tudo isto controlado pelo mtodo GetValue do DataGridViewCell. O tipo de dado padro para a propriedade Value da clula o tipo Object. Quando a coluna torna-se vinculada sua propriedade ValueType definida o que faz com que cada ValueType das clulas seja atualizado. O valor da propriedade ValueType importante para formatao.
Um exemplo prtico
Teoria que nem remdio amargo, todo mundo torce o nariz, mas o que realmente ajuda a resolver muitos problemas. Depois de tanta teoria vamos a um exemplo prtico usando o DataGridView no VB 2005: Nosso objetivo exibir os dados da tabela Clientes da base de dados Clientes. Primeiro eu vou criar um novo projeto no Visual Basic 2005 com o nome de dgVbNet. A seguir eu vou criar uma base de dados padro SQL Server 2005. Para saber como criar a base de dados , a tabela e como incluir dados acompanhe o artigo : VB.NET 2005 Acesso a fonte de dados SQL Server via c digo
Na janela do projeto teremos : 1- O DataSource ClientesDataSet exibindo a estrutura da tabela Clientes com os campos: Codigo, Nome, Endereco, Foto e Renda; 2- Aps arrastar a tabela clientes para o formulrio do projeto ser criado no DataGridView e os componentes: ClientesDataSet, ClientesBindingSource , ClientesAdapter e ClientesBindingNavigator;
3/5
3/15/12
U ando e Ab
ando do Da aG idVie
Se voc espiar o cdigo ver que assistente criou o cdigo bsico para preencher o DataGridView. Vamos dar uma mo para o assistente incluindo cdigo para efetuar a validao de entrada de dados nas clulas do DataGridView. Assim no evento Click do ClientesBindingNavigatorSaveItem inclua o seguinte cdigo:
Private Sub ClientesBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClientesBindingNavigatorSaveItem.Click Try Me.Validate() If ClientesDataGridView.CurrentRow.Cells(1).Value.ToString.Trim = "" Then MsgBox("Campo Nome de preenchimento obrigatrio.", MsgBoxStyle.Information, "Erro") ElseIf ClientesDataGridView.CurrentRow.Cells(2).Value.ToString.Trim = "" Then MsgBox("Campo Endereco de preenchimento obrigatrio.", MsgBoxStyle.Information, "Erro") ElseIf ClientesDataGridView.CurrentRow.Cells(3).Value.ToString.Trim = "" Then MsgBox("Campo Foto de preenchimento obrigatrio.", MsgBoxStyle.Information, "Erro") ElseIf Not IsNumeric(ClientesDataGridView.CurrentRow.Cells(4).Value) Then MsgBox("Preencha o campo Renda somente com valores numricos", MsgBoxStyle.Information,"Erro") Else Me.ClientesBindingSource.EndEdit() Me.ClientesTableAdapter.Update(Me.ClientesDataSet.Clientes) End If Catch ex As Exception MsgBox("Um erro ocorreu ao incluir/alterar o registro. Confira a digitao!") End Try End Sub
3/15/12
U ando e Ab
ando do Da aG idVie
Pronto ! Com estas poucas linhas de cdigo temos um Grid editvel e com validao. Voc pode estender e aperfeioar a validao usada.
5/5