quarta-feira, 26 de maio de 2010

Sistema Estoque - Manutenção e Repositórios

Pessoal, estou dando continuidade no meu Sistema Estoque.
Hoje vou postar uma janela que fiz de manutenção para cidades e exemplo disso criei um repositório no qual utilizei para outras janelas.

Frm_cidade



Primeiramente criei a Frm_cidade:
Componentes:
- DBEdit (Um edit para os campos código e nomeno qual se conecta com o BD);
- DBGrid (Exibe tabela do banco de dados);
- Frm_cidade (A janela);
- StatusBar (Coloquei o nome da empresa e a hora atual);
- Image (Imagem referente a janela);
- DBLookupComboBox (Para o campo UF);
- DBNavigator (No qual, faço a navegação de meus dados);

Depois de criado a janela Manutenção de Cidades, simplesmente a adicionei ao repositório e criei as outras janelas de manutenções aonde possui apenas campo codigo e campo nome :)

Frm_Logradouro



Mesmo esquema da frm_cidade. Logicamente que devemos fazer toda a alteração, inclusive a ligação das tabelas e o dataset.

Frm_bairro



Criei partindo do Repositório.

Frm_cargo



Percebam que depois que criei a primeira Janela de manutenção e partindo do principio que, as outras janelas de manutenção possuem os mesmos campos. Eu adicionei uma ao repositório e as outras criei através do modelo salvo em repositório.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

Sistema Estoque - Banco de Dados

Aqui vai mais uma continuidade de meu Sistema Estoque.
Um sistema tem necessidades de salvar, alterar, editar, excluir, inserir dados e em cima desse conceito criei o banco de dados de meu sistema.
Utilizei como ferramenta para criação da BD o INTERBASE.

- Script SQL

Esse é o Script de meu sistema, ao qual conectarei mais tarde com algumas janelas novas:

1 - CRIANDO O BANCO DE DADOS


SET SQL DIALECT 3;

CREATE DATABASE 'C:\Estoque\dado\ESTOQUE.GDB' PAGE_SIZE 4096


DECLARE EXTERNAL FUNCTION RDB$GET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE
RETURNS VARCHAR(255) CHARACTER SET NONE FREE_IT
ENTRY_POINT 'get_context' MODULE_NAME 'system_module';


DECLARE EXTERNAL FUNCTION RDB$SET_CONTEXT
VARCHAR(80) CHARACTER SET NONE, VARCHAR(80) CHARACTER SET NONE, VARCHAR(255) CHARACTER SET NONE
RETURNS INTEGER BY VALUE
ENTRY_POINT 'set_context' MODULE_NAME 'system_module';

2 - TABELA BAIRRO

CREATE TABLE "BAIRRO"
(
"BAIRRO_CODIGO" INTEGER NOT NULL,
"BAIRRO_NOME" VARCHAR(40) NOT NULL,
CONSTRAINT "BAIRRO_PK" PRIMARY KEY ("BAIRRO_CODIGO")
);


3 - TABELA CARGO

CREATE TABLE "CARGO"
(
"CARGO_CODIGO" INTEGER NOT NULL,
"CARGO_NOME" VARCHAR(40),
CONSTRAINT "CARGO_PK" PRIMARY KEY ("CARGO_CODIGO")
);

4 - TABELA CLIENTE

CREATE TABLE "CLIENTE"
(
"CLI_CODIGO" INTEGER NOT NULL,
"CLI_NOME" VARCHAR(40) NOT NULL,
"CLI_LOGRADOURO" INTEGER NOT NULL,
"CLI_NUMERO" VARCHAR(10) NOT NULL,
"CLI_BAIRRO" INTEGER NOT NULL,
"CLI_CIDADE" INTEGER NOT NULL,
"CLI_CEP" VARCHAR(10),
"CLI_DATANASC" TIMESTAMP NOT NULL,
"CLI_DATACAD" TIMESTAMP NOT NULL,
"CLI_COMPLEMENTO" VARCHAR(10),
"CLI_FOTO" VARCHAR(40),
"CLI_CPF" VARCHAR(14),
"CLI_RG" VARCHAR(20),
"CLI_FONERES" VARCHAR(16),
"CLI_FONECOM" VARCHAR(16),
"CLI_FONECEL" VARCHAR(16),
"CLI_OBS" VARCHAR(40),
"PES_EMAIL" VARCHAR(50),
CONSTRAINT "CLIENTE_PK" PRIMARY KEY ("CLI_CODIGO")
);

5 - TABELA FUNCIONARIO

CREATE TABLE "FUNCIONARIO"
(
"FUNC_CODIGO" INTEGER NOT NULL,
"FUNC_NOME" VARCHAR(40) NOT NULL,
"FUNC_BAIRRO" INTEGER NOT NULL,
"FUNC_CIDADE" INTEGER NOT NULL,
"FUNC_CARGO" INTEGER NOT NULL,
"FUNC_APELIDO" VARCHAR(15),
"FUNC_ENDERECO" INTEGER NOT NULL,
"FUNC_COMPLEMENTO" VARCHAR(10),
"FUNC_CPF" VARCHAR(14),
"FUNC_RG" VARCHAR(20),
"FUNC_FONERES" VARCHAR(16),
"FUNC_FONECEL" VARCHAR(16),
"FUNC_OBS" VARCHAR(40),
"FUNC_DATAADM" TIMESTAMP,
"FUNC_DATANASC" TIMESTAMP,
"FUNC_NUM" VARCHAR(40),
"FUNC_EMAIL" VARCHAR(40),
"FUNC_CEP" VARCHAR(10),
"FUNC_UF" VARCHAR(2),
"FUNC_FOTO" VARCHAR(60),
CONSTRAINT "FUNC_PK" PRIMARY KEY ("FUNC_CODIGO")
);

6 - TABELA LOGRADOURO

CREATE TABLE "LOGRADOURO"
(
"LOG_CODIGO" INTEGER NOT NULL,
"LOG_LOGRADOURO" VARCHAR(40) NOT NULL,
CONSTRAINT "LOG_PK" PRIMARY KEY ("LOG_CODIGO")
);

7 - TABELA CIDADE

CREATE TABLE "TBL_CIDADE"
(
"CID_CODIGO" INTEGER NOT NULL,
"CID_NOME" VARCHAR(30) NOT NULL,
"CID_UF" VARCHAR(2) NOT NULL,
CONSTRAINT "CIDADE_PK" PRIMARY KEY ("CID_CODIGO")
);

8 - TABELA FUNCIONARIO

CREATE TABLE "TBL_FUNC"
(
"FUNC_CODIGO" INTEGER NOT NULL,
"FUNC_NOME" VARCHAR(40) NOT NULL,
"FUNC_BAIRRO" VARCHAR(20),
"FUNC_CIDADE" INTEGER NOT NULL,
"FUNC_CARGO" VARCHAR(20),
"FUNC_ENDERECO" VARCHAR(40) NOT NULL,
"FUNC_CPF" VARCHAR(14),
"FUNC_RG" VARCHAR(20),
"FUNC_FONERES" VARCHAR(16),
"FUNC_DATAADM" TIMESTAMP,
"FUNC_DATANASC" TIMESTAMP,
CONSTRAINT "FUNCIONARIO_PK" PRIMARY KEY ("FUNC_CODIGO")
);

9 - CRIANDO OS INDICES (Geralmente para codigo e nome)


CREATE INDEX "IND_COD_BAIRRO" ON "BAIRRO"("BAIRRO_CODIGO");
CREATE INDEX "IND_NOME_BAIRRO" ON "BAIRRO"("BAIRRO_NOME");
CREATE INDEX "IND_COD_CARGO" ON "CARGO"("CARGO_CODIGO");
CREATE INDEX "IND_NOME_CARGO" ON "CARGO"("CARGO_NOME");
CREATE INDEX "IND_COD_cliente" ON "CLIENTE"("CLI_CODIGO");
CREATE INDEX "IND_NOME_cliente" ON "CLIENTE"("CLI_NOME");
CREATE INDEX "IND_COD_FUNC" ON "FUNCIONARIO"("FUNC_CODIGO");
CREATE INDEX "IND_NOME_FUNC" ON "FUNCIONARIO"("FUNC_NOME");
CREATE INDEX "IND_COD_LOG" ON "LOGRADOURO"("LOG_CODIGO");
CREATE INDEX "IND_NOME_LOG" ON "LOGRADOURO"("LOG_LOGRADOURO");
CREATE INDEX "IND_COD_CIDADE" ON "TBL_CIDADE"("CID_CODIGO");
CREATE INDEX "IND_NOME_CIDADE" ON "TBL_CIDADE"("CID_NOME");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_BAIRRO" FOREIGN KEY ("CLI_BAIRRO") REFERENCES BAIRRO ("BAIRRO_CODIGO");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_CIDADE" FOREIGN KEY ("CLI_CIDADE") REFERENCES TBL_CIDADE ("CID_CODIGO");
ALTER TABLE "CLIENTE" ADD CONSTRAINT "CLIENTE_LOGRADOURO" FOREIGN KEY ("CLI_LOGRADOURO") REFERENCES LOGRADOURO ("LOG_CODIGO");
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_BAIRRO" FOREIGN KEY ("FUNC_BAIRRO") REFERENCES BAIRRO ("BAIRRO_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_CARGO" FOREIGN KEY ("FUNC_CARGO") REFERENCES CARGO ("CARGO_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_CIDADE" FOREIGN KEY ("FUNC_CIDADE") REFERENCES TBL_CIDADE ("CID_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;
ALTER TABLE "FUNCIONARIO" ADD CONSTRAINT "FUNC_ENDERECO" FOREIGN KEY ("FUNC_ENDERECO") REFERENCES LOGRADOURO ("LOG_CODIGO") ON UPDATE NO ACTION ON DELETE NO ACTION;

10 - CRIANDO A GENERATOR PARA TRIGGER

CREATE GENERATOR "GEN_COD_BAIRRO";
CREATE GENERATOR "GEN_COD_CIDADE";
CREATE GENERATOR "GEN_COD_LOG";
SET TERM ^ ;

11 - CRIANDO TRIGGER (Para gerar codigo automatico)

CREATE TRIGGER "GERA_COD_BAIRRO" FOR "BAIRRO"
ACTIVE BEFORE INSERT POSITION 0
as
begin
new.bairro_codigo = gen_id (gen_cod_bairro,1);
end
^

CREATE TRIGGER "GERA_COD_LOG" FOR "LOGRADOURO"
ACTIVE BEFORE INSERT POSITION 0
as
begin
new.log_codigo = gen_id (gen_cod_log,1);
end
^

CREATE TRIGGER "GERA_COD_CIDADE" FOR "TBL_CIDADE"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
NEW.cid_codigo = gen_id (gen_cod_cidade,1);
END
^

COMMIT WORK ^
SET TERM ;^


Pessoal este é um exemplo de banco de dados simples, não há nenhuma consulta nele mesmo até que usamos nossas consultas em Query do próprio sistema.
Este código mostra:
- A criação do Banco de Dados (CREATE DATABASE)
- A criação de Tabelas (CREATE TABLE)
- A criação de Indices (CREATE INDEX)
- A criação de Generator (CREATE GENERATOR)
- A criação de Trigger ou gatilhos (CREATE TRIGGER)

Espero que tenham gostado.
Qualquer duvida entre em contato comigo através do e-mail.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

terça-feira, 25 de maio de 2010

SUGEST 2010 - Feira de Ciência

Saudações!

Foi iniciado ontem (25/05/2010), a Feira de Ciências da Universidade Amparense UNIFIA e foi finalizada hoje (26/05/2010).



Cada curso posuia tema e cada um era dividido por grupos. Em nosso curso, o tema foi "Pragas Virtuais" e meu grupo ficou encarregado a parte de Anti-vírus.
Como estudantes da area de Analise e Desenvolvimento de Sistemas, desenvolvemos alguns sistemas para nossa apresentação.

Sistema de Pesquisa Anti-vírus (Éttore Franco)


Eu fiquei encarregado de desenvolver um Sistema de Pesquisa, no qual o visitante coloca seu nome, seu e-mail e qual Anti-vírus utiliza.



Resultado final: através do Gráfico analisamos os Anti-vírus mais utilizados durante nossa pesquisa.

Sobre o programa:

- Utilizei um banco de dados para o cadastro do nome, e-mail e o Anti-Vírus utilizado. Cada pessoa tinha seu codigo que era gerado automaticamente através de uma Trigger. Usei o componente DBChart para esboçar o gráfico e liguei o banco com o DBChart!

Sistema Estatísticas Anti-Vírus(Éttore Franco)

O Sistema consiste em trazer dados estatisticos de alguns Anti-vírus. Com isso, o vizitante tirava dúvidas de qual o melhor, qual demora mais para realizar o 'SCAN' e etc.



Ao clicar em no botão Gera_Gráfico, cria-se o gráfico estatistico desejado!



- O sistema é bem simples, não há nenhuma ligação com banco de dados e o gráfico é do tipo JPEG. (O sistema foi criado as preças 20 minutos, pois não tivemos tempo para Desenvolve-lo).

Sistema Anti-vírus Freeware e Shareware (Renan C. Fuentes)

O sistema consiste em trazer ao vizitante quais as vantagens e desvantagens dos 5 top Anti-vírus Freeware e Shareware.



O Sistema é simples e não há ligação com Banco de Dados. A lógica dele consiste ao usuario facilididas a comparação entre anti-vírus.

Disponibilizamos a voces alguns links para downloads de nossos sistemas e a apostila sobre anti-vírus:

Sistema de Pesquisa Anti-vírus (Éttore Franco)

Sistema de Estatisticas Anti-Vírus (Éttore Franco)


Sistema Vantagens e Desvantagens Anti-vírus (Renan C. Fuentes - email: renan_c_fuentes@hotmail.com).

Apostila Sobre Top Anti-vírus

Espero que tenham gostado de nossa apresentação.

"ettore.state = 'Em busca de um estágio'"

- DUVIDAS e SUGESTÕES - ettorefrancobr@gmail.com

Sistema Estoque - Frm_Sobre

Mais uma Janela criada.
Essa é bem Simples, é um formulario dizendo sobre o programador e o programa.
Ao clicar no botão de minha Frm_principal abre então a Frm_Sobre.



Componentes, procedimentos e etc:

//no menu principal no botão sobre coloquei este codigo
procedure TfrmPrincipal.BotaoSobreClick(Sender: TObject);
var sobre: TFrmSobre;
begin
sobre := TFrmSobre.Create(Self);
sobre.ShowModal;
end;

Obs.: Criei uma variavel pois o Frm_sobre não é criado na inicialização do programa. (Sobrecarrega o programa hehehe).

- TFrm_Sobre (Janela Sobre);

- TImage (O logotipo superior);

- TPanel (Paineis para separar na visualização do usuário);

- TLabel (Algumas etiquetas);

- TRichText (Utilizado para gerar um texto fixo)
Propriedade:
- Lines (Onde eu digito o texto desejado);

- TBitBtn (Botão Sair)
Evento OnClick

procedure TfrmSobre.BitBtn1Click(Sender: TObject);
begin
close;
end;

- TStatusBar (Criei um Panel com Nome e outro com Hora)

- TTimer (Atribuir hora do sistema para o Panel da StatusBar)

"ettore.state = 'Em busca de um estágio'"

- Dúvidas e Sugestões ettorefrancobr@gmail.com

segunda-feira, 24 de maio de 2010

Sistema Estoque - Frm_Principal

Saudações!

Hoje estou postando a janela principal de meu sistema.

O sistema é um controle de estoque, aonde dou entrada e saida de produtos e gero meus relatórios. Há tambem a parte de cadastro.
O sistema é bem simples e utilizei o Delphi para desenvolve-lo.
Ai vai uma imagem de como ele esta ficando:

Frm_Principal




Utilizei componentes:

- TForm (Formulário principal)
Propriedade:
- Caption (Texto exibido na barra superior)
- Name (Nome do componente)

- TStatusBar (Uma barra inferior)
Propriedade:
- Panels (Define as propriedades dos paineis da StatusBar)

- TTimer (Settings do sistemas - Date/Time)
Procedimento:

//Ao iniciar o TTimer a StatusBar vai receber do sistema o Date/time
procedure TfrmPrincipal.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[2].text := 'Hora: ' + timetostr(time);
StatusBar1.Panels[3].text := 'Data: ' + datetostr(date);
end;

- TBitBtn (Botões com Glyph)
Propriedade:
- Glyph (Faz o Load do icone do Button);

- TMonthCalendar (Calendário);

- TLabel (Titulos, etiquetas e etc)
Propriedade:
-Caption (Define o rótulo de meu TLabel)

- TImage (Imagem de fundo)
Propriedade:
- Stretch (Faz com que a imagem de um AutoSize dentro do selecionado)
- Picture (Faz o Load da imagem desejada)

- VLCSkin (SkinData ou Layout do sistema)

Por enquanto não há nenhuma ligação com o banco de dados.
Logo após minhas próximas janelas, utilizarei em si o banco de dados.

"ettore.state = 'Em busca de um estágio'"

- Dúvidas e Sugestões ettorefrancobr@gmail.com

Bem vindos!!!

Bem vindos ao BLOG de Analise e Desenvolvimento de Sistemas.
O Blog traz um conteudo abordando temas como Linguagem de Programação, Soluções Tecnológicas, Avanço Tecnológico, Programas e suas Atualizações, Tutoriais, Comentários e etc.
Vou postar todas as minhas realizações no ramo da Informática.

Um pouco sobre o autor

Hoje sou estudante e estou no 3° Semestre. São 5 Semestre o Curso de ADS e estou em busca de um estágio. Minha carreira profissional no ramo da informatica começaram desde cedo.

Aos 12 anos iniciei meu primeiro curso de informática (Básica - Office/Windows/Intert)

Aos 15 anos fiz o curso avançado (Hardware e WebDesign - Manutenção e montagem de micros/Dreamweaver/Flash/PhotoShop/FireWorks)

Aos 16 me tornei um Professor de Informatica Básica e Avançada.

Aos 18 comecei aulas em escolas publicas e particulares.

Aos 19 fui Suporte Técnico Junior de uma empresa com média de 500 funcionários.
Aprendi as lições tecnicas e morais dentro dessa empresa.

Dei inicio em meu curso de Analise e Desenvolvimento de Sistemas

Hoje estou em busca de um estágio em empresas voltada a Soluções Tecnológicas, onde eu possa buscar mais experiência e dipôr minha própria para a empresa.

- Em minhas horas vagas, dedicava meu tempo na história da informática e com a experiência profissional soube lidar com diversos tipos de pessoas (Gerenciamento de conflitos), fora isso analisava todo meu tempo para realizar toda atividade (Gerenciamento de Tempo) e ao organizar minhas atividades, dividida por tópico (Gerenciamento de Projetos).

Espero que gostem de meu Blog.


- Sugestões -
ettorefrancobr@gmail.com