DDK GUI - Sanderlei

116
1 DDK GUI Parte 7 Tecnologia

Transcript of DDK GUI - Sanderlei

Page 1: DDK GUI - Sanderlei

1

DDK GUI

Parte 7

Tecnologia

Page 2: DDK GUI - Sanderlei

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

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

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

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

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

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

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

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

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

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

12

Objetivo

Retornar propriedades dos campos do dicionário de dados, como label, column-label, etc.

UT-FIELD.I

Page 13: DDK GUI - Sanderlei

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

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

15

UT-FIELD.I

Data Type7

Description6

Initial5

Format4

Help3

Column-label2

Label1

PropriedadeNúmero

Page 16: DDK GUI - Sanderlei

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

49

IND01-10.I, IND11-50.I E IND51500.I

Page 50: DDK GUI - Sanderlei

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

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

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

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

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

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

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

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

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

59

O retorno é obtido através do return-value.

Exemplo:

UT-LITER.I

À direitaR

CentralizadoC

À esquerdaL

AlinhamentoTipo

Page 60: DDK GUI - Sanderlei

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

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

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

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

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

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

66

Objetivo

Define variáveis globais;

Formato

Já está definido dentro dos SmartObjects;

UT-GLOB.I

Page 67: DDK GUI - Sanderlei

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

68

Objetivo

Converter strings acentuadas e caracteres especiais para strings não acentuadas e caracteres simples.

I-FREEAC.I

Page 69: DDK GUI - Sanderlei

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

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

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

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

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

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

75

UT-DIR.P

Page 76: DDK GUI - Sanderlei

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

97

Exemplo:

run utp/ut-cmdln.p (output c-linha-comando).

UT-CMDLN.P

Page 98: DDK GUI - Sanderlei

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

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

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

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

102

UT-OSVER.P

Page 103: DDK GUI - Sanderlei

103

Objetivo:

Descobrir a quantidade de registros numa tabela de acordo a condição passada.

I-COUNTDS.I

Page 104: DDK GUI - Sanderlei

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

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

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

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

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

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

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

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

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

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

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

115

Exemplo:

UT-TRACE.P

Page 116: DDK GUI - Sanderlei

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.

[email protected]

http://universidade.datasul.com.br

[email protected]

http://universidade.datasul.com.br

Obrigada!

Obrigada