Desenvolvimento - Mobile

Aplicação para Windows Mobile baseado XML

Artigo que mostra através de uma aplicação, um simples aplicativo para Windows Mobile que utiliza XML com C# como uma altenativa de amazenamento de dados para dispositivo móvel.

por Herbert Agles



O XML (Linguagem de marcação de dados), vem sendo muito utilizado porque dispõe de uma flexibilidade incrível. Trabalhando com XML o usuário pode evitar algumas rotinas como por exemplo processo seqüenciais no bando de dados, com XML a sua aplicação fica mais eficiente com um alto desempenho de performance nas chamadas de procedimentos XML..

É claro que para o XML não é muito recomendado quando se quer armazenar uma quantidade absurda de informação, mas também não deixa de ser uma ótima opção de armazenamento de dados

Objetivo

Bom o objetivo desta aplicação é muito simples é mostrar as algumas alternativas de armazenamento de dados alem do banco de dados do SQL Compact

XML. É uma dessas formas

Vamos ao que interessa:

Existem algumas técnicas que estou aplicando, como por exemplo, manter estado de um table dentro de um grid.

Enfim é mostrar que o Windows Mobile não é esse bicho de sete cabeças como alguns pensam.



Atribuindo nome aos controles do formulário

Textbox
1º Textbox altere a propriedade name para txtNomeLoja
2º Textbox altere a propriedade name para txtProprietario
3º Textbox altere a propriedade name para txtUF

Label
1. Label altere a propriedade text para Loja
2. Label altere a propriedade text para Proprietario
3. Label altere a propriedade text para UF

Button
1. No buton "Incluir" altere a propriedade name para btn_Incluir
2. No buton "Atualizar" altere a propriedade name para btn_atualizar
3. No buton "Remover" altere a propriedade name para btn_remover
4. No buton "Gravar no formato XML" altere a propriedade name para btn_XML

DataGrid 1. No DataGrid Altere a propriedade Name para gridLista

Vamos ao código

Bom no construtor da classe vamos inicializar um DataTable virtual para que na execução do código, o nosso DataGrid receba essa tabela pronta para receber as informações do formulário.

Note que nesta table existem 3 colunas
  • Loja
  • Proprietário
  • UF

Dentro da classe " public partial class", será inicializado o nosso DataSet

DataSet ds = new DataSet();
public Lojaxml()
{
InitializeComponent();

DataTable Unidades = new DataTable("unidade");
Unidades.Columns.Add(new DataColumn("Loja", System.Type.GetType("System.String")));
Unidades.Columns.Add(new DataColumn("Proprietario", System.Type.GetType("System.String")));
Unidades.Columns.Add(new DataColumn("UF", System.Type.GetType("System.String")));
ds.Tables.Add(Unidades);

//  no bloco abaixo estamos configurando o tamanho das colunas da 
//  table dentro da Grid utilizando o método DataGridTableStyle()

gridLista.DataSource = ds.Tables["unidade"];
gridLista.TableStyles.Add(new DataGridTableStyle());
gridLista.TableStyles[0].MappingName = ds.Tables[0].TableName;
gridLista.TableStyles[0].GridColumnStyles[0].Width = 80;
gridLista.TableStyles[0].GridColumnStyles[1].Width = 100;
gridLista.TableStyles[0].GridColumnStyles[2].Width = 35;
}
Agora dê um dublo clique no botão incluir e insira o codigo

// esta rotina add uma nova linha no table e em seguida atualiza o a grid
       
DataRow linha = ds.Tables[0].NewRow();
linha["loja"] = txtNomeLoja.Text;
linha["Proprietario"] = txtProprietario.Text;
linha["UF"] = txtUF.Text;
ds.Tables[0].Rows.Add(linha);
gridLista.Refresh();

txtNomeLoja.Text       		= "";
txtProprietario.Text    	= "";
txtUF.Text              	= "";
	

Agora dê um dublo clique no botão Atualizar e insira o código 
// esta rotina resgata  o conteudo alterado dos textbox e atualiza o Grid
  
ds.Tables[0].Rows[gridLista.CurrentRowIndex]["Loja"] = txtNomeLoja.Text;
ds.Tables[0].Rows[gridLista.CurrentRowIndex]["Proprietario"] = txtProprietario.Text;
ds.Tables[0].Rows[gridLista.CurrentRowIndex]["UF"] = txtUF.Text;

gridLista.Refresh();
Agora dê um dublo clique no botão Remover e insira o codigo
// esta rotina remove da tabela virtual item seleciona e atualiza a Grid e limpa os textbox

ds.Tables[0].Rows.RemoveAt(gridLista.CurrentRowIndex);
gridLista.Refresh();
MessageBox.Show("Linha Removida com sucesso");

txtNomeLoja.Text        = "";
txtProprietario.Text    = "";
txtUF.Text              = "";
Agora dê um dublo clique no botão Gravar no formato XML e insira o código
// essa rotina Grava todos os dados que estão armazenados tempoariamente no Grid no formato XML
// neste caso o endereço de alocação do arquivo a ser salvo,  esta setando para o diretorio rais do pocket

ds.WriteXml(@"\registroFormatoXML.xml", XmlWriteMode.WriteSchema);
MessageBox.Show("XML Salvo!");
Agora dê um dublo clique na GRID e insira o código
// essa rotina manda o conteúdo da linha selecionado no Grid para os controles textBox
//podendo alterar o conteúdo e atualizar os dados da grid

txtNomeLoja.Text = ds.Tables[0].Rows[gridLista.CurrentRowIndex]["Loja"].ToString();
txtProprietario.Text    =    ds.Tables[0].Rows[gridLista.CurrentRowIndex]["Proprietario"].ToString();
txtUF.Text = ds.Tables[0].Rows[gridLista.CurrentRowIndex]["UF"].ToString()
Baixe a aplicação para que você possa analizar o codigo com mais detalhes

Clique aqui para efetuar o download.
Herbert Agles

Herbert Agles - Formação: Tecnólogo em T.S.I (Tecnologia em Sistemas de Informação). Atualmente é Analista e desenvolvedor de aplicações para dispositivo móvel como Smartphone, pockets, aplicações Web, etc. Utiliza a ferramenta Visual Studio 2005 com a Tecnologia C#.