apostila de programação progress char - volume 1

58
INTRODUÇÃO A PROGRAMAÇÃO PROGRESS INTRODUÇÃO A SISTEMAS DE BANCO DE DADOS CONCEITOS RELATIVOS A BANCO DE DADOS TIPOS DE BANCO DE DADOS Banco de Dados é um conjunto de arquivos lógicos sob um arquivo físico. Os bancos de dados mais comuns são: Banco de dados relacional, banco de dados orientados a objetos, banco de dados distribuídos e banco de dados mistos, ou seja, banco de dados relacional com características voltadas para Orientação a Objeto, por exemplo. SISTEMA GERENCIADOR DE BANCO DE DADOS Sistema que mantém integrada uma coleção de arquivos, organizados de modo a evitar redundância de informações e permitir acesso rápido para um ou mais usuários, é 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 organização, com uma inter-relação coerente entre essas tabelas. DICIONÁRIO DE DADOS O esquema de um banco de dados, ou seja, todos os domínios de dados, as relações entre dados, descrição dos dados é chamado de Dicionário de Dados. Cada banco de dados tem sua estrutura, portanto cada banco tem seu dicionário. Tabelas: Conforme visto anteriormente, em um banco de dados relacional não há dependência de arquivos. Portanto, um grupo de dados distinto deve sempre estar relacionado a outro(s) grupo(s) de dados. Devido a existência desse ponto em comum, como dois eixos que se cruzam, damos a esses grupos de dados o nome de tabela. Relação(Tuplas): Da mesma forma que as tabelas, os conteúdos 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 relação(tuplas). Índices: Aos endereço das relações dentro de uma tabela, damos o nome de índices. Os índices são formado por chaves(dado(s) que identifica (m) a relação) que nos permitem localizar rapidamente dados ou informações desejadas. Os índices são classificados por prioridades, sendo o principal deles o "índice primário". Segundo C.J.Date, um SGBDR, deve suportar as seguintes regras: 01) Regra Zero: deve suportar inclusão, atualização e eliminação no banco de dados em nível relacional (registro simultâneos). A relação(tabela) pode ter tanto zero linha quanto uma linha e ainda ser uma relação válida. 02) Regra da Informação: Toda informação em um banco de dados relacional é apresentada explicitamente em nível lógico e exatamente de uma maneira - por valores em tabelas. 03) Regra de Acesso Garantido: Todo e cada dado (valor atômico) em banco de dados relacional tem a garantia de ser logicamente acessível recorrendo-se a uma combinação de nome da tabela, valor da chave primária e nome da coluna(campo). O conceito de chave primária é parte essencial da regra. 04) Tratamento sistemático de valores zeros: os valores zeros (diferente da série de caracteres em branco e de números diferentes de zero) são suportados em um SGBD completamente relacional para representar a informação zero, isto é, a informação inaplicável de modo sistemático(nulo), independente do tipo de dados.  _______________________________________________________________________________________________________________________________ INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 1 Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Upload: marcos-perdomo

Post on 16-Jul-2015

2.122 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 1/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

INTRODUÇÃO A SISTEMAS DE BANCO DE DADOS

CONCEITOS RELATIVOS A BANCO DE DADOS

• TIPOS DE BANCO DE DADOS

Banco de Dados é um conjunto de arquivos lógicos sob um arquivo físico. Os bancos dedados mais comuns são: Banco de dados relacional, banco de dados orientados a objetos,banco de dados distribuídos e banco de dados mistos, ou seja, banco de dados relacionalcom características voltadas para Orientação a Objeto, por exemplo.

• SISTEMA GERENCIADOR DE BANCO DE DADOSSistema que mantém integrada uma coleção de arquivos, organizados de modo a evitar redundância de informações e permitir acesso rápido para um ou mais usuários, é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

organização, com uma inter-relação coerente entre essas tabelas.

• DICIONÁRIO DE DADOSO esquema de um banco de dados, ou seja, todos os domínios de dados, as relações entredados, descrição dos dados é chamado de Dicionário de Dados.Cada banco de dados tem sua estrutura, portanto cada banco tem seu dicionário.Tabelas: Conforme visto anteriormente, em um banco de dados relacional não hádependência de arquivos. Portanto, um grupo de dados distinto deve sempre estar relacionado a outro(s) grupo(s) de dados. Devido a existência desse ponto em comum,como dois eixos que se cruzam, damos a esses grupos de dados o nome de tabela.Relação(Tuplas): Da mesma forma que as tabelas, os conteúdos do grupo de dados sevistos como colunas que tendem a cruzar com linhas de outra(s) tabela(s), a essa linha, ouconjunto dessas, damos o nome de relação(tuplas).Índices: Aos endereço das relações dentro de uma tabela, damos o nome de índices. Osíndices são formado por chaves(dado(s) que identifica (m) a relação) que nos permitemlocalizar rapidamente dados ou informações desejadas. Os índices são classificados por prioridades, sendo o principal deles o "índice primário".

Segundo C.J.Date, um SGBDR, deve suportar as seguintes regras:01) Regra Zero: deve suportar inclusão, atualização e eliminação no banco de dados emnível relacional (registro simultâneos). A relação(tabela) pode ter tanto zero linha quanto

uma linha e ainda ser uma relação válida.02) Regra da Informação: Toda informação em um banco de dados relacional éapresentada explicitamente em nível lógico e exatamente de uma maneira - por valores emtabelas.03) Regra de Acesso Garantido: Todo e cada dado (valor atômico) em banco de dadosrelacional tem a garantia de ser logicamente acessível recorrendo-se a uma combinação denome da tabela, valor da chave primária e nome da coluna(campo). O conceito de chaveprimária é parte essencial da regra.04) Tratamento sistemático de valores zeros: os valores zeros (diferente da série decaracteres em branco e de números diferentes de zero) são suportados em um SGBDcompletamente relacional para representar a informação zero, isto é, a informação

inaplicável de modo sistemático(nulo), independente do tipo de dados.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 1Autor: Célio de Oliveira - [email protected]   – Material não homologado – STI Consultoria e Serviços Ltda

Page 2: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 2/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

 A representação de valores nulos não deve depender de caracteres especiais, e sim deveser conceituada como ausência de informação. Para suportar a integridade do BD, deve ser possível especificar que não são permitidos zeros em cada coluna da chave primária e emquaisquer outras colunas que o administrador do banco de dados considere apropriada umarestrição à integridade, colunas de chaves externas por exemplo. Técnicas anterioresestabeleciam a definição de um valor especial para representar informações nulas.

05) Catálogo em Linha Baseado no Modelo Relacional: a descrição do BD é representadaem nível lógico de uma maneira que os usuários autorizados possam aplicar, para suainterrogação, a mesma linguagem relacional que aplicam para os dados regulares.06) Sub-linguagem Detalhada de Dados: Um sistema relacional pode suportar váriaslinguagens e modalidades de uso terminal(de uso em BD), a modalidade de preencher osespaços em brancos, por exemplo. Deve possuir pelo menos uma linguagem detalhada obastante para suportar uma definição de dados, definição de visão, manipulação de dadosinterativa e por programas, restrições à integridade, autorização e limites detransação(limitar, efetivar e desfazer).07) Regra de Atualização de visão: Todas as visões que são teoricamente atualizáveis,também o são pelo sistema. Observe-se que uma visão é atualizável teoricamente se existir 

um algoritmo independente do tempo para determinar sem equívocos uma única série demudanças para as relações do banco, que terão como efeito precisamente as mudançasexigidas na visão. A esse respeito, atualizar significa não somente a modificação nainformação já existente, mas também a inclusão de novos dados ou a exclusão de dados.08) Inserção, Atualização e Eliminação de Alto Nível: A capacidade de tratar uma relaçãobásica ou uma relação derivada, como um único comando aplica-se não só à recuperaçãode dados mas também à inclusão, atualização e eliminação de dados.09) Independência de Dados Físicos: Os programas de aplicação e atividades terminaispermanecem logicamente inalterados sempre que quaisquer mudanças sejam feitas, quer nas representações de memória, quer nos métodos de acesso. Para conseguir isso, oSGBD deve suportar um limite claro e preciso entre os aspectos lógicos e semânticos, deum lado, e os aspectos físicos e de desempenho das tabelas básicas de outro. Osprogramas de aplicação devem lidar apenas com os dados lógicos.10) Independência de Dados Lógicos: Os programas de aplicação e atividades terminaispermanecem logicamente inalterados quando são feitas mudanças de qualquer tipo nastabelas básicas para preservação da informação, que permitem teoricamente manter osdados inalterados nos aplicativos, pois a definição fica no BD.11) Independência de Integridade: As restrições de integridade específicas de umdeterminado BD relacional devem ser definidas na sub-linguagem de dados relacional earmazenáveis no dicionário de dados, não nos programas de aplicação. Além das duasregras de integridade (integridade referencial: não é permitido a qualquer componente de

uma chave primária possuir um valor zero. Integridade de entidade: deve haver, para cadavalor de chave externa diferente de zero e distinto, um valor equivalente de chave primáriaderivado do mesmo valor.) que se aplicam a todo banco de dados relacional, há anecessidade evidente de que o BD seja capaz de especificar restrições adicionais deintegridade.12) Um SGBDR possui independência de distribuição. Isto significa que o SGBD tem umsub-linguagem de dados que permite aos programas de aplicação e atividades terminaispermanecerem inalterados logicamente.13) Regra de Não-Subversão: Se um sistema relacional possui uma linguagem de nívelbaixo (um único registro de cada vez), esse nível baixo não pode ser usado para subverter ou ignorar as regras de integridade e as restrições expressas na linguagem relacional de

nível superior (registros múltiplos simultâneos).

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 2Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 3: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 3/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

O dicionário de dados do Progress permite a criação, alteração, exclusão de banco dedados e seus componentes, ou seja:

Tabelas (coleção de registros organizados em linhas e colunas). Campos (componentes dos registros que formam suas colunas e contém os dados). Índices (campos ou grupos de campos que ordenam e identificam registros nastabelas). Sequências (objeto da base de dados que fornecem valores inteiros incrementais auma aplicação). Triggers de base de dados (procedure que é executada toda vez que umevento ocorre na base de dados. Ex. criação de um registro.).

• RELACIONAMENTORelacionamento: Em um BD relacional, existe elos entre tabelas, caracterizados quasesempre por ligações entre domínios iguais (dados ou informações baseados no mesmoconjunto de valores).

• INTEGRIDADEIntegridade é o controle de precisão, validade e até correção em BD. Ou seja, a integridadevisa assegurar que os dados no BD sejam precisos, com a finalidade de proteger o BDcontra atualizações inválidas.Segundo C.J.DATE, as regras de integridade podem ser resumidas em duas grandesregras:1) As regras de domínio preocupam-se em admitir ou não um determinado valor como valor candidato a um certo atributo, considerado isoladamente - isto é, independente de seurelacionamento com outros valores no banco de dados.2) As regras de relação preocupam-se, por exemplo, em admitir ou não uma certainformação como candidata à inserção em uma dada relação, e também com o

relacionamento entre relações.Em resumo, as regras de integridade são: a) nenhum componente de um valor de chave

primária pode ser nulo; b) todo o valor de chave estrangeira não-nula terá de se enquadrar em algum valor de chave primária existente em algum lugar.

• NORMALIZAÇÃONormalização é uma técnica que visa criar e relacionar entidades em formas de tabelasconservando suas características originais. A finalidade da normalização visa substituir dados por relações, com isso simplificar astabelas, organizá-las mais racionalmente e evitar a todo custo a redundância de dados. A normalização comum é feita em três etapas, porém alguns autores a descrevem em 5etapas e há aqueles que acrescentam a "Forma Normal de Boyce/Codd" que implementa a3ª forma normal, vejamos:1FN: Uma relação está na primeira forma normal quando todos os atributos da relaçãoestão baseados em um domínio(conjuntos de valores de um atributo) simples, ou seja, nãocontém grupos de valores e sim valores atômicos ou valores repetitivos(chaves primárias).Em outras palavras, a 1FN trata de registros onde todas as ocorrências de um tipo deregistro(cliente por exemplo) têm de conter o mesmo tamanho físico, ou seja, sem gruposde dados.2FN: Uma relação está na 2FN se estiver na primeira e se todos os seus domínios que nãosão chaves forem completamente dependentes funcionalmente da chave primária. Em

outras palavras, todos os atributos não-chave necessitam da chave primária completa parasua identificação. Veja bem, chave primária completa, não pode ser parte desta.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 3Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 4: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 4/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

3FN: Uma relação está na 3FN, se estiver na 1ª e na 2ª e, não houver em si dependênciafuncional transitiva(quando um atributo não chave pode ser determinado por outro atributotambém não chave) entre os seus atributos.Obs. Em resumo, a 2FN e a 3FN especifica que cada campo deve ser parte de chaves oufornecer um fato único a respeito da chave primária completa e nada mais.

Na prática pegamos o Diagrama de Entidade Relacionamentos(DER) e desmembramoscada relação em uma mais relação sem dados repetidos. Criamos chaves primárias simplesou composta de forma a identificar exclusivamente cada relação ou itens atômicos.Fazemos de forma que cada atributo das entidades depende funcionalmente da chaveprimária completa e eliminamos as dependências entre atributos.

Boyce/Codd especificam que uma relação está na forma normal se cada determinante for uma chave candidata. Ou seja: _ Todo atributo não-principal deve ser completamente dependente de cada chave. _ Todo o atributo principal deve ser completamente dependente de todas as chaves dasquais não faça parte.

 _ Nenhum atributo pode ser completamente dependente de algum conjunto de atributos quenão sejam chaves.

4FN: Uma relação R está na 4FN se existir uma dependência multivalorizada a respeito deum atributo. ex. Habilidade (cozinheiro, motorista).5FN: A 5FN trata de casos omissos na 2ª e 3ª Forma Normal, reconstuindo informaçõesredundantes em partes.

• SQLSQL: Structured Query Language é uma linguagem de consulta estruturada padrão para BDrelacionais. Essa linguagem suporta transações de processamento de consultas, segurançade administração de dados, integridade e recuperação em caso de perda dos dados. A SQL não é procedural e é orientada para conjuntos de informações em sua natureza; istoé, permite aos usuários especificar o que deve ser feito e processa dados como conjuntosde elementos em lugar de uma registro por vez, como ocorre com linguagens procedural.

 A SQL nasceu devido a necessidade de executar operações relacionais como diferença,interseção, junção, união e outras em BD diferentes. O SQL é hoje uma linguagempotencial, pois embora todos utilizem na base o padrão ANSI, diversos desenvolvedores deBD criaram seu próprio SQL. Atualmente está legado ao desinteresse geral, assim como o"Esperanto", aquela linguagem universal! Lembra-se?

• TRANSAÇÃOA transação é uma unidade de trabalho. Ela consiste na execução de uma sequência deoperações especificadas pela aplicação, começando com uma operação especial BEGINTRANSACTION, e terminando ou com um operação COMMIT (término bem sucedido) oucom um operação ROLLBACK (término mal sucedido).

• TRIGGERTécnicamente um trigger é um pedaço do código executável que o SGBD processa duranteuma aplicação qualquer.Vamos simplificar: Triggers são trechos de programação que podem ser embutidos nodicionário de dados, pelo Administrador de Dados, com a finalidade de gerar alguma

validação, help, etc.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 4Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 5: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 5/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Os triggers em alguns casos também são chamados de "árbitros" ou "executor desegurança".

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 dicionário de dados, ouseja, na base de dados e é executado toda vez que a base é atualizada.• Trigger de Sessão: É o trigger executado através de uma procedure.

Trigger de interface com o usuário: É o trigger que é executado após a ação dousuário na interface (evento). Por exemplo, um clique no mouse apontado para umobjeto qualquer.

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

 

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 5Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 6: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 6/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

INTRODUÇÃO AO PROGRESS

O Sistema Gerenciador de Banco de Dados e Linguagem Progress, originalmentedesenvolvido para Unix, foi lançado com em 1984, pela Progress Software Corporation, umaempresa americana com sede em BedFord, Massachusetts. Um grande diferencial do Progressé sua portabilidade, ou seja, possui versões para diversas plataformas.Toda instalação do Progress, fica registrada no arquivo progress.cfg, do diretório \dlc. Apósuma instalação completa do Progress, em um ambiente Windows, encontramos no diretório

\windows\Menu Iniciar\programas\progress a lista de arquivos Progress instalados:

COMPONENTES DO BANCO DE DADOS PROGRESS

O Progress possui um grande número de arquivos e/ou utilitários, em muitos casosdesenvolvidos na própria linguagem Progress, que permite a melhor utilização do produto. Abaixo relacionamos a maior parte desses arquivos e respectivas descrições. Destacamos

ainda o principal arquivo de cada aplicativo, com a finalidade de mostrar adiante comoconfigurar o acesso ao mesmo através do sistema EMS.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 6Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 7: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 7/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Obs. Os arquivos que possuem um destaque (*), são os que serão tratados com mais detalhesno decorrer deste treinamento.

♦ DESKTOP O desktop é um aplicativo do Progress que tem por finalidade concentrar e disponibilizar osprincipais aplicativos do Progress, como Data Dictionary, Procedure Editor, AppBuilder,

Results, Report Builder e Application Debugger. O arquivo principal deste aplicativo é _desk.p. (*)

♦ INTERFACE BUILDERO Interface Builder, também conhecido como UIB (User Interface Builder), originalmentepossuia a finalidade de permitir a criação rápida de interface gráfica. Hoje, com o adventodos objetos pré-programados (templates) teve seu nome mudado para AppBuilder.Este aplicativo é totalmente voltado para o desenvolvimento de programação gráfica,naturalmente voltada aos objetos e seus eventos. O principal arquivo é _uib.p (esteaplicativo será visto separadamente na próxima fase do treinamento).

♦ RESULTSEste aplicativo tem como alvo principal os usuários que possuem um pouco deconhecimento em programação, possibilitando os mesmos a realizar pesquisas, filtros eextração de dados em suas bases de dados.

♦ REPORTER BUILDER Aplicativo cuja finalidade é gerar relatórios e gráficos, quando rodando sobre plataformawindows.

APLLICATION DEBUGGER Uma ferramenta cuja a finalidade é localizar e identificar erros no código Progress.

♦ APPLICATION COMPILLER Possibilita a compilação de um programa, programas de um diretório ou uma árvore dediretórios, por nomes e/ou extensões. Principal arquivo é _comp.p. (*)

♦ DATA DICTIONARYPermite a criação e manutenção de dicionários de dados Progress. O principal arquivo é _dict.p. (*)

♦ DATA ADMINISTRATION Tem por finalidade possibilitar a configuração e administração de dados. Seu principalarquivo é _admin.p. (*)

♦ PROCEDURE EDITOR Editor de códigos fontes, de onde podemos executar programas, compilar, etc. Enfimqualquer operação relativa ao código fonte. O principal arquivo deste aplicativo é _edit.p. (*)

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

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 7Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 8: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 8/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

MANUTENÇÃO DE BASE DE DADOS PROGRESS

MANUTENÇÃO EM BANCO DE DADOS (dlc\bin\prodb.exe cadastro)

Na versão Progress for Unix: prodb [nome do banco] [ parâmetro]O prodb (\dlc\bin\prodb.exe cadastro) cria um banco de dados, onde parâmetro pode ser:empty (banco vazio) ou nome de um banco já existente de onde serão copiado asdefinições. Uma outra opção e acessar o Data Dictionary.

 proserve nome-do-bancoAbre um banco Progress. A abertura significa preparar o BD para uso(cria o .lk, ativa o .bi).

  pro/mpro [nome-do-banco] [ parâmetro] Acessa um banco no modo mono-usuário(pro) ou multi-usuário(mpro). Sem o nome dobanco abre uma sessão Progress com as opções disponíveis no dicionário. Os parâmetrosmais comuns são:

-d [dmy] define o formato da data.-E substitui vírgula por ponto decimais e vice-versa.-p nome- procedimento inicia a sessão executando o procedimento especificado.

-e n altera o tamanho do buffer.Obs. Veja relação de parâmetros na sessão de inicialização – arquivo .pf.

  proshut nome-do-banco Fecha um banco de dados Progress. 

Na versão Progress for Windows:[Desktop] Data Dictionary, onde aparecerá a seguinte caixa de diálogo:

Ao selecionar a opção CREATE A NEW DATABASE, a seguinte caixa de diólogo aparece:

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 8Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 9: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 9/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Os elementos de interface com o usuário, contidos nesta caixa de diálogo são:• N ew 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 criação deste novo banco de dados:

Na EMPTY Database: criar um banco de dados vazio.  A Copy of the SPORTS Database: Criar uma cópia do banco de dados modelo daProgress.  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 usuário especificou existir deve ou nãosubstituído.

Os botões OK/Cancel/Help: Confirma a criação do banco de dados, cancela ou abre umaconsulta on-line aos manuais, respectivamente.

Na Opção Conncect to an Existing Databasecaminho/nome de um banco de dados existente:

 Ao clicar em Browse, é possível selecionar o banco a conectar.

 Após conectado um banco de dados a seguinte imagem aparece:

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 9Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 10: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 10/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

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

Manutenção de tabelas em um dicionário de dados

Neste ponto podemos definir toda a nossa base de dados. O nomes de tabelas podemconter até 32 caracteres alfanuméricos e devem começar com uma letra. Na definição dabase 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 pelasérie de parâmetros que se segue. Dentro tais parâmetros os principais são:Table Name: nome da tabela.Label: nome da tabela para exibição como cabeçalho ou título.Hidden: opção de ocultar a tabela no dicionário de dados.File Type: tipo da tabela (padrão progress ou padrão de portabilidade para o Progress).Frozen: opção de congelar qualquer alteração na definição da tabela.Dump Name: nome atribuído ao arquivo para exportação dos dados da tabela.Description: comentários a respeito da tabela (descrição).

Manutenção de registros/campos de tabelas em um dicionário de dadosOs atributos de uma tabela possui uma série de definições, vejamos as principais:Field-Name: nome do atributo.Data-Type: tipo do dado que o atributo suportará(caracter, inteiro, decimal, lógico, data enúmero identificador de registros) .Format: Máscara do dado no atributo.Extent: Número de ocorrência do atributo (vetor).Label: Título a ser exibido como default em telas.

Column-Label: Título default a ser exibido em saídas tipo relatórios.Decimals: Quantidade de casas decimais para atributos tipo decimal.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 10Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 11: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 11/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Initial: Valor inicial (default) do atributo.Mandatory: Se o preenchimento é obrigatório ou aceita valores nulos.Case Sensitive: Diferenciação entre maiúsculo e minúsculo .Help: Mensagem que será exibida ao usuário no momento da entrada de dados.Description: Descrição/comentários a respeito do atributo com a finalidade de documentá-lo.View-As: Informa qual elemento gráfico mostrará o atributo (combo-box, editor, fill-in, radio-

set, selection-list, toggle-box, text). Estes elementos serão trabalhados na parteprogramação gráfica.

  Indexação de tabelas

Os índices de uma tabela no dicionário de dados Progress são definidos por:  Index-Name : nome do índice.

  Description: descrição resumida do índice.  Primary: Se o índice em questão é primário ou não.Active: Se o índice está ativo ou não.Unique: Se é uma chave única (obrigatório para o primário).Abreviated: Se o índice aceita pesquisa parcial (parte da chave).Index-Fields: Atributos que compõem o índice.Word Index: Contém todas as palavras de um texto ou matriz e permite a pesquisa nosregistros por palavras ou sentenças.

VALIDAÇÕES, SEQUÊNCIAS E TRIGGERS NA BASE DE DADOS

ValidationExpressão que deve ser verdadeira para permitir a exclusão de registros. Ex. Usuários compermissão total. Pede mensagem a ser mostrada na negativa de exclusão de registros.

SequênciasFunção encarregada de produzir uma série única de valores. Consiste em um valor inicial,um incremento e um limite. A sequência pode ser associado ao um banco de dados,transação, tabela, campo.

TriggersProgramas a serem executados automaticamente no momento que ocorrer um evento no

banco de dados, ou seja, quando ocorrer a Criação de um novo registros (create), quandoocorrer um exclusão (delete), quando ocorrer um busca bem sucedida (find) e quando umnovo registro é escrito na base de dados (write).

DATABASE REPORTSO Progress disponibiliza uma série de relatórios a respeito do esquema do banco dedados(tabela abaixo).

 

RELATÓRIO DESCRIÇÃODetailed Table Detalha tabela, campo, sequências, índices, validaçõesQuick Table Sumário das tabelas de um banco

Quick Field Sumário dos campos de uma ou mais tabelas de um bancoQuick Index Sumário dos índices de uma ou mais tabela de um banco

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 11Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 12: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 12/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

SQL View Mostra as visões do banco definidas no padrão SQLSequence Mostra as sequências definidas no bancoTrig

 

ger Mostra informações sobre todos os triggers do bancoUser Mostra os usuários correntes do banco, identificadores, senhas.Table Relations Mostras as relações 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 físico..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 – cópia do “skema” do banco de dados (definições do dicionário de dados)..lg – log de eventos no banco..tl – log de transação.

.lbi - before-image de transações (local).

.lk – lock de abertura do banco de dados.

.d – arquivo dump (dados) da tabela.

.ped – procedure temporárias.

.dbi – definições de tabelas temporárias.

.trp – definições do dicionário de dados antes do commit.

.p – programa char 

.w – programa gráfico

.i – programa include

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 12Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 13: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 13/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

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

Faça o laboratório número 01 do anexo.

CARACTERÍSTICAS DA LINGUAGEM PROGRESS

O ambiente de desenvolvimento Progress é composto de formatador de telas interno, run time,SQL, dicionário de dados ativo (não requer DML), compilador, SGBDR, editor de textos e umalinguagem de 4ªGL. Conforme já vimos, possui também ferramentas aplicativas dedesenvolvimento. É lógico que alguns deste não são exclusivos deste ambiente.

O editor de texto do Progress, o chamado Procedure Editor, possui as principais características

de um editor de texto comum.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 13Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 14: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 14/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Devido a simplicidade operacional deste editor e objetivo deste material, focalizar-se-á deagora em diante, de forma prioritária, na linguagem de desenvolvimento caracter. No entanto,um resumo das possibilidades oferecidas pelo Procedure Editor encontra-se abaixo, sendo queparte (essencial) do mesmo será vista na sessão Ferramentas Essenciais.

O ícone referente ao Procedure Editor , dentre outras opções configuráveis, encontra-se no

desktop.

 As principais possibilidades de operação no Procedure Editor são:- 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 aplicação de lógicas, gerenciamento de banco dedados e gerenciamento de interface com o usuário. Uma aplicação Progress caracteriza-sepor:

# ProceduresUm ou mais código dividido em sentenças ou blocos de sentenças.

# BlocosGrupos de sentenças que possuem interação entre suas sentenças, com outros blocos, comdados e suas propriedades e também com os usuários.

# Statements(sentenças)Declara o processamento a ser realizado. É finalizada com um ponto final (.).

# Expressões  Constantes, nomes de campos, nomes de variáveis, etc.

# FunçõesRealiza uma ação específica com dados pré-definidos.

# Variáveis

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 14Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 15: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 15/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Endereços de memória que possuem valores sujeitos a alterações.

# EventosAção do usuário na interface com o mesmo ou ocorrência na base de dados.

# Operadores e Símbolos

  Permite manipulação de valores e situações especiais respectivamente (tabela abaixo).

# Elementos de Interface Gráfica  Objetos que representam dados e/ou conjuntos destes. 

PRINCIPAIS OPERADORES E SÍMBOLOS ESPECIAIS

 

+ - * / [ ]Yes No True false eq = lt < le <= gt > ge = ne <> Not And Or  

+ “” ´´+ -

. finalizao

:finaliza

? valor nulo

, separacadeia

/**/comentário

PROGRAMAÇÃO ORIENTADA A EVENTOS E ORIENTADA A APLICAÇÃO

Entre as linguagens de manipulação de banco de dados, os modelos de desenvolvimentomais comum são:O modelo orientado a objetos e o modelo orientado a aplicação. A linguagem dedesenvolvimento Progress trabalha com os dois modelos. O controle da ordem de execuçãofica a cargo do operador. _Uma aplicação desenvolvida no modelo de programação orientado a objetos possui paracada objeto um certo número de triggers que procura responder a cada evento ocorridonaquele objeto.  _Uma aplicação desenvolvida no modelo de programação orientado a aplicação, édesenvolvida no modelo procedural, onde cada sentença é executada na ordem de cimapara baixo. A aplicação dita o controle do processamento.

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

INTRODUÇÃO AO DESENVOLVIMENTO PROGRESS CHAR

COMANDOS DE MANIPULAÇÃO DE DADOS

ASSIGN _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 15Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 16: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 16/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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]} [instruções].

CREATECria um registro para uma tabela, valoriza os campos com os valores default e Initial. Moveuma cópia do registro para o buffer de registro.

Sintaxe: CREATE tabela.

DELETERemove o registro corrente do buffer de registro e do banco de dados.Sintaxe: DELETE tabela.

DISPLAYMove dados para o buffer de tela e mostra na tela ou em outra saída especificada.Sintaxe: {[tabela] ou [lista-campos = lista-inputs]} [instruções].

EXCEPT

Instrui um outro comando (DISPLAY/ASSIGN) quanto a uma lista de campos excessões.Sintaxe: EXCEPT lista-campos.  INSERT

Cria um registro no banco físico, edita este registro e atualiza os valores imputados.Sintaxe: INSERT tabela [instruções].

PROMPT-FORRequisita uma entrada de dados no buffer de tela.Sintaxe: PROMPT-FOR lista-dados [instruções].

RELEASEMove o registro do buffer para o banco se houve mudança no registro.Sintaxe: RELEASE tabela.

UPDATEMostra o valor atual de um campo ou variável e solicita nova entrada de dados.Sintaxe: UPDATE campo/variável [instruções].

INPUTPermite o acesso a valores de um campo no buffer de tela.Sintaxe: INPUT [FRAME nometela] campo.

 

RESUMO DO POSICIONAMENTO DOS DADOS _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 16Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 17: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 17/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

 

 

COMANDOSBANCO DE

DADOSBUFFER

REGISTROBUFFER

TELAUSUÁRIO

ASSIGN

CREATE  

DELETE  

DISPLAY

FIND

FOR EACH

INSERT   

PROMPT-FOR 

RELEASE

SET

UPDATE   

Resumo dos comandos de manipulação de dados

INSERT 

UPDATESET

DELETE CREATE DISPLAY PROMPT-FOR ASSIGN FIND FOR EACH

/* programas exemplos – exclusivo para fins didáticos (sem finalidade prática) *//* 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 não disponível */

/* exemplo 05 */CREATE tabela.DISPLAY tabela.PAUSE 10.UPDATE tabela EXCEPT campoN.PAUSE 20.CLEAR.

PAUSE 30.DISPLAY tabela.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 17Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 18: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 18/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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.

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

Faça o laboratório número 02 do anexo.

COMANDOS DE PROCESSAMENTO EM BLOCOS

ENDFinaliza um bloco de processamento (CASE, DO,FOR EACH,REPEAT,PROCEDURE, etc.).Sintaxe: END.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 18Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 19: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 19/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

FOR EACHCria um laço condicional e implementa uma relação a cada volta.Sintaxe: FOR EACH tabela condição:

{algoritmo}.END.

Obs. Para melhor performance use a instrução FIELD para especificar os camposdesejados (se não desejar o registro completo). FOR EACH FIELDS(campo1, ... , campoN).

REPEATInicia um bloco de processamento.Sintaxe: REPEAT [instruções]:

{algoritmo}.END.

PAUSECausa uma pausa no processamento por certo tempo ou até que a barra de espaço sejapressionada.Sintaxe: PAUSE n.Onde n = número de segundos. Se não especificado = permanente (até pressionar a barrade espaço).

NEXTRetorna ao início do bloco (transação principal).Sintaxe : Next [bloco].

  RETURN

Retorna à rotina principal(próxima linha do ponto de origem).Sintaxe: RETURN [(valor)].

LEAVEForça a saída de um bloco de processamento no ponto em que está.Sintaxe: LEAVE.

DOAbre um bloco de processamento.Sintaxe: ... DO:

{algoritmo}.

END.

/* programa exemplo – exclusivo para fins didáticos (sem finalidade prática) */

/* exemplo 01 */

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 19Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 20: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 20/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

REPEAT: /* F4 interrompe o processamento */FOR EACH tabela1:

DISPLAY tabela1.END.NEXT.

FOR EACH tabela2: /* não ocorrerá */DISPLAY tabela2.END.

END.RETURN.

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

LOCALIZAÇÃO DE DADOS E PROCESSAMENTO CONDICIONAL

- IF ... THEN ... ELSE ...Inicializa um bloco condicional (IF), executa instruções seguintes (THEN) se a condição

anterior (IF) for satisfatória ou inicia novo bloco(ELSE) se a condição (IF) não for atendida.Sintaxe: IF condição THEN expressão1 ELSE expressão2 .

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 20Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 21: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 21/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

- NOTRetorna true(verdadeiro) se uma expressão é falsa e false(falso) se uma expressão éverdadeira.Sintaxe: NOT expressão.

- FINDLocaliza um registro na tabela e move o mesmo para o buffer de registro.Sintaxe: FIND [sub-comando] tabela <expressão>.Onde: sub-comando = FIRST/LAST/PREV/NEXT (abaixo);  expressão = condição WHERE, USE-INDEX nome-ind, USING, etc. (abaixo).

- FIRST/LAST/PREV/NEXTPrimeiro, último, anterior ou próximo registro de uma tabela.Sintaxe: ... FIRST/LAST/PREV/NEXT tabela.

- WHERE

Estabelece uma ou mais condições para que o comando seja executado.Sintaxe: ... WHERE condições.Exemplo: FOR EACH tabela WHERE campo = valor:

- OFEstabelece um relacionamento direto (indexado) entre duas tabelas.Sintaxe: ... tabela1 OF tabela2.IMPORTANTE: a chave do índice primário da tabela2 deve ser campo na tabela1.

- USINGSubstitui a instrução WHERE em uma pesquisa a base de dados, através de um índice.Sintaxe: ... USING campo-buffer-tela.Exemplo: FIND tabela USING INPUT campo-chave.

- USE-INDEXDetermina o índice a ser usado em uma pesquisa(FIND) ou em um bloco deprocessamento.Sintaxe: USE-INDEX nomeindice.Exemplo: FOR EACH tabela USE-INDEX nomeindice:

- AVAILABLE/NOT AVAILABLE

Testa logicamente se o registro pesquisado esta ou não ativo.Sintaxe: ... AVAIL/NOT AVAIL tabela.

- WHENInstrui um comando a especificar uma condição a ser atendida para seguir oprocessamento.Sintaxe: comando WHEN condição.

- CASECria uma decisão entre várias opções baseado em valores de uma expressão.

Sintaxe: CASE expressão:WHEN lista-valores THEN sentença/bloco.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 21Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 22: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 22/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

OTHERWISE sentença/bloco.END[CASE].Onde expressão = ocorrência para início do processo;

WHEN = condição verdadeira de valores na lista de valores;  sentença/bloco = processamento ou abertura de bloco de processamento.Exemplo: CASE cond-pagto: /* campo condição de pagamento – radio-set */

WHEN codigo = 1 THEN DISPLAY “A VISTA”.OTHERWISE DO:RUN prog-x.p. /* programa limite de credito */

END.ENDCASE.

- BEGINSTesta se uma expressão caracter é igual ao começo de outro expressão.Sintaxe: expressão1 BEGINS expressão2 .Exemplo: FOR EACH tabela WHERE tabela.campo BEGINS “XYZ”.Obs. Para uma boa performance, requer um índice com a chave1 = campo.

- MATCHESSemelhante ao BEGINS, porém não utiliza índices e aceita metacaracteres.

- CHOOSEMove uma barra iluminada através de uma série de dados previamente mostrados,selecionando um dentre a série através de um RETURN (tecla).Sintaxe: CHOOSE sentença.

/* programas exemplos – exclusivo para fins didáticos (sem finalidade prática) *//* 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.>>>>>> // <<<<<<

Faça o laboratório número 03 do anexo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 22Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 23: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 23/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

TRATAMENTO DE MENSAGENS, CLASSIFICAÇÃO DE DADOS

• NO-ERRORIgnora a mensagem(alert-box) em caso de erro ou concorrência sobre um conjunto dedados.Sintaxe: COMANDO instrução NO-ERROR.Exemplo: FIND FIRST cliente NO-ERROR.

• MESSAGEExibe uma mensagem.

Sintaxe: MESSAGE mensagem [instruções].Onde mensagem = string ou dado/informação e instruções = objeto, botões, título, etc.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 23Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 24: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 24/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Exemplo: MESSAGE “Pesquisar é aprender” VIEW-AS ALERT-BOX.

• HELPExibe 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”.

• BREAKInstrui o bloco de processamento a “quebrar” os dados conforme ordens de classificação aseguir.Sintaxe: ... BREAK ordem-classificação(BY).

• BYInstrui um ou mais campos de classificação (ordem).Sintaxe: ... BY ordem [tipo].Onde: ordem = campo de classificação e tipo = ascendente/descendente.

• DESCENDINGInstrui a classificação de dados na ordem decrescente.

• ASCENDINGInstrui a classificação de dados na ordem crescente(default).

/* programa exemplo – exclusivo para fins didáticos (sem finalidade prática) *//* exemplo 01 */

FOR EACH tabela BREAK BY tabela.campo1

BY tabela.campo2:DISPLAY tabela.campo1 tabela.campo2.

END.

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

FUNÇÕES PRIMÁRIAS

♦ CONNECTEDRetorna o valor lógico (true/false) se um banco está conectado.Sintaxe: CONNECTED(banco).Onde banco é o nome lógico do banco.

♦ GO-ONForça a uma ação contrária a uma restrição.

Sintaxe: GO-ON (expressão).Onde expressão = chave de continuidade no processo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 24Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 25: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 25/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Exemplo: PROMPT-FOR codigo-cliente GO-ON (F3).

♦ ENCODECriptografa uma string.Sintaxe: ENCODE(expressão).Onde expressão = string (entre aspas) ou uma variável.

♦ TODAYRetorna a data do dia.Sintaxe: TODAY [formato].

♦ DATEConverte uma string ou valores de mês, dia e ano em data.Sintaxe: DATE(mês,dia,ano/string).

♦ MONTHRetorna o mês, isolado, de uma data.Sintaxe: MONTH(data).

♦  YEARRetorna o ano, isolado, de uma data.Sintaxe: YEAR(data).

♦ DAYRetorna 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 = máscara de apresentação do resultado.

♦ TIMERetorna com a hora do sistema operacional.Sintaxe: [STRING(] TIME [,”formato”)]Onde formato = máscara de apresentação das horas. Ex. hh:mm:ss.

♦ LOOKUPRetorna a posição do valor de um domínio em uma lista de valores. Se não encontrar 

retorna 0.LOOKUP(domínio,valor1, ...,valorN ).Onde domínio = detentor do valor (variável, campo, etc), valor1, ...,valorN = lista de valores.Exemplo: DISPLAY LOOKUP("x","a,b,c,x").

♦ LASTKEYRetorna o código da última tecla digitada.Sintaxe: LASTKEY <expressão>.

♦ LENGTHRetorna o tamanho, em caracteres, de uma string.Sintaxe: LENGTH(string ).

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 25Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 26: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 26/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

♦ TRIM/RIGHT-TRIM/LEFT-TRIMElimina caracteres brancos, ou outro se especificado, em uma string.sintaxe: TRIM(string,[caracter] ).Válido apenas com o formatador de tela desativado(vídeo). 

♦ SUBSTRING

Retorna parte de uma string.SUBSTRING(string,posição-inicial,núm-caract-a-direita).

♦ RECIDRetorna o endereço de um registro de dados.Sintaxe: RECID(tabela).

♦ CAN-FINDRetorna verdadeiro, se um registro foi encontrado pelo FIND, dentro dos critériosestabelecidos.Sintaxe: CAN-FIND(expressão).Onde expressão = critérios estabelecidos a um FIND.

♦ LAST-OFRetorna true/false para a última ocorrência no laço de processamento conforme grupo dequebra.Sintaxe: LAST-OF(agregado).Onde agregado = valor especificado no grupo de quebra.

♦ FIRST-OFIdêntico ao LAST-OF, porém para a primeira ocorrência.

♦ CAPSTransforma uma string em letras maiúsculas.Sintaxe: CAPS(string).

♦ PROPATHRetorna a variável de ambiente atual do PROPATH.Sintaxe: ... PROPATH ... .

♦ MODULORetorna o restante de uma divisão.

Sintaxe: dividendo MODULO divisor .

♦ ACCUMRetorna o valor de uma expressão calculada pela função ACCUMULATE ou em umasentença DISPLAY.Sintaxe: ACCUM operação expressão.Onde operação = cálculo efetuado no dados ou conjunto de dados. As operações maisusadas são: AVERAGE(média), COUNT(ocorrências), MAXIMUM(maior valor),MINIMUM(menor valor), TOTAL(somatória dos valores), SUB-AVERAGE(média por volta dolaço), SUB-COUNT(ocorrência por volta do laço), SUB-MAXIMUM(maior valor dentro das

voltas do laço), SUB-TOTAL(valor dentro das voltas do laço).Expressão: Definição do laço e/ou grupo de quebra.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 26Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 27: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 27/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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.

♦ ACCUMULATERealiza operações com valores especificados em uma expressão durante o processamentode um bloco. Para acessar o resultado a função ACCUM deve ser usada.Sintaxe: ACCUMULATE expressão cálculo.Onde expressão é o dado a ser calculado e cálculo é a operação a ser efetuada.Exemplo: FOR EACH cliente:

ACCUMULATE limite-credito (AVERAGE COUNT MAXIMUM).END.DISPLAY “Média de Crédito = “ (ACCUM AVERAGE limite-credito) SKIP

“Maior Crédito = “ (ACCUM MAXIMUM limite-credito) SKIP“Número Clientes = “ (ACCUM COUNT limite-credito) SKIPWITH NO-LABELS.

♦ KEYCODERetorna o código de uma tecla.Sintaxe: KEYCODE(“tecla”).

♦ KEYLABELRetorna o nome de uma tecla.

Sintaxe: KEYLABEL(código).♦ WEEKDAY

Retorna o número inteiro referente ao dia da semana.Sintaxe: WEEKDAY(data).Exemplo: DISPLAY WEEKDAY(today).

♦ NOT ENTEREDRetorna true(verdadeiro) se um campo da tela não sofreu alteração, durante o últimoprocessamento de um comando INSERT, PROMPT-FOR, SET ou UPDATE.Sintaxe: [FRAME nometela] campo NOT ENTERED.

♦ PAGE-NUMBERRetorno o número da página corrente na saída dos dados .Sintaxe: ... PAGE-NUMBER ... .

♦ PAGE-SIZEInstrui quanto ao tamanho da página, em linhas, a saída dos dados.Sintaxe: PAGE-SIZE n.Onde = número de linhas.

♦ LINE-COUNTERRetorno o número da linha corrente, dentro da página, na saída dos dados.Sintaxe: ... LINE-COUNTER ... .

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 27Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 28: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 28/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

♦ ROUND Arredonda casas decimais de um valor.Sintaxe: ROUND(expressão, n).Onde: expressão = variável ou campo que contém o valor, n = número de casas decimais.

♦ TRUNCATEDefine o número de casas decimais a retornar de um valor e ignora as demais.Sintaxe: TRUNCATE(expressão,n).Onde: expressão = variável ou campo que contém o valor, n = número de casas decimais.

♦ ENTRYRetorna a descrição de um item inteiro (posição) 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 = variável char(segunda,...,Domingo).

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

FORMATAÇÃO DE TELAS

FORM Abre a definição do layout e atributos de uma tela para uma procedure.Sintaxe: FORM sentença.

Onde sentença engloba, entre outras, instruções abaixo.Exemplos: No final da sessão.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 28Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 29: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 29/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

DEFINE FRAME Abre a definição do layout e atributos de uma tela para uma ou mais procedures.Sintaxe: DEFINE FRAME ...

WITH

Liga a definição de uma tela a um layout.Sintaxe: ... WITH ... .

ROWEspecifica a linha onde se posicionará a primeira linha(ou borda) da tela.Sintaxe: ... ROW n ... .Onde n = número da linha.

COLUMNEspecifica a coluna inicial da tela (campo superior esquerdo), e também a quantidade decolunas em que será mostrado os dados.Sintaxe: COLUMN n1 / n2 COLUMN.Onde n1 = número da coluna / n2 = número de colunas (qtde).

DOWNEstabelece o número de ocorrência por tela no bloco de processamento.Sintaxe: DOWN n.Onde n = número de ocorrências desejáveis.

TITLEInforma em vídeo reverso, no centro da borda superior o título especificado.

Sintaxe: ... TITLE ... .

OVERLAY  Estabelece que a tela irá sobrepor outra de posicionamento semelhante sem interrupções.

Sintaxe: ... OVERLAY ... .

SKIPProvoca uma salto de linha na tela.Sintaxe: ... SKIP(n).Onde n = enésima linha seguinte a saltar. O default é 1 (pode ser omitido).

HIDEExclui uma tela no vídeo.Sintaxe: HIDE nome-frame [NO-PAUSE].

VIEWGera no vídeo a tela criada através do comando FORM.Sintaxe: VIEW nome-frame.

CLEARLimpa (inicializa) uma tela. Em outras palavras, apaga os dados/informações da mesma.

Sintaxe: CLEAR nome-frame.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 29Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 30: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 30/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

SIDE-LABELSIndica que os dados/informações devem ser mostrados ao lado (direito) do label.Sintaxe: ... SIDE-LABELS ... .

CENTEREDInstrui o formatador de tela a centralizar a mesma no vídeo.

Sintaxe: ... CENTERED ... .

NO-BOXInstrui o formatador de tela não colocar o retângulo(borda) em volta da tela.Sintaxe: ... NO-BOX ... .

PAGE-TOP/PAGE-BOTTOMDetermina se a tela posicionará no topo ou no rodapé do vídeo.Sintaxe: ... PAGE-TOP/BOTTOM ... .

HEADER/BACKGROUNDEspecifica o nível do plano de apresentação da tela (frente/atrás).Sintaxe: ... HEADER/BACKGROUND ... .

TOP-ONLYEspecifica que a frame não pode ser sobreposta.Sintaxe: ... TOP-ONLY ... .

SCROLLCaracteriza se a tela permitira a rolagem dos dados na mesma e o sentido.Sintaxe: ... SCROOL [sentido]... .

Onde sentido = UP/DOWN. O default é DOWN.

PAUSEEstabelece uma pause para interação com a tela.Sintaxe: PAUSE [n].Onde n = número de segundos.

@Indica que o dado deve ser mostrado na tela, na mesma posição de outro.Sintaxe: DISPLAY dado/informação @ destino.Onde dado/informação = valor a ser atribuído, destino = campo ou variável da tela quereceberá o valor.Exemplo: DISPLAY “DOM HELDER CÂMARA” @ ilustre.nome.

TODefine a última coluna (coluna final) para um dado na tela.Sintaxe: ... TO n.Onde n = número da coluna.

AT

Permite o posicionamento do dado em uma coluna específica da tela.Sintaxe: AT n.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 30Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 31: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 31/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Onde n = número da coluna.Obs. Esta instrução pode ser usada para posicionamento de objetos em windows, por linhax coluna ou pixels.

EXEMPLOS DE MANIPULAÇÃO DE TELAS:

FORMtabela.campo1 LABEL “Título Campo 1 “ SPACE(02)tabela.campo2 NO-LABEL SKIPtabela.campo3 LABEL “Título Campo 3” SKIPWITH FRAME f-nometela ROW XX CENTERED OVERLAY TITLE “ EXEMPLO “

1 DOWN 1 COLUMN SIDE-LABELS.

FORM"Exemplo de formatação de tela, nomeada ex1. View mostra o resultado."WITH FRAME ex1.VIEW FRAME ex1.

 

Exemplo de formatação de tela, nomeada ex1. View mostra o resultado.

FORM"Exemplo de formatação 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 formatação de tela, nomeada ex2. Skip salta uma linha.Skip pode ser usado na sintaxe. skip(n).

FORM" Exemplo de formatação de tela centralizada. " SKIP" Centered centraliza a tela no monitor. "WITH FRAME ex3 ATTR-SPACE CENTERED.VIEW FRAME ex3.

Exemplo de formatação de tela centralizada.Centered centraliza a tela no monitor.

FORM"Exemplo de formatação de tela. row determina a linha do monitor" SKIP"onde se posicionará a 1ª linha da tela. Title informa o título da tela." SKIP"Column especifica a coluna inicial. At n = coluna de um atributo." SKIPWITH FRAME ex4 ROW 5 CENTER TITLE "EXEMPLO QUATRO".VIEW FRAME ex4.

EXEMPLO QUATROExemplo de formatação de tela. row determina a linha do monitor onde se posicionará a 1ª linha da tela. Title informa o título da tela.Column especifica a coluna inicial. At n = coluna de um atributo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 31Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 32: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 32/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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 contrário label = título(acima do item)." LABEL "Linha 3: " SKIPWITH 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 contrário label = título(acima do item).

DISPLAY"DOWN n - núm. conjuntos de dados por vez." LABEL "DOWN: " SKIP"Permite sobreposição 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"Não 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" SKIPWITH FRAME ex6 CENTER SIDE-LABELS NO-BOX.

VIEW FRAME ex6.DOWN: DOWN n - núm. conjuntos de dados por vez."OVERLAY: Permite sobreposição da tela.NO-BOX: Elimina a borda da tela.PAGE-TOP/PAGE-BOTTOM: Tela no topo/rodapé do monitor.TOP-ONLY: Não permite que a tela seja sobreposta.SCROOL: Permite o rolamento da tela.NO-LABEL: Mostra o dado sem o label especificado.

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

Faça o laboratório número 04 do anexo.

DEFINIÇÃO/VALORIZAÇÃO DE DADOS NA MEMÓRIA

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 32Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 33: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 33/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

DEFINEDefine um dado ou um conjunto destes para uso em uma ou mais procedures.Sintaxe: DEFINE dado [AS tipo FORMAT formato INITIAL valor ].Onde dado = variável, temp-table, buffer, stream, button. Tipo/formato/valor  (instruçõesabaixo).

FORMATDefine o formato(máscara) de um dado.Sintaxe: FORMAT formato.Onde formato(principais) = “99/99/9999” (data),”>>9.99” (dec/int), “x(nn)” (char) “Sim/Não”(log).

TEMP-TABLEInstrui a criação de uma tabela interna (memória com possibilidade de SWAP em hard disk).Sintaxe: TEMP-TABLE tt-nometabela 

FIELD campo1 tipo formatoFIELD 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 DATEFIELD tot AS DEC FORMAT “>>>,>>>,>>9.99”.

BLANKInstrui a entrada de dados(input) que não mostre(display) os caracteres imputados.Sintaxe: BLANK.Exemplo: UPDATE senha BLANK.

AUTO-RETURNInstrui a entrada(input) a um dado que retorne(próximo) automaticamente ao final deste.Sintaxe: AUTO-RETURN.Exemplo: UPDATE senha AUTO-RETURN.

ASInstrui a criação de uma variável quanto a seu tipo.

Sintaxe: AS tipo.Onde tipo = caracter, inteiro, logical, decimal, data, recid, etc.Exemplo: DEF VAR salario AS DEC.

LIKEInstrução que espelha o formato de um dado em outro.Sintaxe: LIKE origem.Onde origem = campo ou variável que fornecerá a formatação para outro campo ouvariável.Exemplo: DEF VAR valor-produto LIKE produto.valor.

NEW SHARED

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 33Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 34: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 34/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Instrui a definição de um dado para tratá-lo como compartilhado (de uso permitido em umponto abaixo(subrotina) da mesma aplicação).Sintaxe: NEW SHARED dado.Exemplo: DEF NEW SHARED VAR codigo AS INT.Obs. A definição pode ser feita como NEW GLOBAL SHARED, que permite o uso do dadoem qualquer ponto da aplicação.

SHAREDInstrui a definição de um dado para tratá-lo como dado anteriormente definido comocompartilhado (definido em um ponto acima na mesma aplicação).Sintaxe: SHARED dado.Exemplo: DEF SHARED VAR codigo AS INT.Obs. A definição pode ser feita como GLOBAL SHARED, definida em qualquer ponto daaplicação.

BUFFERInstrui o define a criar um buffer (cópia) de uma tabela.

Sintaxe: DEF BUFFER b-tabela FOR tabela.

SPACEInstrução que determina uma string com espaços.Sintaxe: space(n).Onde n = número de espaços.Exemplo: DISPLAY campo1 space(10) campo2.

INITIALEstabelece o valor inicial de um dado ou informação.Sintaxe: INITIAL valor.

Exemplo: DEF VAR resp AS LOG INITIAL YES.

FILLValoriza uma variável(string) com a quantidade/caracter especificada.Sintaxe: FILL(“chars”,n).Onde: chars = string a ser repetida e n = número de repetições.Exemplo: traco = FILL(“-“,80).

VALIDATECria uma consistência em torno do dados. Pode ser usado para validação de registro ouvariável.Sintaxe: VALIDATE (expressão,mensagem).Exemplo: UPDATE data-cobranca VALIDATE (data-cobrança > TODAY,”Data Inválida”).

ASSIGNMove valores pré-definidos para variáveis.Sintaxe: ASSIGN variável = valor.Obs. A aplicação de um assign para valorização de duas ou mais variáveis, implica emmelhor performance no processamento e a um executável menor (apenas uma linha deprocessamento).

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 34Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 35: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 35/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

/* programa exemplo – exclusivo para fins didáticos (sem finalidade prática) *//* exemplo 01 */

DEF VAR opcao AS CHAR FORMAT "x(15)" EXTENT 4 /* será visto na próxima sessão */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.

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

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 35Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 36: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 36/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

DIRECIONAMENTO DE DADOS, DESVIO/CONTROLE DE PROCESSAMENTO

OUTPUT TODireciona a saída de dados para um periférico ou arquivo específico.Sintaxe: OUTPUT TO saída [tam-pag ] [condição].Onde saída = periférico ou nome do arquivo;tam-pag  = tamanho da página a ser gerada ;condição = 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 CLOSEFecha uma saída de dados criado pelo comando OUTPUT TO.Sintaxe: OUTPUT CLOSE.

OUTPUT STREAMDireciona a saída para uma cadeia de saída, previamente definida.Sintaxe: OUTPUT STREAM cadeia-saída TO saída.Obs. Possibilita o uso do OUTPUT em sequência, obtendo um resultado simultâneo.

PAGEPosiciona a saída gerada pelo OUTPUT TO para o começo da próxima página(gera saltode página).SINTAXE: PAGE.

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

PROCEDUREUma rotina interna no programa, chamada de um bloco qualquer, no entanto, localizadafora deste bloco e do bloco principal do programa. Uma procedure é chamada através docomando RUN.Sintaxe: PROCEDURE nome-procedure.

{algoritmo}ENDPROCEDURE.RETURN.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 36Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 37: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 37/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

/* programa exemplo de relatório *//* Obs. Este programa embora correto, visa atender a fins didáticos. */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 tabela2–ex.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 73PAGE-NUMBER AT 77 FORMAT “999” SKIPtraco AT 01 SKIP“TÍTULO-COLUNA1” AT XX /* campo1 / tabela 1 – ex. código fornecedor */“TÍTULO-COLUNA2” AT XX /* campo2 / tabela 1 – ex. nome fornecedor */“TÍTULO-COLUNA3” AT XX /* campo 1 / tabela 2 – ex. código produto */“TÍTULO-COLUNA4” AT XX /* campo 2 / tabela 2 – ex. descrição produto */“TÍTULO-COLUNA5” AT XX /* variável – ex. quantidade produto fornecido */traco AT 01 SKIP.

END.IF FIRST-OF(campo-ordem) THEN DO:

PUT campo1/tabela1 AT XXcampo2/tabela1 AT XX.

cont = 0.END.PUT campo1/tabela2 AT XX

campo2/tabela2 AT XXcont AT XX FORMAT “>>,>>9” SKIP.

END.OUTPUT CLOSE.

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

Faça o laboratório número 05 do anexo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 37Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 38: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 38/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

DADOS MULTIVALORIZADOS, IMPORTAÇÃO/EXPORTAÇÃO DE DADOS

EXTENTCria uma multivalorização tipo ARRAY para um dado ou informação.Sintaxe: EXTENT n.Onde n é o número de ocorrências que a função criará para o dado ou informação.

CHOOSECria uma barra de seleção, com movimento entre os componentes de uma série de opções.Sintaxe: CHOOSE ROW field/FIELD field.Exemplo: CHOOSE FIELD opcao AUTO-RETURN.Onde opcao = variável com a lista de opções.

DO(TO)Cria um bloco de processamento através de um índice interno.Sintaxe: DO indice = vi TO vf :Onde indice = variável e vi/vf = valores inicial e final.Exemplo: DO indice = 1 TO 10:

{algoritmo}END.

VALUETrata o valor de um domínio.Sintaxe: VALUE(domínio).

Onde domínio = dado ou informação de memória.

INPUT FROMCria uma fonte alternativa para entrada de dados.Sintaxe: INPUT FROM origem.Onde origem = arquivo texto, terminal, etc.

QUOTERUtilitário Progress que transcreve uma linha texto, como se fosse um campo, no formatodelimitado.Sintaxe: quoter  parâmetro p1-p2,p3-pn, ..., px-py arq-fonte > arq-destino.

Onde: parâmetro mais usado é –c (coluna). P1-p2 = posição inicial/final da coluna. 

SILENTExecuta um comando do sistema operacional sem restrições (pausas).Sintaxe: SYS SILENT linha-comando.Onde: SYS = UNIX, DOS, WIN32, etc.Exemplo: UNIX SILENT ls ou UNIX ls.

OPSYSRetorna a plataforma operacional.

Sintaxe: OPSYSExemplo: IF OPSYS = “WIN32” THEN ...

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 38Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 39: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 39/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

EXPORTExporta dados para um arquivo, formatando a delimitação do mesmo.Sintaxe: EXPORT [DELIMITER char} lista-dados.Onde: char é o character delimitador desejado. Se não especificado o default será ativado.  lista-dados são os dados a serem exportados (tabela, campos).

Exemplo: OUTPUT TO arquivo.FOR EACH tabela:

EXPORT DELIMITER “;” campo1, campo2 ... campoN .END.OUTPUT CLOSE.

IMPORTImporta dados de um arquivo delimitado, gerado ou igual ao gerado pelo comandoEXPORT.Sintaxe: IMPORT [DELIMETER char ] lista-dados.Exemplo: INPUT FROM arquivo.

FOR EACH tabela:IMPORT UNFORMATTED string .

END.INPUT CLOSE. 

SEARCHPesquisa a existência de um arquivo no diretório do sistema operacional.Sintaxe: SEARCH(“nome-arquivo”).

 

/* programa exemplo da sessão atual e sessão 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. _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 39Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 40: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 40/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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. 

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

Faça o laboratório número 06 do anexo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 40Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 41: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 41/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

CONTROLE DE TRANSAÇÃO, EVENTO E CONCORRÊNCIA

- DO TRANSATIONEm Progress os blocos de programação são, por default, conceitualmente transações esubtransações. No entanto, o desenvolvedor pode implementar os níveis de transações econtrolá-los conforme sua necessidade. O meio mais comum de se fazer isto é nomeandoos blocos ou definindo a abertura/fechamento das transações, através do comando DOTRANSATION.

Sintaxe: DO TRANSATION:Exemplo: DO TRANSATION:FOR EACH tabela:

{algoritmo}.END.

END.

- ERRORError aponta um evento implícito no processamento de um blocos (repeat, for each,procedure interna, triggers). Para explicitar e controlar este evento é necessário o controledo mesmo através do comando ON.

Sintaxe: ... ERROR ... . (veja ON)

- ENDKEYDa mesma forma que o ERROR o ENDKEY aponta para o evento de encerramento de umatransação antes do fechamento normal (commit) da transação. Possui as mesmascondições de controle do ERROR.Sintaxe: ... ENDKEY ... . (veja ON)

- ONEspecifica e controla um evento durante o processamento de um bloco, como habilitar umtecla para de interrupção(rowback) da transação.

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.

- UNDODesfaz um transação. Em outras palavras, retorna os valores anteriores de campos /e ouvariáveis do bloco corrente devido uma interação no mesmo.Sintaxe: [...] UNDO [...].Exemplo: FOR EACH tabela ON ENDKEY UNDO, RETRY.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 41Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 42: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 42/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

- EXCLUSIVE-LOCK Ao ser usado para acesso à alguma tabela, esta instrução trava (uso exclusivo) outrosacessos na tabela em questão. O default do Progress para tabelas e SHARE LOCK (usocompartilhado).Sintaxe: ... EXCLUSIVE-LOCK.Exemplo: FOR EACH tabela EXCLUSIVE-LOCK. 

- NO-LOCK A instrução NO-LOCK, usada na localização e/ou busca de dados, tem por finalidade liberar o(s) registro(s) em questão (relação gerada pela transação) para que possa sofrer outrosacessos, definindo que o acesso corrente é apenas para leitura.Sintaxe ... NO-LOCK.Exemplos: FOR EACH tabela NO-LOCK.

FIND tabela WHERE condição NO-LOCK.Naturalmente, observa-se que o default do Progress é o travamento (lock) de registro para

atualização.- LOCKED

Locked é uma função cuja a finalidade é retornar true/false(verdadeiro/falso) a respeito deum conjunto de dados.Sintaxe: LOCKED <expressão>. Onde <expressão> é o conjunto de dados, uma tabela por exemplo.Exemplo: IF LOCKED tabela THEN ... ELSE ... .

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

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 42Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 43: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 43/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

NAVEGAÇÃOEsta sessão tem por finalidade introduzir o leitor no processo de seleção, visualização econtrole sobre uma faixa de dados oriundos do(s) banco(s). Em outras palavras, pretende-semostrar o que ocorre durante a execução de browsers, para melhor entendimento dos mesmosna programação gráfica, principalmente utilizando os SmartsObjects.• QUERY

Define uma query para mapeamento de dados. Em outras palavras, define um filtro dedados a serem usados em um browser por exemplo.

Sintaxe: DEFINE QUERY nome-query FOR origem.Exemplo: veja programa no final da sessão.

• BROWSEObjeto que permite a visualização, navegação e seleção de dados destacados por umaquery.Sintaxe: DEF BROWSE nome-browse QUERY nome-query <condições>.Exemplo: veja programa no final da sessão.

• OPEN-QUERY

 Abre(processa) uma query anteriormente definada.Sintaxe: OPEN QUERY nome-query FOR <condições>.Exemplo: veja programa no final da sessão.

• APPLYSolicita e administra um evento para uma determinado objeto.Sintaxe: APPLY evento TO objeto.Exemplo: veja programa no final da sessão.

• ENABLEHabilita a entrada de dados, no buffer de tela, para um campo tipo objeto.

Sintaxe: ENABLE lista-objetos <condições>.Exemplo: veja programa no final da sessão.

• WAIT-FORPara o processamento de um bloco, até que um determinado evento ocorra.Sintaxe: WAIT-FOR evento OF objeto.Exemplo: veja programa no final da sessão.

• ITERATION-CHANGEDTipo de evento que especifica e controla uma ação do usuário em uma janela.Sintaxe: “iteration-changed” OF objeto.Exemplo: veja programa no final da sessão.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 43Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 44: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 44/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

• WINDOW-CLOSEatividade “finalização” de uma janela.Sintaxe: WINDOW-CLOSE <janela>.Exemplo: veja programa no final da sessão.

• CURRENT-WINDOW

Permite especificar e controlar as atividades da janela (window) corrente.Sintaxe: atividade comando CURRENT-WINDOW (char) .CURRENT-WINDOW:atributo (gráfico).Exemplo: veja programa no final da sessão.

Exemplo de uma tela de navegação com os comandos e instruções acima:

/************************************************************************************************ Programa: bmor05z.p** Função...: browse na tabela sige (obs. Progress versão 7 for Unix)** Cliente....: CBTU** Data........: 16/01/2001

** Autor........: Célio de Oliveira – Uniwork Consulting** Supervisor: Renato Magalhães** Revisão....:***********************************************************************************************/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-sigeDISPLAY 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”.

FORMb-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” THENOPEN QUERY q-sige FOR EACH sige

WHERE sige.cd-grupo MATCHES req-zoomAND sige.cs-situacao = yes

USE-INDEX grupo-ano-sige.ELSE OPEN QUERY q-sige FOR EACH sige

WHERE sige.cs-situacao = yesUSE-INDEX sige-ano.

ENABLE b-sige WITH FRAME abc.

 APPLY ́ ENTER´TO 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-WINDOWOR ´return´ OF CURRENT-WINDOW.

IF LASTKEY = KEYCODE(“enter”) THEN DO: _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 44Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 45: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 45/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

registro = recid(sige).HIDE MESSAGE NO-PAUSE.HIDE FRAME abc NO-PAUSE.

END.

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

Faça o laboratório número 07 do anexo.

FERRAMENTAS ESSENCIAIS

COMPILERNa opção Compiler do Procedure Editor, é possível testar uma aplicação:

♦ RUN

Executa (f2) o programa corrente no buffer ativo do editor.

♦ CHECK SYNTAXCheca 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 opção Help do editor detalhe-se as mensagens recebidas durante a compilaçãoe/ou execução dos programas.

TOOLS

ADMINO “admin”, parte integrante do “data administration”, tem por finalidade maior:

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 45Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 46: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 46/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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 padrões dif, sylk, text e MS word merge data. _ importar dados nos padrões dif, sylk, delemited text, fixed-length. No formato delemitedtext deve ser informado o caracter delimitador.

APPLICATION COMPILERO Application Compiler, como o próprio nome diz, é o aplicativo cuja a finalidade éadministração um conjunto de compilações, dentro dos parâmetros estabelecidos em suatela:

 

No menu (cabeçalho) temos as seguinte opções e sub-opções:File: exit.Compile: Start Compile F2Tools: Data Dictionary, Procedure Editor, ... , Pro*tools, ...Options: Configura-se a saída (resultado) da compilação, ou seja, pode gerar ou não umarquivo 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 utilização de Meta-Caracteres.

 Abaixo da janela central possibilita-se a configurar: _ Save New .r Files: se os novos arquivos compilados (.r) serão gravados.  _ Remove Old .r. Files: Se os arquivos compilados (.r) anteriormente serão removidos,independente de erros e/ou gravação dos novos arquivos .r.  _ Look in Subdirectories: Se os arquivos a serem compilados devem ser procurados nossubdiretórios, do diretório especificado para compilação. _ Only Compile if No .r File: Compila apenas os arquivos que não possuem uma versãocompilada.

Nos botões, na parte inferior da tela, especifica-se:

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 46Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 47: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 47/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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 compilação (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 estão os programas a serem compilados;  lista-programas = lista de programas a serem compilados;  SAVE = salvar o novo .r (programa compilado).

INTRODUÇÃO A CONFIGURAÇÃO DE AMBIENTE PROGRESS

PROPATH EDITOREm todas a opções “tools”, encontra-se a sub-opção PRO*TOOLS, lista de ferramentaspara desenvolvimento e configuração do ambiente de desenvolvimento.

Dentre as opções, encontra-se o PROPATH EDITOR:

  Este pequeno editor tem por finalidade definir os principais caminhos para uma aplicação,ou seja, onde deve ser procurado os arquivos (programas por exemplo) referidos pelaaplicação.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 47Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 48: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 48/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

ARQUIVO DE INICIALIZAÇÃO (.ini)Na instalação do Progress, o arquivo progress.ini é automaticamente criado no diretórioDLC/bin. Este arquivo tem por finalidade registrar alguns parâmetros e variáveis deconfiguração de ambiente, conforme a plataforma de instalação do Progress.Na instalação de aplicativos desenvolvidos em Progress, há necessidade de reconfigurar alguns parâmetros, desta forma ao instalar o EMS também é criado um arquivo .ini.

ARQUIVO DE PARÂMETROS (.pf)Os arquivos .pf são responsáveis por fornecer os parâmetros da sessão cliente/servidor.Principais parâmetro do arquivo .pf:-db banco: identifica o nome do banco a conectar.-1: conecta o banco de dados no modo mono-usuários.-a arquivo: especifica se o arquivo after-image será usado e o nome do mesmo.-b: se a inicialização da sessão será em batch, sem a intervenção do usuário em caso deerro.-basekey texto –ininame arquivo.ini: indica o arquivo .ini para configurar a sessão.-B n: indica o número de blocos de memória a ser colocado no buffer de cada usuário.-c n: indica o número de índices a ser usado em alguns comandos como for each.-d ndy: especifica o formato da data .-d banco: define o nome físico do banco de dados a ser conectado.-E: define a apresentação dos campos decimais no formato europeu.-g arquivo: especifica o arquivo before-image.

-F: força o acesso ao banco de dados no estado de recuperação.-h n: define o número de banco a serem conectados na sessão.-I n: tamanho do buffer local.-i: manipula dados diretamente no banco físico, ignorando o controle de transações.-L n: define o número de travamentos de registros no servidor.-ld nome: define o nome lógico do banco a ser conectado.-n n: define o número de usuários que podem se conectar no banco a mesmo tempo.-p procedure: define a procedure a ser executada ao início da sessão.

Exemplos de arquivos .pf C:\MAGNUS\DLC82CL\bin\prowin32.exe -basekey "ini" -ininame c:\cursott\EMS201.ini -pf c:\cursott\ems201.pf 

 –pf  SCRIPTS\desenv.pf -inp 8192

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 48Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 49: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 49/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

W:\dlc9\bin\prowin32.exe -basekey "ini" -ininame scripts\ems2.ini -pf scripts\ems2.pf -pf scripts\ems2mult2.pf –pmen/men902za.p -param MAN

W:\dlc9\bin\prowin32.exe -basekey "ini" -ininame scripts\ems2.ini -pf scripts\ems2.pf -pf scripts\ems2mult.pf -pmen/men902za.p -param DIS

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

VISÃO GERAL DOS PRINCIPAIS PRODUTOS DATASUL

HR

Sistema de Administração de Recursos Humanos

DATA VIEWERSistema Gerador de Relatórios

DDKTemplates Datasul

EMSO Datasul-EMS é um Sistema Integrado de Gestão Empresarial desenvolvido pela DatasulS.A., na linguagem de 4ª geração Progress. O EMS é composto por uma base de dados,

programas diversos de cada módulo e scripts de manutenção e uso correto do software.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 49Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 50: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 50/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

VERSÕESO Datasul-EMS, lançado em escala inicialmente como EMS 2.00, possui hoje uma grandebase instalada, na sua maior parte da versão 2.02.

PRINCIPAIS MÓDULOSEm linhas gerais o produto Datasul-EMS, divide-se em: aplicativo (exs. tecnologia,

controladoria e finanças, materiais, manufatura, distribuição e integração), sistema (exs.módulo básico, administrador, bancos históricos), módulo (exs. básico datasul-ems, menu,documentação, segurança), rotina (ex. manutenção, tarefas, consulta, relatório), sub-rotina(ex. manutenção impressora), procedimento (ex. configuração de impressora), programa(ex. inclui configuração de impressora).Para o desenvolvedor é importante conhecer o módulo Básico do aplicativo Tecnologia,para não ter total dependência do administrador do sistema. Neste módulo, rotinaManutenção, localiza-se o cadastro de impressoras, o cadastro do layout de impressão,tabelas do dicionário de dados Datasul, arquivos imagem/vídeo/som.No módulo Menu, rotina Opções, sub-rotina Configurar Ícones, o usuário pode colocar no“frame” do EMS, ícones para calculadora, editor do Progress, bloco de notas, Word, etc (12no máximo).

INICIALIZAÇÃOO procedimento de entrada/saída pode ser realizado em qualquer menu do Datasul, narotina Usuário, sub-rotina Login. Para que o nome do usuário seja mostrado toda vez que oprograma login for acessado, é necessário que o nome do usuário em questão estejainformado no procedimento Preferência do Usuário.Caso o usuário erre sua senha 3 vezes consecutivas, o procedimente será encerradoautomaticamente. O usuário executa seu login e acessa diretamente o aplicativo de seuinteresse clicando inicialmente no ícone deste aplicativo. No entanto, pode-se navegar entreos aplicativos que compõem o produto a qualquer momento.

CADASTRO DE PROGRAMASNo módulo menu, rotina Manutenção encontra-se os cadastros de Produto, Aplicativo,Sistema, Módulo, Rotina x Módulo, Rotina, Sub-Rotina, Procedimento e Programa.Na sub-rotina Programa, cadastra-se o programa usado no procedimento, inclusive EPCs.

LAY-OUT DE IMPRESSÃONo datasul-EMS define-se um ou mais lay-outs de impressão para uma impressora. Estelay-out parametriza o número de linhas por página, número de colunas por linhas,

espaçamento e margens, fontes, etc.

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

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 50Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 51: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 51/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

PADRÃO DE PROGRAMAÇÃO

CONCEITOS EPC

São programas desenvolvidos e configurados para ser executados em um ponto específicode um programa Datasul. Sua finalidade é adaptar o produto Datasul e/ou integrar oDatasul-EMS com outro produto.Uma EPC pode ser disparada a partir de um evento na rotina ou em um evento dodicionário de dados. No módulo Menu do Datasul-EMS Manutenção Programas, pode-se cadastrar o caminho e o nome físico de uma EPC a ser chamada na execução doprograma.Obs. Conceitualmente uma EPC é a junção de uma APPC e uma UPC.

APPCApplication Partner Program Call – É um EPC realizada pelas Franquias.

UPCUser Program Call - é uma EPC realizada pelo cliente.

RPCRemote Procedure Call (chamadas remotas a procedimentos) é um conceito adotado pelaDatasul, conhecido como programas, ou parte destes, executados em uma outra máquinade forma remota (Servidor de Aplicação).

RPWRemote Procedure Wait (espera por procedimento remoto) consiste em executar programas

remotamente através de um servidor de aplicação onde, o usuário parametriza a execuçãodo programa (servidor, data, hora, etc, da execução).

APIUma API é uma programa que recebe certos parâmetros destinados a executar uma tarefaespecífica no Datasul-EMS. Como gerar uma planilha no Excel com dados oriundos doDatasul-EMS, por exemplo. Em outras palavras é uma interface aberta para funçõesespecíficas.Uma API pode realizar operações de manutenções na base de dados Datasul e retornar oresultado da operação, ou seja, “OK” se a operação se concretizou corretamente ou “NOK”se a operação foi incorreta.

Toda API criada pela Datasul é padronizada e documentada no diretório docapi, comextensão .doc, onde é especificado os objetivos, parâmetros de entrada/saída e mensagensde erros no processamento. As principais API´s possuem as seguintes finalidades: _ Gerar e exibir gráficos de acordo com os parâmetros passados; _ Integração entre Progress e Microsoft Word; _ Integração entre Progress e Microsoft Excel;  _ Envio de E-Mail ou Fax através, através do EMS, usando MS-Exchange (OLE Automation); _ Envio de E-Mail, através do EMS, usando um servidor UNIX ou outro servidor que use o

protocolo SMTP; _ Busca de dados de uma planilha Excel para o Progress;

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 51Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 52: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 52/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

 _ Uso de funções do Excel para retornar os resultados para um programa Progress.

NOMENCLATURA As regras de nomenclatura completas, inclusive para atributos, tabelas e gatilhos, padrãoDatasul encontram-se no Manual de Padrões Datasul.

- BANCOSPara cada banco de dados do Datasul-EMS e Datasul-HR, foi determinado uma siglacom dois dígitos. Os principais bancos são:

• MGADM – AD – banco administrativo• MGCLD – CL – banco coletor de dados• MGDIS – DI – banco distribuição• MGIND – IN – banco industrial• MGINV – IV – banco investimentos• MGMP – MP – banco multiplanta•

MGUN – UN – banco universal• MGPE – PE – banco ponto eletrônico• NGRH – RH – banco recursos humanos

- MÓDULOSCada módulo possui uma sigla para ser utilizada na definição dos nomes de seusprogramas e diretórios, como exemplo, podemos citar alguns dos principais módulos:

• CT – contabilidade• CB – caixa e bancos•  AP – contas a pagar • CR – contas a receber • CE – controle de estoque• CP – controle de produção• CQ – controle de qualidade• QO – cotação de vendas• CS – custos• DP – desenvolvimento de produto• EN – engenharia• FT – faturamento• PD – pedidos 

- PROGRAMASOs programas são nomeados pelo tipo e estilo.a) .W – programa com interface gráfica. yyXX999, onde yy é a sigla do cliente, xx é o

módulo e 999 é o número sequencial.b) .P: programa sem interface gráfica que segue a mesma regra de nomenclatura acima e

podem ser acrescido das letras rp (relatório padrão) nos casos de formulários padrõesdo cliente, como emissão de pedidos por exemplo.

c) BROWSER: programa tipo browser. b99xx999.w, onde b = browser, 99 = númerosequencial do tipo do objeto, xx – sigla do cliente e 999 = número sequencial por tabelade 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).

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 52Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 53: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 53/58

 

INTRODUÇÃO A PROGRAMAÇÃO 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 dobrowser, evidentemente inicia-se com z (zoom) no lugar de b (browser).

- VARIÁVEIS

Para criação de variáveis, as seguintes regras devem ser seguidas: char (c-var), int (i-var),data (da-var), dec (de-var), handle (h-var), lóg (l-var), raw (raw-var), rowid (rw-var) e widget-handle (wh-var).

- OBJETOSPara nomenclatura de objetos, aplica-se as regras: botão (bt-obj), browse (br-obj), combo-box (cb-obj), fill-in (fi-obj), radio-set (rs-obj), retangulo (rt-obj), selection-list (sl-obj), slider (sl-obj), toogle-box (tb-obj).

- DIRETÓRIOSNo geral, os diretórios são criados por módulos e tipos de arquivos, obedecendo a seguinte

sintaxe: xxtipo. Onde xx é a sigla do módulo e tipo é o tipo de arquivo.Exemplo: \CDP – programas do módulo Cadastro.Programas que são objetos são gravados nos diretórios xxbrw(browser), xxdialog(dialog),xxgo (vá para), xxqry(query), xxvwr(viewer) e xxzoom(pesquisa). Onde xx é a sigla dobanco de dados da tabela principal do objeto.

- PRINCIPAIS INCLUDES/UTILITÁRIOSVários includes padrões acompanham o produto EMS com a finalidade de auxiliar nodesenvolvimento de customizações e manter o padrão na implementação do produto. Abaixo resumimos os includes/utilitários mais usados em customização. Lembramos que afinalidade deste resumo é familiarizar os profissionais com recursos disponíveis e

que fatalmente serão usados no desenvolvimento pelo DDK. Portanto, maioresdetalhes a respeito destes, serão encontrados no manual de padrões Datasul.

UT-FIELD.IRetorna propriedades dos campos do dicionário de dados:{utp/ut-field.i <banco-lógico> <tabela> <campo> <propriedade>onde propriedade = 1(label), 2(column-label), 3(help), 4(format), 5(initial), 6(description,7(type)

UT-RTLBL.IPermite a utilização de literais para colar labels em retângulos usados em radio-set por 

exemplo.{utp/ut-rtlbl.i <bco-lógico> <tabela> <campo> <objeto>onde objeto = a nomenclatura da forma de visão do objeto. Ex.FILL-IN VIEW-AS TEXT.

UT-RUN.IExecuta programas sem interfaces (.p) a partir de uma interface (.w). utiliza-se o recursoRPC.Obs1. Requer a utilização dos includes ut-glob.i e btb008za.io para definições de variáves efunções.{utp/ut-run.i xxp/xx9999rp.p}Obs2. Este include possue diversas sintaxes na passagem de parâmetros em uma RPC.

UT-MSGS.P _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 53Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 54: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 54/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

 Apresenta uma mensagem do cadastro de mensagens do produto (UT-CDMSG.W).Run utp/ut-msgs.p (input <ação> input <nº-msg> input <parâmetros>}.Onde ação = show(msg/help), msg(mensagem), help(ajuda), type (erro, aviso, informação,questão)Parâmetros = campos, tabelas e/ou palavras. Entre os parâmetros usa-se “~~” + .

IND01-10.I, IND11-50.I e IND51500.IRepresenta campos inteiros na forma de rádio-sets ou combo-box.{include/ind01-10 {função} {parâmetro}}.Onde função = 01 (combo-box), 02(radio-set),03(itens), 04n(retorna o item n), 05(retorna o

nº de itens),06item(retorna a posição item),07(retorna valores para a propriedade radio-buttons)parãmetro = parâmetros das funções 4 e 6.

UT-TABLE.IRetorna as propriedades de uma tabela. Útil nos SmartBrowsers para por label em campos.{utp/ut-table.i <bco-lógico> <tabela> <propriedade>}

onde propriedade = 1(file-label), 2(dump_name), 3(description)

UT-LITER.IUtiliza o cadastro de literais do EMS.{utp/ut-liter.i <literal> <módulo> <alinhamento>}.Onde módulo pode ser universal(*) e alinhamento = L(a esquerda), C(centralizado), R(adireita)

UT-LIMIT.PDetermina o valor inicial e final de campos caracter de formato variável, como conta-contabil.Run utp/ut-limit.p (input <opção> <formato>).Onde opção = indica o limite(MIN/MAX) e formato é o próprio formato do campo.

UT-GLOB.IDefine variáveis globais como código da empresa, nome do usuário corrente.Obs. Já vêm com a definição pronta dentro dos SmartsObjetos.

I-FREEAC.IConverte strings acentuadas e caracteres especiais para caracteres sem acento e simples.{include/i-freeac.i}

 ASSIGN variável = fn-free-accent(“string-a-ser-convertida”).

UT-DIR.PUtilizado quando o usuário informar o diretório.RUN utp/ut-dir.p (input “título”, OUTPUT <pasta>, OUTPUT <cancelado>).Onde título = mensagem transmitida ao usuário na caixa de diálogo

pasta = variável char que retornará com o diretório escolhidocancelado = variável lógica com o status do botão cancelado.

BTB917ZX.PExecuta arquivos tipo MID e WAV.

RUN btb/btb917zx.p (input <som>).Onde som é o caminho completo e o nome do arquivo a ser executado.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 54Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 55: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 55/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

Obs. Requer a instalação de OCX Datasul(setup.exe no dir.\interfac\som\).

BTB917ZY.PPermite a visualização 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 instalação de OCX Datasul(setup.exe no dir.\interfac\imagem\).

BTB917ZZ.PPermite a visualização de vídeos tipo AVI.RUN btb/btb917zz.p (input <vídeo>).Onde vídeo é o caminho completo e o nome do arquivo a ser executado.Obs. Requer a instalação de OCX Datasul(setup.exe no dir.\interfac\video\disk1).

UT-VRBIN.PInforma a versão de um programa compilado.Run utp/ut-vrbin.p (input <arquivo>, input <acomp>, output <versão>).

Onde arquivo = programa compilado, acomp = variável lógica para a tela deacompanhamento.Obs. Para programas no padrão Datasul. Caso não encontrado o retorno será nulo(?).

UT-FINFO.PInforma data/hora/tamanho de um arquivo no Windows.RUN utp/ut-finfo.p (input <arquivo>, output <data>, output <hora>, output <tamanho>).

UT-CDMLN.PMostra informações da linha de comando usada para abrir a sessão corrente.RUN utp/ut-cmdln.p (output <linha-de-comando>).Onde linha-de-comando = valores dos parâmetros da sessão (.ini, .inp, basekey, etc.). UT-OSVER.PInforma a versão do sistema Windows.RUN utp/ut-osver.p (output <plataforma>, output <versão>, output <release>, output<build>, output <extrainfo>).

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

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 55Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 56: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 56/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

REFERÊNCIAS

 _ Progress Language Reference – Volume 1

 _ Progress Language Reference – Volume 2

 _ Pocket Progress

 _ DATASUL: Manual do Administrador – Datasul EMS 2.0

 _ DATASUL: Módulo Básico Datasul-EMS

 _ DATASUL: Manual de Padrões e Programação EMS 2.0

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 56Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 57: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 57/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

A N E X O

LISTA DE LABORATÓRIOS

1) Banco de Dados _Crie um banco de dados, chamado PCP, no diretório c:\treinamento. _Crie duas tabelas para o banco de dados acima:

 

TABELA CAMPO FORMATO(TIPO)produto cod-produto 9999

descrição xxxxxxxxxxxxxxxxxxxxpreço médio >>>,>>>,>>9.9999outros (se desejar)

fornecedor cod-fornec 9999nome xxxxxxxxxxxxxxxxxxxxoutros (se desejar)

  _ Saia do Progress, entre novamente e conecte o banco recém criado._ Gere em arquivo, no diretório c:\treinamento, o Detailed Table do report, para o banco._ Analise os arquivos gerados no item acima, com o bloco de notas.

2) Manipulação de DadosFaça pequenos programas para valorizar (inserir) dados nas tabelas criadas no laboratório01. Preencha os campos na seguinte forma: Código = 1, descrição = produto/fornecedor 

número um, e assim por diante.No final do exercício, cada tabela deverá ter no mínimo 3 registros cada.Obs. Todos os comandos da sessão devem ser vistos. Salve os programas no diretórioc:\treinamento.

3) Índices e relacionamentos _Retorne ao dicionário de dados e acrescente na tabela “produto” o campo: cod-fornec(9999). Acrescente também um índice primário(único) com a chave = cod-produto. _Para a tabela fornecedor acrescente um índice primário(único), sendo chave o cod-fornece um índice secundário para o campo “nome”. _ Gere para arquivo, no diretório c:\treinamento, o Detailed Table do report, para o banco.

 _ Analise os arquivos gerados no item acima, com o bloco de notas.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 57Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda

Page 58: Apostila de Programação PROGRESS CHAR - Volume 1

5/14/2018 Apostila de Programação PROGRESS CHAR - Volume 1 - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-programacao-progress-char-volume-1 58/58

 

INTRODUÇÃO A PROGRAMAÇÃO PROGRESS _ 

4) Classificação de dados, formatação de telasEscreva um programa que mostre os dados da tabela produto: um registro por vez, em umacoluna e em ordem alfabética pela descrição.

5) Relatório _Escreva um relatório, com saída em arquivo, para “produto” e um para “fornecedor”.

6) Menu: Rotina Externa, Procedure, Include, Importação/Exportação de dados _Crie um menu com as seguintes opções: listar produtos, listar fornecedores, exportar dados (tabela fornecida pelo usuário) e importar dados tabela fornecedor.Obs. Listar produtos/fornecedores deve ser rotina externa, exportar dados uma include eimportar dados uma procedure interna.

7) Controle de Concorrências e Browse- Crie um browse para selecionar um produto e mostrar os dados do fornecedor do mesmo.

 _______________________________________________________________________________________________________________________________ 

INTRODUÇÃO A BANCO DE DADOS, ADM.E DESENV.PROGRESS CHAR, PRODUTOS DATASUL E PADRÃO DESENVOLVIMENTO 58Autor: Célio de Oliveira - [email protected] – Material não homologado – STI Consultoria e Serviços Ltda