1
DDK GUI
Parte 7
Tecnologia
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
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
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
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
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
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
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
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
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
11
Mensagens em Outros Idiomas
Procedures Reutilizáveis
Portabilidade de RCODES
Customizações
API - Application Program Interface
UPC - User Program Call
Agenda
12
Objetivo
Retornar propriedades dos campos do dicionário de dados, como label, column-label, etc.
UT-FIELD.I
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
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
15
UT-FIELD.I
Data Type7
Description6
Initial5
Format4
Help3
Column-label2
Label1
PropriedadeNúmero
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
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
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
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
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
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
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
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.
24
Formato
1. Modo Simplificado:
Include
{utp/ut-run.i {1} {2} {3} {4}}
Onde:
{1}: Nome externo do programa;
UT-RUN.I
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.
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
49
IND01-10.I, IND11-50.I E IND51500.I
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
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
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
53
O retorno é obtido através do return-value.
Exemplo:
UT-TABLE.I
Desc3
Dump-Name2
File-Label1
PropriedadeNúmero
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
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
56
Utilização
Em todos os lugares onde literais passíveis de tradução forem apresentadas na interface do programa.
UT-LITER.I
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
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
59
O retorno é obtido através do return-value.
Exemplo:
UT-LITER.I
À direitaR
CentralizadoC
À esquerdaL
AlinhamentoTipo
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
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
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
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
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
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
66
Objetivo
Define variáveis globais;
Formato
Já está definido dentro dos SmartObjects;
UT-GLOB.I
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
68
Objetivo
Converter strings acentuadas e caracteres especiais para strings não acentuadas e caracteres simples.
I-FREEAC.I
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
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
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
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
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
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
75
UT-DIR.P
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
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
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
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
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
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
82
Onde:
<imagem>: caminho completo da imagem a ser visualizada.
Exemplo:
run btb/btb917zy.p (input "c:\windows\egito.bmp").
BTB917ZY.P
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
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
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
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
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
88
Exemplo:
run utp/ut-vrbin.p(input "c:\tmp\cd0101.r",input no,output c-versao).
UT-VRBIN.P
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
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
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
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
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
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
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
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
97
Exemplo:
run utp/ut-cmdln.p (output c-linha-comando).
UT-CMDLN.P
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
99
Formato:
run utp/ut-osver.p (ouput <plataforma>,output <versao>,output <release>,output <build>,output <extrainfo>).
UT-OSVER.P
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
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
102
UT-OSVER.P
103
Objetivo:
Descobrir a quantidade de registros numa tabela de acordo a condição passada.
I-COUNTDS.I
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
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
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
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
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
109
Objetivo:
A UT-WIN.I define procedures para acesso a funções externas de API’s do Windows.
UT-WIN.I
110
Procedures:
As Procedures definidas para esta include podem ser consultadas no manual de padrões do produto.
UT-WIN.I
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
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
113
Utilização:
Pode ser utilizado em qualquer template da Datasul, independente do programa ser Smart ou Thin Template.
UT-TRACE.P
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
115
Exemplo:
UT-TRACE.P
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