6 de outubro de 2011

06 de outubro de 2011

Hoje na nossa penúltima aula de Delphi, o professor nos ajudou a fazer um arquivo com os passos para fazermos um sistema de cadastro, como realizar as conexões com o banco, como criar um formulário a partir do modelo, com os passos de como criar um modelo, como criar os menus, como criar um Lookup e como gerar relatórios no Rave.
_________________________________________________________________________


PASSOS PARA CRIAÇÃO DE UM SISTEMA DE CADASTRO EM DELPHI


Criando um modelo

File -> new – Form;

Salvar o formulário com o nome da unit a untmodelo e o name do formulário igual a frmmodelo;

Colocar o speedButton para cada ação do sistema (novo, editar, salvar, excluir, cancelar e fechar);

Colocar um pagecontrol;

Adicionar duas abas, clicando com o botão direito do mouse no pagecontrol e new page.

Colocar um nome para cada pagina criada, clicando na parte branca de cada pagina e no object inspector, na propriedade do caption colocar: colocar na primeira pagina coloque o nome de consultas e na segunda pagina coloque o nome de cadastro;

Pressione ctrl + s a cada 5 segundos;

Colocar um dbgrid dentro da pagina consultas;

Colocar um datasource em seu formulário ( pode ser colocado em qualquer lugar do formulário);

Salve este documento (ctrl + b);

Selecione o dbgrid na propriedade data source selecione o name do componente data source adicionada anteriormente;

Adicione um labeledit na aba de consulta e coloque o caption desse labeledit de: digite o texto da busca;

Ao lado do labeledit adicione um label com o name de ibltitulo;

Clique duas vezes sobre o labeledit e coloque o código do seu sistema de agenda;

Com o dbgrid selecionado, no object inspector, na aba events, vá até o evento on title click e clique duas vezes ao lado dele ( na parte em branco);

Após isso, você será redirecionado para a parte do código, local onde você colocara o código que você tem no seu sistema de agenda (é código para ordenar os registros do dbgrig);

Vá ao design do formulário e coloque os códigos para cada um dos speedbutton, conforme você tem no seu sistema de agenda;

Realizar as conexões com o banco

File -> new -> other -> Delphi files -> datamodule;

Salve esse datamodule com o name da unti igual a untacessodados e o name do datamodule como dmacessodados;

Adicione o componente sqlconection;

Coloque o name desse componente para sqlcon;

Com o componente selecionado, na propriedade conectionname selecione ibconection;

Coloque a propriedade loginprompt para false;

Clique nos 3 pontinhos(...) da propriedade params;

Nessa nova tela que abriu, configure o caminho do banco na propriedade database (é o caminho físico de onde se encontra o seu arquivo fdb ou gdb);

Coloque também o username e o password do firebird;

Pressione ok;

Agora no componente sqlconection coloque para true a propriedade connected;

Colocar o componente sqldataset;

Coloque o name desse componente como SQLtabela (tabela representa o nome da tabela especifica do banco de dados. Ex: sqlcidade, sqlclientes);

Na propriedade commandtext, clique nos 3 pontinhos(...) e coloque a sql de select da tabela desejada;

Clique em ok;

Configure a propriedade sqlconection, selecione o name do componente sqlcon;

Adicione o componente datrasetprovider;

Coloque o name desse componente para dsptabela (ex: dspcidades, dspcliente);

Na propriedade dataset selecione o name do componente que tem o prefixo SQL + o nome da tabela especifica (ex: sqlcidades);

Adicione o componente clientdataset;

Coloque o name desse componente para cdstabela(ex: cdscidades, cdsclientes);

Na propriedade providername selecione o nome do componente que tem prefixo de dsp + o nome da tabela especifica (ex: dspcidades);

Coloque para true a propriedade active;

Clique duas vezes sobre o componente cdstabela;

Nessa nova tela que abrir, clique com o botão direito do mouse e clique em add all fields;

Nessa tela de fields, voce pode configurar algumas propriedades de cada um dos campos, por exemplo: displaylabel coloque o texto que você quer que apareça no titulo de cada coluna do dbgrid , outro exemplo é o displaywidth que é configurado o tamanho da coluna do campo especifico no dbgrid e também o tamanho do edt na aba de cadastro;

Feche essa telinha dos fields;

OBS.: para cada tabela do banco de dados, voce terá que adicionar esses três componentes: sqldataset, datasetprovider, clientdataset;

OBS2.: sempre verifique se a propriedade active dos componentes com prefixo CDs está como true;

Criando um formulário a partir do modelo
File -> new -> other -> inheritlabe itens-> frmmodelo;

Salve esse formulario com o nome da unti de unttabela (ex: untcidades, untclientes) e o nome do formulario de frmtabela (ex: frmcidades, frmclientes);

Relacionar esse formulário com o datamodule, para isoo pressione ALT + F11 e selecione a opção untacessodados;

Nesse formulário, selecione o componente datasource e na propriedade dataset seleciona a opção que tem o prefixo CDs + nome da tabela especifica (ex: cdscidades);

Se tudo deu certo, terá que aparecer no dbgrid todas as colunas da tabela especifica, juntamente com registro que já estão inseridos no banco;

Colocando os campos para cadastro
Vá até o datasource dmacessodados;

Clique duas vezes no CDs da tabela que deseja realizar o cadastro;

Deixe essa tela que abriu após o duplo clique aberto;

Volte novamente para o formulário especifico para a realização do cadastro;

Clique na aba cadastro;

Com a telinha dos Fields aberto (tela que abriu quando você clicou duas vezes no CDS) selecione cada campo e arraste para o formulário.

Criando os menus
No formulário principal (frmprincipal) adicione o componente mainmenu;

Clique duas vezes sobre esse componente e coloque a descrição do menu no local desejado;

Clique duas vezes sobre esse menu criado, onde será redirencionado para o local de código;

Pressione ALT + F11 para relacionar o formulário principal com o formulário que deseja chamar;

Selecione a unit do formulário especifico (ex: untcidades) e clique em ok;

Digite o nome do formulário especifico seguido de um ponto mais showmodal (ex: frmcidades.showmodal);

Agora é só testar;

Criando um lookup
Lá no datamodule, clique duas vezes no cds se deseja criar um lookup ( esse lookup deve ser criado todos os cds de tabelas que possuem chave estrangeira. Ex: no cdscliente será criado um lookup para trazer todas as cidades já cadastradas).

OBS: antes de criar esse lookup é necessário já existir o cds da tabela que possui todos esses registros (ex: cdscidades já deve estar funcionando);

Com a telingha dos fields aberto, clique com o direito do mouse e selecione new field;

No campo name, coloque o nome desse lookup(ex: lkpcidades);

No campo type, selecione a opção string;

Na propriedade size, coloquei o numero de caracteres que foi estipulado para o campo que você quer exibir depois na tela. Esse valor, você deve procurar lá na tabela que possuem todos os registros que serão exibidos. Ex: quero mostrar todos os nomes das cidades já cadastradas, então tenho que ir ate a tabela cidades, ver quantos caracteres foi definido para o campo do nome da cidade (ex: varchar de 100, então no campo size você colocara o numero 100);

Na opção field type, marque a opção lookup;

No campo key fileds, selecione o campo que é a chave estrangeira (ex: cer);

No campo dataset selecione o componente que tem o prefixo cds + o nome da tabela que possui todos os registros que poderei selecionar (ex: cdscidades);

No campo lookup Keys, selecione qual é a chave primaria dessa outra tabela (ex: CEP é a chave primaria da tabela de cidades);

No campo result Field, selecione a opção que deseja mostrar na tela de cadastro (ex: cidade, pois é o campo em que está cadastrado o nome da cidade);

Clique e ok;

Na telinha de fields, selecione esse lookup que foi criado, e configure as propriedades de displaylabel e displaywidth;

Mantenha essa telinha de fields aberto;

Abra novamente o formulário de cadastro que terá esse lookup. Ex: frmclientes;

Agora selecione o lookup na telinha de fields e arraste para a tela de cadastro;

Se tiver o campo onde teria que escrever o código pode excluí-lo, pois não será mais necessário;

Relatórios no rave
Lá no datamodule, adicione o componente rvproject;

Adicione o componente rvsystem;

Adicione o componente rvdatasetconection;

Coloque o name de rvdatasetconection para rvdstabela (tabela é o nome da tabela que deseja fazer o relatório);

Na propriedade dataset selecione o nome do componente com prefixo de cds que desejas fazer o relatório. Ex: cdscidades;

Vá até o menu tools -> rave reports designer;

Lá no rave, vá em files -> save as;

Salve o arquivo dentro da pasta do projeto, ou seja, onde se encontram todos os arquivos do sistema e coloque como o nome de relatórios.rav;

Va ate o menu file-> new data object -> direct data view ( barrilzinho roxo) -> selecione o rvds que deseja buscar os dados. Ex: rvdscidades;

Va ate o menu tools -> report wizards -> simple table -> selecione qual dataview que possui os dados do relatório -> next -> marque quais campos que deseja mostrar no relatório -> next -> coloque a ordem que os campos fiquem no relatório -> coloque o titulo do relatório -> configure o tamanho e cores dos textos do relatório -> generate;

No lado direito do rave, no reports library, selecione a pagina que foi gerada e coloque um name para ele ex: relcidades;

Voltando para o Delphi, lá no datamodule, selecione o componente rvproject e na propriedade projectfile coloque o nome que voce deu ao salvar aquele arquivo do rave ex: relatórios.rav;

Para chamar o relatório a partir do Delphi, veja o exemplo que foi feito na tela de consulta de dados pessoais do sistema de agenda;

The end!

0 comentários:

Postar um comentário