Download - DDK GUI - Sanderlei
![Page 1: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/1.jpg)
1
DDK GUI
Parte 7
Tecnologia
![Page 2: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/2.jpg)
2
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
![Page 3: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/3.jpg)
3
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
Agenda
![Page 4: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/4.jpg)
4
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
Agenda
![Page 5: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/5.jpg)
5
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
Agenda
![Page 6: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/6.jpg)
6
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
Agenda
![Page 7: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/7.jpg)
7
Consulta Complexa
Consulta Relacionamentos
Parâmetros Únicos
Formação
Parte 6
Relatórios
Importação
Exportação
CustomBrowser Digitação
Digitação Rápida
Agenda
![Page 8: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/8.jpg)
8
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
Agenda
![Page 9: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/9.jpg)
9
UT-GLOB.I
I-FREEAC.I
UT-DIR.P
BTB917ZX.P
BTB917ZY.P
BTB917ZZ.P
UT-VRBIN.P
UT-FINFO.P
UT-CMDLN.P
Agenda
![Page 10: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/10.jpg)
10
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
Agenda
![Page 11: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/11.jpg)
11
Mensagens em Outros Idiomas
Procedures Reutilizáveis
Portabilidade de RCODES
Customizações
API - Application Program Interface
UPC - User Program Call
Agenda
![Page 12: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/12.jpg)
12
Objetivo
Retornar propriedades dos campos do dicionário de dados, como label, column-label, etc.
UT-FIELD.I
![Page 13: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/13.jpg)
13
Formato
{utp/ut-field.i <banco> <tabela> <campo> <propriedade>}
Onde:
<banco>: nome lógico do banco de dados que contém o campo;
UT-FIELD.I
![Page 14: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/14.jpg)
14
<tabela>: nome da tabela que contém o campo;
<campo>: nome do campo;
<propriedade>: número que identifica a propriedade conforme tabela a seguir:
UT-FIELD.I
![Page 15: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/15.jpg)
15
UT-FIELD.I
Data Type7
Description6
Initial5
Format4
Help3
Column-label2
Label1
PropriedadeNúmero
![Page 16: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/16.jpg)
16
O retorno é obtido através do return-value.
Exemplo:
def var c-tipo as character no-undo.
{utp/ut-field.i mgadm conta tipo 1}
assign c-tipo:label in browse br-table = return-value.
UT-FIELD.I
![Page 17: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/17.jpg)
17
Objetivo
Permitir a utilização de literais para colar labels em retângulos na tela minimizando os problemas de internacionalização.
UT-RTLBL.I
![Page 18: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/18.jpg)
18
Utilização
Campos view-as radio-set ou editor, onde seja necessário emoldurá-lo com retângulo com um label para identificá-lo;
Literais utilizados em telas para substituir labels;
UT-RTLBL.I
![Page 19: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/19.jpg)
19
Formato
{utp/ut-rtlbl.i <banco> <tabela> <campo> <widget fill-in>}
Onde:
<banco>: nome lógico do banco de dados que contém o campo;
UT-RTLBL.I
![Page 20: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/20.jpg)
20
<tabela>: nome da tabela que contém o campo;
<campo>: nome do campo;
<widget fill-in>: fill-in view-as text colocado na tela
Exemplo:
{utp/ut-rtlbl.i mgadm conta natureza text-1}
UT-RTLBL.I
![Page 21: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/21.jpg)
21
Objetivo
Seu objetivo é executar programas que não possuam interface (.p), através do recurso de RPC (RemoteProcedure Call).
Deve executar apenas programas (.p), chamados a partir de programas (.w).
UT-RUN.I
![Page 22: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/22.jpg)
22
Não deve chamar um programa (.p), a partir de um outro programa (.p) porque o programa chamador (.p) já estárodando no servidor (Application Server) e não énecessário iniciar um novo servidor.
UT-RUN.I
![Page 23: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/23.jpg)
23
Utilização
Sempre que for chamado algum programa sem interface a partir de um .W, e que este programa seja candidato para ser executado via RPC.
UT-RUN.I
Para utilizar os includes é necessário relacionar ao programa os includes {utp/ut-glob.i} e {btb/btb008za.io} no main-block,
para definição de variáveis e funções.
![Page 24: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/24.jpg)
24
Formato
1. Modo Simplificado:
Include
{utp/ut-run.i {1} {2} {3} {4}}
Onde:
{1}: Nome externo do programa;
UT-RUN.I
![Page 25: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/25.jpg)
25
{2}: Parâmetros do programa;
{3}: Mostra mensagem de acompanhamento [Opcional];
{4}: Servidor de RPC determinado [Opcional]
UT-RUN.I
1. Para informar parâmetros em branco ou literal, utilize aspas duplas ("") com aspas simples (''). Exemplo: "" ' '.
2. Não sendo informados os parâmetros opcionais estes receberão "yes" e "" ' ' respectivamente.
![Page 26: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/26.jpg)
26
Funções
Solicita a conexão e cria a instância do servidor, conforme servidor do aplicativo ou parâmetro;
Mostra mensagem se ocorrer um erro (por exemplo, de conexão), quando solicitada ({3} = yes);
Dispara a execução do programa no servidor;
Encerra a conexão e elimina a instância.
UT-RUN.I
![Page 27: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/27.jpg)
27
Aplicações
Quando o programa API será disparado uma única vez para realizar todo o processo.
Exemplo:
{utp/ut-run.i cep/ceapi001.p "input-output table tt-mvto, input-output table tt-erro" yes ""''}
UT-RUN.I
![Page 28: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/28.jpg)
28
1. Modo Aberto:
Include
{btb/btb008za.i1 {1} {2} {3}}
Onde:
{1}: Nome externo do programa;
{2}: Mostra mensagem de acompanhamento;
{3}: Servidor de RPC determinado
UT-RUN.I
![Page 29: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/29.jpg)
29
{btb/btb008za.i2 {1} {2} {3}}
Onde:
{1}: Nome externo do programa;
{2}: Parâmetros do programa;
{3}: Nome da variável do tipo "handle" para executar o programa persistente [Opcional]
UT-RUN.I
![Page 30: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/30.jpg)
30
{btb/btb008za.i3 {1} {2}}
Onde:
{1} = Nome externo do programa;
{2} = Nome da variável do tipo "handle" utilizada para eliminar a procedure persistente [Opcional]
UT-RUN.I
![Page 31: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/31.jpg)
31
Funções
Idênticas ao Modelo Simplificado, porém distribuídas em três includes:
Solicita a conexão e cria a instância do servidor;
Dispara a execução do programa;
Encerra a conexão e elimina a instância.
UT-RUN.I
![Page 32: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/32.jpg)
32
Aplicações
Quando o programa API é disparado n vezes dentro de um laço (repeat, for each...).
UT-RUN.I
Existe a API BTAPI008 que possui funçõesque podem ser utilizadas no Desenvolvimento.
![Page 33: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/33.jpg)
33
Exemplo:
def var h-handle as handle no-undo.
{btb/ btb008za.i1 cep/ceapi001.p yes "rpc-test"}for each cta_ctbl no-lock:/* Prepara tt_movto */
{btb/btb008za.i2 cep/ceapi001.p "input tt_movto, output tt_erro" "h-handle"}end.{btb/btb008za.i3 cep/ceapi001.p "h-handle"}
UT-RUN.I
![Page 34: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/34.jpg)
34
Considerações Gerais
Caso não seja informado nenhum servidor RPC, será utilizado o servidor RPC definido no aplicativo do programa;
Se o processo estiver sendo executado via RPW e o servidor RPC não foi informado, o programa será executado On-line.
Quando informado valor parar servidor RPC, caso ocorra algum erro, não será possível a execução On-line.
UT-RUN.I
![Page 35: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/35.jpg)
35
Ocorrendo erros na tentativa de execução do programa, estes serão retornados juntamente com a mensagem 16435 (*).
Quando for informada a variável do tipo "handle" para a include btb/btb008za.i2, deve-se tomar dois cuidados:
Esta variável deve estar previamente definida no programa.
Ao final da execução, deve-se eliminar o programa persistente passando o nome da variável para a include btb008za.i3.
UT-RUN.I
![Page 36: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/36.jpg)
36
Existe a API que transporta o conteúdo das variáveis de ambiente do Datasul_EMS da sessão client para a sessão do application server (remota) quando o programa solicita a execução de determinado programa via RPC (Remote ProcedureCall). Logo, as informações como usuário corrente, grupos de segurança em que o usuário se encontra, empresa do usuário... estarão disponíveis na sessão remota.
UT-RUN.I
![Page 37: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/37.jpg)
37
Objetivo
Apresentar para o usuário uma mensagem previamente cadastrada, no Sistema de Mensagens, ou ainda, retornar para o programa propriedades desta mensagem.
UT-MSGS.P
![Page 38: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/38.jpg)
38
Ao ser exibida uma mensagem, seu número vai ser exibido na barra de título da caixa de diálogo, juntamente com o tipo de mensagem. Ex.: Pergunta: (10);
UT-MSGS.P
![Page 39: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/39.jpg)
39
Antes da exibição de qualquer mensagem, será verificado se ela possui uma substituta. Se houver, a mensagem substituta seráexibida ao invés da original;
Os números da mensagem original e da mensagem substituta serão exibidos na barra de títulos da caixa de diálogo. Exemplo: Advertência: (134) - (354), onde 134 seria a mensagem exibida e 354 a mensagem original.
UT-MSGS.P
![Page 40: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/40.jpg)
40
Utilização
Apresentação de mensagens de erro, informação, advertência ou questionamentos ao usuário;
Impressão de mensagens em log´s.
Apresentação da pilha de execução dos programas até o ponto de chamada da ut-msgs, através do botão “trace”.
UT-MSGS.P
![Page 41: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/41.jpg)
41
Formato
run utp/ut-msgs.p (input <ação>
input <número da mensagem>input <parâmetros>).
Onde:
<ação>: ação desejada, conforme a tabela a seguir;
UT-MSGS.P
![Page 42: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/42.jpg)
42
UT-MSGS.P
Retorna o código do tipo da mensagem codtype
Retorna o tipo da mensagem(Erro, Advertência, Informação ou Questão)
type
Retorna o texto de ajudahelp
Retorna o texto da mensagemmsg
Apresenta a mensagem, com texto de ajuda no padrão do produto
show
ResultadoAção
![Page 43: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/43.jpg)
43
<número da mensagem>: número da mensagem desejada.
<parâmetros>: são os campos, tabelas e outras palavras que se deseja colocar na mensagem no momento de sua utilização. Cada um dos parâmetros deve ser separado por "~~"
UT-MSGS.P
![Page 44: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/44.jpg)
44
Exemplo:
run utp/ut-msgs.p (input "show",input 1235,input repres.cod-repres + "~~" +
regiao.cod-regiao + "~~" +string(regiao.val-minimo).
UT-MSGS.P
![Page 45: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/45.jpg)
45
Objetivo
Viabilizar a utilização de combo-boxe’s e radio-set’s com representação para campos inteiros.
Utilização
Nos includes de dicionário de dados criados para cada campo.
IND01-10.I, IND11-50.I E IND51500.I
![Page 46: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/46.jpg)
46
Formato
{include/ind01-10.i {1} {2}
Onde:
{1}: indica a função a ser realizada, conforme tabela a seguir;
IND01-10.I, IND11-50.I E IND51500.I
![Page 47: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/47.jpg)
47
IND01-10.I, IND11-50.I E IND51500.I
Retorna a posição do item (número)06 item
Retorna o número de itens da lista 05
Retorna valores para a propriedade radio-buttons07
Retorna o item n da lista 04 n
Lista com os itens separados por vírgula 03
define view-as radio-set02
define view-as combo-box01
ObjetivoFunção
![Page 48: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/48.jpg)
48
{2}: utilizado quando a função necessita de um segundo parâmetro, isto é, nas opções 04 e 06.
Exemplo:
IND01-10.I, IND11-50.I E IND51500.I
![Page 49: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/49.jpg)
49
IND01-10.I, IND11-50.I E IND51500.I
![Page 50: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/50.jpg)
50
/* i01un195.i - campo: modulo ( tabela: agenda-rpw )***/{include/i-lgcode.i}&IF "{&LANGUAGE-CODE}" = "POR" &THEN&glob val1 MultiPlanta&glob val2 Coleta Dados&glob val3 EDI&ENDIF&IF "{&LANGUAGE-CODE}" = "ESP" &THEN&glob val1 Multiplanta&glob val2 Colecta Dato&glob val3 EDI&ENDIF&IF "{&LANGUAGE-CODE}" = "ING" &THEN&glob val1 Multi-Plant&glob val2 Data Coll &glob val3 EDI&ENDIF{include/ind01-10.i {1} {2} }/* Fim */
IND01-10.I, IND11-50.I E IND51500.I
![Page 51: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/51.jpg)
51
Objetivo
Retornar propriedades das tabelas do dicionário de dados.
Utilização
Nos SmartBrowsers ou Browsers para pôr label em campos calculados;
Para utilização de literais ou textos nas telas com função de label, como no retângulo que envolve o radio-set.
UT-TABLE.I
![Page 52: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/52.jpg)
52
Formato
{utp/ut-table.i <banco> <tabela> <propriedade>}
Onde:
<banco>: nome lógico do banco de dados que contém a tabela;
<tabela>: nome da tabela desejada;
<propriedade>: número que identifica a propriedade, conforme tabela a seguir.
UT-TABLE.I
![Page 53: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/53.jpg)
53
O retorno é obtido através do return-value.
Exemplo:
UT-TABLE.I
Desc3
Dump-Name2
File-Label1
PropriedadeNúmero
![Page 54: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/54.jpg)
54
def var c-tipo as character no-undo.{utp/ut-table.i mgadm conta 1}assign c-tipo:label in browse br-table = return-value.
UT-TABLE.I
![Page 55: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/55.jpg)
55
Objetivo
Utilizar o cadastro de literais do Datasul EMS, cadastrando automaticamente as literais utilizadas no programa e retornando a tradução da literal no idioma corrente do banco de dados.
UT-LITER.I
![Page 56: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/56.jpg)
56
Utilização
Em todos os lugares onde literais passíveis de tradução forem apresentadas na interface do programa.
UT-LITER.I
![Page 57: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/57.jpg)
57
Formato
{utp/ut-liter.i <literal> <modulo contexto> <alinhamento>}
Onde:
<literal>: Literal a ser utilizada na tela com os espaços substituídos por "_" (undescore);
UT-LITER.I
![Page 58: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/58.jpg)
58
<módulo contexto>: Parâmetro opcional que define o contexto de tradução da literal. Se omitido, a literal deve ter o contexto universal de tradução, que é representado pelo valor * (asterisco)
<alinhamento>: Parâmetro opcional que define onde éincrementado o espaço extra para tradução. Se omitido, deve reservar o espaço à esquerda da literal.
UT-LITER.I
![Page 59: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/59.jpg)
59
O retorno é obtido através do return-value.
Exemplo:
UT-LITER.I
À direitaR
CentralizadoC
À esquerdaL
AlinhamentoTipo
![Page 60: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/60.jpg)
60
def var l-lista-narra as character no-undo.{utp/ut-liter.i Lista_Narrativa MCE R}assign l-lista-narra:label in frame {&frame-name} =
return-value.
UT-LITER.I
![Page 61: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/61.jpg)
61
Objetivo
Determinar o valor inicial e final de campos caracter, cujo formato é variável, como, por exemplo, a conta-contábil.
UT-LIMIT.P
![Page 62: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/62.jpg)
62
Utilização
Na seleção de relatórios, cálculos, atualizações e zooms que tenham faixas de seleção sobre campos caracter com formato variável.
UT-LIMIT.P
![Page 63: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/63.jpg)
63
Formato
run utp/ut-limit.p (input <opção>,<formato>).
Onde:
<opção>: indica o limite desejado, MIN = Mínimo e MAX = Máximo;
<formato>: formato do campo caracter
UT-LIMIT.P
![Page 64: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/64.jpg)
64
O retorno é obtido através do return-value.
Exemplo 1:
def var c-conta-ini as char no-undo.find first param-global no-lock no-error.run utp/ut-limit.p (input "MIN",
input param-global. formato-conta-contabil).
Assign c-conta-ini = return-value.=> c-conta-ini: ‘0000000000000’
UT-LIMIT.P
![Page 65: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/65.jpg)
65
Exemplo 2:
def var c-conta-ini as char no-undo.find first param-global no-lock no-error.run utp/ut-limit.p (input “MAX",
input param-global. formato-conta-contabil).
Assign c-conta-ini = return-value.
=> c-conta-ini: ‘9999999999999’
UT-LIMIT.P
![Page 66: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/66.jpg)
66
Objetivo
Define variáveis globais;
Formato
Já está definido dentro dos SmartObjects;
UT-GLOB.I
![Page 67: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/67.jpg)
67
Exemplo de Variáveis Definidas:
i-ep-codigo-usuario: contém a empresa corrente do usuário.
l-implanta: variável lógica usada no Zoom, para habilitar o botão implanta.
c-seg-usuario: contém o nome do usuário corrente logadono menu.
UT-GLOB.I
![Page 68: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/68.jpg)
68
Objetivo
Converter strings acentuadas e caracteres especiais para strings não acentuadas e caracteres simples.
I-FREEAC.I
![Page 69: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/69.jpg)
69
Utilização
Nos Templates de Relatório, Importação, Exportação e em pontos específicos que necessitem que a saída de dados (impressora/arquivo/tela) seja feita sem acentuação;
I-FREEAC.I
![Page 70: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/70.jpg)
70
Formato
{include/i-freeac.i}assign <variável> = fn-free-accent("<string>").
Onde:
<variável>: variável que irá armazenar o valor do retorno da função fn-free-accent;
<string>: string acentuada a ser convertida.
I-FREEAC.I
![Page 71: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/71.jpg)
71
Exemplo:
{include/i-freeac.i}define var c-texto as char no-undo.assign c-texto = fn-free-accent ("ÁÀÃÂÄ-ÉÈÊË-ÍÌÎÏ-ÓÒÔÕÖ-ÚÙÛÜ-ÝŸ-Ç-Ñ").message fn-free-accent("áàãâä-éèêë-~íìîï-óòõôö-úùûü-y´¨y-ç-ñ") chr(10) c-texto view-as alert-box.
I-FREEAC.I
![Page 72: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/72.jpg)
72
Objetivo
Este utilitário deve ser usado sempre que o usuário tiver que informar um diretório.
Formato
run utp/ut-dir.p (input <título>,output <pasta>,output <cancelado>).
UT-DIR.P
![Page 73: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/73.jpg)
73
Onde:
<título>: título para a caixa de diálogo para selecionar diretórios.
<pasta>: variável do tipo caracter onde será retornada a pasta selecionada.
<cancelado>: uma variável do tipo lógica que deve ser retornado se a caixa de diálogo foi cancelada ou não.
UT-DIR.P
![Page 74: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/74.jpg)
74
Exemplo:
define var c-texto as char no-undo.define var l-result as logical no-undo. run utp/ut-dir.p (input "Escolha um diretório",
output c-texto,output l-result).
UT-DIR.P
![Page 75: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/75.jpg)
75
UT-DIR.P
![Page 76: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/76.jpg)
76
Objetivo
Permitir a execução de sons do tipo MID e WAV
Instalação
Como este programa utiliza os recursos de OCX, é preciso que este OCX esteja registrado e instalado na máquina que deve ser utilizada.
BTB917ZX.P
![Page 77: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/77.jpg)
77
Para fazer esta instalação proceda da seguinte forma:
1. Executar o SETUP.EXE, que se encontra no diretório \INTERFAC\SOM\;
2. Clicar no botão de 'OK', quando for solicitado;
3. Clicar no botão ;
4. Clicar em OK para terminar.
BTB917ZX.P
![Page 78: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/78.jpg)
78
Formato
run btb/btb917zx.p (input <som>).
Onde:
<som>: caminho completo do arquivo de som a ser executado.
Exemplo:
run btb/btb917zx.p (input "c:\windows\media\start.wav").
BTB917ZX.P
![Page 79: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/79.jpg)
79
Objetivo
Permitir a visualização dos seguintes tipos de imagens:
Bitmaps (*.bmp; *.dib);
Gif Images (*.gif);
JPEG Images (*.jpg);
Metafiles (*.wmf, *.emf);
Icons (*.ico, *.cur).
BTB917ZY.P
![Page 80: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/80.jpg)
80
Instalação
Como este programa utiliza os recursos de OCX, é preciso que este OCX esteja registrado e instalado na máquina que deve ser utilizada. Para fazer esta instalação proceda da seguinte forma:
1. Executar o SETUP.EXE, que se encontra no diretório \INTERFAC\IMAGEM\;
BTB917ZY.P
![Page 81: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/81.jpg)
81
2. Clicar no botão de 'Ok', quando for solicitado;
3. Clicar no botão ;
4. Clicar em ‘OK’ para terminar.
Formato:
run btb/btb917zy.p (input <imagem>).
BTB917ZY.P
![Page 82: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/82.jpg)
82
Onde:
<imagem>: caminho completo da imagem a ser visualizada.
Exemplo:
run btb/btb917zy.p (input "c:\windows\egito.bmp").
BTB917ZY.P
![Page 83: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/83.jpg)
83
Objetivo
Permitir a visualização de vídeos do tipo AVI.
Instalação
Como este programa utiliza os recursos de OCX, é preciso que este OCX esteja registrado e instalado na máquina em que deve ser utilizado. Para fazer esta instalação proceda da seguinte forma:
BTB917ZZ.P
![Page 84: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/84.jpg)
84
1. Executar o SETUP.EXE, que se encontra no diretório \INTERFAC\VIDEO\DISK1;
2. Clicar no botão de 'Ok', quando for solicitado;
3. Clicar no botão ;
4. Clicar em ‘OK’ para terminar.
Formato:
run btb/btb917zz.p (input <video>)
BTB917ZZ.P
![Page 85: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/85.jpg)
85
Onde:
<vídeo>: caminho completo do vídeo a ser apresentado.
Exemplo:
run btb/btb917zz.p (input "c:\windows\help\explorer.avi").
BTB917ZZ.P
![Page 86: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/86.jpg)
86
Objetivo
Este utilitário pode ser usado sempre que for necessário saber a versão de um programa compilado (.R).
Formato
run utp/ut-vrbin.p (input <arquivo>,input <acomp>,output <versao>).
UT-VRBIN.P
![Page 87: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/87.jpg)
87
Onde:
<arquivo>: variável do tipo caracter que irá conter o nome do arquivo compilado a ser analisado;
<acomp>: variável do tipo lógica que irá definir se a pesquisa deve apresentar a tela de acompanhamento ou não;
<versao>: variável do tipo caracter que irá receber a versão do programa passado como parâmetro
UT-VRBIN.P
![Page 88: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/88.jpg)
88
Exemplo:
run utp/ut-vrbin.p(input "c:\tmp\cd0101.r",input no,output c-versao).
UT-VRBIN.P
![Page 89: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/89.jpg)
89
Observações:
Programa só conseguirá buscar a versão dos programas que foram construídos conforme os padrões de desenvolvimento da Datasul S.A. e que utilizem as Técnicas e Templates do Datasul EMS 2.0;
A tela de acompanhamento deixa o programa sensivelmente mais lento, pois faz interações com a tela, mas em compensação, deixa o usuário informado do que está ocorrendo naquele momento;
UT-VRBIN.P
![Page 90: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/90.jpg)
90
Se o retorno da versão for "?", o programa não conseguiu obter a versão. Os principais motivos disto são:
Programa a ser pesquisado não for encontrado;
Programa não está dentro das técnicas e templates do Datasul EMS 2.0;
Programa não possui a versão internamente.
UT-VRBIN.P
![Page 91: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/91.jpg)
91
Objetivo
Este utilitário pode ser usado sempre que for necessário saber a data, a hora ou o tamanho de um arquivo no Windows.
Formato
run utp/ut-finfo.p (input <arquivo>,output <data>,output <hora>,output <tamanho>).
UT-FINFO.P
![Page 92: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/92.jpg)
92
Onde:
<arquivo>: variável do tipo caracter que deve conter o nome do arquivo a ser analisado;
<data>: variável do tipo data que deve receber a data do arquivo que está sendo analisado;
<hora>: variável do tipo caracter que deve receber a hora do arquivo que está sendo analisado;
UT-FINFO.P
![Page 93: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/93.jpg)
93
<tamanho>: variável do tipo inteira que deve receber o tamanho do arquivo que está sendo analisado.
Exemplo:
run utp/ut-finfo.p(input "c:\autoexec.bat",output d-data,output c-hora,output i-tam).
UT-FINFO.P
![Page 94: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/94.jpg)
94
Observação:
Caso o programa não seja encontrado, o utilitário iráretornar "?", na data e "00:00:00", na hora.
UT-FINFO.P
![Page 95: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/95.jpg)
95
Objetivo:
Este utilitário pode ser usado sempre que for necessário saber informações mais detalhadas sobre a linha de comando usada para abrir a sessão corrente.
UT-CMDLN.P
![Page 96: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/96.jpg)
96
Formato:
run utp/ut-cmdln.p (output <linha-comando>).
Onde:
<linha-comando>: variável do tipo caracter que irá receber a linha de comando usada para abrir a sessão corrente.
UT-CMDLN.P
![Page 97: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/97.jpg)
97
Exemplo:
run utp/ut-cmdln.p (output c-linha-comando).
UT-CMDLN.P
![Page 98: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/98.jpg)
98
Objetivo:
Esta técnica pode ser usada sempre que for necessário saber informações mais detalhadas sobre o Sistema Operacional.
UT-OSVER.P
![Page 99: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/99.jpg)
99
Formato:
run utp/ut-osver.p (ouput <plataforma>,output <versao>,output <release>,output <build>,output <extrainfo>).
UT-OSVER.P
![Page 100: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/100.jpg)
100
Onde:
<plataforma>: variável do tipo caracter que irá receber o tipo plataforma windows (Windows NT ou Windows 95/98);
<versao>: variável do tipo inteira que irá receber, se houver, a versão do Windows;
<release>: variável do tipo inteira que irá receber, se houver, a "release" do Windows;
<build>: variável do tipo inteira que irá receber, se houver, o "build" do Windows;
UT-OSVER.P
![Page 101: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/101.jpg)
101
<extrainfo>: variável do tipo caracter que irá receber informações extras sobre o Windows (Versão do Service Pack, etc ...)
Exemplo:
run utp/ut-osver.p (output c-plataforma,output i-versao,output i-release,output i-build,output c-extrainfo).
UT-OSVER.P
![Page 102: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/102.jpg)
102
UT-OSVER.P
![Page 103: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/103.jpg)
103
Objetivo:
Descobrir a quantidade de registros numa tabela de acordo a condição passada.
I-COUNTDS.I
![Page 104: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/104.jpg)
104
Utilização:
Quando é necessário determinar a quantidade de registros numa tabela, evitando que o OWNER seja incluído antes do nome da tabela no programa compilado, quando o banco de dados é acessado através do DataServer.
I-COUNTDS.I
![Page 105: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/105.jpg)
105
Formato:
{include/i-countds.i &BANCO=<banco> &TABELA=<tabela>
&COND=<condição>&DEST=<variável> }
Onde:
<banco>: banco de dados onde a tabela se encontra.
I-COUNTDS.I
![Page 106: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/106.jpg)
106
<tabela>: tabela que deve ter o número de registros contados.
<condição>: cláusula where, que deve ser usada na consulta. Opcional.
<variável>: variável que irá armazenar o resultado da consulta.
I-COUNTDS.I
![Page 107: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/107.jpg)
107
Exemplo:
DEF VAR iCount AS INT NO-UNDO.{include/i-countds.i &BANCO=mgadm
&TABELA="cheque-pend"&COND="WHERE cod-banco > 20"&DEST=iCount}
message iCount view-as alert-box.
I-COUNTDS.I
![Page 108: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/108.jpg)
108
Observações:
Utilize apenas se o banco de dados não for PROGRESS, isto é, for acessado através do DataServer.
<condição> e <tabela> devem estar entre aspas.
I-COUNTDS.I
![Page 109: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/109.jpg)
109
Objetivo:
A UT-WIN.I define procedures para acesso a funções externas de API’s do Windows.
UT-WIN.I
![Page 110: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/110.jpg)
110
Procedures:
As Procedures definidas para esta include podem ser consultadas no manual de padrões do produto.
UT-WIN.I
![Page 111: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/111.jpg)
111
Exemplo:
Ver nome do usuário logado.
DEFINE VARIABLE chrUserID AS CHARACTER NO-UNDO.DEFINE VARIABLE intSize AS INTEGER NO-UNDO.
ASSIGN chrUserID = FILL(' ',256)intSize = 255.
RUN GetUserName{&A} (INPUT-OUTPUT chrUserID,INPUT-OUTPUT intSize).
MESSAGE TRIM(chrUserID)VIEW-AS ALERT-BOX.
UT-WIN.I
![Page 112: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/112.jpg)
112
Objetivo:
Exibir em tela toda a lista de programas e procedures internas executadas até o ponto de execução deste aplicativo.
UT-TRACE.P
![Page 113: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/113.jpg)
113
Utilização:
Pode ser utilizado em qualquer template da Datasul, independente do programa ser Smart ou Thin Template.
UT-TRACE.P
![Page 114: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/114.jpg)
114
Formato:
{utp/ut-trace.i}
RUN utp/ut-trace.p PERSISTENT SET h-trace.RUN pi-monta-trace IN h-trace (OUTPUT TABLE tt-trace).RUN utp/trace.w (INPUT TABLE tt-trace).
UT-TRACE.P
![Page 115: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/115.jpg)
115
Exemplo:
UT-TRACE.P
![Page 116: DDK GUI - Sanderlei](https://reader031.vdocuments.com.br/reader031/viewer/2022012023/6169d6b611a7b741a34beed6/html5/thumbnails/116.jpg)
116
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.
http://universidade.datasul.com.br
http://universidade.datasul.com.br
Obrigada!
Obrigada