CAPÍTULO 5
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini

<< Anterior Próximo >>


Adicionar registros




Vamos adicionar agora um formulário chamado Fdados que nos servirá para introduzir dados e também, no parágrafo seguinte, para editar os já existente. Este formulário terá cinco etiquetas, com qualquer nome. Cinco caixas de texto chamadas TxtTitulo, TxtAutor, TxtData, TxtPreco, e  TxtDescricao,  e  dois  botões  chamados  BtnAceitar  e  BtnCancelar.  O  Aspecto

geral pode ser como o que vemos na figura da direita (lembramos de por os textos nas etiquetas de acordo com a caixa de texto correspondente).

    Este formulário receberá uma referência da conexão com a base de dados, por tanto, dispõe-se de uma referência a um objeto Connection.
Figura 21
Figura 21. Formulário FData.

PRIVATE
  hCon AS  Connection

Assim mesmo dispor do método RunNew com o qual chamaremos a partir do formulário principal,  passando como parâmetro nossa conexão à base, e que mostrará o formulário de forma modal, a espera da introdução de dados por parte do usuário.

PUBLIC SUB RunNew(Data AS Connection)

IF key.Delete THEN

hCon  = Data

ME.ShowModal()

END IF

END

O código toma em hCon a referência ao objeto Connection que lhe passemos, e o mostra. Enquanto o botão de cancelamento, é bem simples: basta indicar ao formulário que se encerre da seguinte maneira:

PUBLIC SUB BtnCancelar_Click()

ME.Close()

END

E quanto  ao botão Aceitar, com ele realizaremos a operação de inscrição de um novo registro, utilizando a instrução SQL insert into:

PUBLIC SUB BtnAceitar_Click()

TRY hCon.Exec ("insert into dados values (&1,&2,&3,&4,&5)",

TxtTitulo.Text,  TxtAutor.Text,  Cdate ( TxtData.Text ),

Cfloat ( TxtPreco.Text ), txtDescricao.Text)

'   END IF

ME.Close()

CATCH

message.Error ( "Impossível introduzir os dados solicitado" )

END

Indicamos ao objeto Connection que execute a sentença SQL, a  qual, para as escritas que seguem sempre o mesmo padrão:

Insert into [nome da tabela] values ([valor do campo 1], [valor do campo 2]..... )

Para evitar problemas de formato, seguimos empregando os parâmetros adicionais, como no caso antes comentado.

Os dados de Título. Descrição e Autor passa diretamente, a ser dados tipo texto.

O dado do Preço converte-se a número real com CFloat(), e a Data converte-se a dado data/hora com CDate().

Se ocorrer um erro, seja por falta de permissão de escrita ou por dados não convertíveis a datas ou números, por exemplo, captura-se com TRY, e tratamos no bloco de código CATCH onde indicamos a mensagem de erro ao usuário.

Se pelo contrário, tudo ocorrer bem, encerra-se o formulário após a escrita.

Voltamos agora ao formulário principal (FMain), e adicionamos dois botões para completar a interface: um chamado BtnEscrita para podermos escrever um novo registro, e outro BtnSair, para encerrar o programa. Como sempre o botão de sair é simples de implementar (lembramos que agora escrevemos o código em Fmain não em Fdata): Figura 22
Figura 22. Geração dos botões Novo e Sair do formulário principal

PUBLIC SUB
BtnSair_Click()
ME.Close
END

Para o botão de novo registro, como sempre, tratamos de conectar a base, mas nós saímos se não logarmos. Em seguida chamamos o método RunNew de Fdata. Já que mostra de forma modal,  o código deste formulário fica aqui detido até que o usuário dê uma escrita ou encerre o formulário.

Após  isto, e de novo em nossa função, encerramos a conexão e chamamos o método Form_Open(), que, como recordamos, encarrega-se de representar os dados na tabela, para refletir assim a escrita dada pelo usuário.

PUBLIC SUB BtnEscrita_Click()

IF ConectarBase() THEN RETURN

FDados.RunNew(hCon)

EncerrarConexao()

Form_Open()

END

Já dispomos de uma interface básica para escrever. Podemos melhorar muitas coisas. Entre outras, podemos bloquear os quadros de texto para que só aceite números e o sinal decimal (no caso do preço), para que só aceite um dado válido como data (no caso do campo Data), e que comprove o tamanho máximo no caso dos diferentes campos de texto. Também podemos ajustar o formato da data a adequa-la para o usuário (aqui usamos diretamente o do Sqlite, quer dizer, dois dígitos do mês/ dois dígitos do dia / dois dígitos do ano), transferir os dados de volta ao formulário principal para que só se atualize o novo registro em vez de toda a tabela.

<< Anterior Próximo >>

HOME



Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)