ThinTemplates Parte 3

Documentos relacionados
ThinTemplates Parte 1

ThinTemplates Parte 2

ThinTemplates Parte 4

Construção de Programas

DDK GUI. Parte 6. Tecnologia

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

Curso de Técnicas de Desenvolvimento Utilizando o UIB

DDK GUI. Parte 2. Tecnologia

Progress DCA Desenvolvendo Aplicações Caracter Parte 1

DDK GUI. Parte 3. Tecnologia

DDK GUI. Parte 4. Tecnologia

Técnicas de Uso de DBOs. Tecnologia

DDK GUI. Parte 5. Tecnologia

Progress DCA Desenvolvendo Aplicações Caracter Parte 3

Construção de DBOs. Tecnologia

DDK GUI. Parte 7. Tecnologia

DDK GUI. Parte 8. Tecnologia

Boas Práticas de Programação

DDK GUI. Parte 1. Tecnologia

Diferenças na Programação com Dataserver Oracle

Partes Principais da Janela 3/26

Oracle Database 10g: Fundamentos de SQL e PL/SQL

PROGRESS DCA. Desenvolvendo Aplicações Caracter

Progress ADE Application Development Environment. Tecnologia

5 Mini Casos. 5.1.Campos Numéricos Interface e Especificação

Plano de Aula - Word cód Horas/Aula

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

COBOL DB2- CICS. Prof. Maromo [Aula 4]

Manual de Técnicas de Uso. DBOs 2.0. Novembro/2001

Crystal Reports - Gerando seus relatórios.

Processador de Textos

Visual Basic.NET Image Lists, Tree e List Views, Toolbars, Status e Progress Bars e Tab Controls Lista de Exercícios

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

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

APP INVENTOR. APP INVENTOR Exercício 1

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

Guia de Atualização PRODUTO DATASUL

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

EGIS FUNCIONALIDADES BÁSICAS

Processo Módulo Segurança Administração da Segurança

HydroGraph Software. Manual do Usuário. Remote Operation

INFORMÁTICA PARA CONCURSO MINISTÉRIO PÚBLICO DO PARÁ Cargo: AUXILIAR DE ADMINISTRAÇÃO.

Linguagem SQL Restrições, Triggers e Views

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

Gerenciar catálogo de endereços. Guia do administrador

Introdução a Tecnologia da Informação

Oracle Database 11g: Introdução à Linguagem SQL Novo

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

APRESENTAÇÃO... 3 IGEO... 3 ACESSO AO SISTEMA... 4 MANUAL DO USUÁRIO... 4 FUNCIONALIDADES... 5 NAVEGAÇÃO E CONSULTA... 5 MANIPULAÇÃO DE CAMADAS...

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Inventário Rotativo (Coletor de Dados)

Documentação Atualizações Onix Gestão Empresarial e Nfce

Validador Sintegra e TED

MANUAL PARA APLICAR NOTAS

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

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Editor de Texto. Microsoft Word 2007

Cópia de Saldos (CTBM300)

Construção de DBOs 2.0

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Drawing Formato_PTC Creo ) Iniciando um formato com dimensões A (11x8.5 pol.) Iniciar um novo arquivo com a opção Format. File > New > A Format

Copyright Padrão ix Sistemas Abertos S/A. Todos os direitos reservados.

DreamweaverCC Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Movimento do Caixa

TUTORIAL CADASTRAR E PRECIFICAR EMBALAGEM

Sumário APRESENTAÇÃO...3 ACESSO AO SISTEMA...4 FUNCIONALIDADES...5 SIG-PCJ... 3 ACESSANDO O SISTEMA VIA WEB...4 MANUAL DO USUÁRIO...

Plano de Aula - DreamWeaver CC - cód Horas/Aula

BROFFICE MALA DIRETA CONFIGURAÇÃO Por Erico R. Silva, junho 2007

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Ambiente de desenvolvimento

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA TUTORIAL OPEN WATCOM: CRIANDO O PRIMEIRO PROGRAMA

Tabelas. Banco de Dados I MySQL

AULA 13 Plugin TerraPrint

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

Schaeffler Online. Manual de Operação

1. Importação de Dados cadastrais do Comunidades21

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

SUMÁRIO 1. APRESENTAÇÃO FUNCIONALIDADES COMUNS AOS USUÁRIOS... 3

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Esse tutorial irá explicar como plotar um desenho, desde a inserção de folhas.

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA TUTORIAL OPENWATCOM: CRIANDO O PRIMEIRO PROGRAMA

LibreOffice Writer. Editor de texto

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

PROGRESS DCA Desenvolvendo Aplicações Caracter

Manual de utilização da Mini Fábrica de Crachás. parte 2 BRAVASOFT. Implantar e Imprimir Projetos

Dreamweaver CS5 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo

Pedido de Compra. Procedimentos para consultar e inserir um pedido de compra no SISGEM.

Delphi 7 Aula 03 Progressão Geométrica

Transcrição:

ThinTemplates Parte 3 Tecnologia 1

Agenda Parte 1 Conceitos Características ThinMaintenance ThinMasterDetail Parte 2 ThinMaintenanceNoNavigation ThinZoom Parte 3 ThinWindow ThinReport 2

Agenda ThinFormation Parte 4 ThinFormationNoNavigation Técnicas Override de Métodos Pesquisas de Chaves Estrangeiras Pesquisas de Chaves Estrangeiras em Browses Pesquisas de Chaves Estrangeiras com SmartZoom Referências para Chaves Estrangeiras Referências para Chaves Estrangeiras em Browses 3

Agenda Campos Indicadores Exibir Mensagens de Erro Reposicionamento Automático do Browser de Zoom Utilização de OCX Override de eventos do browse no template MasterDetail e Zoom Recursos Avançados do thinfolder 4

ThinWindow ThinWindow 5

ThinWindow 6

ThinWindow 7

ThinWindow Características Pode ser utilizado tanto como Janela Mestre ou Janela Detalhe, usando para isto uma ou mais páginas; O gerenciamento das páginas do folder é feito pelo programa objects/thinfolder.w; Faz uso do sistema de tradução de.r, bastando para tanto identificar as strings que não devem ser traduzidas com :U (Exemplo: "CHOOSE":U). 8

ThinWindow Tarefas Definições dos Preprocessadores Definições das Páginas do Folder Disposição dos widgets nas Páginas 9

ThinWindow Definições dos Preprocessadores &GLOBAL-DEFINE Program thinmaintenance &GLOBAL-DEFINE Version 1.00.00.000 &GLOBAL-DEFINE WindowType Detail &GLOBAL-DEFINE Folder YES &GLOBAL-DEFINE InitialPage 1 &GLOBAL-DEFINE FolderLabels Local Default &GLOBAL-DEFINE page0widgets btok bthelp &GLOBAL-DEFINE page1widgets 10

ThinWindow Definições das Páginas do Folder O template inicialmente possui 2 (duas) páginas Pode possuir no máximo 8 (oito) páginas A Frame principal fpage0 pode ter somente sua altura alterada, obedecendo: Posicionamento da linha acrescido da altura dos frames das páginas. 11

ThinWindow Cada página está relacionada a uma widget frame fpage<pagenumber> Devem estar posicionados na coluna 3.50; A linha na qual devem estar posicionados fica a 1.45 abaixo do último widget da frame principal (fpage0); A largura não deve ser alterada (84.43); A altura é definida através da quantidade de widgets em linha acrescido de 0.25. 12

ThinWindow 13

ThinWindows Disposição dos Widgets Quando for necessário fazer a inclusão de widgets deve-se primeiramente selecionar o frame de trabalho; 14

ThinWindows 15

ThinWindows Alterar as propriedades dos widgtes inseridos: Devem estar dispostos em linha, e caso necessário em colunas; Para widgets do tipo fill-in, sua altura deve ser de 0.88; Para widgets dos tipos combo-box, suas alturas devem ser de 1.00; 16

ThinWindows Para widgets dos tipos editores ou list-box ou radio-set, suas alturas devem ser definidas pelo próprio desenvolvedor; A linha na qual os widgets que estão na primeira linha dos frames das páginas, deve ser 1.17; os demais devem estar a distância de 1.00 do widget anterior. 17

ThinReport ThinReport 18

ThinReport 19

ThinReport Características É uma janela do tipo detalhe, isto é, sem menu de barra e moldura, simulando uma caixa de diálogo; O botão 'Executar' tem como função executar toda a parametrização realizada nos Folders; O botão 'Fechar' do frame sai da tela; O botão 'Ajuda' é responsável por chamar o help do programa; 20

ThinReport Seleção: tudo que é faixa; Classificação: Radio-set com as opções; Parâmetros: com exceção da faixa, as outras informações que o usuário digita; Digitação: browse updatable. O gerenciamento das páginas do folder é feito pelo programa objects/thinfolder.w; Uma das opções de saída do relatório é o formato RTF (Rich Text Format). 21

ThinReport Faz uso do sistema de tradução de.r, bastando para tanto identificar as strings que não devem ser traduzidas com :U (Exemplo: "CHOOSE":U). 22

ThinReport Tarefas Definições dos Preprocessadores Definições das Páginas do Folder Disposição dos widgets nas Páginas Preparação do Programa de Interface Página de Layout Página de Seleção Página de Classificação Página de Parâmetros 23

ThinReport Página de Digitação Página de Impressão Página de Log Gravação e Validação dos Registros Programa de Lógica (rp.p) 24

ThinReport Definições dos Preprocessadores &GLOBAL-DEFINE Program thinreport &GLOBAL-DEFINE Version 1.00.00.000 &GLOBAL-DEFINE VersionLayout &GLOBAL-DEFINE Folder YES &GLOBAL-DEFINE InitialPage 1 &GLOBAL-DEFINE FolderLabels Seleção,Classificação, Parâmetro, Digitação,Impressão 25

ThinReport &GLOBAL-DEFINE PGLAY &GLOBAL-DEFINE PGSEL &GLOBAL-DEFINE PGCLA &GLOBAL-DEFINE PGPAR &GLOBAL-DEFINE PGDIG &GLOBAL-DEFINE PGIMP &GLOBAL-DEFINE PGLOG NO YES YES YES YES YES NO &GLOBAL-DEFINE RTF YES 26

ThinReport &GLOBAL-DEFINE page0widgets btok ~ btcancel ~ bthelp2 &GLOBAL-DEFINE page1widgets &GLOBAL-DEFINE page2widgets &GLOBAL-DEFINE page3widgets rsclassif &GLOBAL-DEFINE page4widgets lparameter ~ btinputfile 27

ThinReport &GLOBAL-DEFINE page5widgets brdigita ~ btadd ~ btupdate ~ btdelete ~ btsave ~ btopen &GLOBAL-DEFINE page6widgets rsdestiny ~ btconfigimpr ~ btfile ~ rsexecution &GLOBAL-DEFINE page7widgets &GLOBAL-DEFINE page8widgets 28

ThinReport &GLOBAL-DEFINE page0text &GLOBAL-DEFINE page1text &GLOBAL-DEFINE page2text &GLOBAL-DEFINE page3text &GLOBAL-DEFINE page4text &GLOBAL-DEFINE page5text &GLOBAL-DEFINE page6text &GLOBAL-DEFINE page7text &GLOBAL-DEFINE page8text text-entrada text-destino text-modo 29

ThinReport &GLOBAL-DEFINE page1fields &GLOBAL-DEFINE page2fields &GLOBAL-DEFINE page3fields &GLOBAL-DEFINE page4fields &GLOBAL-DEFINE page5fields &GLOBAL-DEFINE page6fields &GLOBAL-DEFINE page7fields &GLOBAL-DEFINE page8fields cinifield cendfield cinputfile cfile 30

ThinReport Definições das Páginas do Folder O template inicialmente possui 7 (sete) páginas: fpage0 Principal fpage1 - Layout fpage2 Seleção fpage3 - Classificação fpage4 Parâmetro fpage5 - Digitação fpage6 Impressão fpage7 - Log 31

ThinReport A Frame principal fpage0 pode ter somente sua altura alterada, obedecendo: Posicionamento da linha acrescido da altura dos frames das páginas. Cada página está relacionada a uma widget frame fpage<pagenumber> Devem estar posicionados na coluna 3.50; A linha na qual devem estar posicionados fica a 1.45 abaixo do último widget da frame principal (fpage0); 32

ThinReport A largura não deve ser alterada (84.43); A altura é definida através da quantidade de widgets em linha acrescido de 0.25 33

ThinReport 34

ThinReport Disposição dos Widgets Quando for necessário fazer a inclusão de widgets deve-se primeiramente selecionar o frame de trabalho; 35

ThinReport 36

ThinReport Alterar as propriedades dos widgtes inseridos: Devem estar dispostos em linha, e caso necessário em colunas; Para widgets do tipo fill-in, sua altura deve ser de 0.88; Para widgets dos tipos combo-box, suas alturas devem ser de 1.00; 37

ThinReport Para widgets dos tipos editores ou list-box ou radio-set, suas alturas devem ser definidas pelo próprio desenvolvedor; A linha na qual os widgets que estão na primeira linha dos frames das páginas, deve ser 1.17; os demais devem estar a distância de 1.00 do widget anterior. 38

ThinReport Preparação do Programa de Interface Verificar quais páginas é necessário ao programa; Eliminar as frames das páginas desnecessárias; Em 'Definitions' informar NO para os pré-processadores referentes as páginas que não serão utilizadas. 39

ThinReport &GLOBAL-DEFINE PGLAY &GLOBAL-DEFINE PGSEL &GLOBAL-DEFINE PGCLA &GLOBAL-DEFINE PGPAR &GLOBAL-DEFINE PGDIG &GLOBAL-DEFINE PGIMP &GLOBAL-DEFINE PGLOG NO YES YES YES YES YES NO 40

ThinReport Para utilizar a opção de saída do relatório para o formato RTF informar em Definitions o valor do respectivo préprocessador para YES. &GLOBAL-DEFINE RTF YES 41

ThinReport Página de Layout Esta página é obrigatória para os programas de Importação e Exportação; E necessário só é possível alterar a Frame para NO-BOX; 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. 42

ThinReport Página de Seleção Criar como 'Database Fields' e convertê-los para variáveis para obter automaticamente os labels, formatos e tamanhos do dicionário de dados; Corrigir os 'initial values' das variáveis de inicial e final. 43

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

ThinReport Página de Parâmetros Esta página é obrigatória para programas de Importação e Exportação; Colocar as variáveis necessárias na representação desejada; 45

ThinReport Página de Digitação Em 'Definitions', corrigir a definição da temp-table de digitação tt-digita inserindo os campos necessários; 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: 46

ThinReport '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. 47

ThinReport Ainda em 'Section Editor', para os botões btadd e btupdate, adaptar os seus gatilhos de 'Choose', na linha que aplica um evento 'Entry', sobre o primeiro campo habilitado no browse; Todas as validações do browse brdigita devem ser feitas na procedure piexecute 48

ThinReport Página de Impressão Esta página somente deve ser utilizada para programas de Relatório. 49

ThinReport Página de Log Esta página é obrigatória para programas de Importação e Exportação. Para programas de Exportação, retirar o campo rsall, o retângulo e o texto Imprime. 50

ThinReport Gravação e Validação dos Registros Em 'Definitions' implementar os campos de parâmetros e seleção na definição da temp-table tt-param; Na procedure 'piexecute', colocar as validações necessárias às opções do usuário para execução do relatório; 51

ThinReport if input frame f-pg-par i-nr-nivel > 19 then do: run SetFolder IN hfolder (INPUT 2). run utp/ut-msgs.p (input "show", input 73, input " "). apply 'entry' to i-nr-nivel in frame f-pgpar. return error. end. 52

ThinReport Na procedure 'piexecute', colocar a lógica de gravação dos parâmetros e seleção na temp-table tt-param; Substituir na chamada do include {report/i-rprun.i} a literal 'XXP/XX9999RP.P' pelo programa que deve imprimir o relatório. 53

ThinReport Programa de Lógica (rp.p) Programa sem interface que contém a lógica de negócio; Todas as validações ou informações com necessidade de intervenção do usuário devem ser tratadas pelo programa.w que o chama. 54

ThinReport Passos: Copiar a definição das temp-tables tt-param e tt-digita do programa de interface (.W) para o programa que deve gerar o relatório (rp.p); Utilizar um stream padrão definido como STR-RP, para impressão do relatório; 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; Para programas de Importação e Exportação definir outro stream para a entrada/saída dos dados; 55

ThinReport Nas seleções, ao invés de utilizar a palavra "à", para dar idéia de faixa, substituí-la pelos caracteres " < > " semelhantes as imagens utilizadas na tela de seleção, e que não necessitam ser traduzidos; Em todos os forms/frames de impressão deve-se colocar a cláusula stream-io; Para utilizar a funcionalidade de impressão para arquivo RTF definir o préprocessador conforme abaixo: &GLOBAL-DEFINE RTF YES &SCOPED-DEFINE pagesize N 56

ThinReport A definição da temp-table tt-param deve ser idêntica a definição da mesma no programa de interface. 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. Segue exemplo abaixo: IF tt-param.destino <> 4 THEN DO: VIEW STREAM str-rp FRAME f-cabec. VIEW STREAM str-rp FRAME f-rodape. END. 57

ThinFormation ThinFormation 58

ThinFormation 59

ThinFormation Características Algumas das funções são realizadas na própria tela base do programa; Faz uso do sistema de tradução de.r, bastando para tanto identificar as strings que não devem ser traduzidas com :U (Exemplo: CHOOSE :U) 60

ThinFormation Tarefas Definições dos Preprocessadores Definição da Temp-table de Comunicação Queries para os Browses Instância dos DBOs Disposição dos widgets nas Páginas Criação do Método openqueries Criação do Método saveparentfields 61

ThinFormation Triggers de Botões Padrão Criação do Método gotorecord 62

ThinFormation Definições dos Preprocessadores &GLOBAL-DEFINE Program thinformation &GLOBAL-DEFINE Version 1.00.00.000 &GLOBAL-DEFINE First YES &GLOBAL-DEFINE Prev YES &GLOBAL-DEFINE Next YES &GLOBAL-DEFINE Last YES &GLOBAL-DEFINE GoTo YES &GLOBAL-DEFINE Search YES 63

ThinFormation &GLOBAL-DEFINE UpdateTarget &GLOBAL-DEFINE DelTarget &GLOBAL-DEFINE AddTarget &GLOBAL-DEFINE DelAllTarget &GLOBAL-DEFINE AddAllTarget YES YES YES YES YES &GLOBAL-DEFINE ttparent &GLOBAL-DEFINE hdboparent &GLOBAL-DEFINE DBOParentTable ttorder hdboorder Order &GLOBAL-DEFINE tttarget &GLOBAL-DEFINE hdbotarget &GLOBAL-DEFINE DBOTargetTable ttorder-line hdboorder-line Order-Line 64

ThinFormation &GLOBAL-DEFINE ttsource &GLOBAL-DEFINE hdbosource &GLOBAL-DEFINE DBOSourceTable ttitem hdboitem Item &GLOBAL-DEFINE page0fields ttorder.order-num ~ ttorder.order-date ~ ttorder.sales-rep &GLOBAL-DEFINE sourcebrowse brsource &GLOBAL-DEFINE targetbrowse brtarget 65

ThinFormation Para retirar os botões de Consultas Relacionadas e Relatórios Relacionados, o desenvolvedor deve incluir o preprocessor padrão referente ao botão que deseja retirar. &GLOBAL-DEFINE ExcludeBtQueryJoins &GLOBAL-DEFINE ExcludeBtReportsJoins YES YES 66

ThinFormation Para definir o número de registros que devem ser retornados para o browse, deve-se utilizar o preprocessor padrão a seguir: Preprocessador NumRowsReturnedSource NumRowsReturnedTarget Descrição Número de registros que devem ser retornados no browse Source Número de registros que devem ser retornados no browse Target 67

ThinFormation Definição da Temp-table de Comunicação Deve-se criar a temp-table de comunicação com o DBO. 68

ThinFormation 69

ThinFormation 70

ThinFormation Queries para os Browses As queries dos browsers devem ser geradas com um FOR EACH simples na TEMP-TABLE de comunicação da interface. 71

ThinFormation 72

ThinFormation Instância do DBO As criações das instâncias do DBOs (DBO Pai, DBO Origem e DBO Destino) devem ser feitas manualmente, utilizando ou não o recurso de RPC. Definir as restrições iniciais e a abertura da query do DBO Pai, caso necessário. A instância dos DBOs é feita no método initializedbos. 73

ThinFormation Parâmetros: DBOParentProgram : Nome físico do programa DBO pai (principal); Description : Identifica o nome da constraint a ser utilizada inicialmente para o DBO pai (principal); Query: Identifica o nome da query a ser utilizada para realizar a abertura inicial do DBO pai; DBOSourceProgram : Nome físico do programa DBO origem 74

ThinFormation DBOTargetProgram : Nome físico do programa DBO destino (formação) 75

ThinFormation PROCEDURE initializedbos: /*--- Verifica se o DBO da tabela Pai já está inicializado ---*/ IF NOT VALID-HANDLE({&hDBOParent}) THEN DO: {btb/btb008za.i1 C:/Programs/DBOOrder.p} {btb/btb008za.i2 C:/Programs/DBOOrder.p '' {&hdboparent}} END. RUN openquerystatic IN {&hdboparent} (INPUT "OrderNum":U). /*--- Verifica se o DBO da tabela Origem já está inicializado ---*/ IF NOT VALID-HANDLE({&hDBOSource}) THEN DO: {btb/btb008za.i1 C:/Programs/DBOItem.p } {btb/btb008za.i2 C:/Programs/DBOItem.p '' {&hdbosource}} END. /*---Verifica se o DBO da tabela Formação já está inicializado ---*/ IF NOT VALID-HANDLE({&hDBOTarget}) THEN DO: {btb/btb008za.i1 C:/Programs/DBOOrder-Line.p } {btb/btb008za.i2 C:/Programs/DBOOrder-Line.p '' {&hdbotarget}} END. RETURN "OK":U. END PROCEDURE. 76

ThinFormation Para os widgets da temp-table de comunicação, deve-se utilizar o botão a seguir: 77

ThinFormation Alterar as propriedades dos widgtes inseridos: Devem estar dispostos em linha, e caso necessário em colunas; Para widgets do tipo fill-in, sua altura deve ser de 0.88; Para widgets dos tipos combo-box, suas alturas devem ser de 1.00; 78

ThinFormation Para widgets dos tipos editores ou list-box ou radio-set, suas alturas devem ser definidas pelo próprio desenvolvedor; Para os widgets que fazem parte da temp-table Pai, devem ser dispostos no retângulo rtparent; 79

ThinFormation Método OpenQueries É responsável por realizar a ligação entre o DBO Pai e o DBO destino (formação) e abrir a query do DBO Origem; Para atualizar os dados do browser Destino utiliza o include formation/openqueriestarget.i; Para atualizar os dados do browser Origem utiliza o include formation/openqueriessource.i; 80

ThinFormation Traz somente os 40 (quarenta) primeiros registros associados aos browsers. 81

ThinFormation formation/openqueriestarget.i Parâmetro Parent Query Descrição Nome da tabela pai, utilizado para designar o método linkto<parent> Identifica o nome da query a ser utilizada para realizar a abertura do DBO Destino 82

ThinFormation formation/openqueriessource.i Parâmetro Query ConstraintParameters OpenAlways Descrição Identifica o nome da query a ser utilizada para realizar a abertura do DBO Origem Parâmetros a serem utilizados para o método setconstraint{&description} O valor YES indica que o browse Origem deve ser atualizado a cada vez que for efetuada navegação na tabela Pai 83

ThinFormation PROCEDURE openqueries: {Formation/OpenQueriesTarget.i &Parent="Order" &Query="Order-Num"} {Formation/OpenQueriesSource.i &Query="Item-Num" &OpenAlways="no"} RETURN "OK":U. END PROCEDURE. 84

ThinFormation Método saveparentfields É responsável por atualizar a tabela de formação com base nos campos da tabela pai e tabela origem. 85

ThinFormation PROCEDURE saveparentfields: {&tttarget}.order-num = {&ttparent}.order- assign num {&tttarget}.item-num = {&ttsource}.item-num {&tttarget}.qty = 1 {&tttarget}.price = {&ttsource}.price. RETURN "OK":U. END PROCEDURE. 86

ThinFormation Triggers dos Botões Padrão Botão btupdatetarget Parâmetro ProgramTarget Descrição Nome do programa a ser executado para realizar a alteração de registro da tabela formação. ON CHOOSE OF btudpatetarget IN FRAME fpage1 DO: {masterdetail/updatetarget.i &ProgramTarget="C:/Programs/MaintenanceNoNavigationOrder.w"} END. 87

ThinFormation Triggers dos Botões Padrão Botão btsearch Parâmetro ProgramZoom Descrição Nome do programa a ser executado para realizar a pesquisa de registros. ON CHOOSE OF btsearch IN FRAME fpage0 /* Search */ OR CHOOSE OF MENU-ITEM misearch IN MENU mbmain DO: {method/zoomreposition.i &ProgramZoom="C:/Programs/Zoom.w "} END. 88

ThinFormation Método gotorecord É responsável pela função de Vá Para da tabela pai, disparada pelo botão btgoto e pelo menu migoto. 89

ThinFormation Parâmetros Parâmetro <c d i> <campo N> <Tabela> Descrição Indica o tipo de variável (c = character, d = decimal, i = integer). Nomes dos campos a serem inclusos na frame de Vá Para. Nome da tabela a ser utilizado para definir o título da frame de Vá Para. 90

ThinFormation PROCEDURE gotorecord: DEFINE VARIABLE icust-num LIKE ttcustomer.cust-num NO-UNDO. DEFINE FRAME fgotorecord icust-num AT ROW 1.21 COL 15 COLON-ALIGNED btgotook AT ROW 2.63 COL 2.14 btgotocancel AT ROW 2.63 COL 13 rtgotobutton AT ROW 2.38 COL 1 SPACE(0.28) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO- UNDERLINE THREE-D SCROLLABLE FONT 1 TITLE "Vá Para Customer" DEFAULT-BUTTON btgotook CANCEL-BUTTON btgotocancel. 91

ThinFormation ON "CHOOSE":U OF btgotook IN FRAME fgotorecord DO: ASSIGN icustnum. RUN gotokey IN {&hdbotable} (INPUT icustnum). IF RETURN-VALUE = "NOK":U THEN DO: RUN utp/ut-msgs.p (INPUT "SHOW":U, INPUT 2, INPUT "Customer"). RETURN NO-APPLY. END. END. ENABLE icust-num btgotook btgotocancel WITH FRAME fgotorecord. 92

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