DDK GUI. Parte 6. Tecnologia

Documentos relacionados
DDK GUI. Parte 4. Tecnologia

DDK GUI. Parte 3. Tecnologia

Curso de Técnicas de Desenvolvimento Utilizando o UIB

DDK GUI. Parte 2. Tecnologia

DDK GUI. Parte 5. Tecnologia

ThinTemplates Parte 3

DDK GUI. Parte 8. Tecnologia

DDK GUI. Parte 7. Tecnologia

ThinTemplates Parte 2

Desenvolvimento de Programas utilizando DDK2000 ThinTemplates + DBOs. Sandro Kellermann de Carvalho Desenvolvedor Progress Acton

DDK GUI. Parte 1. Tecnologia

ThinTemplates Parte 1

Progress DCA Desenvolvendo Aplicações Caracter Parte 1

Construção de DBOs. Tecnologia

Progress DCA Desenvolvendo Aplicações Caracter Parte 3

ThinTemplates Parte 4

Tutorial 133 DUO Criação de telas e utilização do teclado

SINECON CARREGA CSV. 2) Converter todas as colunas, exceto de números, para o formato Texto, fazendo:

Guia Rápido. Elgin L42-DT Impressora de etiquetas.

Técnicas de Uso de DBOs. Tecnologia

Introdução a Tecnologia da Informação

ALFACONT 2 Sistema de Contabilidade Versão Eleusmário Mariano Rabelo. Acesso ao Sistema

Tutorial Word 2007 FONTE: UNICAMP

Inventário Rotativo (Coletor de Dados)

Progress ADE Application Development Environment. Tecnologia

1º No módulo de Gestão Contábil é possível acessar o relatório através do menu Relatórios Diário.

Construção de Programas

Partes Principais da Janela 3/26

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Manual Converte-MV S_Line

Boas Práticas de Programação

Importar dados de arquivos de texto para um banco de dados no BioNumerics versão 6.5 no idioma Inglês

Aula 01 Microsoft Excel 2016

Tutorial sobre o MineraFórum I. Introdução

SUBIR LISTAS DE S

Tutorial 132 CP DUO Configuração MODBUS Escravo

Editor de Texto. Microsoft Word 2007

PROGRESS ACE Ambiente Visual para Construção de Aplicativos. Tecnologia

Crystal Reports - Gerando seus relatórios.

Tutorial para atualização de notícias/blog

Método dos Elementos Finitos Aplicado à Engenharia de Estruturas Página 1

Preço Concorrente com Coletor dos Dados Compex CipherLab - CP30

Schaeffler Online. Manual de Operação

AUTOLAC VERSÃO FINALIZAÇÃO: 27 JUL PUBLICAÇÃO: 31 JUL. 2017

Migrando para o Access 2010

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo

Nova. Tecnologia em Atendimento. Manual do usuário

Sistema de Controle de Correspondências

Título: Como realizar a importação do Cadastro de Empresas pelo arquivo do SPED Fiscal?

Versão 8.3A-01. Versão Final da Apostila de Novidades

Excel 2010 Plano de Aula - 16 Aulas (Aulas de 1 Hora).

Importação de dados. Importando Cupons Fiscais

MANUAL DE UTILIZAÇÃO DO SOFTWARE DE IMPRESSÃO DE ETIQUETAS MOORE.

Carregar Documentos Fiscais - Fornecedor (Modelo 57) - Conhecimento de Transporte Eletrônico. Última Atualização 11/01/2019

Manual do Portal da UFPE para Editores de Conteúdo Manual Publicadores de Conteúdo no Portal

Manual de Utilização do software Colacril Office para criação e impressão de etiquetas. Manual de Utilização

Manual de Utilização do Cadastro de Beneficiários Integrado - CBI

InDesign CS6 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

A seguir são apresentadas as funções implementadas na linha de produto Microsiga Protheus, expedidas neste pacote de atualização.

Arquitetura ADM - Introdução

Manual de Utilização PrintScout

TAXAS E TARIFAS BOVESPA

Após seleção do arquivo, o programa exibe um diá projeto. Diálogo de propriedades do arquivo Pressionando-se OK, será adicionada uma entrada título, s

Manual SISTEMA GERENCIADOR DE SENHAS Versão SERVIDOR

Gerabyte AFV (Automação de Força de Venda) Manual do Aplicativo

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

Após seleção do arquivo, o programa exibe um diá projeto. Diálogo de propriedades do arquiv Pressionando-se OK, será adicionada uma entrada título, so

MANUAL. Localizador: Página: MN 016 SGI-INFRA- . Informação)

Manual do Usuário. MedLink Dental

Produtividade é resultado do esforço inteligente

PROCEDIMENTO OPERACIONAL PADRÃO

Plano de Aula - Word cód Horas/Aula

Avisos legais KYOCERA Document Solutions Inc.

Manual do usuário. Easy TESTE. (Versão Beta) Abril 2014

Suporte ao uso do software Origin R para disciplinas de laboratório de Física

CENTRO PAULA SOUZA ETEC PADRE JOSÉ NUNES DIAS APLICATIVOS INFORMATIZADOS WORD 2007 PROFESSORA: ALINE PRISCILA SCHMIDT ALUNO:

MANUAL. Localizador: SGI-INFRA-

Apostila Impress 01. Partes da Janela Principal do Impress

Painel Administrativo Westlock

Publisher 2013 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Diferenças na Programação com Dataserver Oracle

Rotinas do MULTITERM 95.

SAP BUSINESS ONE. NFS-e DA PREFEITURA DE PAULISTA - PE MANUAL DO USUÁRIO VERSÃO 1.00

Manual de atualização para uso do xml versão 3.10

MIDISUL (48) (48) CEP CNPJ:

Vejamos agora as ferramentas mais utilizadas para criação de imagens:

Descrição A finalidade do curso do módulo Domínio Protocolo é apresentar aos nossos usuários:

Plano de Aula - Publisher cód Horas/Aula

Documentação Atualizações Onix Gestão Empresarial e NFC-e

Transcrição:

DDK GUI Parte 6 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 Filho Manutenção de Filhos 2

Agenda Pai x Filho Atualiza Ambos Manutenção de Pais Consulta Simples Consulta Complexa Consulta Relacionamento Relatórios / Cálculos / Fechamentos Parâmetros Únicos Parâmetros Múltiplos Formação Formação sem Navegação 3

Agenda Importação Exportação Pesquisa Vá Para Digitação Rápida Painéis Funções Relatórios Relacionados Funções Consultas Relacionadas Menu de Barra 4

Agenda Parte 2 Construção SmartQuery SmartViewer Padrão SmartViewer Sem Campos de Tabela SmartViewer Só com Campos Chave Parte 3 CustomBrowser Inclui/Modifica CustomBrowser Zoom Wizard Vá Para Pesquisa 5

Agenda Cadastro Simples Parte 4 Cadastro Simples Alteração Cadastro Simples Inclusão Cadastro Complexo Cadastro Inclui/Modifica Filho Cadastro Pai x Filho Atualiza Filho Cadastro Inclui/Modifica Pai Cadastro Pai x Filho Atualiza Ambos Parte 5 Consulta Simples 6

Agenda Consulta Complexa Consulta Relacionamentos Parâmetros Únicos Formação Parte 6 Relatórios Importação Exportação CustomBrowser Digitação Digitação Rápida 7

Agenda Parte 7 Includes e Utilitários Padrão UT_FIELD.I UT-RTLBL.I UT-RUN.I UT-MSGS.P IND01-10.I, IND11-50.I E IND51500.I UT-TABLE.I UT-LITER.I UT-LIMIT.P 8

Agenda UT-GLOB.I I-FREEAC.I UT-DIR.P BTB917ZX.P BTB917ZY.P BTB917ZZ.P UT-VRBIN.P UT-FINFO.P UT-CMDLN.P 9

Agenda UT-OSVER.I I-COUNTDS.I UT-WIN.I UT-TRACE.P Parte 8 Validações Validações de Tela Validações Triggers de Dicionário Mensagens Regras para Criação de Mensagens 10

Agenda Mensagens em Outros Idiomas Procedures Reutilizáveis Portabilidade de RCODES Customizações API - Application Program Interface UPC - User Program Call 11

Relatórios O relatório é constituído por dois programas: O primeiro, com o nome do formato xxp/xx9999.w, é o que faz a interface com o usuário apresentando todas as opções e entradas de dados necessárias à geração do relatório; O segundo programa, com nome de formato xxp/xx9999rp.p, executa a geração do relatório propriamente dito, conforme os parâmetros passados pelo primeiro programa. 12

Relatórios 1. Em Arquivo Novo, selecionar o estilo Window Relatórios; 13

Relatórios Preparação do Relatório - Interface 1. Verificar quais são as páginas que devem ser necessárias ao programa. Se as cinco páginas forem necessárias desconsiderar as tarefas 2, 3, 4 e 5. 2. Eliminar as frames das páginas desnecessárias com base na tabela abaixo. 14

Relatórios 3. Eliminar n imagens com as "orelhas" mais a direita, onde n é o número de páginas desnecessárias, renomeando as remanescentes conforme a tabela abaixo: Folder Frame Imagem Preprocess Seleção Classificação Parâmetros Digitação Impressão f-pg-sel f-pg-cla f-pg-par f-pg-dig f-pg-imp im-pg-sel im-pg-cla im-pg-par im-pg-dig im-pg-imp PGSEL PGCLA PGPAR PGDIR PGIMP 15

Relatórios 4. Em 'Definitions, limpar o conteúdo dos pré-processadores das páginas desnecessárias, assim se está informando ao estilo que estas páginas não existem no relatório. Exemplo, onde a página de digitação não é necessária: &GLOBAL-DEFINE PGSEL f-pg-sel &GLOBAL-DEFINE PGCLA f-pg-cla &GLOBAL-DEFINE PGPAR f-pg-par &GLOBAL-DEFINE PGDIG &GLOBAL-DEFINE PGIMP f-pg-imp 16

Relatórios 5. Se a página de seleção não existir, no 'Main-block' do programa, corrigir a chamada do include i-rpmbl.i, adicionando o nome da imagem associada à página que se deseja apresentar como inicial, exemplo: {include/i-rpmbl.i im-pg-par} 17

Relatórios Página de Seleção 1. Colocar os fill-in s de inicial e final, para cada campo que precisa de faixa. A sugestão é criar como 'Database Fields' e, após, convertê-los para variáveis para obter automaticamente os labels, formatos e tamanhos do dicionário de dados. 18

Relatórios 2. Corrigir os 'initial values' das variáveis de inicial e final. 3. Retirar possíveis queries que o AppBuilder automaticamente queira associar à frame. 19

Relatórios Página de Classificação 1. Redefinir o 'list-items' do radio-set rs-classif, com as opções de classificação de seu relatório; 2. Se necessário, adicionar mais opções de classificação. 20

Relatórios Página de Parâmetros 1. Colocar as variáveis necessárias na representação desejada (radio-set, toggle-box, fill-in), definindo label, formato, initial e help para as mesmas. 21

Relatórios 2. Caso seja necessário, implementar retângulos com label, estes labels devem ser fill-in s view-as text, e o seu valor deve ser informado no seu initial e private-data. As propriedades 'Display' e 'Enable' devem ser retiradas. 22

Relatórios Página de Digitação 1. Em 'Definitions', corrigir a definição da temp-table de digitação tt-digita inserindo os campos necessários; 2. Em 'Section Editor', para o objeto browse br-digita, adaptar os seguintes gatilhos para a nova definição da temp-table ttdigita e outras necessidades: 23

Relatórios 'Display': define os campos da temp-table a serem apresentados e quais devem ficar habilitados; 'Row-entry': determina valores iniciais para os campos da temp-table na inclusão de novas linhas, exceto quando se trata da primeira linha do browse; 'Row-leave': salva as alterações feitas pelo usuário. 24

Relatórios 3. Ainda em 'Section Editor', mas para os botões bt-inserir e btalterar, adaptar os seus gatilhos de 'Choose', na linha que aplica um evento 'Entry', sobre o primeiro campo habilitado no browse; 4. Todas as validações do browse br-digita devem ser feitas na procedure pi-executar no local indicado pelo comentário; 25

Relatórios 5. Opcionalmente, os gatilhos de 'leave' (para atributos de referência), 'f5' e 'mouse-select-dblclick' (para acionamento do zoom), para as colunas do browse podem ser necessários. (Para mais detalhes sobre esta técnica, ver Como implementar Zoom e campos de referência para campos de chave estrangeira.) 26

Relatórios Página de Impressão Na página de impressão não é necessário que se tenha qualquer função adicional para o seu correto funcionamento. Porém, se necessário, seguir a técnica Como implementar Parâmetros de Impressão em Relatórios. 27

Relatórios Gravação e Validação 1. Em Definitions, implementar os campos de parâmetros e seleção na definição da temp-table tt-param. 28

Relatórios 2. Na procedure 'pi-executar', colocar as validações necessárias às opções do usuário para execução do relatório no local indicado pelo comentário, lembrando que elas devem apresentar uma mensagem de erro cadastrada, posicionar na página com problemas, colocando o focus no campo com problemas. 29

Relatórios if input frame f-pg-par i-nr-nivel > 19 then do: run utp/ut-msgs.p (input "show", input 73, input " "). apply 'mouse-select-click' to im-pg-par in frame f- relat. apply 'entry' to i-nr-nivel in frame f-pg-par. return error. end. 30

Relatórios 3. Na procedure 'pi-executar', no local indicado pelo comentário, colocar a lógica de gravação dos parâmetros e seleção na temp-table tt-param. 4. Ainda na procedure 'pi-executar', substituir na chamada do include {include/i-rprun.i} a literal 'XXP/XX9999RP.P' pelo programa que deve imprimir o relatório. 31

Relatórios Relatórios no formato RTF O template está preparado para gerar a saída do relatório no formato RTF (Rich Text Format). Para isto, não é necessário realizar nenhuma alteração no programa de interface. Caso não deseje que o relatório possua esta funcionalidade, basta seguir os procedimentos descritos abaixo para que o programa funcione corretamente: 32

Relatórios 1. Em definitions, deve-se alterar o valor do pré-processador RTF para NO. Ex: &GLOBAL-DEFINE RTF NO 2. Na página de impressão(f-pg-imp), é necessário remover os componentes referentes à funcionalidade de RTF. Os componentes são: text-rtf, l-habilitartf, text-modelo-rtf, c- modelo-rtf, bt-modelo-rtf e rect-rtf. 33

Relatórios 3. Reposicionar os componentes de execução de acordo com o especificado a seguir: text-modo para column 1,14 e row 4,17, rect-9 para column 2,00 e row 4,46, e rs-execucao para column 2,86 e row 4,83. 34

Relatórios Também é possível passar, durante a inicialização do programa, um arquivo de modelo padrão para o relatório. Neste caso, o usuário não será obrigado a informar um modelo manualmente. Para isto, basta incluir no Main Block do programa, antes da chamada da procedure enable_ui, a linha abaixo: ASSIGN c-modelo-default = SEARCH("<pasta>\<modelo.rtf>"). 35

Relatórios ASSIGN c-modelo-default = SEARCH("<pasta>\<modelo.rtf>"). Onde: <pasta> = sub-pasta na qual se encontra o arquivo de modelo no propath <modelo.rtf> = arquivo que contém o modelo no formato rtf 36

Relatórios Programa RP.P do Relatório O programa de execução do relatório (rp.p) é um programa procedural sem qualquer tipo de interface com o usuário, exceto pela própria impressão/visualização do relatório e pela caixa de acompanhamento de execução (ut-acomp/ut-perc) quando necessário. 37

Relatórios Nenhum programa chamado a partir de um rp.p deve possuir qualquer tipo de interface. Todas as validações ou informações com necessidade de intervenção do usuário devem ser tratadas pelo programa.w. 38

Relatórios 1. Copiar a definição das temp-tables tt-param e tt-digita (esta última se houver digitação) do programa de interface (.W) para o programa que deve gerar o relatório (rp.p); 2. Se a implementação for uma conversão de um programa originário do MAGNUS: 1. Retirar a chamada para o include {cdp/cd9000.i} e substituir as seguintes chamadas: 39

Relatórios Include Velho Cdp\cd9500.i Cdp\cd9500.fl Cdp\cd9520.i Cdp\cd9540.i Include Novo Include\i-rpvar.i Include\i-rpcab.i Include\i-rpout.i Include\i-rpclo.i 40

Relatórios 2. Caso haja opção de digitação, substituir, com base no programa original, o work-file de digitação pela temp-table tt-digita. 3. Substituir, as variáveis de parâmetro, seleção e classificação pelos respectivos campos da temp-table ttparam. 3. Utilizar um stream padrão definido como STR-RP, para impressão do relatório; 4. Deve-se passar o parâmetro &stream com o nome da stream para os includes i-rpcab.i, i-rpcb80, i-rpc256.i, i-rpout.i e i- rpclo.i. 41

Relatórios {include/i-rpcab.i &stream = "str-rp"} {include/i-rpcb80.i &stream = "str-rp"} {include/i-rpc256.i &stream = "str-rp"} {include/i-rpout.i &stream = "stream str-rp"} {include/i-rpclo.i &stream = "stream str-rp"}. 4. Nas seleções, ao invés de utilizar a palavra "à", para dar idéia de faixa, substituí-la pelos caracteres " < > " semelhantes às imagens utilizadas na tela de seleção, e que não necessitam ser traduzidos. 42

Relatórios 5. Todos os labels que não forem do dicionário de dados e que apareçam no relatório devem ser tratados através dos includes {utp/ut-liter.i}, {utp/ut-field.i} ou ainda {utp/ut-table.i}. 6. Em todos os forms/frames de impressão deve-se colocar a cláusula stream-io. 7. Para utilizar a funcionalidade de impressão para arquivo RTF: 43

Relatórios 1. Definir o pré-processador conforme abaixo: &GLOBAL-DEFINE RTF YES 2. Definir o pré-processador abaixo setando o tamanho da página: &SCOPED-DEFINE pagesize N N é o número de linhas por página e por default seu valor é 42. Este número deve ser ajustado para cada relatório conforme o tamanho do modelo RTF que vai ser utilizado. Caso este tamanho não esteja correto ocorrerá problema na quebra da página. 44

Relatórios 3. A definição da temp-table tt-param deve ser idêntica à definição da mesma no programa de interface. 4. Condicionar o VIEW das frames de cabeçalho/rodapé no início do programa, para que, quando o destino for para RTF, as mesmas não sejam apresentadas. 45

Relatórios IF tt-param.l-habilitartf <> YES THEN DO: VIEW STREAM str-rp FRAME f-cabec. VIEW STREAM str-rp FRAME f-rodape. END. 46

Relatórios Laboratório Seleção: Parâmetros: Classificação: <variable Cust-Num> <variable Sales-Rep> Cust-Num Name 47

Relatórios Programa RP: Campos: Customer.Cust-Num Customer.Name Customer.Credit-Limit Customer.Discount Customer.Balance Customer.Phone Customer.Sales-rep 48

Importação 1. Em Arquivo Novo, selecionar o estilo Window Importação/Exportação; 49

Importação Preparação do programa 1. Verificar quantas páginas são necessárias. As páginas de layout, parâmetros e log são obrigatórias e somente a página de seleção é opcional. Caso haja seleção, desconsiderar as tarefas 2, 3 e 4. 2. Eliminar a frame f-pg-sel. 50

Importação 3. Eliminar a imagem im-pg-log e renomear as imagens: im-pg-par > im-pg-log im-pg-sel > im-pg-par 4. Em 'Definitions' limpar o conteúdo dos preprocessadores PGSEL: &GLOBAL-DEFINE PGLAY f-pg-lay &GLOBAL-DEFINE PGSEL &GLOBAL-DEFINE PGPAR f-pg-par &GLOBAL-DEFINE PGLOG f-pg-log 51

Importação 5. Se a página de seleção não existir, no 'Main-block' do programa, corrigir a chamada do include i-immbl.i, passando como parâmetro a imagem da página inicialmente; {include/i-immbl.i im-pg-par} 52

Importação Página de Layout 1. No 'Main Block', existe a chamada para um include denominado {include/i-imvrf.i}, que possui dois parâmetros. Informar neste o nome do programa no formato XX9999 e a versão do layout no formato 999 (o valor inicial da versão é 001). Exemplo: { include/i-imvrf.i &programa=cp0406 &versãolayout=001 } 53

Importação 2. Criar um arquivo que contenha o layout de importação, nos padrões do Produto Datasul EMS. Este arquivo tem o seguinte nome e path: LAYOUT/LOXX9999.001. 54

Importação Página de Seleção 1. Colocar os fill-in s de inicial e final, para cada campo que precisar de faixa. A sugestão é criá-los como 'Database Fields', e após, convertê-los para variáveis para obter automaticamente os labels, formatos e tamanhos do dicionário de dados. 55

Importação 2. Corrigir os 'initial values' das variáveis de inicial e final. 3. Retirar possíveis queries que o AppBuilder automaticamente queira associar à frame. 56

Importação Página de Parâmetros 1. Colocar as variáveis necessárias na representação desejada (radio-set, toggle-box, fill-in), definindo label, formato, initial e help para as mesmas. 2. Caso seja necessário implementar retângulos com label, estes labels devem ser fill-in s view-as text, e o seu valor deve ser informado no seu initial e private-data. As propriedades 'Display' e 'Enable' devem ser retiradas 57

Importação 3. No on choose do bt-arquivo-entrada, pode ser adicionado um terceiro parâmetro na include i-imarq.i, onde é possível passar como parâmetro os filtros que serão utilizados na sistem dialog. Se não for passado nada neste parâmetro a include assumirá como padrão o tipo de arquivo *.lst e todos os tipos de arquivos. DO: {include/i-imarq.i c-arquivo-entrada f-pg-par "'*.XLS' '*.xls', 'todos' '*.*'" } END. 58

Importação Página de Log Não existem tarefas. 59

Importação Gravação e Validação 1. Em 'Definitions', implementar os campos de parâmetros e seleção na definição da temp-table tt-param. 60

Importação 2. Na procedure 'pi-executar', colocar as validações das páginas de parâmetros e seleção, lembrando que elas devem apresentar uma mensagem de erro cadastrada, posicionar na página com problemas, colocando o focus no campo com problemas. 61

Importação if input frame f-pg-par i-nr-nivel > 19 then do: run utp/ut-msgs.p (input "show", input 73, input " "). apply 'mouse-select-click' to im-pg-par in frame f- relat. apply 'entry' to i-nr-nivel in frame f-pg-par. return error. end. 62

Importação 3. Na procedure 'pi-executar', colocar a lógica de gravação dos parâmetros e seleção na temp-table tt-param. 4. Substituir na chamada do include {include/i-imrun.i} a literal 'XXP/XX9999RP.P' pelo programa que deve importar os registros. 63

Importação Programa RP.P de Importação O programa de execução de importação (rp.p) é um programa procedural sem qualquer tipo de interface com o usuário, exceto pela caixa de acompanhamento de execução (utacomp/ut-perc) quando necessário. 64

Importação Nenhum programa chamado a partir de um rp.p deve possuir qualquer tipo de interface. Todas as validações ou informações com necessidade de intervenção do usuário devem ser tratadas pelo programa.w que o chama. 65

Importação 1. Definir uma stream para a importação, deixando a stream padrão definido, como STR-RP para a impressão do log. 2. Se a implementação for uma conversão de um programa originário do MAGNUS: 1. Retirar a chamada para o include {cdp/cd9000.i} e substituir as seguintes chamadas: 66

Importação Include Velho Cdp\cd9500.i Cdp\cd9500.fl Cdp\cd9520.i Cdp\cd9540.i Include Novo Include\i-rpvar.i Include\i-rpcab.i Include\i-rpout.i Include\i-rpclo.i 67

Importação 2. Substituir, as variáveis de parâmetro, seleção e classificação pelos respectivos campos da temp-table ttparam. 3. Na chamada do include i-rpout.i, passar o parâmetros {&tofile}. Exemplo: {include/i-rpout.i &tofile=tt-param.arq-destino} 68

Importação 4. Todos os labels que não forem do dicionário de dados e que apareçam no relatório devem ser tratados através dos includes {utp/ut-liter.i}, {utp/ut-field.i} ou ainda {utp/ut-table.i}. 5. Em todos os forms/frames de impressão, deve-se colocar a cláusula stream-io. 69

Importação 6. Nas seleções, ao invés de utilizar a palavra "à", para dar idéia de faixa, substituí-la pelos caracteres " < > " semelhantes às imagens utilizadas na tela de seleção, e que não necessitam ser traduzidos. 70

Exportação 1. Em Arquivo Novo, selecionar o estilo Window Importação/Exportação; 71

Exportação Preparação do programa 1. Verificar quantas páginas são necessárias. As páginas de layout, parâmetros e log são obrigatórias e somente a página de seleção é opcional. Caso haja seleção, desconsiderar as tarefas 2, 3 e 4. 2. Eliminar a frame f-pg-sel. 72

Exportação 3. Eliminar a imagem im-pg-log e renomear as imagens: im-pg-par > im-pg-log im-pg-sel > im-pg-par 4. Em 'Definitions' limpar o conteúdo dos preprocessadores PGSEL: &GLOBAL-DEFINE PGLAY f-pg-lay &GLOBAL-DEFINE PGSEL &GLOBAL-DEFINE PGPAR f-pg-par &GLOBAL-DEFINE PGLOG f-pg-log 73

Exportação 5. Se a página de seleção não existir, no 'Main-block' do programa, corrigir a chamada do include i-immbl.i, passando como parâmetro a imagem da página inicial, exemplo: {include/i-immbl.i im-pg-par} 74

Exportação Página de Layout 1. No 'Main Block', existe a chamada para um include denominado {include/i-imvrf.i}, que possui dois parâmetros, informar neste o nome do programa no formato XX9999 e a versão do layout no formato 999 (o valor inicial da versão é 001). Exemplo: { include/i-imvrf.i &programa=cp0406 &versãolayout=001 } 75

Exportação 2. Criar um arquivo que contenha o layout de exportação, nos padrões do Produto Datasul EMS. Este arquivo tem o seguinte nome e path: LAYOUT/LOXX9999.001. 76

Exportação Página de Seleção 1. Colocar os fill-in s de inicial e final, para cada campo que precisar de faixa. A sugestão é criá-los como 'Database Fields' e, após, convertê-los para variáveis para obter automaticamente os labels, formatos e tamanhos do dicionário de dados. 77

Exportação 2. Corrigir os 'initial values' das variáveis de inicial e final. 3. Retirar possíveis queries que o AppBuilder automaticamente queira associar à frame. 78

Exportação Página de Parâmetros 1. Colocar as variáveis necessárias na representação desejada (radio-set, toggle-box, fill-in), definindo label, formato, initial e help para as mesmas. 2. Caso seja necessário implementar retângulos com label, estes labels devem ser fill-in s view-as text, e o seu valor deve ser informado no seu initial e private-data. As propriedades 'Display' e 'Enable' devem ser retiradas 79

Exportação 3. No on choose do bt-arquivo-entrada, pode ser adicionado um terceiro parâmetro na include i-imarq.i, onde é possível passar como parâmetro os filtros que serão utilizados na sistem dialog. Se não for passado nada neste parâmetro a include assumirá como padrão o tipo de arquivo *.lst e todos os tipos de arquivos. DO: {include/i-imarq.i c-arquivo-entrada f-pg-par "'*.XLS' '*.xls', 'todos' '*.*'" } END. 80

Exportação Página de Log 1. Remover o retângulo, o label e o radio-set com as opções "Todos" e "Rejeitados". 2. Mover todos os outros objetos desta frame para cima. Não esquecer do botão "Configurar Impressora". 81

Exportação Gravação e Validação 1. Em 'Definitions', implementar os campos de parâmetros e seleção na definição da temp-table tt-param. 82

Exportação 2. Na procedure 'pi-executar', colocar as validações das páginas de parâmetros e seleção, lembrando que elas devem apresentar uma mensagem de erro cadastrada e posicionar na página com problemas, colocando o focus no campo com problemas. 83

Exportação if input frame f-pg-par i-nr-nivel > 19 then do: run utp/ut-msgs.p (input "show", input 73, input " "). apply 'mouse-select-click' to im-pg-par in frame f- relat. apply 'entry' to i-nr-nivel in frame f-pg-par. return error. end. 84

Exportação 3. Na procedure 'pi-executar', substituir o código de validação do arquivo de entrada: assign run utp/ut-vlarq.p file-info: file-name (input frame = input f-pg-par frame c-arquivo-entrada). f-pg-par c-arquivo-entrada. if file-info:pathname return-value = "nok" = then? then do: do: run utp/ut-msgs.p (input "show", input 326, 73, input c-arquivo-entrada). ""). apply 'mouse-select-click' to im-pg-par im-pg-log in frame f-import. apply 'entry' to c-arquivo-entrada c-arquivo-destino in frame f-pg-par. f-pg-log. return error. end. end. 85

Exportação 4. Na procedure 'pi-executar', colocar a lógica de gravação dos parâmetros e seleção na temp-table tt-param. 5. Substituir, na chamada do include {include/i-imrun.i}, a literal 'XXP/XX9999RP.P' pelo programa que exportará os registros. 86

Exportação Programa RP.P de Exportação O programa de execução de exportação (rp.p) é um programa procedural sem qualquer tipo de interface com o usuário, exceto pela caixa de acompanhamento de execução (utacomp/ut-perc) quando necessário. 87

Exportação Nenhum programa chamado a partir de um rp.p deve possuir qualquer tipo de interface. Todas as validações ou informações com necessidade de intervenção do usuário devem ser tratadas pelo programa.w. 88

Exportação 1. Definir uma stream para a exportação, deixando a stream padrão definida como STR-RP para a impressão do log. 2. Se a implementação for uma conversão de um programa originário do MAGNUS: 1. Retirar a chamada para o include {cdp/cd9000.i} e substituir as seguintes chamadas: 89

Exportação Include Velho Cdp\cd9500.i Cdp\cd9500.fl Cdp\cd9520.i Cdp\cd9540.i Include Novo Include\i-rpvar.i Include\i-rpcab.i Include\i-rpout.i Include\i-rpclo.i 90

Exportação 2. Substituir as variáveis de parâmetro, seleção e classificação pelos respectivos campos da temp-table tt-param. 3. Na chamada do include i-rpout.i, passar o parâmetros {&tofile}. Exemplo: {include/i-rpout.i &tofile=tt-param.arq-destino} 91

Exportação 4. Todos os labels que não forem do dicionário de dados e que apareçam no relatório devem ser tratados através dos includes {utp/ut-liter.i}, {utp/ut-field.i} ou ainda {utp/ut-table.i}. 5. Em todos os forms/frames de impressão, deve-se colocar a cláusula stream-io. 92

Exportação 6. Nas seleções, ao invés de utilizar a palavra "à", para dar idéia de faixa, substituí-la pelos caracteres " < > " semelhantes às imagens utilizadas na tela de seleção, e que não necessitam ser traduzidos. 93

CustomBrowser Digitação 1. Em Arquivo Novo, selecionar o estilo CustomBrowser Digita; 94

CustomBrowser Digitação 2. Alterar a definição da temp-table no bloco de definitions conforme necessidade. Não eliminar o campo "line"; 3. Alterar a trigger de open_query, substituindo a cláusula <temptable> pelo nome da temp-table definida anteriormente; 95

CustomBrowser Digitação 4. Alterar a trigger de display, substituindo as cláusulas <campo1> <campo2> pelos campos que devem estar no browse; após o comando enable substituir as cláusulas <campo1> <campo2> pelos campos editáveis do browse; 96

CustomBrowser Digitação 5. Alterar a pi-salva-rel para que esta possa gravar todos os valores do browse. Não é necessário gravar o campo "line"; 6. Na chamada da pi-busca-valor, informar o nome das variáveis que estão na viewer e das quais se deseja retornar o valor para o browse. Os valores serão retornados por intermédio do comando return-value, sendo que a lista retornada será gravada numa variável e o usuário deve utilizar esta variável e o comando ENTRY para trabalhar com estes valores; 97

CustomBrowser Digitação 7. Colocar todas as validações na pi-salva-rel, validando assim os valores informados no browse a cada inclusão de um novo registro; 8. Na pi-cria-registro deve ser feita a leitura dos registros da temp-table e criados os registros na tabela física. Esta pi é chamada no choose do botão OK; 9. Salvar o browse com o nome definido para Browse de Digitação Rápida. 98

Digitação Rápida Pré-requisitos CustomViewerDigita que atenda às necessidades (CustomViewerDigita); CustomBrowserDigita que atenda às necessidades (CustomBrowserDigita). 99

Digitação Rápida 1. Em Arquivo Novo, selecionar o estilo Window Digitação Rapida; 100

Digitação Rápida 2. Verificar se já existe uma CustomViewerDigita que atenda às necessidades. Caso não exista, deve ser criada uma nova, utilizando o estilo CustomViewerDigita, lembrando-se que a única condição para esta viewer é a utilização de variáveis, e não a utilização de DBFields; 3. Instanciar a CustomViewerDigita na página 1 da WindowDigitaçãoRápida; 101

Digitação Rápida 4. Verificar se já existe um CustomBrowserDigita que atenda às necessidades, caso não exista, deve ser criado um novo, utilizando o estilo CustomBrowserDigita. Este browser deve utilizar uma temp-table; 5. Instanciar o CustomBrowserDigita na página 2 da WindowDigitaçãoRápida; 102

Digitação Rápida 6. Redimensionar a WindowDigitaçãoRápida de acordo com os objetos que foram colocados nela; 7. Salvar a WindowDigitaçãoRápida com o nome definido para Janela Digitação Rápida; 103

Obrigada Obrigada! universidade@datasul.com.br http://universidade.datasul.com.br Este material é de propriedade da DATASUL S.A., sendo proibida a sua reprodução em qualquer meio, total ou parcial, sem aprovação por escrito. Todos os direitos estão reservados. A informação contida aqui é confidencial e não pode ser utilizada fora da empresa ou das franquias que fazem parte da nossa rede, não podendo ser divulgada para clientes, parceiros ou outra empresa ou indivíduo sem o prévio consentimento de um diretor da DATASUL S.A. As opiniões expressas aqui estão sujeitas a modificação sem aviso prévio. 104