Nesta parte do artigo, vamos construir as telas de cadastro do nosso aplicativo. Já com o Lazarus aberto em nosso projeto, vamos abrir o datamodule criado anteriormente para adicionarmos os componentes de ligação do aplicativo com a tabela.
Adicione os componentes TZQuery e TZSequence da paleta Zeos Access, e o componente TDataSource da paleta Data Access, para cada tabela criada no banco de dados. Veja o Exemplo:
Agora configure as propriedades de cada um dos componentes, direcionando para as devidas tabelas seguindo as informações abaixo:
Componentes do Tipo TZQuery
Connection = ZConnection1;
Sequence = ZSeqContato (respectivamente);
SequenceField = ID (respectivamente, conforme o campo auto-incremental da tabela);
SQL = “select * from contatos” e “select * from agenda where agenda.id_contato = :pID”
Params = (Apenas para o componente relacionado a tabela de agenda) Selecione o parametro e configure as propriedades DataType e ParamType, conforme figura abaixo;
WhereMode = wmWhereAll;
Componentes do Tipo TZSequence
Connection = ZConnection1;
SequenceName = Selecione o respectivo Sequence da tabela;
Conponentes do Tipo TDataSource
DataSet = Selecione o respectivo componente TZQuery;
Adicione os seguintes códigos no evento OnNewRecord dos componentes TZQuery respectivamente das tabelas:
Contato:
DataSet.FieldByName('ID').AsInteger := ZSeqContato.GetNextValue;
Agenda:
DataSet.FieldByName('ID').AsInteger := ZSeqAgenda.GetNextValue;
Após isso dê um duplo clique no componente TZQuery, e na janela que se abre clique com o botão da direita do mouse e clique em ADD Fields. Na outra janela que se abrirá, selecione todos os campos e clique no botão Create, para que os campos fiquem disponíveis no componente TZQuery. Repita este procedimento para todas as tabelas. Veja exemplo abaixo:
Agora com o Datamodule configurado, vamos criar o formulário de cadastro. Para isso clique na opção File->New Form do menu principal, para inserir um novo formulário no aplicativo.
Dê um nome para o formulário e altere sua propriedade Caption a sua escolha e salve o mesmo junto com os outros arquivos do projeto.
Agora clique no formulário e pressione F12 para ir à codificação do mesmo, e abaixo da clausula implementation adicione o código “Uses uDM;”. Veja figura abaixo:
Monte este formulário conforme o exemplo das figuras abaixo, usando os seguintes componentes:
PageControl da paleta Common Controls;
DbGrid e DbEdit da paleta Data Controls;
Panel e Label da paleta Standart;
BtnBtn da paleta Additonal;
Agora vamos codificar nosso aplicativo.
Adicione a unit dB, uFrmCadAgenda na clausula uses do formulário;
Agora adicione o seguinte código no evento onshow do formulário:
DM.DataContato.DataSet.Open;
PageControl1.TabIndex:=0;
No Evento onClose adicione:
if DM.DataContato.DataSet.State in [dsInsert,dsEdit] then
begin
ShowMessage('É necessário confirmar ou cancelar os dados');
Abort;
end;
DM.DataContato.DataSet.close;
Adicione um componente TActionList no formulário, dê um duplo clique no mesmo. Na jalena que se abre, clique com o botão da direita e em seguida em New Action, para criar as ações seguindo o exemplo da figura abaixo:
Dê um duplo clique sobre cada ação e codifique respectivamente, conforme indicado abaixo:
ActIncluir
DM.DataContato.DataSet.Append;
DBEdit2.SetFocus;
ActExcluir
DM.DataContato.DataSet.Delete;
ActConfirmar
DM.DataContato.DataSet.Post;
ActCancelar
DM.DataContato.DataSet.Cancel;
ActAgenda
FrmCadAgenda.pIDContato := DM.DataContato.DataSet.FieldByName('ID').AsInteger;
FrmCadAgenda.ShowModal;
ActEncerrar
Close;
Com isso concluímos a criação da tela de cadastro de Contatos.
Vamos agora incluir um novo formulário para ser usado para o cadastro de agenda. Para isso siga os mesmos passos da inclusão do cadastro de contatos, alterando respectivamente os dados para tabela de agenda. Veja abaixo como ficará a tela:
Codifique da seguinte forma:
Após a clausula implementation adicione “uses uDm,Db;”, e crie uma variável publica da seguinte forma:
private
{ private declarations }
public
{ public declarations }
pIDContato : Integer;
end;
No evento OnShow do formulário adicione:
DM.QryAgenda.Params.ParamByName('pID').AsInteger:=pIDContato;
DM.DataAgenda.DataSet.Open;
Nas Ações do componente ActionList adicione:
ActIncluir
DM.DataAgenda.DataSet.Append;
DM.DataAgenda.DataSet.FieldByName('ID_Contato').AsInteger := pIDContato;
DBEdit2.SetFocus;
ActExcluir
DM.DataAgenda.DataSet.Delete;
ActConfirmar
DM.DataAgenda.DataSet.Post;
ActCancelar
DM.DataAgenda.DataSet.Cancel;
ActEncerrar
Close;
E com isso concluímos também a tela de cadastro de agenda de compromissos. Basta compilar o projeto e testar.
Observação: Ao final estarei disponibilizando os códigos fontes deste projeto.