Cadastro de Funcionários e Dependentes

Delphi

03/05/2013

Como poderia montar as telas dos cadastros? Estou com essa dúvida para montar.

Sei que preciso de duas TELAS. Uma para Cadastrar os Funcionários e outra para Cadastrar os Dependentes.

Como posso fazer a TELA de CADASTRO DE DEPENDENTES? O campo MATRICULA, no caso, seria da tabela FUNCIONÁRIOS.

Como faria o cadastro dos dependentes caso o funcionário tivesse mais de um dependente sem ter que ficar entrando toda hora no form de Dependentes para incluir, ou seja, cadastrar de uma única vez todos os seus dependentes?

Tabelas:

Funcionários:
Matricula, Nome, Endereço, Cidade, Bairro, Número horas/mes e Valor do salario hora

Create table funcionarios (matricula varchar(5) not null,
nome varchar(20),
endereco varchar(30),
cidade varchar(30),
bairro varchar(30),
horas_mes float,
valor_hora float);

Criar chave primária
Alter table funcionarios add constraint pk_matricula primary key(matricula);

Dependente:
Matricula, Nome do dependente, Filiação e Data nascimento

Create table dependentes (matricula varchar(5) not null,
nome_dep varchar(20),
filiacao varchar(30),
data_nasc date);

Criar chave estrangeira
Alter table dependentes add constraint fk_matricula_1 foreign key(matricula)
references funcionarios(matricula) on delete cascade on update cascade;


Criar Stored Proceduere para excluir o funcionário e seus respectivos dependentes

CREATE procedure FUNCIONARIO_DEL (
MATR VARCHAR(5))
as
BEGIN
DELETE FROM FUNCIOARIOS
WHERE FUNCIONARIOS.MATRICULA = :MATR;
END
Frederico Brigatte***

Frederico Brigatte***

Curtidas 0

Respostas

Alan Souza

Alan Souza

03/05/2013

se você não quer ficar abrindo form de cadastro, um dos jeitos é montar um grid para gerenciar (adicionar, remover e atualizar) dependentes.

Sugestão: [url]http://i.imgur.com/fpGuTdM.png[/url]
Botão +: Habilita uma nova linha no grid para adicionar dependente
Botão -: Remove o dependente selecionado
Botão E: Deixa o registro selecionado aberto para edição
Botão S: Salva as alterações
Botão C: Cancela as alterações

se não quiser manipular grids, há a opção de jogar um TPanel embaixo com os campos do cadastro e só deixá-lo visível na adição / atualização do dependente.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

03/05/2013

Como faço isso?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

03/05/2013

Como faço isso?
Frederico, o nosso amigo acima sugeriu o layout da tela. Os botões, como ele citou, apenas fazem as operações de crud, da forma mais simples que existe (Insert, Edit, Post e Delete no dataset).
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

03/05/2013

Isso eu sei, Joel, eu até tenho um modelo aqui, mas preciso usar generator para incrementar no código, to impacado.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

03/05/2013

Ai é outra questão, amigo. Para isso você já abriu outros tópicos. A duvida aqui é com relação a tela, certo?
Se já tiver sido resolvida, por favor avisar.
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

03/05/2013

Não está resolvida, teria algum modelo?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

03/05/2013

Criei Tabela Funcionários

Funcionários:
Matricula, Nome, Endereço, Cidade, Bairro, Número horas/mes e Valor do salario hora


Create table funcionarios (matricula integer not null,
nome varchar(20),
endereco varchar(30),
cidade varchar(30),
bairro varchar(30),
horas_mes float,
valor_hora float);


Criei chave primária

Alter table funcionarios add constraint pk_matricula primary key(matricula);



Criei a tabela Dependentes com o script:

Create table dependentes (matricula integer not null,
nome_dep varchar(20),
filiacao varchar(30),
data_nasc date);


Criei chave estrangeira

Alter table dependentes add constraint fk_matricula_1 foreign key(matricula)
references funcionarios(matricula) on delete cascade on update cascade;

O Cadastro do Funcionário está beleza, estou tentando montar um aqui.

Ao fazer a conexão com a tabela Dependentes, com os componentes SQLConnection, um SQLDataSet, um DataSetProvider, um ClientDataSet e um DataSource no DataModule. Coloquei a instrução SQL na propriedade CommandText do SQLDataSet: Select * from Dependentes. Ao tentar dar Active= True, deu o erro:

Data type unknown
Client SQL dialect 1 does not supported reference to DATE datatype

O que é isso?
GOSTEI 0
Frederico Brigatte***

Frederico Brigatte***

03/05/2013

Resolvido o problema. Mudei para Dialect 3
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

03/05/2013

Tópico Concluído.
GOSTEI 0
POSTAR