Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TIPOS DE BANCO DE DADOS Banco de Dados um conjunto de arquivos lgicos sob um arquivo fsico. Os bancos de dados mais comuns so: Banco de dados relacional, banco de dados orientados a objetos, banco de dados distribudos e banco de dados mistos, ou seja, banco de dados relacional com caractersticas voltadas para Orientao a Objeto, por exemplo. SISTEMA GERENCIADOR DE BANCO DE DADOS Sistema que mantm integrada uma coleo de arquivos, organizados de modo a evitar redundncia de informaes e permitir acesso rpido para um ou mais usurios, denominado Sistema Gerenciador de Banco de Dados ou SGBD. O SGBD mais comum o Sistema Gerenciador de Banco de Dados Relacional (SGBDR). Este um conjunto de tabelas de dados selecionados conforme o interesse de uma organizao, com uma inter-relao coerente entre essas tabelas. DICIONRIO DE DADOS O esquema de um banco de dados, ou seja, todos os domnios de dados, as relaes entre dados, descrio dos dados chamado de Dicionrio de Dados. Cada banco de dados tem sua estrutura, portanto cada banco tem seu dicionrio. Tabelas: Conforme visto anteriormente, em um banco de dados relacional no h dependncia de arquivos. Portanto, um grupo de dados distinto deve sempre estar relacionado a outro(s) grupo(s) de dados. Devido a existncia desse ponto em comum, como dois eixos que se cruzam, damos a esses grupos de dados o nome de tabela. Relao(Tuplas): Da mesma forma que as tabelas, os contedos do grupo de dados se vistos como colunas que tendem a cruzar com linhas de outra(s) tabela(s), a essa linha, ou conjunto dessas, damos o nome de relao(tuplas). ndices: Aos endereo das relaes dentro de uma tabela, damos o nome de ndices. Os ndices so formado por chaves(dado(s) que identifica (m) a relao) que nos permitem localizar rapidamente dados ou informaes desejadas. Os ndices so classificados por prioridades, sendo o principal deles o "ndice primrio". Segundo C.J.Date, um SGBDR, deve suportar as seguintes regras: 01) Regra Zero: deve suportar incluso, atualizao e eliminao no banco de dados em nvel relacional (registro simultneos). A relao(tabela) pode ter tanto zero linha quanto uma linha e ainda ser uma relao vlida. 02) Regra da Informao: Toda informao em um banco de dados relacional apresentada explicitamente em nvel lgico e exatamente de uma maneira - por valores em tabelas. 03) Regra de Acesso Garantido: Todo e cada dado (valor atmico) em banco de dados relacional tem a garantia de ser logicamente acessvel recorrendo-se a uma combinao de nome da tabela, valor da chave primria e nome da coluna(campo). O conceito de chave primria parte essencial da regra. 04) Tratamento sistemtico de valores zeros: os valores zeros (diferente da srie de caracteres em branco e de nmeros diferentes de zero) so suportados em um SGBD completamente relacional para representar a informao zero, isto , a informao inaplicvel de modo sistemtico(nulo), independente do tipo de dados.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 1
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
A representao de valores nulos no deve depender de caracteres especiais, e sim deve ser conceituada como ausncia de informao. Para suportar a integridade do BD, deve ser possvel especificar que no so permitidos zeros em cada coluna da chave primria e em quaisquer outras colunas que o administrador do banco de dados considere apropriada uma restrio integridade, colunas de chaves externas por exemplo. Tcnicas anteriores estabeleciam a definio de um valor especial para representar informaes nulas. 05) Catlogo em Linha Baseado no Modelo Relacional: a descrio do BD representada em nvel lgico de uma maneira que os usurios autorizados possam aplicar, para sua interrogao, a mesma linguagem relacional que aplicam para os dados regulares. 06) Sub-linguagem Detalhada de Dados: Um sistema relacional pode suportar vrias linguagens e modalidades de uso terminal(de uso em BD), a modalidade de preencher os espaos em brancos, por exemplo. Deve possuir pelo menos uma linguagem detalhada o bastante para suportar uma definio de dados, definio de viso, manipulao de dados interativa e por programas, restries integridade, autorizao e limites de transao(limitar, efetivar e desfazer). 07) Regra de Atualizao de viso: Todas as vises que so teoricamente atualizveis, tambm o so pelo sistema. Observe-se que uma viso atualizvel teoricamente se existir um algoritmo independente do tempo para determinar sem equvocos uma nica srie de mudanas para as relaes do banco, que tero como efeito precisamente as mudanas exigidas na viso. A esse respeito, atualizar significa no somente a modificao na informao j existente, mas tambm a incluso de novos dados ou a excluso de dados. 08) Insero, Atualizao e Eliminao de Alto Nvel: A capacidade de tratar uma relao bsica ou uma relao derivada, como um nico comando aplica-se no s recuperao de dados mas tambm incluso, atualizao e eliminao de dados. 09) Independncia de Dados Fsicos: Os programas de aplicao e atividades terminais permanecem logicamente inalterados sempre que quaisquer mudanas sejam feitas, quer nas representaes de memria, quer nos mtodos de acesso. Para conseguir isso, o SGBD deve suportar um limite claro e preciso entre os aspectos lgicos e semnticos, de um lado, e os aspectos fsicos e de desempenho das tabelas bsicas de outro. Os programas de aplicao devem lidar apenas com os dados lgicos. 10) Independncia de Dados Lgicos: Os programas de aplicao e atividades terminais permanecem logicamente inalterados quando so feitas mudanas de qualquer tipo nas tabelas bsicas para preservao da informao, que permitem teoricamente manter os dados inalterados nos aplicativos, pois a definio fica no BD. 11) Independncia de Integridade: As restries de integridade especficas de um determinado BD relacional devem ser definidas na sub-linguagem de dados relacional e armazenveis no dicionrio de dados, no nos programas de aplicao. Alm das duas regras de integridade (integridade referencial: no permitido a qualquer componente de uma chave primria possuir um valor zero. Integridade de entidade: deve haver, para cada valor de chave externa diferente de zero e distinto, um valor equivalente de chave primria derivado do mesmo valor.) que se aplicam a todo banco de dados relacional, h a necessidade evidente de que o BD seja capaz de especificar restries adicionais de integridade. 12) Um SGBDR possui independncia de distribuio. Isto significa que o SGBD tem um sub-linguagem de dados que permite aos programas de aplicao e atividades terminais permanecerem inalterados logicamente. 13) Regra de No-Subverso: Se um sistema relacional possui uma linguagem de nvel baixo (um nico registro de cada vez), esse nvel baixo no pode ser usado para subverter ou ignorar as regras de integridade e as restries expressas na linguagem relacional de nvel superior (registros mltiplos simultneos).
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 2
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
O dicionrio de dados do Progress permite a criao, alterao, excluso de banco de dados e seus componentes, ou seja: Tabelas (coleo de registros organizados em linhas e colunas). Campos (componentes dos registros que formam suas colunas e contm os dados). ndices (campos ou grupos de campos que ordenam e identificam registros nas tabelas). Sequncias (objeto da base de dados que fornecem valores inteiros incrementais a uma aplicao). Triggers de base de dados (procedure que executada toda vez que um evento ocorre na base de dados. Ex. criao de um registro.). RELACIONAMENTO Relacionamento: Em um BD relacional, existe elos entre tabelas, caracterizados quase sempre por ligaes entre domnios iguais (dados ou informaes baseados no mesmo conjunto de valores). INTEGRIDADE Integridade o controle de preciso, validade e at correo em BD. Ou seja, a integridade visa assegurar que os dados no BD sejam precisos, com a finalidade de proteger o BD contra atualizaes invlidas. Segundo C.J.DATE, as regras de integridade podem ser resumidas em duas grandes regras: 1) As regras de domnio preocupam-se em admitir ou no um determinado valor como valor candidato a um certo atributo, considerado isoladamente - isto , independente de seu relacionamento com outros valores no banco de dados. 2) As regras de relao preocupam-se, por exemplo, em admitir ou no uma certa informao como candidata insero em uma dada relao, e tambm com o relacionamento entre relaes. Em resumo, as regras de integridade so: a) nenhum componente de um valor de chave primria pode ser nulo; b) todo o valor de chave estrangeira no-nula ter de se enquadrar em algum valor de chave primria existente em algum lugar. NORMALIZAO Normalizao uma tcnica que visa criar e relacionar entidades em formas de tabelas conservando suas caractersticas originais. A finalidade da normalizao visa substituir dados por relaes, com isso simplificar as tabelas, organiz-las mais racionalmente e evitar a todo custo a redundncia de dados. A normalizao comum feita em trs etapas, porm alguns autores a descrevem em 5 etapas e h aqueles que acrescentam a "Forma Normal de Boyce/Codd" que implementa a 3 forma normal, vejamos: 1FN: Uma relao est na primeira forma normal quando todos os atributos da relao esto baseados em um domnio(conjuntos de valores de um atributo) simples, ou seja, no contm grupos de valores e sim valores atmicos ou valores repetitivos(chaves primrias). Em outras palavras, a 1FN trata de registros onde todas as ocorrncias de um tipo de registro(cliente por exemplo) tm de conter o mesmo tamanho fsico, ou seja, sem grupos de dados. 2FN: Uma relao est na 2FN se estiver na primeira e se todos os seus domnios que no so chaves forem completamente dependentes funcionalmente da chave primria. Em outras palavras, todos os atributos no-chave necessitam da chave primria completa para sua identificao. Veja bem, chave primria completa, no pode ser parte desta.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 3
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
3FN: Uma relao est na 3FN, se estiver na 1 e na 2 e, no houver em si dependncia funcional transitiva(quando um atributo no chave pode ser determinado por outro atributo tambm no chave) entre os seus atributos. Obs. Em resumo, a 2FN e a 3FN especifica que cada campo deve ser parte de chaves ou fornecer um fato nico a respeito da chave primria completa e nada mais. Na prtica pegamos o Diagrama de Entidade Relacionamentos(DER) e desmembramos cada relao em uma mais relao sem dados repetidos. Criamos chaves primrias simples ou composta de forma a identificar exclusivamente cada relao ou itens atmicos. Fazemos de forma que cada atributo das entidades depende funcionalmente da chave primria completa e eliminamos as dependncias entre atributos. Boyce/Codd especificam que uma relao est na forma normal se cada determinante for uma chave candidata. Ou seja: _ Todo atributo no-principal deve ser completamente dependente de cada chave. _ Todo o atributo principal deve ser completamente dependente de todas as chaves das quais no faa parte. _ Nenhum atributo pode ser completamente dependente de algum conjunto de atributos que no sejam chaves. 4FN: Uma relao R est na 4FN se existir uma dependncia multivalorizada a respeito de um atributo. ex. Habilidade (cozinheiro, motorista). 5FN: A 5FN trata de casos omissos na 2 e 3 Forma Normal, reconstuindo informaes redundantes em partes. SQL SQL: Structured Query Language uma linguagem de consulta estruturada padro para BD relacionais. Essa linguagem suporta transaes de processamento de consultas, segurana de administrao de dados, integridade e recuperao em caso de perda dos dados. A SQL no procedural e orientada para conjuntos de informaes em sua natureza; isto , permite aos usurios especificar o que deve ser feito e processa dados como conjuntos de elementos em lugar de uma registro por vez, como ocorre com linguagens procedural. A SQL nasceu devido a necessidade de executar operaes relacionais como diferena, interseo, juno, unio e outras em BD diferentes. O SQL hoje uma linguagem potencial, pois embora todos utilizem na base o padro ANSI, diversos desenvolvedores de BD criaram seu prprio SQL. Atualmente est legado ao desinteresse geral, assim como o "Esperanto", aquela linguagem universal! Lembra-se? TRANSAO A transao uma unidade de trabalho. Ela consiste na execuo de uma sequncia de operaes especificadas pela aplicao, comeando com uma operao especial BEGIN TRANSACTION, e terminando ou com um operao COMMIT (trmino bem sucedido) ou com um operao ROLLBACK (trmino mal sucedido). TRIGGER Tcnicamente um trigger um pedao do cdigo executvel que o SGBD processa durante uma aplicao qualquer. Vamos simplificar: Triggers so trechos de programao que podem ser embutidos no dicionrio de dados, pelo Administrador de Dados, com a finalidade de gerar alguma validao, help, etc.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 4
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Os triggers em alguns casos tambm so chamados de "rbitros" ou "executor de segurana". Existem dois tipos de triggers: Triggers da base de dados: Os triggers de banco de dados, sub-dividem em dois: Trigger de Schema: o trigger armazenado no dicionrio de dados, ou seja, na base de dados e executado toda vez que a base atualizada. Trigger de Sesso: o trigger executado atravs de uma procedure. Trigger de interface com o usurio: o trigger que executado aps a ao do usurio na interface (evento). Por exemplo, um clique no mouse apontado para um objeto qualquer. >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 5
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
INTRODUO AO PROGRESS
O Sistema Gerenciador de Banco de Dados e Linguagem Progress, originalmente desenvolvido para Unix, foi lanado com em 1984, pela Progress Software Corporation, uma empresa americana com sede em BedFord, Massachusetts. Um grande diferencial do Progress sua portabilidade, ou seja, possui verses para diversas plataformas. Toda instalao do Progress, fica registrada no arquivo progress.cfg, do diretrio \dlc. Aps uma instalao completa do Progress, em um ambiente Windows, encontramos no diretrio \windows\Menu Iniciar\programas\progress a lista de arquivos Progress instalados:
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Obs. Os arquivos que possuem um destaque (*), so os que sero tratados com mais detalhes no decorrer deste treinamento. DESKTOP O desktop um aplicativo do Progress que tem por finalidade concentrar e disponibilizar os principais aplicativos do Progress, como Data Dictionary, Procedure Editor, AppBuilder, Results, Report Builder e Application Debugger. O arquivo principal deste aplicativo _desk.p. (*) INTERFACE BUILDER O Interface Builder, tambm conhecido como UIB (User Interface Builder), originalmente possuia a finalidade de permitir a criao rpida de interface grfica. Hoje, com o advento dos objetos pr-programados (templates) teve seu nome mudado para AppBuilder. Este aplicativo totalmente voltado para o desenvolvimento de programao grfica, naturalmente voltada aos objetos e seus eventos. O principal arquivo _uib.p (este aplicativo ser visto separadamente na prxima fase do treinamento). RESULTS Este aplicativo tem como alvo principal os usurios que possuem um pouco de conhecimento em programao, possibilitando os mesmos a realizar pesquisas, filtros e extrao de dados em suas bases de dados. REPORTER BUILDER Aplicativo cuja finalidade gerar relatrios e grficos, quando rodando sobre plataforma windows. APLLICATION DEBUGGER Uma ferramenta cuja a finalidade localizar e identificar erros no cdigo Progress. APPLICATION COMPILLER Possibilita a compilao de um programa, programas de um diretrio ou uma rvore de diretrios, por nomes e/ou extenses. Principal arquivo _comp.p. (*) DATA DICTIONARY Permite a criao e manuteno de dicionrios de dados Progress. O principal arquivo _dict.p. (*) DATA ADMINISTRATION Tem por finalidade possibilitar a configurao e administrao de dados. Seu principal arquivo _admin.p. (*) PROCEDURE EDITOR Editor de cdigos fontes, de onde podemos executar programas, compilar, etc. Enfim qualquer operao relativa ao cdigo fonte. O principal arquivo deste aplicativo _edit.p. (*) >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 7
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 8
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Os elementos de interface com o usurio, contidos nesta caixa de dilogo so: New Physical Database Name: Pede para informar o nome atual do banco de dados a ser criado, assim como seu caminho no disco. Start With: Especifica a forma de criao deste novo banco de dados: Na EMPTY Database: criar um banco de dados vazio. A Copy of the SPORTS Database: Criar uma cpia do banco de dados modelo da Progress. A Copy of Some Other Database: Criar uma copia de outro banco de dados. Replace If Exists: Indica se o banco de dados que o usurio especificou existir deve ou no substitudo. Os botes OK/Cancel/Help: Confirma a criao do banco de dados, cancela ou abre uma consulta on-line aos manuais, respectivamente. Na Opo Conncect to an Existing Databasecaminho/nome de um banco de dados existente:
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 9
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Manuteno de tabelas em um dicionrio de dados Neste ponto podemos definir toda a nossa base de dados. O nomes de tabelas podem conter at 32 caracteres alfanumricos e devem comear com uma letra. Na definio da base de dados use nomes no singular, de forma que traduza claramente o seu significado. ex. estoque, produto. Para criar uma tabela: data dictionary/create/table. O esquema da tabela definido pela srie de parmetros que se segue. Dentro tais parmetros os principais so: Table Name: nome da tabela. Label: nome da tabela para exibio como cabealho ou ttulo. Hidden: opo de ocultar a tabela no dicionrio de dados. File Type: tipo da tabela (padro progress ou padro de portabilidade para o Progress). Frozen: opo de congelar qualquer alterao na definio da tabela. Dump Name: nome atribudo ao arquivo para exportao dos dados da tabela. Description: comentrios a respeito da tabela (descrio).
Manuteno de registros/campos de tabelas em um dicionrio de dados Os atributos de uma tabela possui uma srie de definies, vejamos as principais: Field-Name: nome do atributo. Data-Type: tipo do dado que o atributo suportar(caracter, inteiro, decimal, lgico, data e nmero identificador de registros) . Format: Mscara do dado no atributo. Extent: Nmero de ocorrncia do atributo (vetor). Label: Ttulo a ser exibido como default em telas. Column-Label: Ttulo default a ser exibido em sadas tipo relatrios. Decimals: Quantidade de casas decimais para atributos tipo decimal.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 10
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Initial: Valor inicial (default) do atributo. Mandatory: Se o preenchimento obrigatrio ou aceita valores nulos. Case Sensitive: Diferenciao entre maisculo e minsculo . Help: Mensagem que ser exibida ao usurio no momento da entrada de dados. Description: Descrio/comentrios a respeito do atributo com a finalidade de document-lo. View-As: Informa qual elemento grfico mostrar o atributo (combo-box, editor, fill-in, radioset, selection-list, toggle-box, text). Estes elementos sero trabalhados na parte programao grfica.
Indexao de tabelas Os ndices de uma tabela no dicionrio de dados Progress so definidos por: Index-Name: nome do ndice. Description: descrio resumida do ndice. Primary: Se o ndice em questo primrio ou no. Active: Se o ndice est ativo ou no. Unique: Se uma chave nica (obrigatrio para o primrio). Abreviated: Se o ndice aceita pesquisa parcial (parte da chave). Index-Fields: Atributos que compem o ndice. Word Index: Contm todas as palavras de um texto ou matriz e permite a pesquisa nos registros por palavras ou sentenas.
VALIDAES, SEQUNCIAS E TRIGGERS NA BASE DE DADOS Validation Expresso que deve ser verdadeira para permitir a excluso de registros. Ex. Usurios com permisso total. Pede mensagem a ser mostrada na negativa de excluso de registros. Sequncias Funo encarregada de produzir uma srie nica de valores. Consiste em um valor inicial, um incremento e um limite. A sequncia pode ser associado ao um banco de dados, transao, tabela, campo. Triggers Programas a serem executados automaticamente no momento que ocorrer um evento no banco de dados, ou seja, quando ocorrer a Criao de um novo registros (create), quando ocorrer um excluso (delete), quando ocorrer um busca bem sucedida (find) e quando um novo registro escrito na base de dados (write).
DATABASE REPORTS O Progress disponibiliza uma srie de relatrios a respeito do esquema do banco de dados(tabela abaixo). RELATRIO Detailed Table Quick Table Quick Field DESCRIO Detalha tabela, campo, sequncias, ndices, validaes Sumrio das tabelas de um banco Sumrio dos campos de uma ou mais tabelas de um banco
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 11
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
PRINCIPAIS ARQUIVOS DE UM BANCO DE DADOS PROGRESS .db o banco de dados propriamente dito, ou seja, o banco fsico. .dn arquivo do banco de dados multi-volumes. .bi before-image do banco de dados. .bn before-image do banco de dados multi-volumes. .ai after-image do banco de dados. .an after-image do banco de dados multi-volumes. .df cpia do skema do banco de dados (definies do dicionrio de dados). .lg log de eventos no banco. .tl log de transao. .lbi - before-image de transaes (local). .lk lock de abertura do banco de dados. .d arquivo dump (dados) da tabela. .ped procedure temporrias. .dbi definies de tabelas temporrias. .trp definies do dicionrio de dados antes do commit. .p programa char .w programa grfico .i programa include >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 12
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
um resumo das possibilidades oferecidas pelo Procedure Editor encontra-se abaixo, sendo que parte (essencial) do mesmo ser vista na sesso Ferramentas Essenciais. O cone referente ao Procedure Editor, dentre outras opes configurveis, encontra-se no desktop.
As principais possibilidades de operao no Procedure Editor so: - File (New, Open, Close, New Procedure Window, Save, Save As, Print); - Edit (Undo, Cut, Copy, Paste, Insert File, Insert Field); - Search (Find, Find Next, Nind Previous, Replace, Goto Line); - Buffer (list, previous, next buffer, font, information); - Compile (Run, Check Syntax, Debug, Compiler Messagers); - Tools (Data Dictionary, Data Administration, Pro*tools, Appbuilder, Web Tool, Report Builder, Results, Application Compiler); - Options (Preferences, Editing Options, Menu Accelerators, Default Font); - Help (Help Topics, Messages, Recents Messages, About Procedure Editor). Sobre a linguagem Progress abertura para aplicao de lgicas, gerenciamento de banco de dados e gerenciamento de interface com o usurio. Uma aplicao Progress caracteriza-se por: # Procedures Um ou mais cdigo dividido em sentenas ou blocos de sentenas. # Blocos Grupos de sentenas que possuem interao entre suas sentenas, com outros blocos, com dados e suas propriedades e tambm com os usurios. # Statements(sentenas) Declara o processamento a ser realizado. finalizada com um ponto final (.).
# Expresses Constantes, nomes de campos, nomes de variveis, etc. # Funes Realiza uma ao especfica com dados pr-definidos. # Variveis Endereos de memria que possuem valores sujeitos a alteraes. # Eventos
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 14
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
ge =
ne <>
PROGRAMAO ORIENTADA A EVENTOS E ORIENTADA A APLICAO Entre as linguagens de manipulao de banco de dados, os modelos de desenvolvimento mais comum so: O modelo orientado a objetos e o modelo orientado a aplicao. A linguagem de desenvolvimento Progress trabalha com os dois modelos. O controle da ordem de execuo fica a cargo do operador. _Uma aplicao desenvolvida no modelo de programao orientado a objetos possui para cada objeto um certo nmero de triggers que procura responder a cada evento ocorrido naquele objeto. _Uma aplicao desenvolvida no modelo de programao orientado a aplicao, desenvolvida no modelo procedural, onde cada sentena executada na ordem de cima para baixo. A aplicao dita o controle do processamento. >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 15
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Resumo dos comandos de manipulao de dados INSERT UPDATE SET DELETE CREATE DISPLAY PROMPT-FOR ASSIGN FIND FOR EACH
/* programas exemplos exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */ INSERT tabela. /* exemplo 02 */ CREATE tabela. SET tabela. /* exemplo 03 */ CREATE tabela. DISPLAY tabela.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 17
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 18
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
/* programa exemplo exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */ REPEAT: /* F4 interrompe o processamento */ FOR EACH tabela1: DISPLAY tabela1. END. NEXT. FOR EACH tabela2: /* no ocorrer */ DISPLAY tabela2. END. END. RETURN. >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 20
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
NOT Retorna true(verdadeiro) se uma expresso falsa e false(falso) se uma expresso verdadeira. Sintaxe: NOT expresso. FIND Localiza um registro na tabela e move o mesmo para o buffer de registro. Sintaxe: FIND [sub-comando] tabela <expresso>. Onde: sub-comando = FIRST/LAST/PREV/NEXT (abaixo); expresso = condio WHERE, USE-INDEX nome-ind, USING, etc. (abaixo). FIRST/LAST/PREV/NEXT Primeiro, ltimo, anterior ou prximo registro de uma tabela. Sintaxe: ... FIRST/LAST/PREV/NEXT tabela. WHERE Estabelece uma ou mais condies para que o comando seja executado. Sintaxe: ... WHERE condies. Exemplo: FOR EACH tabela WHERE campo = valor: OF Estabelece um relacionamento direto (indexado) entre duas tabelas. Sintaxe: ... tabela1 OF tabela2. IMPORTANTE: a chave do ndice primrio da tabela2 deve ser campo na tabela1. USING Substitui a instruo WHERE em uma pesquisa a base de dados, atravs de um ndice. Sintaxe: ... USING campo-buffer-tela. Exemplo: FIND tabela USING INPUT campo-chave. USE-INDEX Determina o ndice a ser usado em uma pesquisa(FIND) ou em um bloco de processamento. Sintaxe: USE-INDEX nomeindice. Exemplo: FOR EACH tabela USE-INDEX nomeindice:
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 21
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
CASE Cria uma deciso entre vrias opes baseado em valores de uma expresso. Sintaxe: CASE expresso: WHEN lista-valores THEN sentena/bloco. OTHERWISE sentena/bloco. END[CASE]. Onde expresso = ocorrncia para incio do processo; WHEN = condio verdadeira de valores na lista de valores; sentena/bloco = processamento ou abertura de bloco de processamento. Exemplo: CASE cond-pagto: /* campo condio de pagamento radio-set */ WHEN codigo = 1 THEN DISPLAY A VISTA. OTHERWISE DO: RUN prog-x.p. /* programa limite de credito */ END. ENDCASE. BEGINS Testa se uma expresso caracter igual ao comeo de outro expresso. Sintaxe: expresso1 BEGINS expresso2. Exemplo: FOR EACH tabela WHERE tabela.campo BEGINS XYZ. Obs. Para uma boa performance, requer um ndice com a chave1 = campo. MATCHES Semelhante ao BEGINS, porm no utiliza ndices e aceita metacaracteres. CHOOSE Move uma barra iluminada atravs de uma srie de dados previamente mostrados, selecionando um dentre a srie atravs de um RETURN (tecla). Sintaxe: CHOOSE sentena.
/* programas exemplos exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */ FIND FIRST tabela. IF AVAIL tabela THEN DO: IF tabela.campo1 = xx THEN PAUSE 10. END. ELSE DO: FOR EACH tabela WHERE campo1 BEGINS ABC: DISPLAY tabela.campo1. END. END.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 22
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 23
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
NO-ERROR Ignora a mensagem(alert-box) em caso de erro ou concorrncia sobre um conjunto de dados. Sintaxe: COMANDO instruo NO-ERROR. Exemplo: FIND FIRST cliente NO-ERROR. MESSAGE Exibe uma mensagem. Sintaxe: MESSAGE mensagem [instrues]. Onde mensagem = string ou dado/informao e instrues = objeto, botes, ttulo, etc. Exemplo: MESSAGE Pesquisar aprender VIEW -AS ALERT-BOX. HELP Exibe uma mensagem de ajuda, no rodap da tela, casada com a entrada de dados. Sintaxe: ... HELP mensagem. Exemplo: UPDATE nome-cliente HELP Informe o nome do cliente. BREAK Instrui o bloco de processamento a quebrar os dados conforme ordens de classificao a seguir. Sintaxe: ... BREAK ordem-classificao(BY). BY Instrui um ou mais campos de classificao (ordem). Sintaxe: ... BY ordem [tipo]. Onde: ordem = campo de classificao e tipo = ascendente/descendente. DESCENDING Instrui a classificao de dados na ordem decrescente. ASCENDING Instrui a classificao de dados na ordem crescente(default).
/* programa exemplo exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */ FOR EACH tabela BREAK BY tabela.campo1 BY tabela.campo2: DISPLAY tabela.campo1 tabela.campo2. END.
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 24
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
FUNES PRIMRIAS
CONNECTED Retorna o valor lgico (true/false) se um banco est conectado. Sintaxe: CONNECTED(banco). Onde banco o nome lgico do banco. GO-ON Fora a uma ao contrria a uma restrio. Sintaxe: GO-ON (expresso). Onde expresso = chave de continuidade no processo. Exemplo: PROMPT-FOR codigo-cliente GO-ON (F3). ENCODE Criptografa uma string. Sintaxe: ENCODE(expresso). Onde expresso = string (entre aspas) ou uma varivel. TODAY Retorna a data do dia. Sintaxe: TODAY [formato]. DATE
Converte uma string ou valores de ms, dia e ano em data. Sintaxe: DATE(ms,dia,ano/string).
MONTH
Retorna o ms, isolado, de uma data. Sintaxe: MONTH(data).
YEAR Retorna o ano, isolado, de uma data. Sintaxe: YEAR(data). DAY Retorna o dia, isolado, de uma data. Sintaxe: DAY(data). STRING Converte um valor de qualquer tipo (int/dec/data,etc), em um valor caracter. Sintaxe: STRING(valor,formato). Onde valor = valor a ser transformado, formato = mscara de apresentao do resultado. TIME Retorna com a hora do sistema operacional. Sintaxe: [STRING(] TIME [,formato)] Onde formato = mscara de apresentao das horas. Ex. hh:mm:ss. LOOKUP
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 25
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Retorna a posio do valor de um domnio em uma lista de valores. Se no encontrar retorna 0. LOOKUP(domnio,valor1, ...,valorN). Onde domnio = detentor do valor (varivel, campo, etc), valor1, ...,valorN = lista de valores. Exemplo: DISPLAY LOOKUP("x","a,b,c,x"). LASTKEY Retorna o cdigo da ltima tecla digitada. Sintaxe: LASTKEY <expresso>. LENGTH Retorna o tamanho, em caracteres, de uma string. Sintaxe: LENGTH(string). TRIM/RIGHT-TRIM/LEFT-TRIM Elimina caracteres brancos, ou outro se especificado, em uma string. sintaxe: TRIM(string,[caracter]). Vlido apenas com o formatador de tela desativado(vdeo). SUBSTRING Retorna parte de uma string. SUBSTRING(string,posio-inicial,nm-caract-a-direita). RECID Retorna o endereo de um registro de dados. Sintaxe: RECID(tabela). CAN-FIND Retorna verdadeiro, se um registro foi encontrado pelo FIND, dentro dos critrios estabelecidos. Sintaxe: CAN-FIND(expresso). Onde expresso = critrios estabelecidos a um FIND. LAST-OF Retorna true/false para a ltima ocorrncia no lao de processamento conforme grupo de quebra. Sintaxe: LAST-OF(agregado). Onde agregado = valor especificado no grupo de quebra. FIRST-OF Idntico ao LAST-OF, porm para a primeira ocorrncia. CAPS Transforma uma string em letras maisculas. Sintaxe: CAPS(string). PROPATH Retorna a varivel de ambiente atual do PROPATH. Sintaxe: ... PROPATH ... . MODULO
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 26
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
ACCUM Retorna o valor de uma expresso calculada pela funo ACCUMULATE ou em uma sentena DISPLAY. Sintaxe: ACCUM operao expresso. Onde operao = clculo efetuado no dados ou conjunto de dados. As operaes mais usadas so: AVERAGE(mdia), COUNT(ocorrncias), MAXIMUM(maior valor), MINIMUM(menor valor), TOTAL(somatria dos valores), SUB-AVERAGE(mdia por volta do lao), SUB-COUNT(ocorrncia por volta do lao), SUB-MAXIMUM(maior valor dentro das voltas do lao), SUB-TOTAL(valor dentro das voltas do lao). Expresso: Definio do lao e/ou grupo de quebra. Exemplo: FOR EACH pedido: DISPLAY numero-pedido numero-cliente. FOR EACH item-pedido OF pedido: DISPLAY numero-item quantidade preco. DISPLAY (ACCUM TOTAL quantidade * preco) LABEL TOTAL. END. END.
ACCUMULATE Realiza operaes com valores especificados em uma expresso durante o processamento de um bloco. Para acessar o resultado a funo ACCUM deve ser usada. Sintaxe: ACCUMULATE expresso clculo. Onde expresso o dado a ser calculado e clculo a operao a ser efetuada. Exemplo: FOR EACH cliente: ACCUMULATE limite-credito (AVERAGE COUNT MAXIMUM). END. DISPLAY Mdia de Crdito = (ACCUM AVERAGE limite-credito) SKIP Maior Crdito = (ACCUM MAXIMUM limite-credito) SKIP Nmero Clientes = (ACCUM COUNT limite-credito) SKIP WITH NO-LABELS.
KEYCODE Retorna o cdigo de uma tecla. Sintaxe: KEYCODE(tecla). KEYLABEL Retorna o nome de uma tecla. Sintaxe: KEYLABEL(cdigo). WEEKDAY Retorna o nmero inteiro referente ao dia da semana. Sintaxe: WEEKDAY(data). Exemplo: DISPLAY WEEKDAY(today). NOT ENTERED Retorna true(verdadeiro) se um campo da tela no sofreu alterao, durante o ltimo processamento de um comando INSERT, PROMPT-FOR, SET ou UPDATE.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 27
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
ROUND Arredonda casas decimais de um valor. Sintaxe: ROUND(expresso, n). Onde: expresso = varivel ou campo que contm o valor, n = nmero de casas decimais. TRUNCATE Define o nmero de casas decimais a retornar de um valor e ignora as demais. Sintaxe: TRUNCATE(expresso,n). Onde: expresso = varivel ou campo que contm o valor, n = nmero de casas decimais. ENTRY Retorna a descrio de um item inteiro (posio) com base em uma lista de itens. Sintaxe: ENTRY(item,lista) Exemplo: DISPLAY ENTRY(num-dia,desc-dia). Onde num-dia = WEEKDAY(today), desc-dia = varivel char(segunda,...,Domingo).
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 28
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
FORMATAO DE TELAS
FORM Abre a definio do layout e atributos de uma tela para uma procedure. Sintaxe: FORM sentena. Onde sentena engloba, entre outras, instrues abaixo. Exemplos: No final da sesso. DEFINE FRAME Abre a definio do layout e atributos de uma tela para uma ou mais procedures. Sintaxe: DEFINE FRAME ... WITH Liga a definio de uma tela a um layout. Sintaxe: ... WITH ... . ROW Especifica a linha onde se posicionar a primeira linha(ou borda) da tela. Sintaxe: ... ROW n ... . Onde n = nmero da linha. COLUMN Especifica a coluna inicial da tela (campo superior esquerdo), e tambm a quantidade de colunas em que ser mostrado os dados. Sintaxe: COLUMN n1 / n2 COLUMN. Onde n1 = nmero da coluna / n2 = nmero de colunas (qtde). DOWN Estabelece o nmero de ocorrncia por tela no bloco de processamento. Sintaxe: DOWN n. Onde n = nmero de ocorrncias desejveis. TITLE Informa em vdeo reverso, no centro da borda superior o ttulo especificado. Sintaxe: ... TITLE ... . OVERLAY Estabelece que a tela ir sobrepor outra de posicionamento semelhante sem interrupes. Sintaxe: ... OVERLAY ... . SKIP Provoca uma salto de linha na tela. Sintaxe: ... SKIP(n). Onde n = ensima linha seguinte a saltar. O default 1 (pode ser omitido).
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 29
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
@ Indica que o dado deve ser mostrado na tela, na mesma posio de outro. Sintaxe: DISPLAY dado/informao @ destino. Onde dado/informao = valor a ser atribudo, destino = campo ou varivel da tela que receber o valor.
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 30
AT Permite o posicionamento do dado em uma coluna especfica da tela. Sintaxe: AT n. Onde n = nmero da coluna. Obs. Esta instruo pode ser usada para posicionamento de objetos em windows, por linha x coluna ou pixels. EXEMPLOS DE MANIPULAO DE TELAS:
FORM tabela.campo1 LABEL Ttulo Campo 1 SPACE(02) tabela.campo2 NO-LABEL SKIP tabela.campo3 LABEL Ttulo Campo 3 SKIP WITH FRAME f-nometela ROW XX CENTERED OVERLAY TITLE EXEMPLO 1 DOWN 1 COLUMN SIDE-LABELS. FORM "Exemplo de formatao de tela, nomeada ex1. View mostra o resultado." WITH FRAME ex1. VIEW FRAME ex1. Exemplo de formatao de tela, nomeada ex1. View mostra o resultado.
FORM "Exemplo de formatao de tela, nomeada ex1. Skip salta uma linha." SKIP "Skip pode ser usado na sintaxe. skip(n)." WITH FRAME ex2. VIEW FRAME ex2. Exemplo de formatao de tela, nomeada ex2. Skip salta uma linha. Skip pode ser usado na sintaxe. skip(n).
FORM " Exemplo de formatao de tela centralizada. " SKIP " Centered centraliza a tela no monitor. " WITH FRAME ex3 ATTR-SPACE CENTERED. VIEW FRAME ex3. Exemplo de formatao de tela centralizada. Centered centraliza a tela no monitor.
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
DISPLAY "Clear limpa(zera) a tela. Hide apaga. " LABEL "Linha 1: " SKIP "Side-Labels = labels a esquerda do item. " LABEL "Linha 2: " SKIP "O contrrio label = ttulo(acima do item)." LABEL "Linha 3: " SKIP WITH FRAME ex5 CENTER SIDE-LABELS. Linha 1: Clear limpa(zera) a tela. Hide apaga. Linha 2: Side-Labels = labels a esquerda do item. Linha 3: O contrrio label = ttulo(acima do item).
DISPLAY "DOWN n - nm. conjuntos de dados por vez." LABEL "DOWN: " SKIP "Permite sobreposio da tela." LABEL "OVERLAY: " SKIP "Elimina a borda da tela." LABEL "NO-BOX:" SKIP "Tela topo/rodap do monitor." LABEL "PAGE-TOP/PAGE-BOTTOM:" SKIP "No permite que a tela seja sobreposta." LABEL "TOP-ONLY:" SKIP "Permite o relamento da tela." LABEL "SCROOL:" SKIP "Mostra o dado sem o label especificado." LABEL"NO-LABEL" SKIP WITH FRAME ex6 CENTER SIDE-LABELS NO-BOX. VIEW FRAME ex6. DOWN: DOWN n - nm. conjuntos de dados por vez." OVERLAY: Permite sobreposio da tela. NO-BOX: Elimina a borda da tela. PAGE-TOP/PAGE-BOTTOM: Tela no topo/rodap do monitor. TOP-ONLY: No permite que a tela seja sobreposta. SCROOL: Permite o rolamento da tela. NO-LABEL: Mostra o dado sem o label especificado.
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 32
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
DEFINE Define um dado ou um conjunto destes para uso em uma ou mais procedures. Sintaxe: DEFINE dado [AS tipo FORMAT formato INITIAL valor]. Onde dado = varivel, temp-table, buffer, stream, button. Tipo/formato/valor (instrues abaixo). FORMAT Define o formato(mscara) de um dado. Sintaxe: FORMAT formato. Onde formato(principais) = 99/99/9999 (data),>>9.99 (dec/int), x(nn) (char) Sim/No (log). TEMP-TABLE Instrui a criao de uma tabela interna (memria com possibilidade de SWAP em hard disk). Sintaxe: TEMP-TABLE tt-nometabela FIELD campo1 tipo formato FIELD campoN tipo formato [INDEX nomeindex IS [tipo1 tipo2 tipo3] chave1 ordem1... chaveN ordemN]. Onde tt-nometabela = nome da tabela a ser criada; campo = nome do campo da tabela, tipo = tipo campo(int,char,etc) formato = FORMAT; nomeindex = nome do ndice, tipo1,2,3 = UNIQUE PRIMARY WORD-INDEX; chave = campo chave e ordem = [ASCENDING/DESCENDING]. Exemplo: DEF TEMP-TABLE tt-totdia FIELD dia AS DATE FIELD tot AS DEC FORMAT >>>,>>>,>>9.99. BLANK Instrui a entrada de dados(input) que no mostre(display) os caracteres imputados. Sintaxe: BLANK. Exemplo: UPDATE senha BLANK. AUTO-RETURN Instrui a entrada(input) a um dado que retorne(prximo) automaticamente ao final deste. Sintaxe: AUTO-RETURN. Exemplo: UPDATE senha AUTO-RETURN. AS Instrui a criao de uma varivel quanto a seu tipo.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 33
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
LIKE Instruo que espelha o formato de um dado em outro. Sintaxe: LIKE origem. Onde origem = campo ou varivel que fornecer a formatao para outro campo ou varivel. Exemplo: DEF VAR valor-produto LIKE produto.valor. NEW SHARED Instrui a definio de um dado para trat-lo como compartilhado (de uso permitido em um ponto abaixo(subrotina) da mesma aplicao). Sintaxe: NEW SHARED dado. Exemplo: DEF NEW SHARED VAR codigo AS INT. Obs. A definio pode ser feita como NEW GLOBAL SHARED, que permite o uso do dado em qualquer ponto da aplicao. SHARED Instrui a definio de um dado para trat-lo como dado anteriormente definido como compartilhado (definido em um ponto acima na mesma aplicao). Sintaxe: SHARED dado. Exemplo: DEF SHARED VAR codigo AS INT. Obs. A definio pode ser feita como GLOBAL SHARED, definida em qualquer ponto da aplicao. BUFFER Instrui o define a criar um buffer (cpia) de uma tabela. Sintaxe: DEF BUFFER b-tabela FOR tabela. SPACE Instruo que determina uma string com espaos. Sintaxe: space(n). Onde n = nmero de espaos. Exemplo: DISPLAY campo1 space(10) campo2. INITIAL Estabelece o valor inicial de um dado ou informao. Sintaxe: INITIAL valor. Exemplo: DEF VAR resp AS LOG INITIAL YES. FILL Valoriza uma varivel(string) com a quantidade/caracter especificada. Sintaxe: FILL(chars,n). Onde: chars = string a ser repetida e n = nmero de repeties. Exemplo: traco = FILL(-,80). VALIDATE Cria uma consistncia em torno do dados. Pode ser usado para validao de registro ou varivel.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 34
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
ASSIGN Move valores pr-definidos para variveis. Sintaxe: ASSIGN varivel = valor. Obs. A aplicao de um assign para valorizao de duas ou mais variveis, implica em melhor performance no processamento e a um executvel menor (apenas uma linha de processamento).
/* programa exemplo exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */ DEF VAR opcao AS CHAR FORMAT "x(15)" EXTENT 4 /* ser visto na prxima sesso */ INITIAL ["MENSAGEM 01","MENSAGEM 02","MENSAGEM 03","ENCERRAR"]. DEF VAR ind-pos AS INT. FORM opcao WITH FRAME seletor CENTER OVERLAY TITLE "seletor" NO-LABELS. REPEAT WITH FRAME seletor: DISP opcao. CHOOSE FIELD opcao AUTO-RETURN. IF FRAME-VALUE = opcao[1] THEN DO: MESSAGE " Voc escolheu a mensagem 01" VIEW-AS ALERT-BOX. NEXT. END. ELSE IF FRAME-VALUE = opcao[2] THEN DO: MESSAGE " Voc escolheu a mensagem 02" VIEW-AS ALERT-BOX. NEXT. END. ELSE IF FRAME-VALUE = opcao[3] THEN DO: MESSAGE " Voc escolheu a mensagem 03" VIEW-AS ALERT-BOX. NEXT. END. ELSE LEAVE. END.
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 35
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
PROCEDURE Uma rotina interna no programa, chamada de um bloco qualquer, no entanto, localizada fora deste bloco e do bloco principal do programa. Uma procedure chamada atravs do comando RUN. Sintaxe: PROCEDURE nome-procedure. {algoritmo} ENDPROCEDURE. RETURN.
/* programa exemplo de relatrio */ /* Obs. Este programa embora correto, visa atender a fins didticos. */ DEF VAR tit AS CHAR FORMAT x(50). DEF VAR traco AS CHAR FORMAT x(80). DEF VAR cont AS INT. ASSIGN tit = titulo do relatorio traco = FILL(_,80). OUTPUT TO c:/treinamento/teste.txt PAGE-SIZE 60. FOR EACH tabela1, EACH tabela2 OF tabela1 BREAK BY campo-ordem. /*campo-ordem tabela1 ou tabela2ex.nome forneced */ IF LINE-COUNTER <> 1 OR LINE-COUNTER + 1 >= PAGE-SIZE THEN DO: IF LINE-COUNTER <> 1 THEN PAGE. PUT tit AT (80 - LENGTH(TRIM(tit))) / 2 SKIP TODAY AT 01 FORMAT 99/99/9999 STRING(TIME,hh:mm:ss) AT 36 Pag. AT 73 PAGE-NUMBER AT 77 FORMAT 999 SKIP traco AT 01 SKIP TTULO-COLUNA1 AT XX /* cam po1 / tabela 1 ex. cdigo fornecedor */ TTULO-COLUNA2 AT XX /* campo2 / tabela 1 ex. nome fornecedor */ TTULO-COLUNA3 AT XX /* campo 1 / tabela 2 ex. cdigo produto */ TTULO-COLUNA4 AT XX /* campo 2 / tabela 2 ex. descrio produto */ TTULO-COLUNA5 AT XX /* varivel ex. quantidade produto fornecido */ traco AT 01 SKIP. END. IF FIRST-OF(campo-ordem) THEN DO: PUT campo1/tabela1 AT XX campo2/tabela1 AT XX. cont = 0. END. PUT campo1/tabela2 AT XX campo2/tabela2 AT XX cont AT XX FORMAT >>,>>9 SKIP. END. OUTPUT CLOSE. >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 37
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
SILENT
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 38
EXPORT Exporta dados para um arquivo, formatando a delimitao do mesmo. Sintaxe: EXPORT [DELIMITER char} lista-dados. Onde: char o character delimitador desejado. Se no especificado o default ser ativado. lista-dados so os dados a serem exportados (tabela, campos). Exemplo: OUTPUT TO arquivo. FOR EACH tabela: EXPORT DELIMITER ; campo1, campo2 ... campoN. END. OUTPUT CLOSE. IMPORT Importa dados de um arquivo delimitado, gerado ou igual ao gerado pelo comando EXPORT. Sintaxe: IMPORT [DELIMETER char] lista-dados. Exemplo: INPUT FROM arquivo. FOR EACH tabela: IMPORT UNFORMATTED string. END. INPUT CLOSE.
/* programa exemplo da sesso atual e sesso anterior */ DEF VAR opcao AS CHAR FORMAT x(15) EXTENT 4 INITIAL [INCLUDE ,PROCEDURE ,ROTINA EXTERNA ,ENCERRAR ]. DEF VAR ponteiro AS INT. FORM opcao WITH FRAME seletor CENTER OVERLAY TITLE SELETOR NO -LABELS. REPEAT WITH FRAME seletor: DISPLAY opcao. CHOOSE FIELD opcao AUTO-RETURN. IF FRAME-VALUE = opcao[1] THEN DO: {c:/treinamento/prg-inc.i}. NEXT. END. ELSE IF FRAME-VALUE = opcao[2] THEN DO: RUN proc-anex. NEXT.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 39
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
PROCEDURE proc-anex. OUTPUT TO c:/treinamento/exp-dados. FOR EACH tabela: EXPORT tabela. END. OUTPUT CLOSE. ENDPROCEDURE. /* programa include prg-inc.i */ FOR EACH tabela: DELETE tabela. END. INPUT FROM exp-dados. FOR EACH tabela. IMPORT tabela. END. INPUT CLOSE. /* programa rotina externa rot-exter.p */ IF OPSYS = "WIN32" THEN MESSAGE "ok" VIEW-AS ALERT-BOX. RETURN. >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 40
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 41
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
UNDO Desfaz um transao. Em outras palavras, retorna os valores anteriores de campos /e ou variveis do bloco corrente devido uma interao no mesmo. Sintaxe: [...] UNDO [...]. Exemplo: FOR EACH tabela ON ENDKEY UNDO, RETRY. EXCLUSIVE-LOCK Ao ser usado para acesso alguma tabela, esta instruo trava (uso exclusivo) outros acessos na tabela em questo. O default do Progress para tabelas e SHARE LOCK (uso compartilhado). Sintaxe: ... EXCLUSIVE-LOCK. Exemplo: FOR EACH tabela EXCLUSIVE-LOCK.
NO-LOCK A instruo NO-LOCK, usada na localizao e/ou busca de dados, tem por finalidade liberar o(s) registro(s) em questo (relao gerada pela transao) para que possa sofrer outros acessos, definindo que o acesso corrente apenas para leitura. Sintaxe ... NO-LOCK. Exemplos: FOR EACH tabela NO-LOCK. FIND tabela WHERE condio NO-LOCK. Naturalmente, observa-se que o default do Progress o travamento (lock) de registro para atualizao. LOCKED Locked uma funo cuja a finalidade retornar true/false(verdadeiro/falso) a respeito de um conjunto de dados. Sintaxe: LOCKED <expresso>. Onde <expresso> o conjunto de dados, uma tabela por exemplo. Exemplo: IF LOCKED tabela THEN ... ELSE ... .
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 42
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
NAVEGAO Esta sesso tem por finalidade introduzir o leitor no processo de seleo, visualizao e controle sobre uma faixa de dados oriundos do(s) banco(s). Em outras palavras, pretende-se mostrar o que ocorre durante a execuo de browsers, para melhor entendimento dos mesmos na programao grfica, principalmente utilizando os SmartsObjects. QUERY Define uma query para mapeamento de dados. Em outras palavras, define um filtro de dados a serem usados em um browser por exemplo. Sintaxe: DEFINE QUERY nome-query FOR origem. Exemplo: veja programa no final da sesso. BROWSE Objeto que permite a visualizao, navegao e seleo de dados destacados por uma query. Sintaxe: DEF BROWSE nome-browse QUERY nome-query <condies>. Exemplo: veja programa no final da sesso. OPEN-QUERY Abre(processa) uma query anteriormente definada. Sintaxe: OPEN QUERY nome-query FOR <condies>. Exemplo: veja programa no final da sesso. APPLY Solicita e administra um evento para uma determinado objeto. Sintaxe: APPLY evento TO objeto. Exemplo: veja programa no final da sesso. ENABLE Habilita a entrada de dados, no buffer de tela, para um campo tipo objeto. Sintaxe: ENABLE lista-objetos <condies>. Exemplo: veja programa no final da sesso. WAIT-FOR
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 43
Exemplo de uma tela de navegao com os comandos e instrues acima: /********************************************************************************************** ** Programa: bmor05z.p ** Funo...: browse na tabela sige (obs. Progress verso 7 for Unix) ** Cliente....: CBTU ** Data........: 16/01/2001 ** Autor........: Clio de Oliveira Uniwork Consulting ** Supervisor: Renato Magalhes ** Reviso....: ***********************************************************************************************/ DEF SHARED VAR registro AS recid. DEF SHARED VAR quebras AS CHAR FORMAT x(10). DEF SHARED VAR req-zoom AS CHAR FORMAT x(08). DEF QUERY q-sige FOR sige.
DEF BROWSE b-sige QUERY q-sige DISPLAY sige.cd-grupo COLUMN-LABEL Cd_Grupo sige-cod-sige COLUMN-LABEL Codigo_Sige sige.ano-sige COLUMN-LABEL Ano sige.cs-descricao1 FORMAT x(35) COLUMN-LABEL Descricao WITH 11 DOWN TITLE Selecao de Codigo Sige. FORM b-sige WITH FRAME abc CENTERED OVERLAY ROW 04 NO-BOX. VIEW FRAME abc. ON WINDOW-CLOSE OF CURRENT-WINDOW HIDE FRAME abc NO-PAUSE. IF quebra = grupo THEN OPEN QUERY q-sige FOR EACH sige WHERE sige.cd-grupo MATCHES req-zoom AND sige.cs-situacao = yes USE-INDEX grupo-ano-sige. ELSE OPEN QUERY q-sige FOR EACH sige WHERE sige.cs-situacao = yes
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 44
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
TOOLS
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 45
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_ gerar arquivos .d (dump) com os dados de tabelas Progress; _ carregar dados dos arquivos .d (load) de tabelas Progress para um banco Progress; _ exportar dados para arquivos externos, nos padres dif, sylk, text e MS word merge data. _ importar dados nos padres dif, sylk, delemited text, fixed-length. No formato delemited text deve ser informado o caracter delimitador. APPLICATION COMPILER O Application Compiler, como o prprio nome diz, o aplicativo cuja a finalidade administrao um conjunto de compilaes, dentro dos parmetros estabelecidos em sua tela:
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 46
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
No menu (cabealho) temos as seguinte opes e sub-opes: File: exit. Compile: Start Compile F2 Tools: Data Dictionary, Procedure Editor, ... , Pro*tools, ... Options: Configura-se a sada (resultado) da compilao, ou seja, pode gerar ou no um arquivo log. Na janela central informa-se o(s) caminho(s), o(s) nome(s) e o(s) tipo(s) de arquivo(s) a ser(em) compilado(s). Obs. Aceita-se a utilizao de Meta-Caracteres. Abaixo da janela central possibilita-se a configurar: _ Save New .r Files: se os novos arquivos compilados (.r) sero gravados. _ Remove Old .r. Files: Se os arquivos compilados (.r) anteriormente sero removidos, independente de erros e/ou gravao dos novos arquivos .r. _ Look in Subdirectories: Se os arquivos a serem compilados devem ser procurados nos subdiretrios, do diretrio especificado para compilao. _ Only Compile if No .r File: Compila apenas os arquivos que no possuem uma verso compilada. Nos botes, na parte inferior da tela, especifica-se: _ O caminho da lista de arquivos a serem compilados (Propath). _ Acrescenta, modifica e exclui arquivos na lista de arquivos a serem compilados (Add, Modify, Delete). _ Inicializa a compilao (Start Compile).
Obs: Podemos compilar e salvar os programas compilados, diretamente no Procedure Editor, usando o comando COMPILE. Sintaxe: COMPILE path/lista-programas [SAVE]. Onde path = caminho onde esto os programas a serem compilados; lista-programas = lista de programas a serem compilados; SAVE = salvar o novo .r (programa compilado).
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 47
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
PROPATH EDITOR Em todas a opes tools, encontra-se a sub-opo PRO*TOOLS, lista de ferramentas para desenvolvimento e configurao do ambiente de desenvolvimento.
Este pequeno editor tem por finalidade definir os principais caminhos para uma aplicao, ou seja, onde deve ser procurado os arquivos (programas por exemplo) referidos pela aplicao.
ARQUIVO DE INICIALIZAO (.ini) Na instalao do Progress, o arquivo progress.ini automaticamente criado no diretrio DLC/bin. Este arquivo tem por finalidade registrar alguns parmetros e variveis de configurao de ambiente, conforme a plataforma de instalao do Progress. Na instalao de aplicativos desenvolvidos em Progress, h necessidade de reconfigurar alguns parmetros, desta forma ao instalar o EMS tambm criado um arquivo .ini. ARQUIVO DE PARMETROS (.pf) Os arquivos .pf so responsveis por fornecer os parmetros da sesso cliente/servidor. Principais parmetro do arquivo .pf: -db banco: identifica o nome do banco a conectar. -1: conecta o banco de dados no modo mono-usurios. -a arquivo: especifica se o arquivo after-image ser usado e o nome do mesmo. -b: se a inicializao da sesso ser em batch, sem a interveno do usurio em caso de erro. -basekey texto ininame arquivo.ini: indica o arquivo .ini para configurar a sesso. -B n: indica o nmero de blocos de memria a ser colocado no buffer de cada usurio.
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 48
-pf
W:\dlc9\bin\prowin32.exe -basekey "ini" -ininame scripts\ems2.ini -pf scripts\ems2.pf -pf scripts\ems2mult2.pf p men/men902za.p -param MAN W:\dlc9\bin\prowin32.exe -basekey "ini" -ininame scripts\ems2.ini -pf scripts\ems2.pf -pf scripts\ems2mult.pf -p men/men902za.p -param DIS >>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 49
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Na sub-rotina Programa, cadastra-se o programa usado no procedimento, inclusive EPCs. LAY-OUT DE IMPRESSO No datasul-EMS define-se um ou mais lay-outs de impresso para uma impressora. Este lay-out parametriza o nmero de linhas por pgina, nmero de colunas por linhas, espaamento e margens, fontes, etc.
>>>>>> // <<<<<<
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 51
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
EPC So programas desenvolvidos e configurados para ser executados em um ponto especfico de um programa Datasul. Sua finalidade adaptar o produto Datasul e/ou integrar o Datasul-EMS com outro produto. Uma EPC pode ser disparada a partir de um evento na rotina ou em um evento do dicionrio de dados. No mdulo Menu do Datasul-EMS Manuteno Programas, pode-se cadastrar o caminho e o nome fsico de uma EPC a ser chamada na execuo do programa. Obs. Conceitualmente uma EPC a juno de uma APPC e uma UPC.
APPC Application Partner Program Call um EPC realizada pelas Franquias. UPC User Program Call - uma EPC realizada pelo cliente. RPC Remote Procedure Call (chamadas remotas a procedimentos) um conceito adotado pela Datasul, conhecido como programas, ou parte destes, executados em uma outra mquina de forma remota (Servidor de Aplicao). RPW Remote Procedure Wait (espera por procedimento remoto) consiste em executar programas remotamente atravs de um servidor de aplicao onde, o usurio parametriza a execuo do programa (servidor, data, hora, etc, da execuo). API Uma API uma programa que recebe certos parmetros destinados a executar uma tarefa especfica no Datasul-EMS. Como gerar uma planilha no Excel com dados oriundos do Datasul-EMS, por exemplo. Em outras palavras uma interface aberta para funes especficas. Uma API pode realizar operaes de manutenes na base de dados Datasul e retornar o resultado da operao, ou seja, OK se a operao se concretizou corretamente ou NOK se a operao foi incorreta. Toda API criada pela Datasul padronizada e documentada no diretrio docapi, com extenso .doc, onde especificado os objetivos, parmetros de entrada/sada e mensagens de erros no processamento. As principais APIs possuem as seguintes finalidades: _ Gerar e exibir grficos de acordo com os parmetros passados; _ Integrao entre Progress e Microsoft Word; _ Integrao entre Progress e Microsoft Excel; _ Envio de E-Mail ou Fax atravs, atravs do EMS, usando MS-Exchange (OLE Automation); _ Envio de E-Mail, atravs do EMS, usando um servidor UNIX ou outro servidor que use o protocolo SMTP; _ Busca de dados de uma planilha Excel para o Progress; _ Uso de funes do Excel para retornar os resultados para um programa Progress.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 52
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
NOMENCLATURA
As regras de nomenclatura completas, inclusive para atributos, tabelas e gatilhos, padro Datasul encontram-se no Manual de Padres Datasul.
-
BANCOS Para cada banco de dados do Datasul-EMS e Datasul-HR, foi determinado uma sigla com dois dgitos. Os principais bancos so: MGADM AD banco administrativo MGCLD CL banco coletor de dados MGDIS DI banco distribuio MGIND IN banco industrial MGINV IV banco investimentos MGMP MP banco multiplanta MGUN UN banco universal MGPE PE banco ponto eletrnico NGRH RH banco recursos humanos MDULOS Cada mdulo possui uma sigla para ser utilizada na definio dos nomes de seus programas e diretrios, como exemplo, podemos citar alguns dos principais mdulos: CT contabilidade CB caixa e bancos AP contas a pagar CR contas a receber CE controle de estoque CP controle de produo CQ controle de qualidade QO cotao de vendas CS custos DP desenvolvimento de produto EN engenharia FT faturamento PD pedidos PROGRAMAS Os programas so nomeados pelo tipo e estilo. a) .W programa com interface grfica. yyXX999, onde yy a sigla do cliente, xx o mdulo e 999 o nmero sequencial. b) .P: programa sem interface grfica que segue a mesma regra de nomenclatura acima e podem ser acrescido das letras rp (relatrio padro) nos casos de formulrios padres do cliente, como emisso de pedidos por exemplo. c) BROWSER: programa tipo browser. b99xx999.w, onde b = browser, 99 = nmero sequencial do tipo do objeto, xx sigla do cliente e 999 = nmero sequencial por tabela de dados principal. d) QUERY: programa tipo query. Obedece a mesma regra de nomenclatura do browser, evidentemente inicia-se com q (query) no lugar de b (browser). e) GO: programa do tipo v para. Obedece a mesma regra de nomenclatura do browser, evidentemente inicia-se com g (go) no lugar de b (browser).
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 53
ZOOM: programa do tipo pesquisa. Obedece a mesma regra de nomenclatura do browser, evidentemente inicia-se com z (zoom) no lugar de b (browser).
VARIVEIS Para criao de variveis, as seguintes regras devem ser seguidas: char (c-var), int (i-var), data (da-var), dec (de-var), handle (h-var), lg (l-var), raw (raw-var), rowid (rw-var) e widgethandle (wh-var). OBJETOS Para nomenclatura de objetos, aplica-se as regras: boto (bt-obj), browse (br-obj), combobox (cb-obj), fill-in (fi-obj), radio-set (rs-obj), retangulo (rt-obj), selection-list (sl-obj), slider (sl-obj), toogle-box (tb-obj). DIRETRIOS No geral, os diretrios so criados por mdulos e tipos de arquivos, obedecendo a seguinte sintaxe: xxtipo. Onde xx a sigla do mdulo e tipo o tipo de arquivo. Exemplo: \CDP programas do mdulo Cadastro. Programas que so objetos so gravados nos diretrios xxbrw(browser), xxdialog(dialog), xxgo (v para), xxqry(query), xxvwr(viewer) e xxzoom(pesquisa). Onde xx a sigla do banco de dados da tabela principal do objeto. PRINCIPAIS INCLUDES/UTILITRIOS Vrios includes padres acompanham o produto EMS com a finalidade de auxiliar no desenvolvimento de customizaes e manter o padro na implementao do produto. Abaixo resumimos os includes/utilitrios mais usados em customizao. Lembramos que a finalidade deste resumo familiarizar os profissionais com recursos disponveis e que fatalmente sero usados no desenvolvimento pelo DDK. Portanto, maiores detalhes a respeito destes, sero encontrados no manual de padres Datasul. UT-FIELD.I Retorna propriedades dos campos do dicionrio de dados: {utp/ut-field.i <banco-lgico> <tabela> <campo> <propriedade> onde propriedade = 1(label), 2(column-label), 3(help), 4(format), 5(initial), 6(description, 7(type) UT-RTLBL.I Permite a utilizao de literais para colar labels em retngulos usados em radio-set por exemplo. {utp/ut-rtlbl.i <bco-lgico> <tabela> <campo> <objeto> onde objeto = a nomenclatura da forma de viso do objeto. Ex.FILL-IN VIEW-AS TEXT. UT-RUN.I Executa programas sem interfaces (.p) a partir de uma interface (.w). utiliza-se o recurso RPC. Obs1. Requer a utilizao dos includes ut-glob.i e btb008za.io para definies de varives e funes. {utp/ut-run.i xxp/xx9999rp.p} Obs2. Este include possue diversas sintaxes na passagem de parmetros em uma RPC. UT-MSGS.P Apresenta uma mensagem do cadastro de mensagens do produto (UT-CDMSG.W). Run utp/ut-msgs.p (input <ao> input <n-msg> input <parmetros>}.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 54
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Onde ao = show(msg/help), msg(mensagem), help(ajuda), type (erro, aviso, informao, questo) Parmetros = campos, tabelas e/ou palavras. Entre os parmetros usa-se ~~ + . IND01-10.I, IND11-50.I e IND51500.I Representa campos inteiros na forma de rdio-sets ou combo-box. {include/ind01-10 {funo} {parmetro}}. Onde funo = 01 (combo-box), 02(radio-set),03(itens), 04n(retorna o item n), 05(retorna o n de itens), 06item(retorna a posio item),07(retorna valores para a propriedade radio-buttons) parmetro = parmetros das funes 4 e 6. UT-TABLE.I Retorna as propriedades de uma tabela. til nos SmartBrowsers para por label em campos. {utp/ut-table.i <bco-lgico> <tabela> <propriedade>} onde propriedade = 1(file-label), 2(dump_name), 3(description) UT-LITER.I Utiliza o cadastro de literais do EMS. {utp/ut-liter.i <literal> <mdulo> <alinhamento>}. Onde mdulo pode ser universal(*) e alinhamento = L(a esquerda), C(centralizado), R(a direita) UT-LIMIT.P Determina o valor inicial e final de campos caracter de formato varivel, como contacontabil. Run utp/ut-limit.p (input <opo> <formato>). Onde opo = indica o limite(MIN/MAX) e formato o prprio formato do campo. UT-GLOB.I Define variveis globais como cdigo da empresa, nome do usurio corrente. Obs. J vm com a definio pronta dentro dos SmartsObjetos. I-FREEAC.I Converte strings acentuadas e caracteres especiais para caracteres sem acento e simples. {include/i-freeac.i} ASSIGN varivel = fn-free-accent(string-a-ser-convertida). UT-DIR.P Utilizado quando o usurio informar o diretrio. RUN utp/ut-dir.p (input ttulo, OUTPUT <pasta>, OUTPUT <cancelado>). Onde ttulo = mensagem transmitida ao usurio na caixa de dilogo pasta = varivel char que retornar com o diretrio escolhido cancelado = varivel lgica com o status do boto cancelado. BTB917ZX.P Executa arquivos tipo MID e WAV. RUN btb/btb917zx.p (input <som>). Onde som o caminho completo e o nome do arquivo a ser executado. Obs. Requer a instalao de OCX Datasul(setup.exe no dir.\interfac\som\).
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 55
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
UT-VRBIN.P Informa a verso de um programa compilado. Run utp/ut-vrbin.p (input <arquivo>, input <acomp>, output <verso>). Onde arquivo = programa compilado, acomp = varivel lgica para a tela de acompanhamento. Obs. Para programas no padro Datasul. Caso no encontrado o retorno ser nulo(?). UT-FINFO.P Informa data/hora/tamanho de um arquivo no Windows. RUN utp/ut-finfo.p (input <arquivo>, output <data>, output <hora>, output <tamanho>). UT-CDMLN.P Mostra informaes da linha de comando usada para abrir a sesso corrente. RUN utp/ut-cmdln.p (output <linha-de-comando>). Onde linha-de-comando = valores dos parmetros da sesso (.ini, .inp, basekey, etc.). UT-OSVER.P Informa a verso do sistema Windows. RUN utp/ut-osver.p (output <plataforma>, output <verso>, output <release>, <build>, output <extrainfo>).
>>>>>> // <<<<<<
output
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 56
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
REFERNCIAS
_ Progress Language Reference Volume 1 _ Progress Language Reference Volume 2 _ Pocket Progress _ DATASUL: Manual do Administrador Datasul EMS 2.0 _ DATASUL: Mdulo Bsico Datasul-EMS _ DATASUL: Manual de Padres e Programao EMS 2.0
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 57
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
ANEXO
LISTA DE LABORATRIOS
01) Banco de Dados _Crie um banco de dados, chamado PCP, no diretrio c:\treinamento. _Crie duas tabelas para o banco de dados acima:
TABELA produto
fornecedor
CAMPO cod-produto descrio preo mdio outros (se desejar) cod-fornec nome outros (se desejar)
_ Saia do Progress, entre novamente e conecte o banco recm criado. _ Gere em arquivo, no diretrio c:\treinamento, o Detailed Table do report, para o banco. _ Analise os arquivos gerados no item acima, com o bloco de notas. 02) Manipulao de Dados Faa pequenos programas para valorizar (inserir) dados nas tabelas criadas no laboratrio 01. Preencha os campos na seguinte forma: Cdigo = 1, descrio = produto/fornecedor nmero um, e assim por diante. No final do exerccio, cada tabela dever ter no mnimo 3 registros cada. Obs. Todos os comandos da sesso devem ser vistos. Salve os programas no diretrio c:\treinamento. 03) ndices e relacionamentos _Retorne ao dicionrio de dados e acrescente na tabela produto o campo: cod-fornec (9999). Acrescente tambm um ndice primrio(nico) com a chave = cod-produto. _Para a tabela fornecedor acrescente um ndice primrio(nico), sendo chave o cod-fornec e um ndice secundrio para o campo nome. _ Gere para arquivo, no diretrio c:\treinamento, o Detailed Table do report, para o banco. _ Analise os arquivos gerados no item acima, com o bloco de notas. 04) Classificao de dados, formatao de telas
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 58
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda
Escreva um programa que mostre os dados da tabela produto: um registro por vez, em uma coluna e em ordem alfabtica pela descrio. 05) Relatrio _Escreva um relatrio, com sada em arquivo, para produto e um para fornecedor. 06) Menu: Rotina Externa, Procedure, Include, Importao/Exportao de dados _Crie um menu com as seguintes opes: listar produtos, listar fornecedores, exportar dados (tabela fornecida pelo usurio) e importar dados tabela fornecedor. Obs. Listar produtos/fornecedores deve ser rotina externa, exportar dados uma include e importar dados uma procedure interna. 07) Controle de Concorrncias e Browse - Crie um browse para selecionar um produto e mostrar os dados do fornecedor do mesmo.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 59
Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda