CLAUDIUS EDELSBRUNNER
|
|
|
- Benedicta Pinto Taveira
- 8 Há anos
- Visualizações:
Transcrição
1 Progress V8.2A Enviado por: CLAUDIUS EDELSBRUNNER
2 Progress V8.2A Por Sandro Matos Fábio Victor Pfeiff Claudius Edelsbrunner 2
3 Sumário Porto Alegre, agosto de Conhecendo o Progress 1.1 O que é Progress 1.2 Gerenciamento da Base de Dados Relacional Progress 1.3 DataServer para outros Sistemas de Gerenciamento 1.4 Client / Server Parameters: Arquivo.pf 1.5 Formas de Conexão a bancos Progress via sessões Progress Mono-usuário Multi-usuário Exercício: conectando a um banco Progress mono-usuário 1.6 Principais Extensões dos Arquivos Gerados pelo Progress 1.7 Variáveis de Ambiente - Propath 1.8 Dump 2 Procedure Editor 2.1 File operações sobre arquivos 2.2 Edit Desfazendo ações Recortando, copiando e colando Inserindo campos de tabelas 2.3 Search buscando/substituindo no programa corrente ocorrências de texto 2.4 Buffers Abrindo um novo buffer Alternando entre buffers 2.5 Compile Run Check Sintax 2.6 O Menu de Contexto 3 Conhecendo os Comandos do Progress 3.1 Comentários em Progress 3.2 Tipo de Dados 3.3 Declaração de Estruturas Auxiliares Variáveis Buffers Auxiliares Tabelas Temporárias Procedures e Funções Parâmetros 3.4 Exercícios 3.5 Comandos Básicos Atribuição Entrada e Saída Bloco e Repetição Condicionais Para manipulação de registros Querys Quebra de bloco Execução de programas externos 3
4 3.6 Funções mais Utilizadas 3.7 Exercícios (reservar um simples para a aula do dia seguinte) 3.8 Pré-processamento Diretivas Funções 3.9 Exercício 3.10 Includes 4 User Interface Builder 4.1 User Interface Builder 4.2 A Palette de Componentes 5 Suporte a Interface Gráfica embutida em Progress 4GL 5.1 Atributos Básicos 5.2 Exercícios (utilizando screen-value, num-items, sensitive, ) 5.3 Métodos Básicos 5.4 Diretivas de Pré-processamento mais utilizadas 5.5 Exercícios 6 Progress ACE 6.1 Apresentando o ACE 6.2 Apresentando o ADM 6.3 SmartObjects 6.4 Exercícios 7 Links 7.1 Criando um Master Object a partir de um template 7.2 Tabelas Externas O que são / para quê servem Exercício 7.3 Organizando Masters em Diretórios 7.4 O que é um Link? 7.5 Exercícios 7.6 Tabela de Links possíveis 7.7 Progress Advisor 7.8 Estratégias de Links para Múltiplos Record Targets 7.9 Definição de Links no UIB 8 Paginando uma Aplicação 8.1 Paginando uma Aplicação 8.2 Links 8.3 Exercícios 8.4 Persistent Procedures 9 Enviando Mensagens (Messaging) 9.1 Messaging 9.2 Messaging e Tipo de Links 9.3 ADM messaging para cada Tipo de Link 9.4 Event Procedure e Method Procedure Event Procedure 4
5 9.4.2 Method Procedure Comparação entere Event Procedure e Method Procedure Como Trabalhar com Event Procedure Dispatch Notify Como Alterar Event Procedures? 9.5 Mapa de Eventos 10 SmartBrowse com Enable Column 11 New-State Method 5
6 1 Conhecendo o Progress 1.1 O que é PROGRESS? Progress é um ambiente de desenvolvimento baseado na tecnologia cliente/servidor que visa oferecer soluções informatizadas a problemas das inúmeras áreas de negócio existentes. Para atingir tal meta, o Ambiente de Desenvolvimento de Aplicações Progress (ADE) oferece um completo e integrado conjunto de ferramentas de desenvolvimento gráfico para produtivamente construir, testar, e manter aplicações. No centro do ADE está a linguagem de 4ª geração Progress (4GL). A ferramenta apresenta recursos das modernas técnicas de orientação a objetos, que busca reduzir custos de desenvolvimento e manutenção, aumento de produtividade, de qualidade, eliminação de redundância de código, entre outros. Como base temos o Data Dictionary (Dicionário de Dados) que auxilia as definições de dados com armazenamento centralizado e suporte para análise e projeto de ferramentas. 1.2 Gerenciamento da Base de Dados Relacional Progress Para as demandas especiais de aplicações Críticas, muitas empresas escolheram o Sistema de Gerenciamento de Base de Dados Relacional (RDBMS Relational Database Management System) Progress. O Progress RDBMS é totalmente integrado à arquitetura Progress DataServer. É uma solução de base de dados de alta performance para aplicações do mundo real. Aplicações Críticas exigem não somente a habilidade de suportar alto volume de processamento de transações simples, mas também alto rendimento e baixo tempo de resposta para transações mais complexas que integram várias aplicações de negócio. O Progress RDBMS possui um conjunto de recursos com o objetivo específico de suportar tais ambientes onde a execução de um alto volume de transações, integridade de dados garantida e alta disponibilidade são necessárias. O máximo rendimento é proporcionado por capacidades tais como: lock a nível de registro, que minimiza a contenção de dados; estratégias de otimização de consultas que melhoram o tempo para recuperação de dados; uma inteligente buferização de registros que reduz o tráfego da rede. A integridade dos dados é assegurada através de características de recovery. O Progress RDBMS é projetado com flexibilidade para tirar o máximo proveito das características únicas de desempenho de diferentes plataformas e sistemas operacionais. E, quando utilizado no ambiente cliente/servidor, com configuração baseada em rede, as aplicações Progress podem comunicar-se com o RDBMS, utilizando qualquer protocolo padrão de rede. 1.3 DataServer Para Outros Sistemas de Gerenciamento Para quem deseje acessar dados ou executar aplicações utilizando sistemas de gerenciamento de bases de dados não-progress, existe o Progress DataServer, que 6
7 suporta a maioria das bases de dados e sistemas de arquivos de terceiros. Esta ferramenta possibilita gerenciamento e acesso de alta performance, portabilidade das aplicações através de gerenciadores de dados e suporte a características específicas da base de dados. Alguns dos gerenciadores de dados suportados: Oracle, RMS, Sybase, RDB/VMS, OS/400, Object Store, DB2, Albase, ODBC, C-Isam, Informix. 1.4 Client Server Parameters: Arquivo.pf -E # European Numeric Format -d dmy # Date Format -yy 1920 # Century -cpinternal iso # Internal Code Page -db u:\sports\sports.db # Database Name -1 # Single-user Mode -H meta1 # Host Name -S ssports # Service Name -N tcp # Protocol Name -T C:\TMP # Temporary Directory File -trig e:\trg\ # Trigger Directory -Mm 8192 # Message Buffer Size -s 40 # Stack Size -mmax 2048 # Maximum Memory -Mr 2048 # Record Buffer Size -TB 08 # Speed Sort -TM 10 # Merge Number -p _desk.p # Program Manager Obs.: Parâmetros client-server são case-sensitive. O mesmo caracter (ou conjunto de caracteres ) pode especificar diferentes parâmetros à sessão Progress. Exemplo: -S (especifica o serviço utilizado para conexão a um servidor de banco Progress) e -s (tamanho da pilha alocada no client). 1.5 Formas de Conexão a bancos Progress via sessões Progress Mono-usuário Uma conexão mono-usuário permite a somente um único usuário acessar a(s) base(s) conectada(s) desta forma. O usuário monopoliza o(s) banco(s) de dado(s) Multi-usuário Progress, no entanto, é destinado ao desenvolvimento de aplicações baseado na arquitetura client-server (um programa cliente faz uma solicitação a um programa servidor, que usualmente está executando em uma máquina remota). O acesso concorrente (ou seja, vários usuários disputando um registro) é gerenciado por um programa conhecido por servidor de banco de dados. Os usuários fazem solicitações a esse programa, que as responde conforme a sua disponibilidade e a do registro. 7
8 1.6 Principais Extensões dos Arquivos Gerados pelo Progress.p Procedures e Triggers de Banco de Dados.i Includes.r Programas compilados.db Base de Dados.bi Before Image da Base de Dados.ai After image da Base de Dados.lk Lock da base da dados.lg Registro das todas as ocorrências relativas a uma base de dados.w Smart Windows, Smart Dialog, Smart Frames, Smart Browsers, Smart Viewers, Smart Panels e Smart Querys.wx Templates.wbx Quando compilada um objeto contendo um componente VBX/OCX, é gerado um arquivo de mesmo nome com esta estensão.uib Arquivo temporário do User Interface Builder (UIB).ped Arquivo temporário do Procedure Editor.dbg Arquivo temporário do Application Debugger.df Dump de definição da Base de Dados.d Dump dos dados.ds Dados ou definições que foram carregados para a Base de Dados através do comando Load.e Log de erro gerado na carga de dados ou definições 1.7 Variáveis de Ambiente - Propath Progress possui algumas variáveis de ambiente. A mais importante para quem desenvolve software utilizando Progress é o propath. Esta variável contém os diretórios, separados por vírgulas, que a sessão Progress enxerga quando tem que procurar um programa para execução. A importância de conhecê-la é simples: se você coloca um programa em um diretório que não está presente no propath, e tenta executá-lo, o Progress lhe devolverá uma mensagem de erro com o seguinte texto: <programa> not found.. Seu valor pode ser alterado por um administrador de sistemas conforme a necessidade. 1.8 Dump 8
9 ADD TABLE "CLIENTE" DESCRIPTION "Cadastro de Clientes" DUMP-NAME "cliente" LABEL "Cliente Geral" ADD FIELD "numcliente" OF "CLIENTE" AS INTEGER DESCRIPTION "Número do Cliente" FORMAT " " LABEL "Número do Cliente" VALEXP "numcliente > 0" VALMSG "Número do Cliente inválida" HELP "Número do Cliente." ORDER 10 MANDATORY ADD FIELD "nomcliente" OF "CLIENTE" AS CHAR DESCRIPTION "Nome do Cliente" FORMAT "X(80)" LABEL "Nome do Cliente" VALEXP "nomcliente <> """"" VALMSG "Nome do Cliente inválida" HELP "Nome Completo do cliente" ORDER 30 MANDATORY ADD INDEX "XPKCLIENTE" ON "CLIENTE" UNIQUE INDEX-FIELD "numcliente" ASCENDING UPDATE PRIMARY INDEX "XPKCLIENTE" ON "CLIENTE" ADD INDEX "XAK1CLIENTE" ON "CLIENTE" UNIQUE INDEX-FIELD "nomabrev" ASCENDING 9
10 2 Procedure Editor O Procedure Editor é uma Window Editor provida de funções auxiliares à edição de código Progress. O desenvolvedor pode fazer uso do Procedure Editor para criar, escrever, compilar e executar programas. O presente capítulo dedica-se a conduzí-lo pelas funcionalidades desta ferramenta mais utilizadas no dia-a-dia. 2.1 File Operações Sobre Arquivos (exemplo p-c02e01.p) 2.2 Edit 10
11 2.2.1 Desfazendo Ações Este comando desfaz a última ação executada pelo usuário Recortando, copiando e colando Semelhante a qualquer aplicação Windows que possua estas opções Inserindo campos de tabelas Uma opção bastante interessante oferecida pelo Procedure Editor: se deseja-se incluir um ou mais campos de uma tabela no código-fonte que se está construindo, seleciona-se esta opção. Há três listas de seleção: Databases apresenta todas as base de dados ao qual a sessão cliente Progress está conectada; 11
12 Tables mostra todas as tabelas contidas na base selecionada na lista Databases ; Fields apresenta todos os campos definidos para a tabela selecionada na lista Tables. Note que só é possível seleção múltipla na lista Fields. O prefixo acrescido ao campo quando de sua inserção no código-fonte é opção do construtor do código. 2.3 Search buscando/substituindo no programa corrente ocorrências de texto 2.4 Buffers Atalhos de teclado para os principais comandos: F7 Torna o próximo buffer o corrente (se é o último, retorna ao primeiro) 12
13 2.5 Compile O editor do Progress possui recursos para a execução direta de comandos e programas, e para a checagem da sintaxe do código que foi escrito ou alterado. Atalhos de teclado para os principais comandos: F2 Executa o programa/comando do buffer corrente do editor Shift-F2 Verifica a sintaxe 2.6 O Menu de Contexto Contém atalhos para algumas das funções mais utilizadas dos itens de menu já abordados. Acessível via botão direito do mouse. 13
14 3 Conhecendo os Comandos do Progress Dica Acesso ao Help Para conhecer a sintaxe de algum comando ou tirar alguma dúvida, basta marcar o comando escrito no Procedure Editor e pressionar a tecla F Comentários em Progress A linguagem 4GL Progress permite a inserção de comentários em um programa: /* Abre um comentário */ Encerra um comentário Tudo o que é escrito entre estes dois tokens é ignorado pelo compilador. Muito útil para: identificar um programa; descrever determinada solução dentro do programa (porquê foi fito de um jeito e não de outro). Podem existir comentários aninhados. 3.2 Tipo de Dados Os tipos de dados comumente utilizados na implementação de aplicações Progress são: - integer - character - date - decimal - logical - handle - rowid 3.3 Declaração de Estruturas Auxiliares Variáveis DEFINE VARIABLE <nome-variavel> AS <DataType> NO-UNDO. DEFINE VARIABLE <nome-variavel> LIKE <Field> NO-UNDO. Exemplos: DEFINE VARIABLE variavel AS integer NO-UNDO INITIAL 100. DEFINE VARIABLE variavel AS integer NO-UNDO. DEFINE VARIABLE variavel Like Table.Campo NO-UNDO. DEFINE NEW SHARED VARIABLE variavel AS logical INIT YES. DEFINE SHARED VARIABLE variavel AS logical INIT YES. DEFINE NEW GLOBAL SHARED VARIABLE variavel AS char NO-UNDO. DEFINE SHARED VARIABLE variavel AS char NO-UNDO. DEFINE VARIABLE variavel AS integer NO-UNDO EXTENT
15 3.3.2 Declaração de Buffers Auxiliares Um buffer é uma referência a uma tabela pertencente a um banco de dados. Qualquer programa escrito em Progress sempre tem, por default, tantos buffers prédefinidos quantas são as tabelas pertencentes aos bancos aos quais está conectado o client Progress um para cada tabela. Se temos uma tabela de nome CLIENTE em um banco ao qual estamos conectados, então temos o buffer CLIENTE pré-definido para uso. É por meio de buffers de tabelas que acessamos estas e seus atributos (também conhecidos por campos). Há situações, contudo, que nos obrigam a definir buffers auxiliares. Pode-se, por exemplo, precisar de dois indicadores econômicos simultaneamente para compará-los. Problemas de hierarquias (auto-relacionamentos) exigem buffers auxiliares. Sintaxe resumida (maiores detalhes Help Progress): DEFINE BUFFER <nome-buffer> FOR <nome-tabela>. Exemplos: DEFINE BUFFER bf-cargo FOR cargo. DEFINE NEW SHARED BUFFER bf-funcao FOR funcao. DEFINE SHARED BUFFER bf-funcao FOR funcao Tabelas Temporárias Pode-se definir uma tabela pelo tempo de vida de um programa, ou mesmo para trocar informações entre programas. Para tal, deve-se definir a mesma. A sintaxe para definição de temp-tables é bastante abrangente, permitindo que se defina tabelas auxiliares com todas as características encontradas em tabelas criadas via Dicionário de Dados. Exemplos: DEFINE TEMP-TABLE tt-funcao LIKE FUNCAO. DEFINE NEW GLOBAL SHARED TEMP-TABLE tt-tarefa NO-UNDO FIELD tarefa-cod LIKE TAREFA.TAREFA-COD FIELD t-deno LIKE TAREFA.DENOMINA FIELD funcao-cod LIKE FUNCAO.FUNCAO-COD FIELD f-deno LIKE FUNCAO.DENOMINA FIELD status AS CHAR INDEX xpkindprim IS PRIMARY UNIQUE tarefa-cod Procedures e Funções Muitas vezes, deseja-se executar a mesma porção de código em mais de um lugar de nosso programa, ou mesmo em mais de um programa. Um exemplo típico são as regras de negócio que regem uma aplicação. Solução: abrir o programa, copiar a porção de interesse e colar no lugar onde a queremos, certo? Correto, se você gosta de passar trabalho. Suponha que a regra de negócio mude. Você só terá que abrir todos os programas que contém aquela porção de código e alterá-los 15
16 O melhor é isolar esta lógica num único lugar, executando-a de onde quiser. Se a Equipe Econômica resolve de um dia para o outro alterar algumas regras, e isso afeta um programa seu, basta alterar um lugar. Progress oferece dois mecanismos para auxiliar nesse processo: procedures e funções (há um terceiro mecanismo, que será discutido posteriormente). Digite, no Procedure Editor, Procedure Statement. Selecione esta expressão e acompanhe a sintaxe. Agora apague a expressão anterior e digite, no Procedure Editor, Function Statement. Selecione esta expressão e acompanhe a sintaxe Parâmetros Procedures e funções podem receber parâmetros (Input Parameters) e devolver resultados através dos mesmos parâmetros pelos quais recebem (Output Parameters) ou por outros parâmetros (Input-Output Parameters). Da mesma forma que variáveis comuns, parâmetros tem um tipo (que pode ser herdado de um campo de tabela ou definido a partir dos tipos básicos). Procedures e funções diferem na sintaxe como são definidos os parâmetros. Exemplo de definição de parâmetros para procedures PROCEDURE EXEMPLO : DEFINE INPUT PARAMETER parametro AS integer NO- UNDO. DEFINE OUTPUT PARAMETER parametro LIKE Tabela.Campo NO- UNDO. DEFINE INPUT-OUTPUT PARAMETER parametro LIKE Tabela.Campo NO- UNDO. <corpo da procedure> END PROCEDURE. Exemplo de definição de parâmetros para funções FUNCTION EXEMPLO RETURNS decimal (INPUT vp-a as integer, OUTPUT vp-b as character, INPUT-OUTPUT vp-c as logical). <corpo da função> RETURN <expressão que resulte decimal>. END FUNCTION. 3.4 Exercícios 1) Abra o procedure editor. Crie um cabecalho com as seguintes informações, utilizando comentários (cada informação deve iniciar nova linha): Autor; Data; Hora; Descrição (pode ocupar mais de uma linha); Verifique a sintaxe do programa; Salve no diretório c:\prow82a\curso\exercicio com o nome p-c03x01.p. Feche o programa. 16
17 2) Serão necessárias, para o próximo programa: Três variáveis do tipo integer; Uma variável do tipo decimal; Uma variável do tipo logical; Uma procedure, de nome p-baskara; Uma função, de nome f-baskara, que retorna um valor decimal. Defina-as. Ao concluir, verifique a sintaxe. 3) Selecione e copie o que foi feito no exercício anterior. 4) Abra o programa feito no exercício 1, e logo abaixo dos comentários, cole o que foi copiado no exercício anterior. Verifique a sintaxe. Salve as alterações. 5) Defina três parâmetros de entrada para a procedure p-baskara, todos do tipo inteiro, e um parâmetro de saída, do tipo decimal, respectivamente com os seguintes nomes: vp-a, vp-b, vp-c e vp-raiz. 6) Abra, em outro buffer, o arquivo baskara-p.p e copie seu conteúdo. Feche este buffer e retorne a seu programa. Cole o que foi copiado no corpo da procedure p-baskara (logo após os parâmetros da mesma). Verifique a sintaxe. Salve as alterações. 7) Defina três parâmetros de entrada para a função f-baskara, todos do tipo inteiro, respectivamente com os seguintes nomes: vp-a, vp-b, vp-c. 8) Abra, em outro buffer, o arquivo baskara-f.p e copie seu conteúdo. Feche este buffer e retorne a seu programa. Cole o que foi copiado no corpo da procedure f-baskara. Verifique a sintaxe. Salve as alterações. 9) Abra, em outro buffer, o arquivo baskara-exec.p e copie seu conteúdo. Feche este buffer e retorne a seu programa. Cole o que foi copiado duas linhas abaixo da função. Verifique a sintaxe. Salve as alterações. Execute o programa. 17
18 3.5 Comandos Básicos Comandos de Atribuição Assign <variavel> = <expressao>. Atribui a <variavel> o resultado de <expressao> Comandos de Entrada/Saída Há varios comandos em Progress que podem ser utilizados para efetuar operações de entrada/saída. Os principais: Display Update Put Message Comandos de bloco e de repetição End Indica o fim de um bloco iniciado com um PROCEDURE, FUNCTION, DO, REPEAT, CASE ou FOR EACH. No caso de procedures e funções, pode-se encerrar também com End Procedure. ou End Function.. Do Basicamente, agrupa comandos em um único bloco. O bloco aberto por este comando deve ser encerrado por um comando End. Exemplo: c:\prow82a\curso\exemplos\p-c03e01.p Repeat Inicia um bloco de comandos que são processados repetidamente, até que uma condição de saída definida ocorra. Exemplo: c:\ Prow82a\Curso\Exemplos\p-c03e02.p Comandos Condicionais (ou de Controle de Fluxo) if <condicao> then <bloco/comando> else <bloco/comando> A execução de um bloco fica condicionada a uma expressão. Exemplo: c:\prow82a\curso\exemplos\p-c03e01.p case Quando, a partir da avaliação de uma expressão, tem-se múltiplas possibilidades de execução (e não somente duas, como no comando if ), utiliza-se o comando case. Obs.: O comando suporta dois encerramentos de bloco: End. e End Case.. Exemplo: c:\prow82a\curso\exemplos\p-c03e03.p Comandos para manipulação de registros Create <buffer>. Cria um novo registro na tabela associada ao buffer. 18
19 Delete <buffer>. Exclui um registro da tabela associada ao buffer. Find <first/last/next/prev> <buffer> where <selecao> <lock>. Busca um registro na tabela especificada com o filtro de seleção informado. Exemplo: c:\prow82a\curso\exemplos\p-c03e04.p For Junto com o comando find, é um dos comandos mais importantes e poderosos do Progress 4GL. É uma instrução de bloco que permite percorrer uma tabela inteira. Se o registro atende à seleção imposta, o bloco interno ao comando é executado, estando o registro selecionado disponível para consulta, exclusão, alteração, etc. Exemplos c:\prow82a\curso\exemplos\p-c03e05.p c:\prow82a\curso\exemplos\p-c03e06.p Querys Querys são outra forma oferecida pelo Progress para se trabalhar com tabelas. As diferenças básicas entre estas e o comando For são: querys não delimitam um bloco; a abertura e o fechamento de uma query são comandos independentes, que não delimitam uma transação; uma query aberta não significa um registro disponível para manipulação. Deve ser especificado à query que se deseja um registro (por exemplo, via comando Get). Define query Define uma query a ser utilizada. Open query Abre uma query. Esta pode ter sido previamente definida, ou sua definição pode fazer parte deste comando. Close query Fecha uma query previamente aberta. Exemplo: c:\prow82a\curso\exemplos\p-c03e07.p Comandos de quebra de bloco São comandos utilizados quando se deseja evitar que um bloco execute até o fim. Next Todos os comandos até o fim do bloco são desprezados. Se faz parte de uma iteração, segue imediatamente para a próxima iteração. Leave Abandona o bloco, mesmo que se trate de um bloco iterativo. As iterações seguintes não são efetuadas. Return Utilizado em procedures e funções. Quando encontrado, força o fim da execução da rotina. No caso de ser uma função, uma expressão a acompanha. 19
20 Exemplos: Função Procedure c:\prow82a\curso\exercicio\p-c03x01.p c:\prow82a\curso\exercicio\p-c03r01.p c:\prow82a\curso\exemplos\p-c03e08.p Comando para Execução de Procedures e Programas Externos Quit Encerra a execução da aplicação, retornando ao programa chamador, ou ao sistema operacional (se o programa está executando diretamente sobre o client runtime). RUN Utilizado para executar internal procedures (que fazem parte do mesmo programa de onde a chamada é feita), external procedures (procedures de programas externos) ou até outros programas. Exemplos: Internal Procedures c:\prow82a\curso\exemplos\pc03e08.p External Procedures c:\prow82a\curso\exemplos\pc03e09.p Programas Externos c:\prow82a\curso\exemplos\pc03e10.p 3.6 Funções mais utilizadas Para conversão de tipos c:\prow82a\curso\exemplos\pc03e14.p Date(string) Date(mês,dia,ano) Integer Decimal String Rowid Sobre registros c:\prow82a\curso\exemplos\pc03e15.p Available Can-find Sobre listas c:\prow82a\curso\exemplos\pc03e16.p Entry Num-entries Lookup Substring Index Replace Sobre strings Begins Matches Contains Função Condicional If Then Else 20
21 3.7 Exercícios 1) Exibir o conteúdo de todos os registros da tabela Customer. 2) Exibir o conteúdo de todos os registros da tabela State. 3) Executar as seguintes operações sobre a tabela Customer : criar um novo registro, atribuindo valores a seus campos de forma consistente; exibir o conteúdo do registro criado; alterar o registro criado; exibir o conteúdo do registro alterado; achar o último registro da tabela e apresentar uma mensagem ao usuário perguntando se ele deseja excluí-la ou não. Caso o usuário queira, proceder à exclusão do registro. 4) Executar as seguintes operações sobre a tabela Order : procurar um registro na tabela de tal forma que não seja encontrado; ao invés de retornar uma mensagem de erro do Progress, programar uma mensagem de erro para mandar ao usuário, indicando a inexistência do registro. 21
22 3.8 Pré-processamento Exemplos: c:\prow82a\curso\exemplos\p-c03e11.p c:\prow82a\curso\exemplos\p-c03e12.p c:\prow82a\curso\exemplos\p-c03e13.p Diretivas &GLOBAL-DEFINE &SCOPED-DEFINE &UNDEFINE &IF &THEN &ELSEIF &ELSE &ENDIF Funções DEFINED (preprocessor) 3.9 Exercício 1) A tabela Customer possui um campo que determina o limite de crédito que um cliente possui junto a nossa empresa Credit-Limit. Suas tarefas são: mostrar em tela os campos Cust-num, Name, Contact e Phone de todas as ocorrências da tabela Customer que possuem limite de crédito maior que um valor qualquer, sendo que esse valor será definido em um preprocessor (ou seja, no filtro a ser utilizado sobre a tabela, deve-se usar uma referência ao preprocessor, e não o valor fixo). Inicialmente, fixe o valor em $40.000, Includes Pode-se agregar a um programa trechos de código escritos porções espalhadas por vários arquivos. Para tal, basta escrever o trecho de código que se deseja incluir no programa, salvá-lo e, no programa que em se deseja utilizá-lo, fazer referência a ele usando a seguinte sintaxe: {<nome-do-include> [<parametro-1> <parametro-n>]} Os parâmetros são opcionais (sua existência é determinada pelo programador e pelo progblema que se está resolvendo). Dentro do include, para fazer refeência a um parâmetro, basta usar, entre chaves, o número de ordem do parâmetro desejado ( {1}, {2} ). Se utilizado para bibliotecas de procedures, deve-se ter em mente as seguintes diferenças entre executar uma procedure externa e utilizar um include: o código-objeto gerado pelo Progress incorpora todo o código do include, em tempo de compilação (se o programa não foi previamente compilado - execução); executar procedures e programas externos exige passagem de parâmetros o programa ou a procedure externa não conhece as estruturas internas do programa chamador (o mesmo não vale para internal procedures). Exemplo: c:\prow82a\curso\exemplos\p-c03e12.p c:\prow82a\curso\exemplos\p-c03e13.p 22
23 4 UIB User Interface Builder O User Interface Builder é a ferramenta de programação visual do ambiente de desenvolvimento Progress. O código gerado pelo UIB apresenta as seguintes seções: Definitions Main Block Triggers Procedures Functions 4.1 User Interface Builder Novo Objeto Executar um programa Edição de Código para o Widget Ativo na Tela Propriedades do Objeto Selecionado 23
24 4.2 Palette de Componentes Pointer Frame Legenda Componentes de Acesso a Banco Widgets Componentes OCX Smarts 24
25 5 Suporte a Interface Gráfica embutida em Progress 4GL Progress 4GL implementa um enfoque orientado a objetos em vários pontos distintos de sua ferramenta. A começar por seus widgets. Cada widget possui um conjunto de atributos e métodos de instância comuns à sua classe (um combo-box ou um toggle-box em nossa aplicação, nada mais são que instâncias de suas respectivas classes, Combo-Box e Toggle-Box). O valor contido em um atributo pode diferir entre duas instâncias de uma mesma classe, mas o acesso a este atributo é feito da mesma maneira em ambos. A sintaxe utilizada para referência a atributos e métodos é praticamente idêntica. Atributos < widget >:< atributo > Métodos < widget >:< método(<arg1>,,<argn>) > 5.1 Atributos Básicos c:\prow82a\curso\exemplos\w-c05e17.w Visible Controla se o widget está ou não visível. Sensitive Controla se o widget está ou não habilitado. Screen-value Contém o valor em tela de um componente (contido no screen buffer). Não necessariamente é o valor real armazenado no widget. Checked O widget está ou não selecionado. Aplicável a toggles e e itens de menu toggle. Read-only Só aplicável aos widgets Browse, coluna de Browse, Editor e Menu-item. List-items Num-items 5.2 Exercícios 5.3 Métodos Básicos add-first / add-last (Combo-box) delete 5.4 Diretivas de Pré-processamento mais utilizadas {&SELF-NAME} {&FRAME-NAME} {&BROWSE-NAME} 25
26 {&OPEN-QUERY-{&BROWSE-NAME}} {&DISPLAYED-FIELDS} {&ENABLED-FIELDS} 5.5 Exercícios 26
27 6 Usando Progress ACE 6.1 Apresentando o ACE O ACE (Application Component Environment) é a ferramenta que permite a construção de aplicações na versão 8. Ela acrescenta ao UIB diversas características como o SMARTOBJECT palette, Wizards, Cue Cards, Progress Advisor e novos Include files. 6.2 Apresentando o ADM O ADM (Application Development Model) é um novo método para desenhar e construir aplicações. Ela possibilita a rápida construção de aplicações a partir do reuso de objetos e da fácil manutenção de componentes e, consequentemente, de sistemas. 6.3 SmartObjects SmartWindow (*) SmartFrame (*) SmartDialog (*) SmartFolder SmartPanel (navigation) SmartPanel (update) SmartQuery SmartBrowser SmartViewer w-nomearq.w f-nomearq.w d-nomearq.w p-nomearq.w p-nomearq.w q-nomearq.w b-nomearq.w v-nomearq.w (*) Object Containers Reuso de código através de referência Todos os SmartObjects são instâncias run-time persistentes de programas Progress. É desnecessário copiar fisicamente o código fonte 4GL do objeto para um SmartContainer. Um desenvolvedor pode dar manutenção a todas as instâncias de um determinado SmartObject alterando um único arquivo. Este ganho em manutenção é possível porque o SmartContainer apenas referencia os objetos que contém. 6.4 Exercícios: 1) Desenvolver um submódulo de pesquisa seguindo os passos abaixo: criar um SmartFrame; sem usar o recurso de SmartFolders, criar três browser, colocando-os em três páginas distintas; criar um radio-set com os valores Customer, Order e Salesrep ; criar um fill-in; 27
28 criar um botão para pesquisa; programar a tela de pesquisa de tal forma que, ao selecionar um dos valores do radio-set, é ativada a página disponibilizando o browse correspondente. Ao pressionar o botão de disparo da pesquisa, deve ser aberta a query de acordo com o valor informado no fill-in. 2) Desenvolver um submódulo que compreenda os seguindes cadastros, seguindo os procedimentos correspondentes: Cadastro de Customer - crie um SmartViewer; - neste SmartViewer, crie um fill-in; - salve o SmartViewer; - crie uma SmartWindow, instanciando o SmartViewer anteriormente criado nesta; - nesta SmartWindow, crie botões para as operações que você imagina possíveis sobre um cadastro; - programe a tela de cadastro de Customer de tal forma que seja efetuada validação para evitar duplicação de nomes na base de dados e seja ajustada a interface* de acordo com a operação que está sendo executada. Cadastro de Order - crie uma SmartViewer; - neste SmartViewer, crie um combo-box e um fill-in; - salve o SmartViewer; - crie uma SmartWindow, instanciando o SmartViewer anteriormente criado nesta; - nesta SmartWindow, crie botões para as operações que você imagina possíveis sobre um cadastro; - programe a tela de cadastro de Order de tal forma que o combo-box traga para o usuário a lista de todos os Customers. Tal como o cadastro de Customer, deve ser feita validação quanto à duplicação de nomes na base de dados, bem como o ajuste de interface* de acordo com a operação que está sendo executada. Cadastro de Invoice - crie um SmartViewer; - neste SmartViewer, crie um fill-in e um editor; - salve o SmartViewer; - crie uma SmartWindow, instanciando o SmartViewer anteriormente criado nesta; - programe a tela de tal forma que o usuário informe a Data (Invoice-Date) e o total pago (Total-Paid). Assim como nos dois cadastros anteriores, faz-se necessária a validação de nomes e o ajuste de interface* de acordo com a operação. * validação dinâmica 3) De acordo com os procedimentos, desenvolver um submódulo para atribuir as tarefas, anteriormente cadastradas, às suas funções crie uma SmartWindow; - crie um SmartBrowser; - crie um botão; - o primeiro browse deve trazer todos os cargos, enquanto o segundo deve trazer as funções do cargo selecionado anteriormente; - SmartBrowser deve ser carregado com todas as funções cadastradas no sistema Criar uma SmartDialog; - crie dois browsers; - crie dois botões; - crie um fill-in; - ao ser pressionado o botão da tela anterior é chamada a SmartDialog; - o fill-in deve ser preenchido com a denominação da função escolhida na SmartWindow; - o primeiro browse deve ser carregado com todas as tarefas cadastradas no sistema, enquanto que o segundo deve trazer todas as tarefas executadas por aquela função; - os botões devem permitir alterar o domínio de tarefas por função; 28
29 - devem ser programadas validações para impedir atribuir tarefas já existentes. 29
30 7 Links Links. Ao colocar SmartObjects em um Container você deve interligá-los através de 7.1 Criando um Master Object a partir de um Template A criação de um Master Object pode ter diversas razões: tirar proveito da tecnologia SmartObjects; diminuir a complexidade de um programa, criando-se programas menores e integrando-os dividir para conquistar ; a mesma lógica é utilizada em tantos programas/aplicações quanto se queira. Obs. A alteração de um Master Object afeta todos os Containers que o possuam encapsulado. 7.2 Definindo Tabelas Externas O que são / para quê servem É possível, para SmartBrowsers e SmartQueries, definir uma ou mais tabelas externas. A utilidade vem do que segue: Consultas a várias tabelas em uma mesma consulta são mais pesadas que consultas a uma tabela em uma consulta; 30
31 Com este mecanismo, pode-se encadear consultas. O registro lido de uma consulta pode ser utilizado para join em outra. Para definir tabelas externas, clique sobre a opção Procedure Properties e adicione o nome das tabelas externas à sua query. Exemplo: p:\curso82a\exemplos\f-c05e19.w Exercício 1) Adicione ao exemplo um detalhe de pedidos de cliente (Order of Customer). 7.3 Organizando Masters em Diretórios Existe um arquivo chamado Smart.cst (geralmente contido na pasta \dlc\src\template\) que contém as configurações dos objetos contidos na palette. Para alterar o caminho de busca destes objetos altere a linha DIRECTORY-LIST. #SmartBrowser &Default UP-IMAGE-FILE adeicon/wp_up 28,196 DOWN-IMAGE-FILE adeicon/wp_down 28,196 LABEL SmartBro&wser DB-CONNECT NEW-TEMPLATE src/adm/template/browser.w DIRECTORY-LIST.,adm/samples FILTER b-*.*,b-*.w,b-*.r,*.* TITLE Choose SmartBrowser Atualize na palette, através da opção Menu Use Custom..., com o nome do novo arquivo padrão a ser utilizado. 31
32 7.4 O que é um link? Um link é uma conexão entre dois SmartObjects que define como eles interagem e quais os tipos de mensagens eles podem trocar. Tipo de Link Record TableIO Navigation O que ele envia RowId de um registro Mensagem para Inclusão, Alteração e Exclusão de registro Mensagem para ir para o próximo registro, anterior, primeiro ou último registro 7.5 Exercícios 1) Coloque os links necessários. < < > > 1.1 Clientes 1.2 < < > > Clientes Detalhe de Clientes 1.3 Browse Clientes < < > > 32
33 Detalhe de Clientes 1.4 < < > > Clientes Add Update Delete Reset 7.6 Tabela de Links Possíveis SOURCE Link Type Targets Possíveis SmartPanel Navigation Navigation SmartQuery SmartPanel Update TableIO SmartViewer SmartBrowser SmartPanel Transaction TableIO SmartViewer SmartBrowser SmartQuery SmartBrowser Record SmartViewer SmartBrowser SmartQuery SmartViewer Record SmartViewer SmartBrowser SmartQuery SmartQuery Record SmartViewer SmartBrowser SmartQuery Qualquer SmartObject State Qualquer SmartObject 33
34 7.7 Progress Advisor 7.8 Estratégias de links para múltiplos Record Targets Alternativa 1 Alternativa 2 Q Q R R R R Observação: o que ocorre no exemplo abaixo? Q R R 34
35 7.9 Definição de links no UIB Advisor Link Editor 35
36 8 Paginando uma Aplicação 8.1 Paginando uma Aplicação Para paginar uma window deve-se utilizar o seletor de páginas (ou o item Edit - Goto Page do menu). Duplo Click Características da paginação: Objetos colocados na página 0 são sempre visíveis Procedure oferecida pelo ADM para mudança de página: RUN Select-Page(n). SmartFolders São widgets que controlam automaticamente as mudanças de página (quando linkadas ao seu container). É possível, com um pouco de programação, controlar a mudança de página utilizando outros widgets (por exemplo, radio-sets). O SmartFolder apenas oferece uma maneira simples, rápida e elegante de fazê-lo. 36
37 Exemplo de utilização de SmartFolder: 1. Crie uma Window 2. Insira os objetos desejados na página 0 3. Crie um SmartFolder 4. Especifique os labels das páginas 5. Instancie os objetos em suas páginas, conforme desejado. 37
38 8.2 Links 8.3 Exercícios: 1) Altere o programa-exemplo c:\prow82a\curso\exemplos\w-c08e20.w, de modo que a mudança de página seja acionada por botões, e não mais por um SmartFolder (o qual deve ser excluído). 2) Monte um módulo de uma aplicação seguindo os seguintes procedimentos: crie uma SmartWindow; crie um SmartBrowser; instancie o SmartBrowser na página 0 da SmartWindow; crie, nesta SmartWindow, dois botões; crie um SmartViewer; instancie o SmartViewer na página 1 da SmartWindow; crie um segundo SmartBrowser; instancie o SmartBrowser na página 2 da Smart Window; ao ser executada a SmartWindow, o browse principal deverá ser carregado com todas as funções do sistema, de tal forma que o SmartViewer traga os dados correspondentes dos atributos da função selecionada e o SmartBrowser da página 2 seja carregado com todas as tarefas executadas por alguém que exerce a função. 3) Desenvolver um módulo semelhente ao solicitado no exercício 1, usando, porém, folders ao invés de botões. 38
39 8.4 Persistent Procedures Embora executada de maneira diferente, uma persistent procedure é semelhante a outra procedure qualquer. Quando uma persistent procedure é executada, esta fica residente em memória até que seja explicitamente excluída. Exemplo: Suponha que seja preciso executar duas SmartWindows ao mesmo tempo. Ao selecionar um registro na primeira SmartWindow é possível visualizar, de maneira sincronizada, dados correspondentes na segunda SmartWindow. 39
40 9 Enviando Mensagens (Messaging) 9.1 Messaging É o mecanismo pelo qual SmartObjects executam internal procedures de outro SmartObject. Exemplo: Toda SmartQuery sabe como enviar um registro para um SmartViewer. Todo SmartViewer sabe como receber e exibir o registro informado pela SmartQuery. SmartViewer Internal Procedures 1 SmartQuery Internal Procedures adm-display-fields 2 adm-open-query adm-row-available send-records 40
41 9.2 Messaging e tipo de Links Uma maneira de identificar uma internal procedure do ADM é considerar como cada SmartObject na comunicação através de links. O tipo de link determina quais mensagens o source e o target objects esperam para proceder à troca de informações e, posteriormente, executarem suas funções. A tabela a seguir apresenta os tipos de links que cada SmartObject suporta, e se este Smart pode ser source, target ou ambos para cada link. SmartObject SmartContainer SmartQuery SmartBrowser SmartViewer Navigation SmartPanel Update SmartPanel SmartFolder Tipos de Links Container Source Container Target Page(n) Source Page Target Container Target Record Source Record Target Navigation Target Container Target Record Source Record Target TableIO Target Container Target Record Target Record Source TableIO Target Container Target Navigation Source Container Target TableIO Source Container Target Page Source 41
42 9.3 ADM messaging para cada tipo de link Para um determinado tipo de link, um source object espera poder executar um conjunto específico de internal procedures de um target object. Da mesma forma o target object também espera poder executar um conjunto de internal procedures do object source. Todo SmartObject possui um conjunto default de procedures que permite esta troca de mensagens. Exemplos: 1) Um container pode criar e destruir os SmartObjects no Container, e instanciar os SmartObjects na sua devida posição. Container Source e Target Objects possuem as seguintes internal procedures: Container Source Adm-create-objects Init-objects Adm-destroy Container Target Set-position Set-size Adm-destroy Adm-exit 2) Um Container é capaz de gerenciar seu conjunto de páginas. SmartObjects em cada página são linkados ao Container com o link página(n). Container Source Select-Page Adm-change-page Container Target Adm-hide Adm-view Adm-create-objects 9.4 Event Procedure e Method Procedure Cada SmartObject possui uma série de include files. Alguns são responsáveis pela comunicação (messaging), e estão localizados na divisão Internal Procedure do UIB. Existem dois tipos de Internal Procedures nos SmartObject include files: Event Procedures e Method Procedures Event procedures Exemplo: o SmartQuery, através da procedure adm-row-available, pergunta ao SmartViewer sobre a existência de um novo registro. Adm-row-available é uma event procedure. 42
43 9.4.2 Method procedures Exemplo: o SmartViewer, através da method procedure do SmartQuery, pergunta quando é preciso receber um novo registro. Send-records é um method procedure Comparação entre Event procedure e Method procedure Event Procedure Method Procedure Inicia sempre com adm Não possui padrão para nomes Pode ser alterada Não pode ser alterada É executada utilizando Dispatch ou Notify É chamada utilizando o comando Run Não pode ser definido nenhum parâmetro Pode ser especificada uma lista de parâmetros 43
44 9.4.4 Como trabalhar com Event Procedure Exitem duas formas de forcar a execução de Event Procedures: RUN DISPATCH RUN NOTIFY Dispatch Sintaxe do comando: RUN dispatch [IN handle] ( base-procedure-name ). Onde: - Handle: nome do SmartObject. - Base-procedure-name: nome do evento sem o prefixo adm. Exemplo: RUN DISPATCH IN v-cli01 ( display-fields ). Início RUN dispatch ("display-fields"). Existe "local-display-fields"? Não Sim Executa versão local Existe "adm-display-fields"? Não Sim Executa versão adm Fim 44
45 Notify Sintaxe do comando: RUN dispatch [IN handle] ( base-procedure-name [,link-types] ). Onde: - Handle: o nome do SmartObject. - Base-procedure-name: o nome do evento sem o prefixo adm. - Link types: uma lista de tipos de links para os quais a mensagem é enviada. Exemplo: RUN NOTIFY IN this-procedure ( row-available ). Início RUN notify ("base-procedure,link-type"). Existe outro target object para este tipo de link? Não Fim Sim Run dispatch IN target-object ("base-procedure"). 45
46 9.4.5 Como Alterar Event Procedures? no Section Editor, após selecionar Procedures, clique no botão New ; escolha Local ADM Event ; 46
47 selecione o Event que você precisa alterar; escreva seu código. 47
48 Os exemplos a seguir baseiam-se em uma tela de cadastro para as tabelas Customer, Order e Invoice. À medida que avançarmos nos exemplos, acresceremos o que aprendermos ao programa abaixo descrito. Salve todos os objetos criados em c:\prow82a\curso\exercicio. (a) crie uma SmartWindow. Salve-a com o nome w-c09e23.w ; (b) crie um SmartFolder nesta janela, com os seguintes tab folders: Customer, Order e Invoice. Confirme a criação do link Container ao Advisor; (c) crie três SmartQuerys, uma para cada tabela. Salve-as, respectivamente, com os seguintes nomes: q-c09e23cust.w, q-c09e23orde.w e qc09e23invo.w ; (d) crie dois SmartViewers, com os seguintes campos para cada tabela: Customer: Name, Address, City, State, Country, Postal-Code, Contact, Phone; Order: Cust-num, Ordered, Promised, Shipped, Instructions. Salve-os, respectivamente, com os seguintes nomes: v-c09e23cust.w e vc09e23orde.w ; (e) crie um SmartPanel Navigation e um SmartPanel Update na primeira e segunda páginas do SmartFolder. Dê a estes SmartPanels os seguintes nomes: Customer-Navico, Order-Navico, Customer-Updsav e Order-Updsav. 1. Criação de uma alert-box para confirmar a exclusão de um registro da tabela Customer. Defina a procedure local-delete-record, de modo que esta mostre uma mensagem perguntando ao usuário se ele realmente deseja excluir o registro antes de efetivamente excluí-lo (observe que há uma divisão em toda procedure do ADM à qual deseje-se acrescer código antes da execução do procedimento default do ADM, e após a execução do mesmo). A seguir é listado o que ocorre quando o usuário pressiona o botão Delete. (a) o trigger do botão Delete do SmartPanel Update executa NOTIFY ( deleterecord ) ; (b) o viewer, estando linkado ao SmartPanel Update, executa DISPATCH delete-record ; (c) DISPATCH encontra e executa a procedure local-delete-record. Nosso código é executado; (d) ao ser questionado quanto à exclusão do registro, se o usuário escolher Sim, a procedure adm-delete-record é executada e exclui o registro. Se o usuário escolher Não, a procedure é abortada. 48
49 2. Cadastrar um novo Order (Pedido) para um Customer (Cliente). crie um SmartBrowser sobre a tabela Invoice, com as seguintes colunas: Custnum, Name, Contact e Phone ; salve este SmartBrowser com o nome b-c09e23orde.w. A seguir é listado o que ocorre quando da operação desta tela: (a) o usuário pressiona o botão Add ; (b) o ADM limpa os campos do SmartViewer; (c) o usuário entra com os dados do novo registro e pressiona Save ; (d) o viewer, como está linkado ao SmartPanel Update, executa DISPATCH assign-record, o qual executa a procedure local-assign-record ; 49
50 (e) a procedure local-assign-record primeiro chama adm-assign-record. O código do programador é executado a seguir; (f) o controle retorna à tela. 3. Ordenar registros de uma query de n maneiras. crie um SmartBrowser sobre a tabela Invoice, com as seguintes colunas: Custnum, Invoice-num, Ship-Charge, Amount, Invoice-Date e Total-Paid ; adicione um radio-set horizontal a este, com o label Ordenar por, e as seguintes opções: Customer e Invoice ; salve este SmartBrowser com o nome b-c09e23invo.w ; crie, no SmartBrowser, uma procedure local-open-query para reabrir a query de acordo com a seleção do usuário; crie, no SmartBrowser, uma procedure local-initialize para inicializar o valor do radio-set e, se preciso, inicializar outros valores e/ou procedimentos. 50
51 A seguir é listado o que ocorre quando da operação desta tela: (a) a SmartWindow executa o SmartBrowser; (b) o SmartBrowser executa sua própria local-initialize e, simultaneamente, o código escrito nesta procedure é executado; (c) o SmartBrowser executa sua própria local-open-query e, simultaneamente, a query é aberta de acordo com as condições especificadas nesta procedure; (d) o SmartBrowser executa a procedure display-fields para mostrar os dados no browse. 51
52 9.5 Mapa de eventos Os diagramas abaixo representam os principais eventos utilizados pelo ADM. Com o auxílio destes diagramas você pode definir onde fazer as alterações necessárias em sua aplicação. As linhas pontilhadas representam uma execução condicional. 1. O diagrama que segue representa diversas seqüências de eventos que ocorrem durante a inicialização de um SmartObject. adm-initialize adm-create-objects adm-enable adm -open-query adm-view adm-row-available Adm-initialize é executado quando a aplicação é executada. Ele chama: adm-create-objects para colocar e rodar os SmartObjects no Frame adm-enable para habilitar os objetos (se não estiverem DISABLE-ON-INIT) adm-view para mostrar os objetos (se não forem HIDE-ON-INIT) adm-open-query para abrir uma SmartQuery ou SmartBrowser adm-row-available para enviar o registro corrente para uma SmartQuery ou SmartBrowser, apenas se um registro estiver ativo. 2. Este diagrama representa eventos que ocorrem quando a aplicação é terminada. adm-exit in object local-exit in container 2. Adm-destroy in object 3. Adm-exit é o evento utilizado por um container para requisitar o fim da aplicação. O container passa para cada objeto uma destroy message. Para cada objeto os seguintes passos são realizados: Apaga o objeto (apaga a procedure persistente da memória); Remove todos os links definidos para o objeto; Executa a procedure disable_ui para o objeto. 52
53 3. Os próximos dois diagramas representam a seqüência de eventos que ocorrem durante uma troca de página em uma Window. Note que a única diferença entre admview-page e adm-select-page é que adm-view-page não oculta os objetos. adm-view-page adm-change-page adm-create-objects adm-view Adm-view-page chama adm-change-page para mostrar a nova página (sem ocultar a anterior antes). Caso for a primeira vez que a página for mostrada, ele chamará o evento adm-create-objects. Em seguida chama adm-view e mostra os objetos. Neste caso utilizando adm-select-page os objetos da página anterior serão ocultados antes de ser mostrada a próxima página. adm-select-page adm-hide adm-change-page adm-create-objects adm-view 4. Este diagrama representa a seqüência de eventos que ocorrem durante a navegação entre registros. adm-get-next adm-row-changed adm-get-first adm-get-prev adm-get-last adm-reposition-query adm-row-available adm-display-fields Os eventos get-next/first/prev/last e reposition-query chamam adm-rowchanged que notifica (notify) todos os objetos de destino (record target) que o registro foi trocado. 53
54 5. Os próximos diagramas representam os eventos utilizados quando ocorre a atualização de um registro adm-update-record adm-assign-record adm-end-update adm-current-changed adm-assign-statement adm-display-fields Adm-update-record chama os eventos na seguinte ordem: 1. adm-assign-record que chama: 2. adm-current-changed para encontrar o registro (find) e ver se ele não está sendo alterado/bloqueado por outro usuário (lock); 3. adm-assign-statement faz a gravação (assign); 4. adm-display-record mostra o registro (se for um novo registro); 5. adm-end-update reposiciona a query e notifica os outros objetos que o registro foi alterado. (continuação) Este diagrama representa mais seqüências de eventos que ocorrem durante a atualização de um registro adm-copy-record adm-add-record adm-delete-record adm-apply-entry adm-reset-record adm-end-update Os eventos copy, delete,add e reset chamam adm-apply-entry para mover o ponteiro para o registro corrente, seguido do comando add, copy, delete ou reset. A troca do registro corrente, faz com que sejam notificados todos os object targets que um novo registro está disponível para ser mostrado adm-row-changed adm-row-available adm-display-fields 54
55 10 SmartBrowser com Enable Column Para habilitarmos a edição de colunas em um browser, devemos alterar a opção enable da Column Editor (Propriedades da Query do Browser). Com o SmartBrowser possuindo Enable Columns podemos criar um link tipo TableIO entre um SmartBrowser e um SmartPanel de Update (p-updsav.r). 55
56 11 NEW-STATE METHOD O método new-state é chamado por meio de um comando RUN. Exemplo: Run new-state ( param ). Este comando envia uma mensagem para os Target Objects que possuem um link tipo State, com o número do handle e uma variável. Os Target Objects recebem a mensagem e executam a procedure State- Changed recebendo o parâmetro na variável p-state. T add del cancel State Procedure add-record Run new-state ( param ) Procedure state-changed case p-state: when 56
Arquitetura ADM - Introdução
Progress ACE 1 Detalhes O que é A. C. E.? Ambiente para construção de aplicações com o Progress 8. O que é A. D. M.? É uma estratégia para rápido desenvolvimento, reusabilidade e manutenção de objetos
PROGRESS ACE Ambiente Visual para Construção de Aplicativos. Tecnologia
PROGRESS ACE Ambiente Visual para Construção de Aplicativos Tecnologia 1 Agenda Conceitos Arquitetura Componentes Evolução do Modelo Benefícios Exemplos 2 Agenda Smart Objects SmartContainers SmartQuery
Progress DCA Desenvolvendo Aplicações Caracter Parte 1
Progress DCA Desenvolvendo Aplicações Caracter Parte 1 Tecnologia 1 Agenda Parte 1 Introdução ao Progress Movimentação dos Dados Manipulando os Dados Blocos Localizando Registros Variáveis Processamento
Progress DCA Desenvolvendo Aplicações Caracter Parte 3
Progress DCA Desenvolvendo Aplicações Caracter Parte 3 Tecnologia 1 Agenda Parte 1 Introdução ao Progress Movimentação dos Dados Manipulando os Dados Blocos Localizando Registros Variáveis Processamento
DDK GUI. Parte 4. Tecnologia
DDK GUI Parte 4 Tecnologia 1 Agenda 1 Parte Nomenclatura Estilos Cadastro Simples Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Complexo Alteração Pai x Filho Atualiza
DDK GUI. Parte 3. Tecnologia
DDK GUI Parte 3 Tecnologia 1 Agenda 1 Parte Nomenclatura Estilos Cadastro Simples Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Complexo Alteração Pai x Filho Atualiza
Progress ADE Application Development Environment. Tecnologia
Progress ADE Application Development Environment Tecnologia 1 Agenda Objetivos Processo Ambientação ADE Formas de Conexão Parâmetros da Seção Progress Programas Progress Laboratório Ambiente de Desenvolvimento
DDK GUI. Parte 5. Tecnologia
DDK GUI Parte 5 Tecnologia 1 Agenda 1 Parte Nomenclatura Estilos Cadastro Simples Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Complexo Alteração Pai x Filho Atualiza
Diferenças na Programação com Dataserver Oracle
Diferenças na Programação com Dataserver Introdução Existem diferenças entre DB e DB : O Desenvolvedor deve ter estas diferenças em mente quando está construindo seus programas. É preciso saber para quais
Boas Práticas de Programação
Boas Práticas de Programação Tópicos que veremos Práticas de programação Performance Práticas de programação Veremos: SHARE-LOCK e LOCKS de Registros TRANSAÇÕES LOCK de registro O PROGRESS suporta três
ThinTemplates Parte 2
ThinTemplates Parte 2 Tecnologia 1 Agenda Parte 1 Conceitos Características ThinMaintenance ThinMasterDetail Parte 2 ThinMaintenanceNoNavigation Parte 3 ThinWindow ThinReport 2 Agenda ThinFormation Parte
DDK GUI. Parte 2. Tecnologia
DDK GUI Parte 2 Tecnologia 1 Agenda 1 Parte Nomenclatura Estilos Cadastro Simples Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Complexo Alteração Pai x Filho Atualiza
Desenvolvimento de Programas utilizando DDK2000 ThinTemplates + DBOs. Sandro Kellermann de Carvalho Desenvolvedor Progress Acton
Desenvolvimento de Programas utilizando DDK2000 ThinTemplates + DBOs Sandro Kellermann de Carvalho Desenvolvedor Progress Acton O que é DDK2000? DDK2000 Datasul Development Kit; Conjunto de Templates padrões
ThinTemplates Parte 1
ThinTemplates Parte 1 Tecnologia 1 Agenda Parte 1 Conceitos Características ThinMaintenance Parte 2 ThinMaintenanceNoNavigation ThinZoom Parte 3 ThinWindow ThinReport 2 Agenda ThinFormation Parte 4 ThinFormationNoNavigation
Curso de Técnicas de Desenvolvimento Utilizando o UIB
Curso de Técnicas de Desenvolvimento Utilizando o UIB Objetivos definir padrões de desenvolvimento para programas de interface gatilhos de dicionário procedures internas widgets... diminuir tempo no desenvolvimento
Tabelas. Banco de Dados I MySQL
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de
TOTVS Utilização dos Aplicativos. Arquitetura e Instalação
Arquitetura e Instalação Sumário 1 Conceitos Básicos... 3 1.1 Objetivos do Treinamento... 3 1.2 TOTVS Application Server... 3 1.3 TOTVS SmartClient... 4 1.4 TOTVS DbAccess Monitor... 5 2 TOTVS SmartClient
TRABALHO FINAL 20 Pontos
Técnico em Informática Integrado ao Ensino Médio Algoritmos e Banco de Dados Profa. Cleiane Gonçalves Oliveira TRABALHO FINAL 20 Pontos O trabalho final deverá constar os três seguintes tipos de funções:
IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
S40. Primeiros Passos. DAELT - Profa. Mariana Antonia Aguiar Furucho e Prof. José da Silva Maia 1
S40 Primeiros Passos DAELT - Profa. Mariana Antonia Aguiar Furucho e Prof. José da Silva Maia 1 Tela inicial Iniciar o programa pelo ícone do S40 localizado no desktop. Não utilizar o link do menu Iniciar
IEC Banco de Dados I Aula 11 Técnicas de Programação SQL
IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: [email protected] Site: hjp://bdufam.wordpress.com Sumário
DISTRIBUINDO SUA APLICAÇÃO
DISTRIBUINDO SUA APLICAÇÃO Depois de pronta sua aplicação precisa ser distribuida para todos que querem ou precisam usá-la. Para usar a sua aplicação, o único requisito para o computador do cliente é que
Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido
Página 1 de 8 Excel > Macros Executar uma macro Mostrar tudo Há várias maneiras de executar uma macro no Microsoft Excel. Macro é uma ação ou um conjunto de ações que você pode usar para automatizar tarefas.
Técnicas de Uso de DBOs. Tecnologia
Técnicas de Uso de DBOs Tecnologia 1 Agenda Como Utilizar DBOs Métodos Básicos Considerações Gerais 2 Como Utilizar DBOs Como Utilizar DBOs 3 Como Utilizar DBOs Para utilizar um DBO devem ser seguidos
Banco de Dados I Introdução SQL
Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada
Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)
Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I) Entrar em/ go to: bd2:priv.di.fct.unl.pt:8090/apex Depois de entrar verá / after entering you will see: Depois
AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)
AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados
Departamento de Informática. Orientações básicas de como utilizar Equipamento Central (BULL)
Departamento de Informática Orientações básicas de como utilizar Equipamento Central (BULL) Acesso ao Sistema Para utilizar os sistemas BULL devemos primeiramente fazer a conexão com o sistema através
Tutorial de Instalação Integratto Contábil SQL. Integratto Contábil SQL
Tutorial de Instalação 1 Sumário Sumário... 2 Apresentação... 3 Configurações Iniciais... 4 Atenção... 4 Verifique o tamanho da base de dados... 4 Desabilite o Antivírus... 4 Crie uma pasta destinada ao
DDK GUI. Parte 8. Tecnologia
DDK GUI Parte 8 Tecnologia 1 Agenda 1 Parte Nomenclatura Estilos Cadastro Simples Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Complexo Alteração Pai x Filho Atualiza
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO. Profª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO 9º PERÍODO Profª Danielle Casillo Sistemas Supervisórios - Aula 2 2 Abra o Intouch Aparecerá o gerenciador de aplicativos, selecione
TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools
TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira e Daniela Claro Requisitos do ambiente Seguem abaixo os requisitos do ambiente.
Proficy Historian e SQL Linked Server
Proficy Historian e SQL Linked Server Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas
Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s
Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas
Utilização de Base de Dados com BluePlant. Sumário
Nota de Aplicação NAP154 Utilização de Base de Dados com BluePlant Sumário 1. Descrição... 2 2. Introdução... 2 3. Definição da Arquitetura de Referência... 2 3.1 Material Utilizado no Exemplo... 2 4.
No Windows há basicamente dois tipos de programas de usuário:
Introdução O que vem a ser um programa em C? Você talvez já tenha ouvido falar que um compilador é um programa ou ferramenta que transforma um programa fonte escrito em uma linguagem de programação de
TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools
TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira, Fabrício Alves e Daniela Claro Requisitos do ambiente Seguem abaixo os
Manual do Usuário. Sistema Controle de Caixa (versão gratuita)
Manual do Usuário Sistema Controle de Caixa (versão gratuita) - Lançamento de receitas, despesas, gastos, depósitos. - Controla um ou mais caixas, para pessoas ou empresas que necessitem separar saldos,
Painel Administrativo Westlock
Painel Administrativo Westlock Acesso ao Painel Administrativo Para acessar o Painel Administrativo da Westlock clique no endereço http://downloadcenter.westlockcontrolsmarcom.com/admin/ e preencha as
Guia Rápido. Elgin L42-DT Impressora de etiquetas.
Guia Rápido Elgin L42-DT Impressora de etiquetas. A Impressora térmica de Etiquetas Elgin L42-DT foi desenvolvida para reduzir custos, aumentar a eficiência e oferecer um design compacto. www.bztech.com.br
O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.
Introdução ao JasperReports O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source. Para efetuar o seu download acesse
Fundamentos Programação
Fundamentos Programação A programação de computadores não é difícil. Realmente só requer algo como: Aprender alguns conceitos gerais Ser cuidadoso, organizado e lógico Praticar até aprender a dominar a
Dicas de Performance. Objetivo
Dicas de Performance Objetivo Este documento tem como objetivo informar algumas dicas rápidas de performance que podem ser aplicadas no dia-a-dia. As regras são simples e seus efeitos, isoladamente, podem
Instalação Serviço de Acompanhamento de Projeto (PCSIS007) Sistema de Gestão da Qualidade
Página 1 de 37 Instalação Serviço de Acompanhamento de Projeto Página 2 de 37 ÍNDICE Atividades...3 1. Instalação...3 1.1. Instalação do framework4...3 1.2. Instalação do serviço de acompanhamento de projetos
TICs IVINHEMA-MS
SECRETARIA DE EDUCAÇÃO DO ESTADO DE MATO GROSSO DO SUL NUCLEO DE TECNOLOGIAS DE NOVA ANDRADINA-MS TECNOLOGIA NA EDUCAÇÃO: ENSINANDO E APRENDENDO COM AS TICS- 2010 CRIANDO SUA WIKISPACES Autor: Profº. Carlos
Código PD0017. Este documento ter por objetivo auxiliar o usuário no entendimento e utilização do Nexus.
PD07 1.OBJETIVO Este documento ter por objetivo auxiliar o no entendimento e utilização do Nexus. 2. VISÃO GERAL O Nexus é uma plataforma de integração de dados, onde é possível ligar a base de dados do
Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos
Laboratório 01 NetBeans
Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os
1 - Ambiente de desenvolvimento
Neste documento começa-se por apresentar o ambiente de desenvolvimento integrado do Visual Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e code editor window).
Guia de Usuário LEITOR MIFARE TWN4 NFC-P
Guia de Usuário LEITOR MIFARE TWN4 NFC-P DocRev1, 29 Abril, 2013 Acura Global Conteúdo 1 Introdução... 3 1.1 Requisitos de Sistema... 3 2 Utilização do Director... 4 2.1 Inicialização... 4 2.2 Log... 4
Introdução ao IDE Netbeans (Programação Java)
Universidade Federal do ABC Disciplina: Processamento da Informação (BC-05045) Assunto: Introdução ao IDE Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas
Manual de Instalação Emissor NF-e Advanced SAIB 3.10 Versão e posteriores
Manual de Instalação Emissor NF-e Advanced SAIB 3.10 Versão 3.1.0.2 e posteriores Orientações Iniciais Crie o diretório NFE-ADV na pasta?:\sof. O pacote de instalação do emissor NF-e Advanced SAIB, está
Aula 01 Microsoft Excel 2016
Aula 01 Microsoft Excel 2016 Prof. Claudio Benossi Prof. Rodrigo Achar Prof. Wagner Tufano São Paulo SP 2018 1 01 Informações sobre a interface Aprender a trabalhar com o Excel pode ser o divisor de águas
Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl
Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar gersonjpl / 0 Baixar este documento gratuitamente Para Adicionar um Form ao Projeto Execute os seguintes passos para adicionar um form
Sistema de Gestão de Recursos Humanos
Sistema de Gestão de Recursos Humanos Manual de Procedimentos I Módulo de Usuários Revisão: 07 Versão: 7.9.109 JM Soft Informática Março, 2015 Sumário MÓDULO DE USUÁRIOS... 4 1 MENU CADASTROS... 4 1.1
Visual Studio+SQL Server Express LocalDB ANTONIO LUIS
Visual Studio+SQL Server Express LocalDB ANTONIO LUIS OBJETIVO Mostrar o processo de criação de um banco de dados usando SQL Server Express LocalDB. Versão do SQL Server voltada pra desenvolvedores, e
Introdução ao C# com o Microsoft Visual Studio Community 2015
José Roberto Madureira Junior Adaní Cusin Sacilotti Adriana Rodrigues Reginaldo Sacilotti Introdução ao C# com o Microsoft Visual Studio Community 2015 Primeira Edição São Paulo 2016 Sumário 1 INTRODUÇÃO
Ambiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
É possível acessar o Fiery Remote Scan de sua área de trabalho ou de um aplicativo compatível com o TWAIN.
Fiery Remote Scan O Fiery Remote Scan permite gerenciar digitalizações no Servidor Fiery e na impressora a partir de um computador remoto. Você pode usar o Fiery Remote Scan para: Iniciar digitalizações
Oracle Database 10g: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer
MIDISUL (48) (48) CEP CNPJ:
Conteúdo Introdução... 3 Tópicos... 3 Abrangência... 3 1. Acessar o Consulti... 4 2. Selecionar os Módulos do Consulti... 5 3. Selecionar as Empresas no Consulti... 5 4. Executar os Programas do Consulti...
Laboratório Configuração do Backup e da Restauração de Dados no Windows 7 e no Vista
Laboratório Configuração do Backup e da Restauração de Dados no Windows 7 e no Vista Introdução Neste laboratório, você fará backup de dados. E também realizará uma restauração dos dados. Equipamentos
JOHN MAYER - PARADISE VALLEY
Sumário 1Exercícios de laboratórios Pentaho Report Designer...2 HACK48 Instando o Pentaho Report Designer...2 HACK49 Criando um relatório pelo Wizard no Pentaho Report Designer...2 HACK50 Criando um relatório
Vejamos agora as ferramentas mais utilizadas para criação de imagens:
Vejamos agora as ferramentas mais utilizadas para criação de imagens: Lápis: Apenas mantenha pressionado o botão do mouse sobre a área em branco, e arraste para desenhar. Pincel: Tem a mesma função do
Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E
Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E SISTEMA DE INFORMAÇÕES PARA O ENSINO (*) Módulo CONTROLE ACADÊMICO Guia de Referência
Crystal Reports - Gerando seus relatórios.
Crystal Reports - Gerando seus relatórios. O Crystal Reports é o gerador de relatórios do Visual Basic e com ele desenhamos os relatórios de nossos aplicativos. Embora possua um objeto chamado Printer
Conceitos de Sistemas de Banco de Dados INE 5323
Conceitos de Sistemas de Banco de Dados INE 5323 Prof. Mario Dantas Introdução Por quê Sistemas de Banco de Dados Visão dos Dados Modelos de Dados Linguagem de Definição de Dados (DDL) Linguagem de Manipulação
Estruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
A c c e s s B á s i c o
A c c e s s B á s i c o (referencial): 25 horas A informação na ponta dos dedos, o programa perfeito para cadastros de clientes e fornecedores, controle de estoque, pesquisas relatórios. O Microsoft Access
Como Emitir Vendas no PDV? FPV01. Sistema: PDV. Versão: Referência: FPV01
Sistema: PDV Versão: 2017.07.31 Referência: FPV01 Como funciona: É possível efetuar vendas que serão impressas em cupons fiscais através do sistema PDV, durante este processo o sistema disponibiliza diversas
AULA 2 VISÃO BÁSICA DE CLASSES EM PHP
AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Open Day Bibliotecas ElipseX
Open Day Bibliotecas ElipseX Sumário 1 Introdução... 3 1.1 Pré-Requisitos... 3 1.2 Objetivos... 3 2 Bibliotecas ElipseX... 4 3 Aplicação... 5 3.1 Exercícios... 5 4 XControl... 7 4.1 Exercícios... 8 5 XObject...
Instalação e utilização do Software Pináculo SMS
Instalação e utilização do Software Pináculo SMS Características do produto Pináculo SMS: Sem limite de quantidade de envios de SMS; Limite de 140 caracteres por mensagem; Histórico de mensagens enviadas
Tutorial 133 DUO Criação de telas e utilização do teclado
Tutorial 133 DUO Criação de telas e utilização do teclado Este documento é propriedade da ALTUS Sistemas de Informática S.A., não podendo ser reproduzido sem seu prévio consentimento. Altus Sistemas de
MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO CAMPUS MATÃO MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO AUTOR: COORDENADORIA DE TECNOLOGIA DA INFORMAÇÃO CAMPUS MATÃO MATÃO 2016 SUMÁRIO
Construção de Programas
Manual de thintemplates Construção de Programas Dezembro/2005 Copyright 1999 DATASUL S.A. Todos os direitos reservados. Nenhuma parte deste documento pode ser copiada, reproduzida, traduzida ou transmitida
Aula Prática de Redes Industriais Wireshark
Aula Prática de Redes Industriais Wireshark O entendimento de protocolos de redes pode ser bastante aprofundado através da observação de protocolos funcionando e da manipulação de protocolos - observando
Delphi. Criando Ajuda Online. Criando Ajuda Online. Criando Ajuda Online. Jocélio Passos Criando Ajuda Online
Delphi Jocélio Passos [email protected] Tornar o aplicativo profissional Gerar arquivos RTF (Rich Text Format - Word) HPJ (Microsoft Help Workshop - HCW.EXE) A partir destes arquivos geraremos
Tutorial para atualização de notícias/blog
Tutorial para atualização de notícias/blog Adicionando um novo artigo Após fazer login como administrador, vá até a página do blog. Na página principal do seu blog, você pode clicar nas seguintes opções:
ALFACONT 2 Sistema de Contabilidade Versão Eleusmário Mariano Rabelo. Acesso ao Sistema
ALFACONT 2 Sistema de Contabilidade Versão 2.0 2016 Eleusmário Mariano Rabelo O Alfa-Cont é um sistema contábil multi-usuário e multi-empresa para escritórios de contabilidade, contadores e empresas, com
Sumário REGISTRADOR ELETRÔNICO DE PONTO - REP-1000 REGISTRADOR ELETRÔNICO DE PONTO - REP-1000
Versão 1.04 Março de 2010. Sumário As informações contidas neste manual estão sujeitas a alterações sem prévio aviso e não representam compromisso por parte do fabricante. As imagens aqui reproduzidas
SISTEMA ADM ERP - MANUAL DO USUÁRIO. Conceitos Básicos
SISTEMA ADM ERP - MANUAL DO USUÁRIO Conceitos Básicos Sumário Introdução... 3 Acessando o sistema e fazendo Login... 3 Elementos do Sistema... 5 Abas/Guias... 5 Barra de Ferramentas... 5 Cabeçalhos de
DISTRIBUINDO SUA APLICAÇÃO
DISTRIBUINDO SUA APLICAÇÃO Depois de pronta sua aplicação precisa ser distribuída para todos que querem ou precisam usá-la. Para usar a sua aplicação, o único requisito para o computador do cliente é que
Visões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Manual de Versão Sistema Condomínio21
Manual de Versão Sistema Condomínio21 Belo Horizonte, 2016. Group Software. Todos os direitos reservados. Sumário 1. Parâmetro para determinar a inicialização automática do Condomínio21 Relatórios... 3
MANUAL DE UTILIZAÇÃO DO SOFTWARE DE IMPRESSÃO DE ETIQUETAS MOORE.
MANUAL DE UTILIZAÇÃO DO SOFTWARE DE IMPRESSÃO DE ETIQUETAS MOORE. Uma marca de sucesso da 1 CONTEÚDO 3 3 3 4 4 5 5 6 6 6 6 7 7 7 7 8 9 9 10 10 10 11 11 11 11 12 12 13 SOFTWARE DE IMPRESSÃO DE ETIQUETAS
Ambiente de Programação, rastreamento e entrada de dados. MCG114 Programação de Computadores I. Interpretador de Comandos. Interpretador de Comandos
MCG114 Programação de Computadores I Profa. Ambiente de Programação, rastreamento e entrada de dados 1 2 Ambiente Python para Programação Ambiente Python para Programação Até agora... Comandos e funções
Visual Basic.NET Image Lists, Tree e List Views, Toolbars, Status e Progress Bars e Tab Controls Lista de Exercícios
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco Visual Basic.NET Image Lists, Tree e List Views, Toolbars, Status e Progress Bars e Tab Controls Lista de Exercícios
A linguagem SQL
SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão
ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL
ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Objetivo: No curso Oracle 11G Introdução ao Oracle, SQL, PL/SQL será abordado desde a introdução da tecnologia do banco de dados em questão como todos os conceitos
