Você está na página 1de 58

INTRODUO A PROGRAMAO PROGRESS INTRODUO A SISTEMAS DE BANCO DE DADOS CONCEITOS RELATIVOS A BANCO DE DADOS

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

INTRODUO A PROGRAMAO PROGRESS

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

INTRODUO A PROGRAMAO PROGRESS

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

INTRODUO A PROGRAMAO PROGRESS

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

INTRODUO A PROGRAMAO PROGRESS

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 A PROGRAMAO PROGRESS

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:

COMPONENTES DO BANCO DE DADOS PROGRESS


O Progress possui um grande nmero de arquivos e/ou utilitrios, em muitos casos desenvolvidos na prpria linguagem Progress, que permite a melhor utilizao do produto. Abaixo relacionamos a maior parte desses arquivos e respectivas descries. Destacamos ainda o principal arquivo de cada aplicativo, com a finalidade de mostrar adiante como configurar o acesso ao mesmo atravs do sistema EMS.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 6

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

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 PROGRAMAO PROGRESS

MANUTENO DE BASE DE DADOS PROGRESS

MANUTENO EM BANCO DE DADOS (dlc\bin\prodb.exe cadastro) Na verso Progress for Unix: prodb [nome do banco] [parmetro] O prodb (\dlc\bin\prodb.exe cadastro) cria um banco de dados, onde parmetro pode ser: empty (banco vazio) ou nome de um banco j existente de onde sero copiado as definies. Uma outra opo e acessar o Data Dictionary. proserve nome-do-banco Abre um banco Progress. A abertura significa preparar o BD para uso(cria o .lk, ativa o .bi). pro/mpro [nome-do-banco] [parmetro] Acessa um banco no modo mono-usurio(pro) ou multi-usurio(mpro). Sem o nome do banco abre uma sesso Progress com as opes disponveis no dicionrio. Os parmetros mais comuns so: -d [dmy] define o formato da data. -E substitui vrgula por ponto decimais e vice-versa. -p nome- procedimento inicia a sesso executando o procedimento especificado. -e n altera o tamanho do buffer. Obs. Veja relao de parmetros na sesso de inicializao arquivo .pf. proshut nome-do-banco Fecha um banco de dados Progress.

Na verso Progress for Windows: [Desktop] Data Dictionary, onde aparecer a seguinte caixa de dilogo:

Ao selecionar a opo CREATE A NEW DATABASE, a seguinte caixa de dilogo aparece:

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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:

Ao clicar em Browse, possvel selecionar o banco a conectar.

Aps conectado um banco de dados a seguinte imagem aparece:

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

TABELAS, REGISTROS/CAMPOS E NDICES (dlc\bin\prowin32.exe p _dict.p)

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

INTRODUO A PROGRAMAO PROGRESS

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 Quick Index DESCRIO Detalha tabela, campo, sequncias, ndices, validaes Sumrio das tabelas de um banco Sumrio dos campos de uma ou mais tabelas de um banco Sumrio dos ndices de uma ou mais tabela 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

INTRODUO A PROGRAMAO PROGRESS


SQL View Sequence Trigger User Table Relations Mostra as vises do banco definidas no padro SQL Mostra as sequncias definidas no banco Mostra informaes sobre todos os triggers do banco Mostra os usurios correntes do banco, identificadores, senhas. Mostras as relaes de uma ou mais tabelas do banco

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

INTRODUO A PROGRAMAO PROGRESS


>>>>>> // <<<<<<

Faa o laboratrio nmero 01 do anexo.

CARACTERSTICAS DA LINGUAGEM PROGRESS


O ambiente de desenvolvimento Progress composto de formatador de telas interno, run time, SQL, dicionrio de dados ativo (no requer DML), compilador, SGBDR, editor de textos e uma linguagem de 4GL. Conforme j vimos, possui tambm ferramentas aplicativas de desenvolvimento. lgico que alguns deste no so exclusivos deste ambiente. O editor de texto do Progress, o chamado Procedure Editor, possui as principais caractersticas de um editor de texto comum.
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 13

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

Devido a simplicidade operacional deste editor e objetivo deste material, focalizar-se- de agora em diante, de forma prioritria, na linguagem de desenvolvimento caracter. No entanto, 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
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


Endereos de memria que possuem valores sujeitos a alteraes. # Eventos Ao do usurio na interface com o mesmo ou ocorrncia na base de dados. # Operadores e Smbolos Permite manipulao de valores e situaes especiais respectivamente (tabela abaixo). # Elementos de Interface Grfica Objetos que representam dados e/ou conjuntos destes. PRINCIPAIS OPERADORES E SMBOLOS ESPECIAIS
+ Yes Not + + . finaliza o pargrafo No And * True Or : finaliza abertur / false [] eq = lt < le <= gt > ge = ne <>

? valor nulo

, separa cadeia de

/**/ comentrio

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 AO DESENVOLVIMENTO PROGRESS CHAR COMANDOS DE MANIPULAO DE DADOS


ASSIGN
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


Move os dados imputados no buffer de tela para os mesmos dados no buffer de registro. Sintaxe: ASSIGN {[tabela] ou [lista-campos = lista-inputs]} [instrues].

CREATE Cria um registro para uma tabela, valoriza os campos com os valores default e Initial. Move uma cpia do registro para o buffer de registro. Sintaxe: CREATE tabela. DELETE Remove o registro corrente do buffer de registro e do banco de dados. Sintaxe: DELETE tabela. DISPLAY Move dados para o buffer de tela e mostra na tela ou em outra sada especificada. Sintaxe: {[tabela] ou [lista-campos = lista-inputs]} [instrues]. EXCEPT Instrui um outro comando (DISPLAY/ASSIGN) quanto a uma lista de campos excesses. Sintaxe: EXCEPT lista-campos. INSERT Cria um registro no banco fsico, edita este registro e atualiza os valores imputados. Sintaxe: INSERT tabela [instrues]. PROMPT-FOR Requisita uma entrada de dados no buffer de tela. Sintaxe: PROMPT-FOR lista-dados [instrues]. RELEASE Move o registro do buffer para o banco se houve mudana no registro. Sintaxe: RELEASE tabela. UPDATE Mostra o valor atual de um campo ou varivel e solicita nova entrada de dados. Sintaxe: UPDATE campo/varivel [instrues]. INPUT Permite o acesso a valores de um campo no buffer de tela. Sintaxe: INPUT [FRAME nometela] campo.

RESUMO DO POSICIONAMENTO DOS DADOS


_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 16

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS


COMANDOS ASSIGN CREATE DELETE DISPLAY FIND FOR EACH INSERT PROMPT-FOR RELEASE SET UPDATE BANCO DE DADOS BUFFER REGISTRO BUFFER TELA USURIO

Resumo dos comandos de manipulao de dados INSERT UPDATE DELETE CREATE DISPLAY SET 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. /* exemplo 04 */ CREATE tabela. DISPLAY tabela.campo1 ... tabela.campoN. DELETE tabela. DISPLAY tabela. /* erro registro no disponvel */ /* exemplo 05 */ CREATE tabela. DISPLAY tabela. PAUSE 10. UPDATE tabela EXCEPT campoN. PAUSE 20. CLEAR. PAUSE 30. 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 PROGRAMAO PROGRESS


PAUSE 40. /* exemplo 06 */ PROMPT-FOR tabela. /* mensagem de alerta */ CREATE tabela. ASSIGN tabela. PAUSE 10. CLEAR. PAUSE 20. DISPLAY tabela. PAUSE 30. /* exemplo 07 */ PROMPT-FOR tabela. /* mensagem de alerta */ CREATE tabela. ASSIGN tabela.campo 1 = INPUT tabela.campo1 ... tabela.campoN = INPUT tabela.campoN. PAUSE 10. CLEAR. PAUSE 20. DISPLAY tabela. PAUSE 30. CREATE tabela. >>>>>> // <<<<<<

Faa o laboratrio nmero 02 do anexo.

COMANDOS DE PROCESSAMENTO EM BLOCOS


END Finaliza um bloco de processamento (CASE, DO,FOR EACH,REPEAT,PROCEDURE, etc.). Sintaxe: END.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

FOR EACH Cria um lao condicional e implementa uma relao a cada volta. Sintaxe: FOR EACH tabela condio: {algoritmo}. END. Obs. Para melhor performance use a instruo FIELD para especificar os campos desejados (se no desejar o registro completo). FOR EACH FIELDS(campo1, ... , campoN). REPEAT Inicia um bloco de processamento. Sintaxe: REPEAT [instrues]: {algoritmo}. END. PAUSE Causa uma pausa no processamento por certo tempo ou at que a barra de espao seja pressionada. Sintaxe: PAUSE n. Onde n = nmero de segundos. Se no especificado = permanente (at pressionar a barra de espao). NEXT Retorna ao incio do bloco (transao principal). Sintaxe : Next [bloco]. RETURN Retorna rotina principal(prxima linha do ponto de origem). Sintaxe: RETURN [(valor)]. LEAVE Fora a sada de um bloco de processamento no ponto em que est. Sintaxe: LEAVE. DO Abre um bloco de processamento. Sintaxe: ... DO: {algoritmo}. END.

/* programa exemplo exclusivo para fins didticos (sem finalidade prtica) */ /* exemplo 01 */
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 19

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS


REPEAT: /* F4 interrompe o processamento */ FOR EACH tabela1: DISPLAY tabela1. END. NEXT. FOR EACH tabela2: /* no ocorrer */ DISPLAY tabela2. END. END. RETURN. >>>>>> // <<<<<<

LOCALIZAO DE DADOS E PROCESSAMENTO CONDICIONAL


IF ... THEN ... ELSE ... Inicializa um bloco condicional (IF), executa instrues seguintes (THEN) se a condio anterior (IF) for satisfatria ou inicia novo bloco(ELSE) se a condio (IF) no for atendida. Sintaxe: IF condio THEN expresso1 ELSE expresso2.
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 20

INTRODUO A PROGRAMAO PROGRESS


-

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: AVAILABLE/NOT AVAILABLE Testa logicamente se o registro pesquisado esta ou no ativo. Sintaxe: ... AVAIL/NOT AVAIL tabela. WHEN Instrui um comando a especificar uma condio a ser atendida para seguir o processamento. Sintaxe: comando WHEN condio. CASE Cria uma deciso entre vrias opes baseado em valores de uma expresso. Sintaxe: CASE expresso: WHEN lista-valores THEN sentena/bloco.
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 21

INTRODUO A PROGRAMAO PROGRESS


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. /* exemplo 02 */ FOR EACH tabela1, EACH tabela2 OF tabela1: /* requer relacionamento definido na base de dados */ DISPLAY tabela1.campo1 tabela2.campo1. END.
>>>>>> // <<<<<<

Faa o laboratrio nmero 03 do anexo.

_______________________________________________________________________________________________________________________________ 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 PROGRAMAO PROGRESS

TRATAMENTO DE MENSAGENS, CLASSIFICAO DE DADOS


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.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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.
>>>>>> // <<<<<<

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.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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 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).
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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 Retorna o restante de uma diviso. Sintaxe: dividendo MODULO divisor. 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.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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. Sintaxe: [FRAME nometela] campo NOT ENTERED. PAGE-NUMBER Retorno o nmero da pgina corrente na sada dos dados . Sintaxe: ... PAGE-NUMBER ... . PAGE-SIZE Instrui quanto ao tamanho da pgina, em linhas, a sada dos dados. Sintaxe: PAGE-SIZE n. Onde = nmero de linhas. LINE-COUNTER Retorno o nmero da linha corrente, dentro da pgina, na sada dos dados. Sintaxe: ... LINE-COUNTER ... .
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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).
>>>>>> // <<<<<<

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.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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). HIDE Exclui uma tela no vdeo. Sintaxe: HIDE nome-frame [NO-PAUSE]. VIEW Gera no vdeo a tela criada atravs do comando FORM. Sintaxe: VIEW nome-frame. CLEAR Limpa (inicializa) uma tela. Em outras palavras, apaga os dados/informaes da mesma. Sintaxe: CLEAR nome-frame.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


SIDE-LABELS Indica que os dados/informaes devem ser mostrados ao lado (direito) do label. Sintaxe: ... SIDE-LABELS ... . CENTERED Instrui o formatador de tela a centralizar a mesma no vdeo. Sintaxe: ... CENTERED ... . NO-BOX Instrui o formatador de tela no colocar o retngulo(borda) em volta da tela. Sintaxe: ... NO-BOX ... . PAGE-TOP/PAGE-BOTTOM Determina se a tela posicionar no topo ou no rodap do vdeo. Sintaxe: ... PAGE-TOP/BOTTOM ... . HEADER/BACKGROUND Especifica o nvel do plano de apresentao da tela (frente/atrs). Sintaxe: ... HEADER/BACKGROUND ... . TOP-ONLY Especifica que a frame no pode ser sobreposta. Sintaxe: ... TOP-ONLY ... . SCROLL Caracteriza se a tela permitira a rolagem dos dados na mesma e o sentido. Sintaxe: ... SCROOL [sentido]... . Onde sentido = UP/DOWN. O default DOWN. PAUSE Estabelece uma pause para interao com a tela. Sintaxe: PAUSE [n]. Onde n = nmero de segundos.

@ 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. Exemplo: DISPLAY DOM HELDER CMARA @ ilustre.nome. TO Define a ltima coluna (coluna final) para um dado na tela. Sintaxe: ... TO n. Onde n = nmero da coluna. AT Permite o posicionamento do dado em uma coluna especfica da tela. Sintaxe: AT n.
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

INTRODUO A PROGRAMAO PROGRESS

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.

FORM "Exemplo de formatao de tela. row determina a linha do monitor" SKIP "onde se posicionar a 1 linha da tela. Title informa o ttulo da tela." SKIP "Column especifica a coluna inicial. At n = coluna de um atributo." SKIP WITH FRAME ex4 ROW 5 CENTER TITLE "EXEMPLO QUATRO". VIEW FRAME ex4. EXEMPLO QUATRO Exemplo de formatao de tela. row determina a linha do monitor onde se posicionar a 1 linha da tela. Title informa o ttulo da tela. Column especifica a coluna inicial. At n = coluna de um atributo.

_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 31

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS


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.

>>>>>> // <<<<<<

Faa o laboratrio nmero 04 do anexo.

DEFINIO/VALORIZAO DE DADOS NA MEMRIA


_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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. Sintaxe: AS tipo. Onde tipo = caracter, inteiro, logical, decimal, data, recid, etc. Exemplo: DEF VAR salario AS DEC. 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

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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. Sintaxe: VALIDATE (expresso,mensagem). Exemplo: UPDATE data-cobranca VALIDATE (data-cobrana > TODAY,Data Invlida). 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).

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


/* 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

INTRODUO A PROGRAMAO PROGRESS

DIRECIONAMENTO DE DADOS, DESVIO/CONTROLE DE PROCESSAMENTO


OUTPUT TO Direciona a sada de dados para um perifrico ou arquivo especfico. Sintaxe: OUTPUT TO sada [tam-pag] [condio]. Onde sada = perifrico ou nome do arquivo; tam-pag = tamanho da pgina a ser gerada ; condio = APPEND(anexo ao arquivo, se existente)/UNFORMATTED (s/formato). Exemplos: OUTPUT TO PRINT. OUTPUT TO PRINT nome-impressora. OUTPUT TO PRINT VALUE(var-nome-impressora). OUTPUT TO TERMINAL. OUTPUT TO nome-arquivo. OUTPUT TO nome-arquivo APPEND PAGE-SIZE n UNFORMATTED. OUTPUT CLOSE Fecha uma sada de dados criado pelo comando OUTPUT TO. Sintaxe: OUTPUT CLOSE. OUTPUT STREAM Direciona a sada para uma cadeia de sada, previamente definida. Sintaxe: OUTPUT STREAM cadeia-sada TO sada. Obs. Possibilita o uso do OUTPUT em sequncia, obtendo um resultado simultneo. PAGE Posiciona a sada gerada pelo OUTPUT TO para o comeo da prxima pgina(gera salto de pgina). SINTAXE: PAGE. RUN roda uma rotina externa ou uma procedure. RUN nome-prog. {} inclui um procedimento no rotina. Sintaxe: {include.i} Onde include.i = nome da rotina que ser inclusa no programa. 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.

_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 36

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

/* 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 /* campo1 / 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. >>>>>> // <<<<<<

Faa o laboratrio nmero 05 do anexo.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

DADOS MULTIVALORIZADOS, IMPORTAO/EXPORTAO DE DADOS


EXTENT Cria uma multivalorizao tipo ARRAY para um dado ou informao. Sintaxe: EXTENT n. Onde n o nmero de ocorrncias que a funo criar para o dado ou informao. CHOOSE Cria uma barra de seleo, com movimento entre os componentes de uma srie de opes. Sintaxe: CHOOSE ROW field/FIELD field. Exemplo: CHOOSE FIELD opcao AUTO-RETURN. Onde opcao = varivel com a lista de opes. DO(TO) Cria um bloco de processamento atravs de um ndice interno. Sintaxe: DO indice = vi TO vf: Onde indice = varivel e vi/vf = valores inicial e final. Exemplo: DO indice = 1 TO 10: {algoritmo} END. VALUE Trata o valor de um domnio. Sintaxe: VALUE(domnio). Onde domnio = dado ou informao de memria. INPUT FROM Cria uma fonte alternativa para entrada de dados. Sintaxe: INPUT FROM origem. Onde origem = arquivo texto, terminal, etc. QUOTER Utilitrio Progress que transcreve uma linha texto, como se fosse um campo, no formato delimitado. Sintaxe: quoter parmetro p1-p2,p3-pn, ..., px-py arq-fonte > arq-destino. Onde: parmetro mais usado c (coluna). P1-p2 = posio inicial/final da coluna. SILENT Executa um comando do sistema operacional sem restries (pausas). Sintaxe: SYS SILENT linha-comando. Onde: SYS = UNIX, DOS, WIN32, etc. Exemplo: UNIX SILENT ls ou UNIX ls. OPSYS Retorna a plataforma operacional. Sintaxe: OPSYS Exemplo: IF OPSYS = WIN32 THEN ...
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 38

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

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. SEARCH Pesquisa a existncia de um arquivo no diretrio do sistema operacional. Sintaxe: SEARCH(nome-arquivo).

/* 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. END. ELSE IF FRAME-VALUE = opcao[3] THEN DO: RUN c:/treinamento/rot-exter.p. NEXT. END. LEAVE. END. RETURN. PROCEDURE proc-anex.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


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. >>>>>> // <<<<<<

Faa o laboratrio nmero 06 do anexo.

_______________________________________________________________________________________________________________________________ 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 PROGRAMAO PROGRESS

CONTROLE DE TRANSAO, EVENTO E CONCORRNCIA


DO TRANSATION Em Progress os blocos de programao so, por default, conceitualmente transaes e subtransaes. No entanto, o desenvolvedor pode implementar os nveis de transaes e control-los conforme sua necessidade. O meio mais comum de se fazer isto nomeando os blocos ou definindo a abertura/fechamento das transaes, atravs do comando DO TRANSATION. Sintaxe: DO TRANSATION: Exemplo: DO TRANSATION: FOR EACH tabela: {algoritmo}. END. END. ERROR Error aponta um evento implcito no processamento de um blocos (repeat, for each, procedure interna, triggers). Para explicitar e controlar este evento necessrio o controle do mesmo atravs do comando ON. Sintaxe: ... ERROR ... . (veja ON) ENDKEY Da mesma forma que o ERROR o ENDKEY aponta para o evento de encerramento de uma transao antes do fechamento normal (commit) da transao. Possui as mesmas condies de controle do ERROR. Sintaxe: ... ENDKEY ... . (veja ON) ON Especifica e controla um evento durante o processamento de um bloco, como habilitar um tecla para de interrupo(rowback) da transao. Sintaxe: ON <chave> evento. Onde: evento = undo, leave, retry, return, return error, etc. Exemplos: ON F9 ERROR. ON F10 ENDKEY. REPEAT ON ERROR UNDO, LEAVE. 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.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


-

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

INTRODUO A PROGRAMAO PROGRESS

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 Para o processamento de um bloco, at que um determinado evento ocorra. Sintaxe: WAIT-FOR evento OF objeto. Exemplo: veja programa no final da sesso. ITERATION-CHANGED Tipo de evento que especifica e controla uma ao do usurio em uma janela. Sintaxe: iteration-changed OF objeto. Exemplo: veja programa no final da sesso.

_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 43

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS


WINDOW-CLOSE atividade finalizao de uma janela. Sintaxe: WINDOW-CLOSE <janela>. Exemplo: veja programa no final da sesso. CURRENT-WINDOW Permite especificar e controlar as atividades da janela (window) corrente. Sintaxe: atividade comando CURRENT-WINDOW (char) . CURRENT-WINDOW:atributo (grfico). Exemplo: veja programa no final da sesso.

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 USE-INDEX sige-ano. ENABLE b-sige WITH FRAME abc. APPLY ENTERTO b-sige IN FRAME abc. MESSAGE Use <SETAS-UP/DOWN> ou <PG-UP/PG-DOWN> para navegar. + <ENTER> Seleciona. . WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW OR return OF CURRENT-WINDOW. IF LASTKEY = KEYCODE(enter) THEN DO:
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


registro = recid(sige). HIDE MESSAGE NO-PAUSE. HIDE FRAME abc NO-PAUSE. END. >>>>>> // <<<<<<

Faa o laboratrio nmero 07 do anexo.

FERRAMENTAS ESSENCIAIS COMPILER


Na opo Compiler do Procedure Editor, possvel testar uma aplicao: RUN Executa (f2) o programa corrente no buffer ativo do editor. CHECK SYNTAX Checa a sintaxe do programa corrente no buffer ativo do editor.

DEBUG Inicializa o processo Debug para o programa corrente no buffer ativo do editor. Obs. Na opo Help do editor detalhe-se as mensagens recebidas durante a compilao e/ou execuo dos programas.

TOOLS
ADMIN O admin, parte integrante do data administration, tem por finalidade maior:

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

_ 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:

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:
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

_ 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 CONFIGURAO DE AMBIENTE PROGRESS

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.

Dentre as opes, encontra-se o PROPATH EDITOR: 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.

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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. -c n: indica o nmero de ndices a ser usado em alguns comandos como for each. -d ndy: especifica o formato da data . -d banco: define o nome fsico do banco de dados a ser conectado. -E: define a apresentao dos campos decimais no formato europeu. -g arquivo: especifica o arquivo before-image. -F: fora o acesso ao banco de dados no estado de recuperao. -h n: define o nmero de banco a serem conectados na sesso. -I n: tamanho do buffer local. -i: manipula dados diretamente no banco fsico, ignorando o controle de transaes. -L n: define o nmero de travamentos de registros no servidor. -ld nome: define o nome lgico do banco a ser conectado. -n n: define o nmero de usurios que podem se conectar no banco a mesmo tempo. -p procedure: define a procedure a ser executada ao incio da sesso. Exemplos de arquivos .pf
C:\MAGNUS\DLC82CL\bin\prowin32.exe -basekey "ini" -ininame c:\cursott\EMS201.ini -pf pf SCRIPTS\desenv.pf -inp 8192 c:\cursott\ems201.pf

_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 48

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

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 >>>>>> // <<<<<<

VISO GERAL DOS PRINCIPAIS PRODUTOS DATASUL


HR Sistema de Administrao de Recursos Humanos DATA VIEWER Sistema Gerador de Relatrios DDK Templates Datasul EMS O Datasul-EMS um Sistema Integrado de Gesto Empresarial desenvolvido pela Datasul S.A., na linguagem de 4 gerao Progress. O EMS composto por uma base de dados, programas diversos de cada mdulo e scripts de manuteno e uso correto do software.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

VERSES O Datasul-EMS, lanado em escala inicialmente como EMS 2.00, possui hoje uma grande base instalada, na sua maior parte da verso 2.02. PRINCIPAIS MDULOS Em linhas gerais o produto Datasul-EMS, divide-se em: aplicativo (exs. tecnologia, controladoria e finanas, materiais, manufatura, distribuio e integrao), sistema (exs. mdulo bsico, administrador, bancos histricos), mdulo (exs. bsico datasul-ems, menu, documentao, segurana), rotina (ex. manuteno, tarefas, consulta, relatrio), sub-rotina (ex. manuteno impressora), procedimento (ex. configurao de impressora), programa (ex. inclui configurao de impressora). Para o desenvolvedor importante conhecer o mdulo Bsico do aplicativo Tecnologia, para no ter total dependncia do administrador do sistema. Neste mdulo, rotina Manuteno, localiza-se o cadastro de impressoras, o cadastro do layout de impresso, tabelas do dicionrio de dados Datasul, arquivos imagem/vdeo/som. No mdulo Menu, rotina Opes, sub-rotina Configurar cones, o usurio pode colocar no frame do EMS, cones para calculadora, editor do Progress, bloco de notas, Word, etc (12 no mximo). INICIALIZAO O procedimento de entrada/sada pode ser realizado em qualquer menu do Datasul, na rotina Usurio, sub-rotina Login. Para que o nome do usurio seja mostrado toda vez que o programa login for acessado, necessrio que o nome do usurio em questo esteja informado no procedimento Preferncia do Usurio. Caso o usurio erre sua senha 3 vezes consecutivas, o procedimente ser encerrado automaticamente. O usurio executa seu login e acessa diretamente o aplicativo de seu interesse clicando inicialmente no cone deste aplicativo. No entanto, pode-se navegar entre os aplicativos que compem o produto a qualquer momento. CADASTRO DE PROGRAMAS No mdulo menu, rotina Manuteno encontra-se os cadastros de Produto, Aplicativo, Sistema, Mdulo, Rotina x Mdulo, Rotina, Sub-Rotina, Procedimento e Programa. 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 50

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS PADRO DE PROGRAMAO CONCEITOS

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, podese 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;
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


_ Uso de funes do Excel para retornar os resultados para um programa Progress.

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).

_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

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). f) 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
_______________________________________________________________________________________________________________________________ INTRODUO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRO DESENVOLVIMENTO 53

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

Apresenta uma mensagem do cadastro de mensagens do produto (UT-CDMSG.W). Run utp/ut-msgs.p (input <ao> input <n-msg> input <parmetros>}. 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.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS


Obs. Requer a instalao de OCX Datasul(setup.exe no dir.\interfac\som\). BTB917ZY.P Permite a visualizao de arquivos .bmp, .gif, .jped, .vmf, .wmf, .emf, .ico e .cur. RUN btb/btb917zy.p (input <imagem>). Onde imagem o caminho completo e o nome do arquivo a ser executado. Obs. Requer a instalao de OCX Datasul(setup.exe no dir.\interfac\imagem\). BTB917ZZ.P Permite a visualizao de vdeos tipo AVI. RUN btb/btb917zz.p (input <vdeo>). Onde vdeo o caminho completo e o nome do arquivo a ser executado. Obs. Requer a instalao de OCX Datasul(setup.exe no dir.\interfac\video\disk1).

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 55

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

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 56

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda

INTRODUO A PROGRAMAO PROGRESS

ANEXO

LISTA DE LABORATRIOS
1) 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 CAMPO cod-produto descrio preo mdio outros (se desejar) cod-fornec nome outros (se desejar) FORMATO(TIPO) 9999 xxxxxxxxxxxxxxxxxxxx >>>,>>>,>>9.9999 9999 xxxxxxxxxxxxxxxxxxxx

fornecedor

_ 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. 2) 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. 3) 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.
_______________________________________________________________________________________________________________________________ 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

INTRODUO A PROGRAMAO PROGRESS

4) Classificao de dados, formatao de telas Escreva um programa que mostre os dados da tabela produto: um registro por vez, em uma coluna e em ordem alfabtica pela descrio. 5) Relatrio _Escreva um relatrio, com sada em arquivo, para produto e um para fornecedor. 6) 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. 7) 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 58

Autor: Clio de Oliveira - celio.oliveira@brfree.com.br Material no homologado STI Consultoria e Servios Ltda