Criação de Banco de Dados

Detalhes do Trabalho    Os 8 comandos SELECT    Um Form-Exemplo   Criação do Menu








Detalhes do Trabalho

O trabalho deve ser em grupo de 3 pessoas (no máximo) e contará de 2 partes que, no final, resultará em um Projeto em Visual FoxPro com um banco de dados e Formulários de Consulta utilizando o comando SELECT do SQL. Banco de Dados O banco de dados deverá ser composto de, no mínimo, 5 tabelas. Haverá tabelas de Cadastro comum (cidades, clientes, funcionarios, livros, pacientes, animais, imoveis, mó- veis, fitas, etc) e obrigatoriamente duas tabelas com ligação 1 para n de movimentação (notas fiscais, alugueis, fichas de despesas, duplicatas, pagamentos, etc). O Banco de Dados deve ser entregue, OBRIGATORIAMENTE, até o dia 16/11. Formulários Serão criados 15 formulários de consulta, cada um utilizando um comando SELECT do SQL. Alguns formulários deverão possuir objetos de edição para criarem condições do WHERE ou alterarem a ordenação no ORDER BY. No final, teremos mais um formulário para executar os formulários de consulta. Início da Página

Os 8 comandos SELECT

1 - Uma tabela com muitos registros (clientes, fitas, veiculos, funcionarios), com a existência do campo NOME (por exemplo), utilizando a clásula WHERE ... LIKE . Campo de Edição: o valor que está no LIKE 2 - A mesma tabela do Número 1 utilizando a cláusula IN ou BETWEEN. . Option Group com 2 ordens de exibição (cláusula ORDER BY) . Dois campos de edição definindo os valores para BETWEEN ou para IN 3 - Seleção utilizando mais de uma tabela com 2 funções do SQL (avg, count, min, max ou sum) . Option Group com 3 combinações de 2 funções a serem exibidas. Exemplo: opção 1: avg e count opção 2: min e max opção 3: sum e count 4 - Seleção com mais de uma tabela utilizando a cláusula GROUP BY com uma das fun- ções do SQL . Na verdade serão dois comandos SELECT. Um Option Group escolherá um entre dois campos de exibição. Exemplo: Tabela Clientes com group by do campo CIDADE ou campo CLASSE 5 - Seleção em uma tabela utilizando Sub-Query (que pode ter mais de uma tabela). O primeiro select deve retornar mais de uma linha. . Campo de Edição: uma condição no segundo select 6 - Comando SELECT utilizando FULL JOIN . Option Group com 2 ordens de exibição (cláusula ORDER BY) 7 - Comando SELECT com mais de uma tabela utilizando a cláusula TOP. . Option Group com 2 ordens de exibição (cláusula ORDER BY) . Campo de Edição: número de linhas que o TOP deve retornar 8 - Comando SELECT relacionando mais de DUAS tabelas, utilizando DUAS colunas cal- culando valores (Operadores). Início da Página

Um Form-Exemplo

Aqui estão os passos para criar um Formulário de Consulta da tabela de Funcionários de uma empresa. Teremos campos do tipo caracter e numérico. Primeiro Passo Dentro de um projeto criado, deve haver a tabela FUNCIONS adicionada em um banco de dados. A partir deste projeto criaremos o formulário de Consulta. No Gerenciador de Projetos, escolha Documentos / Formulários / Novo / Novo Formulário. Segundo Passo Alterar algumas propriedades do Formulário: . Caption - Consulta de Funcionários . AutoCenter - Verdadeiro . Width - 500 . Height - 380 . Movable - Falso . BorderStyle- 1 Inserir um objeto Label no topo do form: . Caption - Cadastro de Funcionários . FontBold - Verdadeiro . FontSize - 14 . Alignment - 2 Center . BackColor - uma cor clara . ForeColor - uma cor escura . BorderStyle - 1 Fixed Single Inserir um objeto Grid abaixo do label: . DeleteMark para FALSO (não exclui registros na exibição da grade); . RecordMark para FALSO (não exibe coluna de seleção da linha); . ReadOnly para VERDADEIRO (não pode alterar os dados na grade); . ScrollBars para 2 - VERTICAL; . RecordSourceType - 4 SQL Statement Inserir um objeto Edit Box abaixo do Grid: . ReadOnly - Verdadeiro . FontBold - Verdadeiro . Se quiser, altere o BackColor e ForeColor No Método INIT do Formulário, vamos definir o comando SELECT que será executado: Public vsql vsql = "select funcionar, nome, salario from funcions "+; "into cursor consulta" thisform.grid1.recordsource = vsql thisform.edit1.value = vsql Tecle <ctrl> + W para gravar o fonte do método. Qual é a ordem que queremos o comando SELECT? Inserir um Option Group abaixo do Edit: . Na janela Propriedades, selecione Option1 e altere a Caption para "Alfabética" . Da mesma forma, selecione Option2 e altere a Caption para "Salario" . Se precisar, altere a largura das bordas através do mouse ou através da propriedade Width (para OptionGroup1, Option1 e Option2) . Vamos tentar padronizar o máximo possível para que o código fonte fique no evento INIT do formulário. Para isso, quando o usuário alterar a ordem de exibição, o evento CLICK do OptionGroup1 será ativado; e então executaremos o INIT: Thisform.init . Agora devemos alterar o init, complementando-o (com a parte em vermelho): Public vsql vsql = "select funcionar, nome, salario from funcions "+; "into cursor consulta" if thisform.optiongroup1.value = 1 vordem = " order by nome" else vordem = " order by salario" endif vsql = vsql + vordem thisform.grid1.recordsource = vsql thisform.edit1.value = vsql Quais são os nomes que queremos filtrar no comando SELECT? Inserir um objeto Label para exibir o tipo de edit que devemos usar: . Caption - Nome Parcial: Inserir um Text Box para acessarmos o nome do funcionário: . Format - ! . Evento InteractiveChange - Thisform.Init . Alteração no INIT (com a parte em vermelho): Public vsql vsql = "select funcionar, nome, salario from funcions "+; "into cursor consulta" if thisform.optiongroup1.value = 1 vordem = " order by nome" else vordem = " order by salario" endif vsql = vsql + vordem vlike = " " if .not. empty(thisform.text1.value) vlike = " where nome like '"+trim(thisform.text1.value)+"%' " endif vsql = vsql + vlike thisform.grid1.recordsource = vsql thisform.edit1.value = vsql Para encerrar o form, inserir um objeto do tipo botão (command button): . Caption - \<Retorna . Evento Click - Thisform.release Qual é a faixa de salários que queremos utilizar no BETWEEN? Inserir um label: . Caption - Salario de: Inserir outro label: . Caption - até Inserir um Text Box com as seguintes propriedades: . Format - K . InputMask - 999.99 . Value - 0 . ToolTipText- 1º valor deve ser menor/igual ao 2º valor . Evento INIT- Thisform.init Inserir outro Text Box com as mesmas propriedades acima citadas (observe a estética no exemplo do form no início deste link. ATENÇÃO: Para que a propriedade TOOLTIPTEXT funcione, altere a propriedade SHOWTIPS do FORM para VERDADEIRO. . Alteração no INIT (com a parte em vermelho): Public vsql vsql = "select funcionar, nome, salario from funcions "+; "into cursor consulta" if thisform.optiongroup1.value = 1 vordem = " order by nome" else vordem = " order by salario" endif vsql = vsql + vordem vlike = " " if .not. empty(thisform.text1.value) vlike = " where nome like '"+trim(thisform.text1.value)+"%' " endif vsql = vsql + vlike vbetween=" " if thisform.text2.value + thisform.text3.value > 0 vbetween = " salario between "+str(thisform.text2.value)+; " and "+str(thisform.text3.value) if vlike == " " vsql = vsql + " where " + vbetween else vsql = vsql + " and " + vbetween endif endif thisform.grid1.recordsource = vsql thisform.edit1.value = vsql Início da Página

Criação do Menu

Após os oito formulários, cada um com um comando SELECT de consulta, estiverem prontos criaremos um formulário para executar os formulários de consulta. Será nosso Form de Menu. Primeiro Passo - Criação do Menu Com o projeto aberto, escolha no Gerenciador de Projetos a opção OUTROS / MENUS / NOVO MENU. Aparecerá o Criador de Menus. Nas opções do criador de menus, colocaremos duas opções de menu: . 1º aviso : \<Consultas Resultado: SubMenu Editar : Clique no botão e digite no: 1º aviso - Nome da primeira consulta Resultado - Comando No comando- comando para executar o formulário: DO FORM NOME_FORM 2º aviso - Nome da segunda consulta Resultado - Comando No comando- comando para executar o formulário: DO FORM NOME_FORM ... e assim por diante. Quando terminar as 8 opções, clique na opção Nível do Menu e escolha Barra de Menus. Digite o segundo aviso: . 2º aviso : \<Sair Resultado : Comando No comando: comando para encerrar o menu: Nome_do_Formulario_Principal.RELEASE OBSERVAÇÃO: Se, entre uma opção e outra dentro de um sub-menu, você precisar de colocar um separador, digite \- no Aviso. Para testar o menu, clique no botão Visualizar. Com o Criador de Menu ainda aberto, devemos definir que o menu será executado dentro do formulário principal. Para isso escolha, na Barra de Menu, EXIBIR / OPÇõES GERAIS / e ative a opção Formulário de Nível Máximo / OK. Voltando ao Criador de Menu, devemos gerar o código fonte do menu. Para isso, escolha na Barra de menu a opção MENU / GERAR / GERAR. Agora podemos encerrar o Criador de Menu. Criando um Formulário Principal de Menu O menu está criado e configurado para ser utilizado dentro de um Formulário. Agora cri- aremos este formulário escolhendo, no Gerenciador de Projetos a opção DOCUMENTOS / FORMULÁ- RIOS / NOVO / NOVO FORMULÁRIO. Altere as seguintes propriedades: . Caption - Trabalho de LTP - Consultas SQL . WindowState - 2 Maximizado . ShowWindow - 2 Como Formulário de nível superior . Evento INIT - DO nome_do_seu_menu.MPR WITH THIS, .T. Grave com <ctrl> + W e execute o formulário (!) OBSERVAÇÃO: Para que os outros formulários (os de consulta) sejam executados na janela do formulário principal, é preciso alterar a propriedade SHOWWINDOWS para 1 - Em Formulário de Nível Superior. Início da Página
Hosted by www.Geocities.ws

1