lass=Corpo style="MARGIN: 0cm 0cm 0pt 64.35pt; TEXT-INDENT: -18pt; TEXT-ALIGN: left; tab-stops: list 64.35pt; mso-list: l16 level1 lfo20" align=left>· Cadastro de Clientes;
· Cadastro de Fornecedores;
· Cadastro de Contas Correntes;
· Data Module principal;
Daremos continuidade ao curso desenvolvendo o cadastro de contas a pagar como mencionado anteriormente, para isso, precisamos alterar o banco de dados, incluindo mais uma tabela.
Alterando o banco de dados de exemplo
Inicie o IBExpert e vamos criar a tabela Contas_Pagar. Após conectar ao banco de dados no IBExpert, clique com o botão direito sobre o item Tables e escolha a opção New Table. No alto da janela, aparecerá o nome da tabela sugerido, troque-o para “Contas_Pagar”.
Em seguida para criar um campo, digite o nome em Field Name, selecione seu tipo em Field Type e marque o item Not Null (caso seja necessário). Caso prefira, execute o script da Listagem 1.
Listagem 1. Criação da tabela e índices Contas_Pagar
CREATE TABLE CONTAS_PAGAR (
CODIGO VARCHAR(20) NOT NULL,
CNPJ VARCHAR(18) NOT NULL,
DESCRICAO VARCHAR(60) NOT NULL,
VLR_REAL NUMERIC(15,2),
VLR_PAGO NUMERIC(15,2),
JUROS NUMERIC(15,2),
MORA NUMERIC(15,2),
DT_CADASTRO TIMESTAMP,
DT_VECTO TIMESTAMP,
DT_PAGTO TIMESTAMP,
BANCO INTEGER,
AGENCIA VARCHAR(10),
CONTA VARCHAR(10),
STATUS VARCHAR(1),
DT_ALTERACAO TIMESTAMP);
ALTER TABLE CONTAS_PAGAR
ADD CONSTRAINT PK_CONTAS_PAGAR
PRIMARY KEY (CODIGO, CNPJ);
ALTER TABLE CONTAS_PAGAR
ADD CONSTRAINT FK_CONTAS_PAGAR_BANCO
FOREIGN KEY (BANCO, AGENCIA, CONTA)
REFERENCES CONTAS (BANCO, AGENCIA, CONTA)
ON UPDATE CASCADE;
ALTER TABLE CONTAS_PAGAR
ADD CONSTRAINT FK_CONTAS_PAGAR_CNPJ
FOREIGN KEY (CNPJ) REFERENCES FORNECEDORES (CNPJ)
ON UPDATE CASCADE;
Nota: O campo CODIGO é do tipo VarChar para armazenar o número da conta a pagar. No caso, pode ser o número de uma nota fiscal, número de referência da conta de água etc. Caso deseje, crie um campo CODIGO como auto-incremento da tabela e crie um campo NUMERO_DOCUMENTO, por exemplo.
O interessante e mais importante nesse momento é que criaremos chaves estrangeiras para um maior controle de integridade dos dados manipulados pelo sistema. Note que na nova tabela temos os campos CNPJ, Banco, Agencia e Conta. O primeiro campo deverá conter o mesmo conteúdo do campo de mesmo nome, da tabela Fornecedores, isso porque obrigaremos o usuário final a escolher um fornecedor válido para inclusão do lançamento de contas a pagar.
Também nesses mesmos moldes, será necessário que o usuário informe o banco, agência e conta que o lançamento foi pago no ato da baixa. Feito isso, teremos que atentar ao seguinte detalhe: e se houver a necessidade de alterar o CNPJ do fornecedor, embora chave primária, ou mesmo alterar o número da conta corrente? Como ficarão nossos lançamentos no contas a pagar?
Pensando nisso usaremos um recurso bastante útil no banco de dados: Foreing Key, ou, Chave Estrangeira. As chaves estrangeiras informam para o banco, que determinado campo está associado a outro campo de outra tabela. Sendo assim, toda vez que um registro origem é alterado ou apagado, os mesmo são refletidos nas tabelas que contém essas chaves estrangeiras, mantendo a integridade dos dados.
A criação de chaves estrangeiras no banco é muito simples. Após criada a tabela Contas_Pagar, clique duas vezes nela e note que ao abrir, o IBExpert mostra algumas abas. Uma delas é a Constraints. Primeiramente criaremos uma chave primária para a base de dados usando a aba Primary Key (siga os passos a seguir, se não usou o código da Listagem 1).
Clique com o botão direito na área em branco e selecione New primary key.
Agora criaremos nossas chaves estrangeiras. Para isso, clique na aba Foreing Key e em seguida clique com o botão direito em uma área
Escolha CNPJ, e logo em seguida teremos que configurar apenas mais duas colunas: Update Mode e Delete Mode. Em ambas, encontramos os valores No Action, Cascade, Set Null e Set Default. Para Update Mode usaremos Cascade, pois toda vez que tivermos alterações na tabela origem, as mesmas devem ser refletidas nas tabelas filhas automaticamente.
Já
Feitas essas alterações basta clicar no item do raio. Repita esses passos incluindo mais uma ...