Вы находитесь на странице: 1из 90

CENTURA

TEAM
DEVELOPER
MDULO BSICO
Verso 2.0

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 2

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 3

Centura Team Developer Mdulo Bsico

Contedo
1. Histrico
2. Nosso Foco
3. O Ambiente de Desenvolvimento
O Outline
O Customizer
A Paleta de Controles
O Database Explorer
O Assistente de Cdigo
Explorando os menus
4. A Linguagem SAL
O Programa Fonte
Os Comandos da Linguagem SAL
Operadores Matemticos
Variveis
Os Tipos de Dados
A Declarao de Variveis
As Variveis do Sistema
Os Vetores
Constantes
As Funes
Os Objetos do Centura
Menus
Mensagens do Centura
5. Construindo uma Aplicao
O Banco de Dados
As Telas
A tela de Login
O MDI Principal
Manuteno de Empresas
Manuteno de Contatos
6. Dynalib
Conceito
Implementando Dynalibs
7. Gerao do Executvel
8. O Report Builder
Fundamentos do Report Builder.
reas do Report Builder
O Editor de Frmulas
A Comunicao entre o Centura Builder e o Report Builder
9. Programao Orientada a Objetos.
Conceito
Implementando OOP no Centura.
10. Team Object Manager

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 4

Centura Team Developer Mdulo Bsico

pg 5

Marcas Registradas
Todos os termos mencionados neste material so de propriedade dos seus respectivos fornecedores.
Microsoft Windows95 e Microsoft SQL-Server so marcas registradas da Microsoft Corporation.
SQLWindows, Centura Team Developer, Centura Builder, Report Builder, Team Object Manager, Dynalib e
QuickObjects so marcas registradas da Centura Software Corporation.
Oracle marca registrada da Oracle Corporation.
Informix marca registrada da Informix Corporation.
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 6

1. Histrico
Em 1988 a GUPTA apresentou a primeira verso do SQLWindows ao mercado destinado ao
desenvolvimento de aplicaes baseadas na arquitetura Cliente/Servidor para o ambiente Microsoft
Windows. Uma linguagem fcil de usar e rica em recursos, foi o pioneiro na sua categoria.
Em 1996 a Gupta Corporation passou por uma srie de mudanas estruturais e passou a
responder pelo nome Centura Software Corporation e a verso do SQLWindows para 16 bits
evoluiu para o ambiente 32bits recebendo o nome de Centura Team Developer, ou simplesmente
SQLWindows/32.
Atualmente o Centura Team Developer est na sua verso 1.5, em outubro de 1998, chegou ao
Brasil trazendo uma srie de recursos importantes, ganhou novas ferramentas e uma srie de
melhorias que consolidam a ferramenta como um dos grandes ambientes de desenvolvimento de
aplicaes corporativas para o ambiente cliente/servidor e tambm para internet.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 7

Centura Team Developer Mdulo Bsico

pg 8

2. Nosso Objetivo
Apresentar o Centura Team Developer ao desenvolvedor, explicar os conceitos da linguagem,
mostrar os comandos e funes SAL, os objetos, apresentar o Report Builder, o Team Object
Manager. Enfim, deu ma forma geral , deixar o desenvolvedor familiarizado com o ambiente, pronto
para comear a desenvolver aplicaes.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 9

Centura Team Developer Mdulo Bsico

pg 10

3. O Ambiente de Desenvolvimento
3.. O Ambiente de Desenvolvimento
O Outline
Customizer
Paleta de Controles
O Database Explorer
Assistente de Cdigo
Explorando os menus
O Ambiente de Desenvolvimento
Apresentamos agora o ambiente de desenvolvimento do Centura Team Developer, onde o
programador constri a aplicao. No Centura Team Developer o ambiente de desenvolvimento
chamado de Centura Builder. No Centura Builder o programador define as telas da aplicao, os
seus objetos, codifica a aplicao e define a estrutura do banco de dados.

Figura 3.1- O Ambiente de desenvolvimento, Centura Builder.


Outline
O Outline o cdigo fonte propriamente dito. no Outline que ficam armazenadas as instrues
da linguagem SAL. O Outline do Centura Builder uma poderosa maneira de se organizar o cdigo
fonte pois cada item tem o seu lugar apropriado no Outline. No sendo permitido a utilizao de um
objeto num local no apropriado para ele. A definio de varivel tem seu local definido , a
definio das funes , classes e todos os demais elementos que compem o programa Centura.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 11

primeira vista, o Outline contm as seguintes sections principais :


Libraries

Figura 3.2 A seo Libraries.


Nesta seo so definidas os nomes dos arquivos referentes as bibliotecas que o aplicativo
far uso. O Centura Builder diferencia o fonte atravs de cores para indicar o fonte includo e
o fonte normal. Estas cores podem ser configuradas pelo programador atravs do menu
Tools / Preferences. As bibliotecas no Centura podem ser de dois tipos :
Outros programas fontes em Centura.
A partir do momento em que esta biblioteca includa todo o contedo deste arquivo
passa a estar visvel no arquivo hospedeiro. Todos os objetos, funes e at mesmo
as bibliotecas que foram includas.
Arquivos fonte Centura j compilados, as Dynalibs.
No caso das Dynalibs apenas estaro disponveis no arquivo hospedeiro os objetos
top level (janelas) e as funes globais. Uma das grandes vantagens na utilizao das
Dynalibs se d no momento da compilao e na carga do programa, uma vez que a
Dynalib j est compilada.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 12

Global Declarations

Figura 3.3 As sees subordinadas Global Declarations.


Na seo Global Declarations ficam todas as declaraes que sero visualizadas por toda a
aplicao. As sees subordinadas Global Declarations so :
Windows Defaults
Aqui ficam todas as definies das caractersticas iniciais dos objetos visuais.
Caractersticas como estilo, cor , tipo e tamanho da fonte e cor do fundo so definidas
na seo Windows Defaults.
Formats
A definio dos formatos para os campos. Os formatos podem ser :
Date/Time formatos para campos de data e hora.
Input Define a forma como ser feita a entrada dos dados.
Number - formatos para campos numricos.
External Functions
O Centura suporta a utilizao de qualquer funo definida por outro fornecedor de
software. A definio dessas funes vindas de DLLs ou de outros programas
executveis feita na seo External Functions. Funes escritas em outras
linguagens e disponibilizadas em DLLs devem ser definidas conforme o exemplo
abaixo, onde a funo SWinFindWindow do prprio Centura definida :

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 13

Figura 3.4 A declarao de uma funo externa.


Observe que no Centura , o parmetro Export Ordinal pode ser sempre 0 (zero). Na
seo Returns deve ser definido o tipo do valor que a funo retorna. Assim como na
seo Parameters deve ser definido o tipo de cada um dos parmetros que a funo
precisa para funcionar corretamente.
Constants

Figura 3.5 A declarao de algumas constantes.


As constantes do programa devem ser definidas na seo Constants, e podem ser
dos tipos de dados Boolean, Date/Time, Number e String. Utilize as sees System e
User para melhor administrar suas constantes.
Resources
Os recursos visuais da aplicao definidos nesta seo passam a fazer parte do
executvel final gerado pelo Centura Builder. Ou seja, cursores, figuras tipo bitmap e
cones so includos no executvel, facilitando a distribuio do aplicativo.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 14

Variables

Figura 3.6 A declarao de algumas variveis.


Na seo variables so definidas as variveis que sero visveis em toda a aplicao.
As variveis podem ser dos tipos de dado Boolean, Date/Time, File Handle, Long
String, Number, Sql Handle, String, Window Handle e dos tipos definidos pelo
programador. ( Para um estudo detalhado dos tipos de dados disponveis no Centura
consulte o captulo 4 - A Linguagem SAL )
Internal Functions
Funes internas so funes escritas na prpria linguagem SAL. As funes
definidas na seo Internal Functions so visveis em todo o aplicativo, por todos os
mdulos (funes , objetos , classes etc). Posteriormente tambm possvel fazer a
gerao de DLLs das funes internas.
Named Menus
Named Menus so definies de estruturas de menus que sero posteriormente
utilizados na aplicao. Os menus definidos na seo Named Menus so visveis em
todo o aplicativo. Podendo ser utilizado a qualquer momento por qualquer mdulo da
aplicao.
Class Definitions
Na seo Class Definitions so definidas todas as Classes Definidas pelo Usurio.
Para cada objeto visual existe uma classe correspondente. Basicamente os tipos das
classes disponveis so : Background Text Class, Check Box Class, Child Table Class,
Column Class, Combo Box Class, Custom Control Class, Data Field Class, Dialog Box
Class, Form Window Class, Frame Class, Functional Class, General Window Class,
Group Box Class, Horizontal Scroll Bar Class, Line Class, List Box Class, MDI Window
Class, Multiline Field Class, Option Button Class, Picture Class, Pushbutton Class,
radio Button Class, Table Window Class e Vertical Scroll Bar Class.
Applications Actions
Nesta seo so codificadas as aes mais genricas para a aplicao. Por exemplo
o incio e trmino da aplicao e o tratamento de erros genricos

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 15

Customizer

Figura 3.7 O Customizer, de um form window e de uma child table.


O Customizer o componente que permite ao desenvolvedor visualizar e alterar todas as
caractersticas dos objetos da aplicao. Cada objeto possui suas prprias caractersticas, algumas
podem ser alteradas atravs do customizer. Caractersticas como o nome do objeto, seu ttulo, cor,
tipo e tamanho da fonte, informaes sobre tipo de dado armazenado no objeto, mscara de
formatao e de entrada de dados entre outras.
possvel ter acesso ao customizer de duas formas :
Atravs do Outline. Basta clicar uma vez com o boto esquerdo do mouse no cone
localizado esquerda de cada um dos objetos. O objeto que no possuir este cone no
possui caractersticas passveis de alterao pelo Customizer.
Atravs da Visualizao dos Objetos. Estando em Preview Mode, basta clicar duas vezes
sobre o objeto desejado para que o customizer seja mostrado.
importante observar que mesmo estando o programa sendo executado, Run-Time Mode,
possvel visualizar as caractersticas dos objetos, obviamente, no permitido alterar nenhuma
caracterstica em Run-Time.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 16

Paleta de Controles

Figura 3.8 Os Controles disponveis do Centura Builder.


Todos os objetos visuais do Centura Builder que esto disponveis para que o desenvolvedor utilize
nem sua aplicao, esto disponveis na Paleta de Controles. Para acionar a Paleta de Controles
pode-se pressionar juntas as teclas Alt 4.
A Paleta de Controles bastante flexvel, permitindo ao desenvolvedor configur-la da forma que
for mais agradvel, tornando o desenvolvimento extremamente confortvel.
Cada cone mostrado na Paleta de Controles representa um tipo de objeto no Centura Builder.
Quando um tipo de objeto escolhido na Paleta de Controles, as diversas classes desse objeto
so mostradas numa lista na prpria Paleta de Controles. Ento basta escolher uma das classes e
clicar na janela de layout para que um objeto do tipo e classe escolhidos seja inserido na
aplicao.
Os tipos de objetos disponveis na Paleta de Controles so :
BackGround Text, Group Box, Frame, Line, Data Field, Multiline Field, Child Table Window,
Column, Custom Control, Pushbutton, Radio Button, Check Box, Option Button, List Box, Combo
Box, Graphic, Picture, Vertical e Horizontal ScrollBar, Objeto OLE 2.0 e QuickObjects.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 17

O Database Explorer

Figura 3.9 O Database Explorer.


Atravs do prprio ambiente de desenvolvimento do Centura Builder possvel criar tabelas,
vises e ndices, fazer consultas e gerar relatrios sem que seja necessrio nenhum conhecimento
de SQL. Atravs da interface amigvel do Database Explorer possvel realizar todas estas tarefas
tpicas de desenvolvimento de sistemas e ainda incluir , alterar e excluir dados nas tabelas.
Assim como todas as ferramentas da Centura, o Database Explorer trabalha com todos os tipos de
bancos de dados padres de mercado de forma transparente.
O Assistente de Cdigo
A principal funo do Assistente de Cdigo do Centura Builder fazer com que o programador
digite o mnimo possvel durante o desenvolvimento da aplicao. Saber utilizar o Assistente de
Cdigo de extrema importncia para obter maior produtividade no desenvolvimento. O Assistente
de Cdigo um form que sempre mostrado por cima de todas as outras janelas do Centura
Builder podendo ser posicionado em qualquer local da tela e ter suas dimenses alteradas. Para
acion-lo basta clicar Alt-2.
O Assistente de Cdigo sensitivo posio do cursor no outline, ou seja, dependendo do local
onde o cursor estiver posicionado no outline o Assistente de Cdigo mostra os possveis valores
que podem ser adicionados ao outline.
Alm disso o Assistente de Cdigo agrupa as informaes por categorias conforme mostrado na
figura 3.10.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 18

Figura 3.10 O Assistente de Cdigo


O Assistente de Cdigo classifica as informaes que podem ser adicionadas ao outline podendo
ser Comandos SAL, Mensagens, Funes SAL, Funes do Usurio, Funes do Objeto, Funes
definidas em Objetos do Usurio, Variveis, Variveis do Sistema, Constantes, Nomes dos Objetos
da Aplicao, Resources, Parmetros e Classes Base.
A grande utilidade do Assistente de Cdigo melhorar a produtividade no desenvolvimento
evitando erros de digitao pois no h como escrever o nome de uma funo errado, errar a
quantidade e tipos de dados dos parmetros, usar uma varivel no definida ou no permitida
naquele local uma vez que o programador no as escreve efetivamente, elas so mostradas no
Assistente de Cdigo e com um clique so automaticamente transportadas para o cdigo fonte.
Caso o programador precise fazer referencia a um determinado objeto no necessrio saber
exatamente o seu nome, basta escolh-lo no Assistente de Cdigo.
Explorando os menus

Figura 3.11 O menu File.


LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 19

O Menu File
New Inicia uma nova aplicao Centura, e aberto um modelo de aplicao inicial, vazio.
Open Permite abrir uma aplicao j existente.
Save Salva a aplicao com o nome atual.
Save As Salva a aplicao atual com um novo nome, solicitado numa caixa de dilogo.
Page Setting Permite acesso s configuraes de impresso do Outline. Tipo e tamanho da
fonte, ttulos do cabealho e rodap e margens.
Print Imprime o Outline de acordo com as configuraes feitas no item anterior.

Figura 3.12 O menu Edit.


O Menu Edit
Undo , Cut , Copy , Paste e Delete De acordo com suas funes padro do Windows95.
Insert line Insere uma linha no Outline a partir do local selecionado.
Comment Items Marca como comentrio o item selecionado.
Uncomment Itens Tira a marca de comentrio do item selecionado.
Outline
Expand One Level Expande o outline um nvel a partir do nvel selecionado.
Collapse - Comprime o outline um nvel a partir do nvel selecionado.
Expand All Levels - Expande o outline inteiro. Isso pode demandar tempo.
Collapse Outline - Comprime o outline inteiro.
Promote Promove o item selecionado um nvel, na hierarquia do outline.
Demote Rebaixa o item selecionado um nvel, na hierarquia do outline.
Move Up Move o item selecionado uma linha para cima no outline.
Move Down Move o item selecionado uma linha para baixo no outline.
Find Efetua busca no outline por um determinado texto.
Find Again Repete a ltima busca realizada no outline.
Replace - Efetua busca no outline por um determinado texto, e substitui por outro texto
configurado.
Properties Aciona o Customizer trazendo as propriedades do objeto selecionado.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 20

Figura 3.13 O menu Project.


O Menu Project
Check Out Ativa o TOM para extrair algum componente do repositrio.
Check In Ativa o TOM para incluir o componente atual no repositrio.
Compile Compila a aplicao.
Next Error Visualiza o prximo erro de compilao.
Previous Error Visualiza o erro de compilao anterior.
Execute Executa a aplicao atual.
Build Settings Configura as propriedades de gerao do executvel, dynalib, dll etc.
Build : newapp.exe Efetivamente gera o executvel, dynalib, dll etc.

Figura 3.14 O menu Component.


O Menu Component
New - Adiciona ao outline um novo objeto DialogBox, FormWindow, MDI Window ou TableWindow.
Wizards Ativa os Assistentes do Centura.
QuickObject Editor Ativa o Editor de QuickObjects do Centura.
Menu Editor Ativa o Assistente de Definies de Menus.
OLE Class Editor Ativa o editor de classes OLE.
Libraries
Go To Item Carrega numa nova janela do Centura a biblioteca selecionada.
Show Item Information Mostra o nome da biblioteca ao qual o fonte selecionado pertence
Refresh Atualiza as bibliotecas utilizadas na aplicao.
Merge Transforma todos as bibliotecas includas em um nico programa fonte.
View
Large Icons Mostra os componentes no formato de cones grandes.
Small Icons Mostra os componentes no formato de cones pequenos.
List Mostra os componentes no formato de lista.
Details Mostra os detalhes dos componentes.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 21

Figura 3.15 O menu Layout.


O Menu Layout
Preview Window Mostra a janela como ela aparecer em tempo de execuo.
Bring to Front Traz para cima o item selecionado.
Send to Back Envia para baixo o item selecionado.
Align to Grid Alinha os objetos selecionados grade.
Align Edges Opes para se configurar o alinhamento dos objetos visuais.
Space Evenly Opes para se configurar o espao entre os objetos visuais.
Make Same Size Opes para se configurar o tamanho dos objetos visuais.
Grid Liga / Desliga a utilizao da grade.
Tab Order Configura a ordem de tabulao dos objetos visuais.
Show Sample Text Mostra nos campos textos de exemplo para se ter idia da aparncia da
aplicao final.
Show Design Scroll Bars Mostra as barras de scroll em tempo de design nas laterais dos forms.
Show Hidden Windows Mostra os objetos cofigurados para estarem invisveis.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 22

Figura 3.16 O menu Debug.


O Menu Debug
Go Executa a aplicao.
Stop Debugging Pra a execuo da aplicao saindo do modo de execuo.
Break Interrompe a execuo da aplicao na linha que est sendo executada, e permite entrar
em modo Debug.
Step into Passa por dentro na execuo do prximo comando
Step Over Passa por fora na execuo do prximo comando.
Breakpoints
Toggle Ativa ou Desativa o breakpoint.
Clear All Limpa todos os breakpoints.
Disable All Desabilita todos os breakpoints configurados.
Enable All Habilita todos os breakpoints configurados.
No Animate No mostra as linhas de cdigo durante a execuo.
Slow Animate Mostra as linhas de cdigo durante a execuo em modo lento. O Intervalo de
segundos configurado na caixa de dilogo Preferences.
Fast Animate - Mostra as linhas de cdigo durante a execuo em modo rpido.

Figura 3.17 O menu Database.


O Menu Database
Open Database Explorer Executa o Database Explorer.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 23

New Permite a criao de nova Tabela, ndice, Store Procedure, Store Procedure Package e
Banco de Dados
SQL Script Table Comandos para edio, manuteno, e filtro nos dados da tabela selecionada.
Stored Procedure Query Comandos para a criao de nova consulta ou abrir uma consulta j existente.
Add to list Adiciona um novo Banco de Dados relao j existente.
Disconnect Desconecta do banco de dados.
View System Tables Visualiza as tabelas do sistema. (Catlogo)
Close Database Explorer Encerra a execuo do Database Explorer.

Figura 3.18 O menu Tools


O Menu Tools
Tools... Configura as ferramentas mostradas no menu Tools.
ToolBars... Configura as barras de ferramentas mostradas no Centura Builder
Preferences... Ativa a janela de Propriedades do Centura Builder onde possvel configurar o
path default, o intervalo de tempo utilizado no Debug Slow Animate, os valores para o
Grid, os tipos e cores das fontes utilizadas no Centura Builder para representar
comentrios no programa fonte, itens includos.
Output Visualiza a janela de Output, nela so mostrados os erros e avisos ocorridos na
compilao.
Coding Assistant Visualiza o Assistente de Cdigo.
Controls Visualiza a Paleta de Controles.
Variables Em modo de Debug, mostra a janela de variveis.
Stack Messages Quick Watch Report Builder Executa o gerador de relatrios Report Builder.
Team Object Manager Executa o gerenciador de projetos Team Object Manager.
Browse All Classes Executa o browser grfico das classes.
Diff / Merge Tool Executa o aplicativo Diff/Merge que identifica diferenas entre dois fontes.
SQLTalk Executa o SQLTalk.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 24

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 25

Centura Team Developer Mdulo Bsico

pg 26

4. A Linguagem SAL
4.. A Linguagem SAL
1.. O Programa fonte
1.. APL, APP, APT, APD e APC
2.. Os Comandos da Linguagem SAL
3.. Operadores Matemticos
4.. Variveis
1.. Tipos de Dados
2.. Declarao de Variveis
3.. Variveis do Sistema
4.. Vetores
5.. Constantes
6.. As Funes
7.. Os Objetos do Centura
8.. Menus
9.. Mensagens do Centura
A Linguagem SAL
Toda a programao em Centura feita atravs da linguagem SAL ( Scalable Application
Language ), uma linguagem poderosa e de fcil entendimento. Um programa fonte em linguagem
SAL composto de comandos e funes SAL e comandos SQL.
O Programa fonte
Um programa Centura pode ter as seguintes extenses padres :
APL Tipo de arquivo que identifica Bibliotecas, utilizado para armazenar rotinas genricas.
APP Tipo de arquivo que identifica Aplicaes em formato binrio do Centura, um formato
proprietrio. Uma aplicao que esteja gravada neste formato s pode ser visualizada
atravs do prprio Centura Builder.
APT Tipo de arquivo que identifica Aplicaes em formato texto padro. Uma aplicao que
esteja gravada neste formato pode ser visualizada atravs do Centura Builder e tambm
atravs de um editor de textos padro TXT. Embora no recomendado qualquer alterao
no fonte atravs de uma interface diferente do Centura Builder.
APD - Tipo de arquivo que identifica Aplicaes compiladas em Dynalibs. Dynalibs so utilizadas
para o compartilhamento de funes e variveis globais, janelas top level e suas funes e
janelas MDI e suas funes e objetos child.
APC - Tipo de arquivo que identifica Aplicaes compiladas com o Object Compiler. O resultado
desta compilao uma DLL com todas as funes internas. Essa DLL padro e pode ser
utilizada por qualquer outra linguagem feita para o Windows95.
Os Comandos da Linguagem SAL
A linguagem SAL oferece aos desenvolvedores os comandos Break, Call, Else, If, Loop, Return,
Select Case, Set, While. Que so explicados em detalhes abaixo.
Break
Este comando utilizado para encerrar o processamento dos comandos Loop, While e
Select Case. O fluxo de execuo do programa passado para o bloco de comandos
imediatamente seguinte.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 27

Call
O comando Call utilizado para chamar uma funo.
If Else Else If
O comando If usado para executar uma operao dependendo de alguma condio. Ele
possui a seguinte sintaxe :
If < expresso1 >
...........
Else If < expresso2 >
...........
Else
...........
O Centura avalia a primeira expresso no If, se for obtido um valor TRUE ( Verdadeiro ) ,
ento o cdigo subordinado ao comando If executado. Se a expresso retornar FALSE,
ento o Centura procura pelo prximo Else ou Else If se existirem. Else If utilizado
quando se faz necessrio testar mais de uma condio. Se a expresso presente no Else If
retornar TRUE, o Centura ento executa o cdigo subordinado ao comando Else If. Se a
Expresso retornar FALSE o Centura continua a procurar por mais algum comando Else If,
caso no encontre nenhum Else If e encontre um comando Else, o Centura ento executa
o cdigo subordinado ao comando Else. Se no for encontrado nenhum comando Else, o
Centura simplesmente continua a execuo do programa.
O Centura utiliza a hierarquia presente no Outline para determinar o bloco de comandos
subordinados e que ser executado. Isso elimina a necessidade de utilizar os delimitadores
BEGIN ... END presentes em outras linguagens.
Alguns exemplos :
If nCodigo = 999
.............
Else If nCodigo = 888
............
Else
............
Set sNome = Jos
A utilizao do operador de igualdade (=) no se faz obrigatria em alguns casos. Similar a
linguagem C, ao ser avaliada uma expresso, e esta retornar um valor 0 (zero), o Centura
interpreta como FALSE. Qualquer valor diferente de zero interpretado pelo Centura como
um valor TRUE. Observe o prximo exemplo:
Set nValor = 3
If nValor
[ este cdigo executado pois 3 diferente de FALSE ]
If nValor = TRUE
[ este cdigo no executado pois 3 diferente de TRUE ]
No primeiro If o comando subordinado executado pois nenhuma comparao direta com
a constante TRUE efetuada. No segundo If a comparao feita, o cdigo no
executado pois nValor diferente de TRUE.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 28

Obs : Podem ser feitas avaliaes de variveis sem a utilizao de operadores, como no
exemplo acima, apenas com variveis ou expresses que retornem um tipo de dado
Lgico. Ao deixar de utilizar o sinal de igualdade (=) em expresses ou variveis que
retornem outros tipos de dados, o entendimento do cdigo ficar comprometido dificultando
a sua leitura e depurao.
Return
O comando Return pode ser utilizado para finalizar o processamento de uma funo ou
mensagem e retornar um status para o ponto da aplicao de onde foi chamado. Return
pode ser utilizado em qualquer ponto do
cdigo.
Select Case
O comando Select Case outro comando de avaliao de condies em SAL. A estrutura
If ... Else normalmente utilizada quando existem dois possveis resultados. Algumas
vezes a estrutura If ... Else utilizada para mais que dois resultados, mas o comando
Select Case se mostra mais conveniente nesses casos. A sintaxe do comando Select Case
a seguinte :
Select Case < expresso >
Case < valor >
..........
Break
Case < valor >
..........
Break
Default
..........
Break
O tipo de dado retornado pela expresso avaliada pelo Select Case deve ser numrico
inteiro. No pode ser avaliado uma expresso de outro tipo de dado como data/hora , string
ou nmero com decimais. O valor utilizado em cada comando Case deve ser um valor ou
uma expresso numrica inteira. Quando for necessrio avaliar expresses de algum tipo
de dado diferente de nmero inteiro deve ser utilizado o comando If ... Else para isso. O
Centura avalia a expresso inteira e localiza o primeiro Case que satisfaa a condio da
expresso. Quando encontra, executa o cdigo subordinado ao Case encontrado e
continua a procurar por mais algum Case que satisfaa a condio. O cdigo subordinado
clusula Default executado quando o Centura no encontra nenhum Case que
satisfaa a condio. A clusula Default no obrigatria, mas quando utilizada deve ser a
ltima do comando Select Case.
O comando Break usado para informar ao Centura que encerre a execuo do bloco de
comandos. Ao encontrar um Break num comando Case o Centura encerra a execuo de
todo o bloco do comando Case.
Se um Break for omitido num bloco Case, o Centura ir continuar executando o contedo
de todos os outros Cases que satisfaam a condio, at o fim.
A omisso do comando Break, quando utilizado corretamente, pode trazer benefcios,
observe o exemplo:
!
Considere
que
PERMISS_GERENTE
,
PERMISS_CONSULTA
PERMISS_SUPERVISOR so constantes numricas inteiras.
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 29

Select Case ( nPermissao )


Case PERMISS_CONSULTA
Call SalMessageBox( "Consulta", "Case", MB_Ok )
Break
Case PERMISS_GERENTE
Case PERMISS_SUPERVISOR
Call SalMessageBox( "Supervisor ou Gerente", "Case", MB_Ok )
Break
Default
Call SalMessageBox( "Desconhecido", "Case", MB_Ok )
Break
Os comandos Case PERMISS_GERENTE e PERMISS_SUPERVISOR precisam executar
o mesmo cdigo. Aos invs de repetir todo o bloco de cdigo para cada um, eles so
colocados uma acima do outro. J que no existe nenhum Break no Case
PERMISS_GERENTE, a execuo prossegue ao prximo Case e termina quando o
Centura encontrar o Break subordinado ao Case PERMISS_SUPERVISOR.
Set
O comando Set usado para associar um valor a algum objeto ou varivel. O valor
associado pode ser um valor ou uma expresso :
Set < variavel / objeto > = < valor / expresso >
Alguns exemplos :
Set sNome = Jos
Set nValor = nValor1 * nValor2
Set sCidadeEstado = sCidade || || sEstado
While e Loop
Os comandos While e Loop so duas estruturas de lao do Centura
While < expresso >
...
Break
Loop [ nome_loop ]
...
Break [ nome_loop ]
Todo o cdigo subordinado ao comando While ou ao comando Loop so parte do lao.
O While um lao onde a condio avaliada na entrada do lao, antes deste ser
executado a primeira vez, a expresso precisa ser avaliada e deve ser TRUE ( diferente de
zero ). O lao continua at que uma destes duas condies se satisfaam :
A expresso seja avaliada FALSE.
Um comando Break seja encontrado.
O Loop um lao mais flexvel, o cdigo no lao executado pelo menos uma vez e
termina quando o Centura encontrar um comando Break. Caso o Centura no encontre um
comando Break, o programa fatalmente ir travar, e um resultado no desejado poder
ocorrer.
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 30

Pode ser utilizado o comando Loop e While para montar laos aninhados ( nested loops ).
Neste caso torna-se extremamente til nomear os laos. Observe o cdigo :
Loop LoopExterno
.........
If Condicao
Break LoopExterno
Loop LoopInterno
.........
If Condicao
Break LoopInterno
Else If Condicao
Break LoopExterno

Operadores Matemticos
O Centura suporta os operadores matemticos que so padro entre a maioria das linguagens,
conforme a tabela abaixo :
Operador
+
*
/
=
!=
>
<
>=
<=
**
AND
OR
NOT
&
|
||

Descrio
Adio
Subtrao
Multiplicao
Diviso
Igualdade
No igual a
Maior que
Menor que
Maior que ou Igual
a
Menor que ou Igual
a
Exponenciao
AND lgico
OR lgico
Negao
Bitwise AND
Bitwise OR
Concatenao

Variveis
Um tipo de dado refere-se ao tipo do dado que um campo ou uma varivel pode armazenar. Isto
muito importante pois determina o montante de Memria de Acesso Randmico ( RAM ) que ser
reservado para isso. O Centura suporta os tipos de dados definidos SQL de acordo como o padro
ANSI 92. Isto permite a compatibilidade com uma variedade de outros produtos, incluindo
servidores de bancos de dados e outras ferramentas de desenvolvimento.
Uma varivel significa um local da memria que armazenar um determinado pedao de
informao. Algumas consideraes sobre as variveis devem ser observadas: O tipo de dado que
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 31

pode ser armazenado numa varivel. O escopo da varivel. Escopo refere-se a acessibilidade que
geralmente Local ou Global. Uma varivel Local visvel apenas na funo, objeto, ou janela que
a mesma foi definida. Uma varivel normalmente no pode ser acessada de fora do local definido.
Uma varivel local geralmente desaparece quando o objeto que a criou fechado. Isto tambm
libera a memria que havia sido ocupada.
Uma varivel global tem um alcance maior do que a varivel local ( alcance em toda a aplicao e
no apenas no form onde foi definida ) , mas h dois pontos fracos. O primeiro que a memria
ocupada pela varivel no liberada, mesmo se a varivel no estiver sendo utilizada, enquanto a
aplicao estiver sendo executada. O segundo bem mais grave, uma varivel global pode ser
acessada de qualquer local da aplicao e ter seu valor alterado sem controle.
Tipos de Dados
A tabela abaixo apresenta os tipos de dados suportados pelo Centura.
Tipo de dado
Boolean
Date/Time
File Handle
Long String
Number
SQL Handle
String
Window Handle

Descrio
Dever ser usado apenas quando for importante identificar um dos dois estados.
( on/off, yes/no, verdadeiro ou falso )
Um valor que inclui uma Data e a Hora em seu formato
Usado para apontar para um arquivo.
String maior que 254 bytes
Um nmero
Usado para apontar para um servidor de banco de dados.
Uma string.
Usado para apontar para uma instncia de um objeto sendo executado.

A declarao das variveis


As variveis so declaradas na seo Variables que encontrada na Global Declarations, nas
instncias dos objetos Top Level, nas definies das classes dos Objetos e nas funes.
A Centura Software Corporation sugere, em seu manual, que o desenvolvedor siga alguns padres
na definio das suas variveis para facilitar a sua utilizao e identificao. No cdigo abaixo
esto definidas uma varivel para cada tipo de dado do Centura. Observe os prefixos utilizados em
cada nome de varivel:
Window Variables
Boolean: bOk
Date/Time: dtDataAtual
File Handle: fhConfig
Long String: lsObs
Number: nCodigo
Sql Handle: hSqlConexao
String: sDescricao
Window Handle: hWndObjeto
Obs : No Centura o tamanho mximo permitido para os nomes de variveis de 32 caracteres.
permitido o uso das letras, nmeros e do sinal _ (underscore). No Centura os nomes das variveis
e dos objetos so case-sensitive. Portanto sNome uma varivel e sNOME outra.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 32

Variveis do Sistema
O Centura possui algumas variveis internas, chamadas de variveis do Sistema. So variveis
que no se faz necessrio defini-las antes de utilizar. So variveis especiais. A tabela abaixo
apresenta algumas variveis do sistema e suas descries :
Variveis
- MyValue
- hWndForm
- hWndItem
- hWndMDI
- hWndNull
- wParam
- lParam
- nArgCount
- strArgArray
SqlDatabase
- SqlUser
SqlPassword

Descrio
O valor do objeto atual.
O Window Handle do objeto TopLevel atual.
O Window Handle do objeto atual.
O Window Handle do objeto MDI atual.
Eqivale a um valor tipo Window Handle nulo.
Parmetro de mensagem
Parmetro de mensagem
Conta quantos argumentos foram passados como parmetro quando a aplicao
inicia.
Vetor com os argumentos passados por parmetro na linha de comando para a
aplicao.
Indica o nome do banco de dados a ser utilizado.
Indica o nome do usurio do banco de dados.
Indica a senha do usurio do banco de dados.

Vetores
O Centura suporta vetores multidimensionais de cada um dos seus tipos de dados nativos e dos
tipos de dados definidos pelo usurio. Os vetores podem Ter suas dimenses predeterminadas na
sua definio ou podem ser dinmicos, tendo como limite a memria disponvel.
A sintaxe para a definio de um vetor mostrada abaixo :
Variables
Boolean: abStatus [10]
Number: anMeses [1:12]
String: asNomes [*]
O primeiro vetor declarado, abStatus, um vetor que poder armazenar apenas valores 1 (TRUE)
ou 0 (FALSE). Poder ter no mximo 10 elementos, entre 0 e 9.
O segundo vetor declarado, anMeses, um vetor que poder armazenar qualquer valor numrico
vlido e poder ter no mximo 12 elementos, entre 1 e 12.
O terceiro vetor, asNomes, poder armazenar apenas valores string vlidos. Este vetor dinmico,
portanto o seu nmero de elementos no tem limite.
Constantes
Constantes, assim como as variveis, podem armazenar valores. A principal diferena que
constantes armazenam informaes (como nome, salrio) , e no ponteiros internos (como file
handles ou window handles). As constantes devem ser definidas em tempo de programao, e no
mudam seus valores. Constantes so declaradas no outline na seo chamada Constants que
uma seo subordinada a seo Global Declarations.
Global Declarations
Constants
System
String: NOME = "Jos de Almeida"
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 33

Date/Time: NASCIMENTO= 1970-11-02


User
Number: PERMISS_CONSULTA = 1
Number: PERMISS_SUPERVISOR = 2
Number: PERMISS_GERENTE = 3
As Funes
O Centura apresenta um conjunto de funes que so embutidas linguagem SAL. Estas funes
realizam uma variedade enorme de tarefas que ajudam o desenvolvedor a construir poderosas
aplicaes. O Centura oferece algumas funes que so especficas do ambiente do Windows e
outras funes que so especficas do prprio ambiente do Centura Team Developer. As funes
SAL do Centura esto divididas em algumas macro categorias mostradas abaixo :
Vetores
Cores
Depurao
Drag-And-Drop
Formatao e Validao
Mensagens
Impresso
String
Gerenciamento
de
Janelas

Nmeros
Datas
Caixas de Dilogos
Edio
MDI
Imagens
Scroll Bar
Sistema
Combo Box e List
Box

O Centura disponibiliza uma quantidade enorme de funes, por esse motivo, mostraremos a
seguir apenas as funes utilizadas com maior freqncia. Poderamos inclusive chamar esta
relao de Funes Bsicas do Centura. Um estudo mais profundo merece ser feito abrangendo as
demais funes do Centura.
SalColorSet ( )
SalFmtFormatDateTime ( )
SalListAdd ( )
SalListClear ( )
SalListPopulate ( )
SalListQueryCount ( )
SalListQuerySelection ( )
SalListQueryTextX ( )
SalClearField ( )
SalMessageBox ( )
SalWaitCursor ( )
SalCreateWindow ( )
SalDestroyWindow ( )
SalDisableWindow ( )
SalEnableWindow ( )
SalGetItemName ( )

SalStatusSetText ( )
SalNumberToStr ( )
SalDateCurrent ( )
SalDateDay ( )
SalDateMonth ( )
SalDateYear ( )
SalIsNull ( )
SalIsValidDateTime ( )
SalSendMsg ( )
SalSendMsgToChildren ( )
SalStrLeft ( )
SalStrLength ( )
SalStrMidX ( )
SalStrTrimX ( )
SalStrUpperX ( )

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 34

SalColorSet
Esta funo permite ao programa SAL alterar a cor de um objeto.
Sintaxe: bOk = SalColorSet ( hWnd , nPonteiro , nCor )
Onde :
hWnd o handle do objeto que ter sua cor alterada.
nPonteiro identifica que parte do objeto ter sua cor alterada. Use uma das contantes
COLOR_Index* .
nCor o nmero da cor desejada. Use uma das constantes COLOR_*.
Exemplo
Call SalColorSet( hWndItem , COLOR_IndexWindowText , COLOR_Red )
SalFmtFormatDateTime
Esta funo usada para formatar um campo do tipo DateTime.
Sintaxe: strFormatada = SalFmtFormatDateTime ( dtData , sFormato )
Onde :
dtData o campo que ter seu formato alterado.
sFormato contm a mascara de formatao a ser aplicada.
Exemplo
Set dtNovaData = SalFmtFormatDateTime ( dtData , dd/MM/YYYY )
SalListAdd
Esta funo usada para adicionar valores em combo box e list box. Utilizada na inicializao
personalizada destes objetos.
Sintaxe: nInserido = SalListAdd ( hWndLista , sTexto )
Onde :
hWndLista o handle ou o nome da lista.
sTexto o texto que ser adicionado ao objeto.
Exemplo
Set nInserido = SalListAdd ( cmbEstado , PE )
SalListClear
Esta funo usada para limpar o contedo de um combo box ou list box.
Sintaxe: bOk = SalListClear ( hWndLista )
Onde :
hWndLista o handle ou o nome da lista.
Exemplo
Set bOk = SalListClear ( cmbEstado )
SalListPopulate
Esta funo usada para preencher um combo box ou list box com o resultado de um SELECT
realizado numa tabela do banco de dados.
Sintaxe: bOk = SalListPopulate ( hWndLista , hSqlHandle, sCmdSelect )
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 35

Onde :
hWndLista o handle ou o nome da lista.
hSqlHandle o handle Sql de uma conexo com o banco de dados.
sCmdSelect o comando select.
Exemplo
Set bOk = SalListPopulate ( cmbEstado , hSql_1 , Select UF From T_UF )
SalListQueryCount
Esta funo usada para contar o nmero de elementos num combo box ou list box.
Sintaxe: nNumElementos = SalListQueryCount ( hWndLista )
Onde :
hWndLista o handle ou o nome da lista.
Exemplo
Set nNumElementos = SalListQueryCount ( cmbEstado )
SalListQuerySelection
Esta funo retorna o nmero do elemento atualmente selecionado num combo box ou list box.
Sintaxe: nNumElemento = SalListQuerySelection ( hWndLista )
Onde :
hWndLista o handle ou o nome da lista.
Exemplo
Set nNumElemento = SalListQuerySelection ( cmbEstado )
SalListQueryTextX
Esta funo retorna o texto de um determinado elemento num combo box ou list box.
Sintaxe: sTexto = SalListQueryTextX ( hWndLista , nNumElemento )
Onde :
hWndLista o handle ou o nome da lista.
nNumElemento o nmero do elemento que ter seu texto recuperado.
Exemplo
Set sTexto = SalListQueryTextX ( cmbEstado , 0 )
SalClearField
Esta funo usada para limpar um objeto do tipo DataField, ComboBox, MultilineField.
Sintaxe: bOk = SalClearField ( hWndObjeto )
Onde :
hWndObjeto o handle ou o nome do objeto.
Exemplo
Set bOk = SalClearField ( cmbEstado )

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 36

SalMessageBox
Esta funo usada para mostrar uma caixa de dilogo ao usurio e espera por uma deciso do
mesmo. Podendo ser configurado os botes que so mostrados ao usurio.
Sintaxe: nEscolha = SalMessageBox ( sMsg , sTitulo , nFlags )
Onde :
sMsg a mensagem que aparecer para o usurio na caixa de dilogo.
sTitulo o ttulo da caixa de dilogo.
nFlags um valor numrico que determina o estilo da caixa de dilogo. Os estilos podem ser
concatenados utilizando-se o operador | . O Centura possui algumas constantes que
representam as possveis combinaes de estilos. ( MB_* )
Exemplo
Set bOk = SalMessageBox ( Confirma excluso do registro?, Excluso, MB_YesNo )
SalWaitCursor
Esta funo usada para ligar e desligar o indicador visual Ocupado do Windows.
Sintaxe: bOk = SalWaitCursor ( bFlag )
Onde :
bFlag indica se deve ser ligado o cursor como Ocupado, ou se deve ser desligado.
Exemplo
Set bOk = SalWaitCursor ( TRUE )
SalCreateWindow
Esta funo usada para criar uma instncia de um objeto tipo top level ( MDI Window, Form
Window e Table Window )
Sintaxe: hWnd = SalCreateWindow (NomeObj , hWndPai , Parametro1, Parametro2, ....... )
Onde :
NomeObj o nome dado pelo programador ao objeto que ser criado.
hWndPai o handle do objeto Pai do objeto que ser criado.
Parametro1 Parametro2 ... so parmetros opcionais que dependem das definies na seo
Parameters do objeto que est sendo criado.
Exemplo
Call SalCreateWindow ( frmClientes , hWndMDI )
SalDestroyWindow
Esta funo usada para fechar uma janela tipo top level. ( Form Window, MDI Window, Dialog
Box e Table Window ) Fechar uma janela o mesmo que encerrar sua instncia na aplicao.
Todos os recursos ocupados por esta janela so liberados.
Sintaxe: bOk = SalDestroyWindow ( hWndObj )
Onde :
hWndObj o handle do objeto.
Exemplo
Call SalDestroyWindow ( hWndMDI )
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 37

SalDisableWindow
Esta funo usada para desabilitar um objeto. Desabilitar um objeto significa deix-lo indisponvel
para utilizao do usurio.
Sintaxe: bOk = SalDisableWindow ( hWndObj )
Onde :
hWndObj o handle do objeto.
Exemplo
Call SalDisableWindow ( hWndItem)
SalEnableWindow
Esta funo usada para habilitar um objeto. Habilitar um objeto significa deix-lo disponivel para
utilizao do usurio.
Sintaxe: bOk = SalEnableWindow ( hWndObj )
Onde :
hWndObj o handle do objeto.
Exemplo
Call SalEnableWindow ( hWndItem)
SalGetItemName
Esta funo usada para obter o nome de um objeto.
Sintaxe: bOk = SalGetItemName ( hWndObj , sNome )
Onde :
hWndObj o nome ou o handle do objeto.
sNome uma string que representa o nome do objeto
Exemplo
Call SalGetItemName ( hWndItem , sNome )
SalStatusSetText
Esta funo usada para mostrar uma mensagem na barra de status de uma janela tipo top level.
Sintaxe: bOk = SalStatusSetText ( hWndJanela , sMsgTexto )
Onde :
hWndJanela o nome ou o handle do top level.
sMsgTexto a mensagem a ser mostrada na barra de status.
Exemplo
Call SalStatusSetText ( hWndForm , Sair do sistema.)
SalNumberToStr
Esta funo usada para converter um nmero numa string.
Sintaxe: nTam = SalNumberToStr ( nNumero , nDecimais , sNumero )
Onde :
nNumero o nmero a ser convertido.
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


nDecimais a quantidade de casas decimais que o nmero final, depois de convertido, ter.
sNumero o nmero convertido em string.
Exemplo
Set nNumero = 123.04
Set nDecimais = 0
Set bOk = SalNumberToStr ( nNumero , nDecimais , sNumero )
! sNumero = 123
SalDateCurrent
Esta funo retorna a data atual do computador
Sintaxe: dtData = SalDateCurrent ( )
Exemplo
Set dtData = SalDateCurrent ( )
SalDateDay
Esta funo extrai o dia da data passada como parmetro.
Sintaxe: nDia = SalDateDay ( dtData )
Onde :
dtData o nome do campo ou varivel que possui um valor tipo Date/Time
Exemplo
Set nDia = SalDateDay (SalDateCurrent ( ) )
! nDia = 1
SalDateMonth
Esta funo extrai o ms da data passada como parmetro.
Sintaxe: nMes = SalDateMonth ( dtData )
Onde :
dtData o nome do campo ou varivel que possui um valor tipo Date/Time
Exemplo
Set nMes = SalDateMonth (SalDateCurrent ( ) )
! nMes = 1
SalDateYear
Esta funo extrai o ano da data passada como parmetro.
Sintaxe: nAno = SalDateYear ( dtData )
Onde :
dtData o nome do campo ou varivel que possui um valor tipo Date/Time
Exemplo
Set nAno = SalDateYear (SalDateCurrent ( ) )
! nAno = 1999

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 38

Centura Team Developer Mdulo Bsico

pg 39

SalIsNull
Esta funo retorna TRUE quando o campo passado como parmetro no contm nenhum valor,
est nulo.
Sintaxe: bOk = SalIsNull ( hWndField )
Onde :
hWndField o nome ou o handle do objeto.
Exemplo
Set bOk = SalIsNull ( dfNome )
SalIsValidDateTime
Esta funo usada para validar se o valor de um campo corresponde a um valor Date/Time
vlido.
Sintaxe: bOk = SalIsValidDateTime ( hWndObj )
Onde :
hWndObj o nome ou o handle do campo.
Exemplo
Set bOk = SalIsValidDateTime ( dtDATA )
SalSendMsg
Esta funo usada para enviar uma mensagem a um determinado objeto.
Sintaxe: bOk = SalSendMsg (hWndObj , nMsg , nwParam , nlParam )
Onde :
hWndObj o handle ou o nome do objeto que receber a mensagem.
nMsg a mensagem que ser enviada.
nwParam Parmetro numrico
nlParam Parmetro numrico
Exemplo
Set bOk = SalSendMsg ( df1 , SAM_Create , 0 , 0 )
SalSendMsgToChildren
Esta funo usada para enviar uma mensagem a todos os objetos subordinados a um toplevel.
Sintaxe: bOk = SalSendMsgToChildren ( hWndTopLevel , nMsg , nwParam , nlParam )
Onde :
hWndTopLevel o handle ou o nome do objeto Top Level.
nMsg a mensagem que ser enviada.
nwParam Parmetro numrico
nlParam Parmetro numrico
Exemplo
Set bOk = SalSendMsgToChildren ( hWndForm , SAM_Create , 0 , 0 )
SalStrLeft
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 40

Esta funo usada para extrair uma cadeia de caracteres de uma varivel tipo string. A extrao
sempre comea da posio mais a esquerda da cadeia de caracteres.
Sintaxe: nTam = SalStrLeft ( sOrigem, nTamanho, sDestino )
Onde :
sOrigem a varivel que ter uma parte sua extrada.
nTamanho o nmero de caracteres a ser extrado a partir da posio 0 (zero).
sDestino a cadeia de caracteres que foi efetivamente extrada.
Exemplo
Set sOrigem = Abcdefgh
Call SalStrLeft ( sOrigem , 5 , sDestino )
! sDestino = Abcde
SalStrLenght
Esta funo retorna o tamaho de uma string.
Sintaxe: nTam = SalStrLenght ( sTexto )
Onde :
sTexto o texto que ser avaliado.
Exemplo
Set sTexto = Abcd
Set nTam = SalStrLenght ( sTexto )
! nTam = 4
SalStrMidX
Esta funo retorna um pedao de uma string. A partir da posio nInicio, nTam letras.
Sintaxe: sDestino = SalStrMidX ( sOrigem , nInicio , nTam )
Onde :
sOrigem contm o texto inteiro.
nInicio indica a posio inicial a ser recortada.
nTam o nmero de letras a ser recortado da string.
Exemplo
Set sOrigem = AaBbCcDdEeF
Set sDestino = SalStrMidX ( sOrigem , 2 , 4 )
! sDestino = BbCc
SalStrTrimX
Esta funo usada para eliminar os espaos mltiplos e espaos em branco do incio e fim de
uma string.
Sintaxe: sDestino = SalStrTrimX ( sOrigem )
Onde :
sOrigem contm o valor string que ter os espaos eliminados.
Exemplo
Set sOrigem = a b c
def
Set sDestino = SalStrTrimX ( sOrigem )
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 41

! sDestino = a b c d e f
SalStrUpperX
Esta funo usada para converter todas as letras passadas por parmetro em suas equivalentes
maisculas.
Sintaxe: sTextoMaiuscula = SalStrUpperX ( sTextoNormal )
Onde :
sTextoNormal o texto que ser convertido para letras maisculas.
Exemplo
Set sTextoMaiuscula = SalStrUpperX ( Roberto Carlos )
Funes VisualToolchest
Alm destas funes que so nativas do Centura, acompanha o pacote do produto uma biblioteca
chamada Visual Toolchest que contm outro conjunto de funes extremamente teis,
aproximadamente 150 funes. As funes da biblioteca Visual Toolchest so normalmente
chamadas de funes Vis, pelo seu prefixo. Observe a tabela abaixo onde so mostradas as
categoria das funes Vis :
Funes para tratamento de vetores
Funes para depurao
Funes para tratamento de arquivos DOS
Funes para gerenciamento de arquivos
Funes para gerenciamento de Fontes
Funes para tratamento de ListBoxes
Funes para tratamento de Menus
Funes para Caixas de Mensagens
Funes Genricas
Funes Numricas
Funes para tratamento de imagens
Funes para tratamento dos arquivos INI do Windows
Funes para tratamento de cadeia de caracteres
Funes para serem usadas junto ao objeto Table Window
Funes de Janelas em geral.
Os Objetos do Centura
O Centura dispes de um conjunto de objetos bsicos que so normalmente suficientes para a
implementao das solues necessrias aos desenvolvedores no seu dia-a-dia. Estes objetos so
todos apresentados ao desenvolvedor na Paleta de Controles, que iremos analisar em detalhes
agora.
Os objetos do Centura so os elementos utilizados para a criao da interface com o usurio.
Estes elementos dividem-se em trs tipos :

Window Objects
Background Itens
Menus

Personalizvel
Sim
Sim
No

Codificvel
Sim
No
Sim

Recebe / Envia Mensagens


Sim
No
No / Sim

Os Windows Objects so todos os elementos grficos que podem enviar e receber mensagens, na
realidade so os objetos que interferem no fluxo da aplicao. Estes objetos tm alguma funo
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 42

lgica no programa. Estes objetos possuem algum cdigo associado a eles. No Centura estes
objetos possuem uma identificao nica na aplicao, a esta identificao damos o nome de
handles.
Os Window Objects podem ser
TopLevel Window So os MDI Window , Form Window , Dialog Box e Table Window.
Child Window So os outros objetos que so esto sempre subordinados a algum objeto
TopLevel. Jamais um objeto Child existir sem que exista um objeto Top Level.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 43

Vamos agora analisar detalhadamente cada um dos objetos do Centura.


MDI Window

Um objeto MDI o nico que pode conter outros objetos Top Level no seu interior. Normalmente
usado para gerenciar vrias janelas abertas simultaneamente. Ou seja, o MDI controla vrias
outras janelas abertas podendo distribuir mensagens entre estas janelas. Quando um MDI
encerrado, automaticamente todas as suas janelas filhas so encerradas tambm. Objetos tipo
MDI so normalmente utilizados para servirem de menu principal das aplicaes que requerem
muitas janelas abertas simultaneamente.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 44

Form Window

Um objeto Form Window geralmente criado como filho de algum MDI, podendo trocar
informaes com outros forms. normalmente utilizado para a entrada de dados, consultas e
visualizao de relatrios. Um Form Window pode ser maximizado, minimizado e ter seu tamanho
alterado pelo usurio em tempo de execuo. Pode tambm apresentar uma barra de ferramentas
em qualquer um dos seus lados, e uma barra de status.
Obs : Quando um Form Window criado como filho de um MDI a sua barra de status no
visualizada no Form Window mas sim no MDI Window. Este um comportamento padro do
Windows, no requerendo nenhum esforo de programao do desenvolvedor.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 45

Dialog Box

Os Dialog Box no possuem a caracterstica de ser filho de algum outro objeto. Sempre mostrado
por cima das demais janelas, e estando ativo um Dialog Box nenhum elemento de outra janela
pode ser acionado. O Dialog Box no pode ser minimizado, maximizado e ter seu tamanho
alterado em tempo de execuo. Tambm possuem barras de ferramentas e barra de status.
Obs : J que os Dialog Box no so filhos de nenhum objeto, o comportamento da barra de status
no similar ao comportamento encontrado no Form Window, a sua barra de status visualizada
no prprio Dialog Box. Este tambm um comportamento padro do Windows, no requerendo
nenhum esforo de programao do desenvolvedor.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 46

Table Window

A Table Window bastante semelhante ao Form Window. Basicamente duas caractersticas a


diferenciam do Form Window : A Table Window possui no seu interior um objeto tipo Child Table,
no sendo permitido a utilizao de nenhum outro objeto no seu interior. Este objeto Child Table no
interior do form automaticamente ajustado quando o Form tem seu tamanho alterado, no sendo
necessrio nenhum esforo de programao para isso.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 47

Agora analisaremos os objetos tipo Child dispostos na Paleta de Controles.


Background Text normalmente utilizado quando se necessrio identificar alguns campos na
tela. No pode ser programado, ou seja, no responde a nenhuma ao do usurio, clicks, edio
etc. Este objeto no possui Message Actions.

Group Box Usado para agrupar informaes logicamente relacionadas. No pode ser
programado, ou seja, no responde a nenhuma ao do usurio, clicks, edio etc. Este objeto no
possui Message Actions.

Frame Utilizado para fazer molduras. No pode ser programado, ou seja, no responde a
nenhuma ao do usurio, clicks, edio etc. Este objeto no possui Message Actions.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 48

Line Utilizado para fazer linhas. No pode ser programado, ou seja, no responde a nenhuma
ao do usurio, clicks, edio etc. Este objeto no possui Message Actions.

Data Field um dos objetos que podem ser utilizados para a digitao e visualizao de
informaes na tela. Um datafield pode receber informaes tipo Number, Date/Time, String e Long
String.

Multiline Field Normalmente utilizado para a digitao e visualizao de campos de texto


longos, cartas, observaes, arquivos texto logs de erro etc.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 49

Child Table executa todas as operaes e herda todas as caractersticas do objeto TopLevel
Table Window exceto a possibilidade de Ter suas dimenses alteradas pelo usurio em temo de
execuo. Numa Table Window possvel carregar dados do banco de dados e ento permitir que
o usurio os edite nas prprias clulas. um objeto proprietrio da Centura para edio de dados
em forma tabular.
Column Cada coluna do banco de dados mostrada numa table window num objeto Column.
Pode ser customizada pelo usurio em tempo de execuo tendo sua largura alterada. Pode
mostrar informaes tipo string, date/time, number e long string.

Custom Control utilizado para que objetos de terceiros possam ser utilizados no Centura.
Pushbutton utilizado normalmente para se ativar alguma ao no sistema, so os botes de
comando.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 50

Radio Button So normalmente agrupados em GroupBoxes e utilizados para que o usurio


escolha uma opo nica, quando no permitido mltipla escolha.

Check Box Diferentemente dos Radio Buttons, os Check Boxes permitem mltiplas escolhas.

Option Button Possui um comportamento parecido com o do PushButton porm o controle da


aparncia up e down do option button feia pelo programador. Extremamente til quando a tarefa
no pode ser acionada novamente. Este objeto amplamente usando em barras de ferramentas.

List Box Normalmente os ListBoxes so utilizados para mostrar uma lista de dados que
geralmente vem do banco de dados. Permite tambm a seleo de vrios elementos da lista.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 51

Combo Box Normalmente os ListBoxes so utilizados para mostrar uma lista de dados que
geralmente vem do banco de dados. Difere do ListBox no visual, pois ocupa o espao de um
datafield e permite apenas a seleo de um elemento.

Graph O objeto para montagem de grficos dos mais diversos tipos como barras, pizzas, linhas
blocos etc. Todos com efeitos 2D e 3D. Pode ser personalizado em tempo de execuo.

Picture Normalmente utilizado para apresentar imagens grficas, cones figuras.


Horizontal Scroll Bar Utilizado para fazer rolagem horizontal de algo que precise de mais espao
para ser visualizado, como uma figura. Tambm utilizado para incrementar/decrementar
contadores.

Vertical Scroll Bar Utilizado para fazer rolagem vertical de algo que precise de mais espao para
ser visualizado, como uma figura. Tambm utilizado para incrementar/decrementar contadores.

OLE2.0 a interface do Centura para que o programador incorpore ao seu aplicativo objetos
utilizando a tecnologia OLE 2.0.

Quick Object Permite que o programador escolha alguns dos QuickObjects disponveis no
ambiente.
Menus
Os menus so de grande utilidade num aplicativo, atravs deles que o usurio chama por uma
determinada janela. Os menus no podem receber mensagens, podem apenas disparar
mensagens. O Centura oferece ao desenvolvedor dos seguintes tipos de menus :
Menu Item cada opo de um menu.
Menu Row a linha utilizada para separar um Menu Item do outro. No tem ao associada se
acionado.
Popup Menu na verdade um outro menu, formado de outros Popup Menus ou de Menu Itens.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 52

Windows Menu um tipo de menu que automaticamente mostra os nomes das janelas que esto
abertas e que sejam filhas da janela em que o menu est localizado. Tornando fcil a mudana de
uma janela para outra.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 53

Mensagens do Centura
Sinais que desencadeiam os procedimentos em objetos do SQLWindows, sinais esses emitidos
com a ocorrncia de eventos. A presso de um push button pelo usurio, por exemplo um
evento. Quando um evento para o qual o Centura est preparado para receber ocorre ele envia a
mensagem associada a esse evento para a seo Message Actions do objeto que sofreu o evento.
No caso de um push button, a mensagem de click (SAM_Click) enviada. Caso o programador
tenha codificado alguma ao para ser executada ao receber esta mensagem, esse cdigo ento
executado.
Parmetros em Mensagens : wParam e lParam
wParam e lParam so como parmetros de uma funo e so utilizados pelas mensagens para
armazenar informaes. wParam uma varivel tipo word e lParam tipo longword.
Quando o usurio faz um click com o mouse num objeto tipo picture, enviado ao objeto uma
mensagem de click onde wParam e lParam contm as coordenadas x e y da posio da picture
que recebeu o click.
O Centura est preparado para receber uma srie de mensagens dependendo do evento que
ocorrer. Estas mensagens so chamadas Mensagens do Sistema e esto listadas abaixo junto a
uma breve descrio:
SAM_AnyEdit
SAM_AppExit

SAM_AppStartup

SAM_CacheFull
SAM_CaptionDoubleClick
SAM_Click
SAM_Close
SAM_ColumnSelectClick
SAM_CornerClick
SAM_CornerDoubleClick

enviada aos datafields, combobox, columns e multiline field


quando o usurio modifica o valor de um objeto. O objeto
processa SAM_AnyEdit a cada tecla pressionada.
enviada para a aplicao depois que todas as janelas forem
fechadas. Quando o usurio encerra a execuo da aplicao,
todos os objetos so fechados. Ento SAM_AppExit enviada
para a aplicao.
enviada para a aplicao antes que qualquer janela seja
criada, mesmo as que estiverem com o flag de criao
automtica ligado. Esta a primeira mensagem que a aplicao
recebe, e enviada apenas para o Applications Actions da
aplicao.
enviada a uma table window quando o Centura precisa trazer
mais dados para a tabela mas o cache da tabela encontra-se
cheio.
enviada a uma table window e a uma coluna da table window
quando o usurio d um clique-duplo no ttulo de uma coluna.
De uma maneira geral SAM_Click enviada para a aplicao
para avisar que o usurio pressionou o boto do mouse uma
vez.
enviada para os objetos TopLevel quando o usurio d um
double-click no cone do menu do sistema ou quando o usurio
aciona no menu do sistema a opo Fechar.
enviada para table window e column quando o usurio
seleciona ou deseleciona uma coluna clicando nu seu ttulo.
enviada a uma table window e column quando o usurio clica
no header de uma linha. O header de uma linha a coluna noeditvel localizada a esquerda da table window.
enviada a uma table window e column quando o usurio d
um double-click no header de uma linha.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


SAM_Create
SAM_DDE_ClientExecute
SAM_DDE_ClientRequest
SAM_DDE_DataChange
SAM_Destroy
SAM_DoubleClick
SAM_DragCanAutoStart
SAM_DragDrop
SAM_DragEnd
SAM_DragEnter

SAM_DragExit

SAM_DragMove

SAM_DragNotify
SAM_DragStart
SAM_DropDown
SAM_DropFiles

SAM_EndCellTab
SAM_FetchDone

pg 54

enviada aos objetos top-level (dialog box, form window, ou


table window) e depois para todos os objetos subordinados aps
serem criados, mas antes de estarem visveis.
enviada para todos os objetos da aplicao servidora.
enviada para todos os objetos da aplicao servidora como
resultado de uma requisio de atualizao vinda de uma
aplicao cliente.
enviada para todos os objetos de uma aplicao cliente DDE.
Quando a aplicao servidora envia dados para a aplicao
cliente.
enviada para os objetos top-level (dialog box, form window, e
table window) e para todos os seus filhos exatamente antes dos
objetos serem destrudos.
enviada para os combo box, list box, picture, table window, ou
para a coluna quando o usurio d um double-click num destes
objetos.
enviada para os top-level window, child table window, data
field, multiline field, list box, combo box, e picture, para saber se
o objeto pode entrar em modo automtico de dragging.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture quando o usurio
arrasta o mouse por cima de algum objeto destino.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que o
modo drag foi encerrado.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que o
mouse foi movido para dentro de algum objeto com o modo drag
ativado.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que o
mouse foi movido para fora de algum objeto com o modo drag
ativado.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que o
mouse foi movido dentro de algum objeto com o modo drag
ativado.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que a
ao do mouse ocorreu enquanto estava em modo drag.
enviada aos top-level window, child table window, data field,
multiline field, list box, combo box, e picture, para indicar que o
modo drag foi iniciado.
enviada ao combo box antes da parte list box do combo box
ser mostrada.
enviada aos objetos column, data field, multiline field, list box,
combo box, picture, e custom control. O Centura envia esta
mensagem apenas para os objetos que estiverem com o modo
drag=on. E enviada quando o usurio tenta soltar um ou mais
arquivos do Explorer para dentro do objeto.
enviada para uma table window quando o usurio tenta ir alm
da ltima coluna editvel pressionando a tecla tab.
enviada para uma table window quando a funo
SalTblPopulate, usando o valor TBL_FillAllBackground no seu

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

SAM_FetchRow
SAM_FieldEdit

SAM_Help
SAM_KillFocus

SAM_Print
SAM_ReportFetchInit
SAM_ReportFetchNext

SAM_ReportFinish
SAM_ReportNotify

SAM_ReportStart

SAM_RowHeaderClick
SAM_RowHeaderDoubleClick
SAM_RowValidate
SAM_ScrollBar
SAM_SetFocus
SAM_SqlError
SAM_Timer
SAM_Validate

pg 55

ltimo parmetro, completa a carga de todas as linhas de dados.


enviada para uma table window todas as vezes que o Centura
precisa copiar uma linha do cache para a table window.
enviada para um combo box, data field, multiline text field,
table window, ou table window column quando o usurio
modificar o valor do objeto e tentar mudar o foco para outro
objeto.
enviada para qualquer objeto top level window e para um MDI
quando o usurio pressiona a tecla de funo F1.
enviada para uma table window, data field, multiline field,
pushbutton, radio button, check box, option button, combo box,
list box, column, e scroll bar quando o usurio sai do objeto,
quando move o foco do objeto para algum outro objeto.
enviada para o form window, data field, multiline text field,
combo box, ou push button enquanto o objeto estiver sendo
impresso.
enviada para o objeto top-level ou MDI que iniciou um
relatrio. Isto ocorre quando o Report Builder est pronto para
formatar a primeira pgina do relatrio.
enviada para o objeto top-level ou para o MDI que iniciou o
relatrio.
Esta
mensagem

enviada
aps
a
mensagem
SAM_ReportFetchInit para indicar que o Report Builder est
pronto para receber da aplicao a prxima linha de dados.
enviada para o objeto top-level que iniciou o relatrio.
Esta mensagem enviada quando o relatrio terminar.
enviada para o objeto top-level ou para o MDI que iniciou o
relatrio. Quando cada bloco do relatrio formatado e impresso
no buffer da pgina o Report Builder envia para a aplicao esta
mensagem informando a posio em que se encontra no
relatrio.
enviada para o objeto top-level ou para o MDI que iniciou o
relatrio logo aps a aplicao chamar o relatrio com as
funes SalReportView ou SalReportPrint, para indicar que o
relatrio est comeando.
enviada para a table window quando o usurio clica no header
da linha.
enviada para a table window quando o usurio d um doubleclick no header da linha.
enviada para a table window antes do foco da linha mudar,
isso permite que a linha seja validada.
enviada para a barra de scroll horizontal ou vertical quando o
usurio move a barra usando o mouse ou as teclas de atalho.
enviada para o check box, combo box, data field, list box,
multiline text field, push button, radio button, scroll bar, ou table
window column quando recebem o foco.
enviada para a seo Application Actions do outline quando
um comando SQL falha.
enviada para a seo Application Actions, aos top-level
window e seus filhos a cada n milisegundos, conforme
especificado em SalTimerSet.
enviada aos data field, multiline field, combo box, e column
quando o usurio modificar o valor do objeto e tentar mover o
foco para fora do objeto.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 56

Obs : Consulte o manual do Centura Team Developer para obter informaes mais detalhadas
sobre as mensagens aqui mostradas.
O programador deve basear-se na mensagem SAM_User para criar suas prprias mensagens.
Assim :
Constants
User
Number: PAM_Habilita = SAM_User + 1
Number: PAM_Limpa = SAM_User + 2
possvel tambm utilizar as mensagens do Windows em aplicaes Centura. Para isso basta
definir cada mensagem na seo Constants conforme mostrado abaixo :
Constants
System
Number: WM_MOUSEMOVE = 0x0200

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 57

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 58

Centura Team Developer Mdulo Bsico

pg 59

5. Construindo uma aplicao


5.. Construindo uma Aplicao
1.. O Banco de Dados
2.. O Sistema
3.. Programando o Mdulo Principal
4.. Mdulos Adicionais
O Banco de Dados
Vamos utilizar o banco de dados de exemplos que acompanha o prprio Centura Team Developer,
na base de dados ISLAND. Ento sero criados os menus do mdi principal, as janelas de
manuteno das tabelas e alguns relatrios.
Obs : Como a nossa inteno neste momento obter conhecimento dos recursos bsicos da
linguagem Centura, nos exemplos a seguir procuraremos sempre implementar o cdigo de modo
extremamente simples. Sem a utilizao dos recursos avanados da linguagem.
As Tabelas

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 60

O Login do Sistema.

Esta tela possui o seguinte comportamento : Assim que o usurio executa o sistema, esta janela de
login aparece e solicita a digitao do nome do usurio e da senha. Sem estas informaes o
sistema no pode ser acionado. Caso o usurio no digite corretamente uma senha e um nome de
usurio vlidos o sistema emitir uma mensagem de erro. Permanece na janela de login at que o
usurio informe corretamente um usurio e senha e clique no boto Ok, ou que desista e clique no
boto Cancelar.
Observe abaixo, o cdigo completo da caixa de dilogo dlgLogin.
Dialog Box: dlgLogin
Title: Login ao Sistema
Description:
Tool Bar
Contents
Background Text: Nome
Data Field: dfNome
Background Text: Senha
Data Field: dfSenha
Format: Invisible
Pushbutton: pbOK
Title: &Ok
Message Actions
On SAM_Click
Set SqlDatabase = "ISLAND"
Set SqlUser = dfNome
Set SqlPassword = dfSenha
When SqlError
Call SalMessageBox( "Verifique o nomedo usurio e a senha", "Erro no login", MB_Ok )
Return FALSE
If SqlConnect( hSql )
Set prhSql = hSql
Call SalEndDialog( hWndForm , TRUE )
Pushbutton: pbCancelar
Keyboard Accelerator: Esc
Message Actions
On SAM_Click
Call SalEndDialog( hWndForm , FALSE )
Functions
Window Parameters
Receive Sql Handle: prhSql
Window Variables
Sql Handle: hSql
Message Actions

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 61

O Menu Principal.
O Menu Principal a janela de onde todas as funes do sistema so acionadas. Usaremos uma
janela tipo MDI Window que apropriada para esta funo.

Esta tela possui o seguinte comportamento : Somente aps o sucesso no login o mdiPrincipal
dever ser mostrado. Em seguida todos os menus devem ser disponibilizados para o usurio.
Assim que o usurio escolher uma funo num dos menus, a janela correspondente deve ser
acionada.
Observe abaixo, o cdigo completo do mdiPrincipal.
MDI Window: mdiPrincipal
Description:
Named Menus
Menu
Popup Menu: Cadastros
Menu Item: Empresas
Status Text: Ativa a tela de manuteno de Empresas.
Menu Settings
Enabled when: NOT SalFindWindow ( hWndMDI , "frmEmpresa" )
Menu Actions
Call SalCreateWindow( frmEmpresa, hWndMDI )
Menu Item: Contatos
Status Text: Ativa a tela de manuteno de Contatos.
Menu Settings
Enabled when: NOT SalFindWindow ( hWndMDI , "frmContato" )
Menu Actions
Call SalCreateWindow( frmContato, hWndMDI )
Menu Separator
Menu Item: Faturas
Status Text: Ativa a tela de manuteno de Faturas.
Menu Settings
Enabled when: NOT SalFindWindow ( hWndMDI , "frmFaturas" )
Menu Actions
Call SalCreateWindow( frmFaturas , hWndMDI )
Menu Separator
Menu Item: Sair

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


Status Text: Sair do sistema.
Menu Actions
Call SalSendMsg( hWndMDI , SAM_Close , wParam ,lParam )
Tool Bar
Contents
Functions
Window Parameters
Window Variables
Message Actions

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 62

Centura Team Developer Mdulo Bsico

pg 63

O Form de manuteno na tabela de empresas


Esta tela de manuteno basicamente realiza as funes de consultar, imprimir, incluir, alterar e
excluir informaes da tabela de empresa. De uma forma simples e rpida procuraremos mostrar
como possvel fazer isso utilizando a linguagem SAL. Um conhecimento bsico de linguagem
padro SQL necessrio agora.

Esta tela possui o seguinte comportamento : Inicialmente o usurio pode realizar uma consulta,
caso saiba o cdigo da empresa a ser consultada basta digitar este cdigo no campo Cdigo e
ento clicar no boto Procurar. Feito isso os dados da empresa sero mostrados na tela.
Utilizando os botes da barra de ferramentas o usurio pode visualizar o primeiro registro com
muita facilidade, basta clicar no boto identificado pelo smbolo |<. Para ver o ltimo registro
basta clicar no boto com o smbolo >|. Dessa forma fica bastante flexvel a navegao atravs
de todos os registros da tabela. Nesse momento o usurio pode alterar os campos que julgar
necessrio e ento clicar no boto Gravar. Da mesma forma possvel incluir uma nova
empresa, o usurio preenche os campos e aciona o boto Gravar. O Boto Gravar distingue o
momento correto de executar uma incluso de uma alterao. Para excluir uma empresa basta
fazer uma consulta, localizar a empresa desejada e clicar no boto Excluir.
A impresso do relatrio no nenhum relacionamento com os dados que estiverem sendo
mostrados no momento. O relatrio impresso sempre com todas as empresas existentes no
cadastro.
Observe abaixo, o cdigo fonte completo desta tela :
Form Window: frmEmpresa
Accesories Enabled? Yes
Display Settings
Automatically Created at Runtime? No
Tool Bar
Contents
Pushbutton: pbPRIMEIRO
Message Actions
On SAM_Click
If nTotalLinhas < 2
Call SalMessageBox( MSG_ErrNAV , "Err", MB_Ok )

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


Else
Call SqlFetchRow( hSqlEmpresa , 0, lParam )
Pushbutton: pbANTERIOR
Message Actions
On SAM_Click
If nTotalLinhas < 2
Call SalMessageBox( MSG_ErrNAV , "Err", MB_Ok )
Else
Call SqlFetchPrevious( hSqlEmpresa , lParam )
Pushbutton: pbPROXIMO
Message Actions
On SAM_Click
If nTotalLinhas < 2
Call SalMessageBox( MSG_ErrNAV , "Err", MB_Ok )
Else
Call SqlFetchNext( hSqlEmpresa , lParam )
Pushbutton: pbULTIMO
Message Actions
On SAM_Click
If nTotalLinhas < 2
Call SalMessageBox( MSG_ErrNAV , "Err", MB_Ok )
Else
Call SqlFetchRow( hSqlEmpresa , nTotalLinhas-1, lParam )
Contents
Background Text: Cdigo
Data Field: dfCOMPANY_ID
Data
Maximum Data Length: 3
Data Type: Number
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Call SalEnableWindow( hWndItem )
Background Text: Nome
Data Field: dfCOMPANY_NAME
Data
Maximum Data Length: 30
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Endereo
Data Field: dfADDRESS
Data
Maximum Data Length: 50
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Telefone
Data Field: dfPHONE
Data
Maximum Data Length: 20
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Cidade
Data Field: dfCITY
Data
Maximum Data Length: 30
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Estado
Data Field: dfSTATE
Data
Maximum Data Length: 30

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 64

Centura Team Developer Mdulo Bsico

pg 65

Data Type: String


Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Pas
Data Field: dfCOUNTRY
Data
Maximum Data Length: 30
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Background Text: Web Site
Data Field: dfCORPORATE_URL
Data
Maximum Data Length: 128
Data Type: String
Message Actions
On PAM_Limpa
Call SalClearField( hWndItem )
Pushbutton: pbLIMPAR
Title: Limpar
Message Actions
On SAM_Click
Call SalSendMsgToChildren( hWndForm, PAM_Limpa, 0, 0 )
Set nTotalLinhas = 0
Pushbutton: pbGRAVAR
Message Actions
On SAM_Click
If SalIsWindowEnabled( dfCOMPANY_ID )
Call SqlPrepareAndExecute( hSqlEmpresa, sSqlInsert )
Else
Call SqlPrepareAndExecute( hSqlEmpresa, sSqlUpdate )
Call SqlCommit( hSqlEmpresa )
Call SalSendMsg( pbLIMPAR , SAM_Click, 0, 0 )
Pushbutton: pbEXCUIR
Message Actions
On SAM_Click
If NOT SalIsWindowEnabled( dfCOMPANY_ID )
If IDYES = SalMessageBox( "Confirma a excluso do registro", "Excluso", MB_YesNo )
Call SqlPrepareAndExecute( hSqlEmpresa, sSqlDelete )
Call SqlCommit( hSqlEmpresa )
Call SalSendMsg( pbLIMPAR , SAM_Click, 0, 0 )
Pushbutton: pbPROCURAR
Message Actions
On SAM_Click
If NOT SalIsNull( dfCOMPANY_ID )
Set sWhere = " WHERE COMPANY.COMPANY_ID = :frmEmpresa.dfCOMPANY_ID "
Else
Set sWhere = STRING_Null
Call SqlPrepareAndExecute( hSqlEmpresa , sSqlSelect || sWhere || " ORDER BY COMPANY_ID " )
If SqlFetchNext( hSqlEmpresa , lParam )
Call SqlGetResultSetCount( hSqlEmpresa, nTotalLinhas )
Call SalDisableWindow( dfCOMPANY_ID )
Else
Set nTotalLinhas = 0
Pushbutton: pbIMPRIMIR
Message Actions
On SAM_Click
Call SalReportView( hWndForm, hWndNULL, "company.qrp",
"address, city, company_id, company_name, url, country, phone, state" ,
"address, city, company_id, company_name, url, country, phone, state" , lParam )
Pushbutton: pbCANCELAR
Message Actions
On SAM_Click
Call SalSendMsg( hWndForm , SAM_Close , 0, 0 )
Functions
Window Parameters
Window Variables

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


String: sWhere
String: sSqlSelect
String: sSqlInsert
String: sSqlUpdate
String: sSqlDelete
!
Sql Handle: hSqlEmpresa
Number: nTotalLinhas
!
String: address
String: city
Number: company_id
String: company_name
String: url
String: country
String: phone
String: state
Message Actions
On SAM_Create
Set nTotalLinhas = 0
Set sSqlSelect = "
SELECT ADDRESS ,
CITY ,
COMPANY_ID ,
COMPANY_NAME ,
CORPORATE_URL ,
COUNTRY ,
PHONE ,
STATE
INTO
:frmEmpresa.dfADDRESS ,
:frmEmpresa.dfCITY ,
:frmEmpresa.dfCOMPANY_ID ,
:frmEmpresa.dfCOMPANY_NAME ,
:frmEmpresa.dfCORPORATE_URL , :frmEmpresa.dfCOUNTRY ,
:frmEmpresa.dfPHONE ,
:frmEmpresa.dfSTATE
FROM COMPANY "
Set sSqlInsert = "
INSERT INTO COMPANY (
ADDRESS ,
CITY ,
COMPANY_ID ,
COMPANY_NAME ,
CORPORATE_URL ,
COUNTRY ,
PHONE ,
STATE )
VALUES (
:frmEmpresa.dfADDRESS ,
:frmEmpresa.dfCITY ,
:frmEmpresa.dfCOMPANY_ID ,
:frmEmpresa.dfCOMPANY_NAME ,
:frmEmpresa.dfCORPORATE_URL , :frmEmpresa.dfCOUNTRY ,
:frmEmpresa.dfPHONE ,
:frmEmpresa.dfSTATE ) "
Set sSqlUpdate = "UPDATE COMPANY SET
ADDRESS
= :frmEmpresa.dfADDRESS ,
CITY
= :frmEmpresa.dfCITY ,
COMPANY_NAME = :frmEmpresa.dfCOMPANY_NAME ,
CORPORATE_URL = :frmEmpresa.dfCORPORATE_URL ,
COUNTRY
= :frmEmpresa.dfCOUNTRY ,
PHONE
= :frmEmpresa.dfPHONE ,
STATE
= :frmEmpresa.dfSTATE
WHERE COMPANY_ID = :frmEmpresa.dfCOMPANY_ID"
Set sSqlDelete = "DELETE FROM COMPANY WHERE COMPANY_ID = :frmEmpresa.dfCOMPANY_ID"
Call SqlConnect( hSqlEmpresa )
On SAM_ReportStart
Call SqlPrepare( hSqlEmpresa,
" SELECT
ADDRESS ,
CITY ,
COMPANY_ID ,
COMPANY_NAME ,
CORPORATE_URL , COUNTRY ,
PHONE , STATE
INTO
:address, :city,
:company_id, :company_name,
:url ,
:country , :phone ,
:state
FROM COMPANY
ORDER
BY COMPANY_ID " )
On SAM_ReportFetchInit
Return SqlExecute( hSqlEmpresa )
On SAM_ReportFetchNext
Return SqlFetchNext( hSqlEmpresa , lParam )

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 66

Centura Team Developer Mdulo Bsico

pg 67

O Form de manuteno na tabela de contatos


Nesta tela mostrada a utilizao do objeto top level table window para imprimir, incluir, alterar e
excluir informaes na tabela de contatos.

O comportamento desta tela parecido com a tela de Empresas, porm no existe a consulta, uma
vez que os dados j so mostrados todos na table window. Um outro recurso interessante que
demonstrado a utilizao da coluna de Empresa, que foi programada e tem o comportamento
de um objeto combobox.
Observe o cdigo fonte :
Table Window: frmContatos
Display Settings
Initial State: Maximized
Description:
Named Menus
Menu
Tool Bar
Contents
Pushbutton: pbNOVALINHA
Message Actions
On SAM_Click
Call fNovaLinha( )
Pushbutton: pbATUALIZAR
Message Actions
On SAM_Click
Call SqlPrepare( hSqlContatos, "
INSERT INTO CONTACT (
CONTACT.COMPANY_ID ,
CONTACT.CONT_EMAIL ,
CONTACT.CONT_FAX ,
CONTACT.CONT_FIRST_NAME ,
CONTACT.CONT_LAST_NAME ,
CONTACT.CONT_PHONE ,
CONTACT.CONT_TITLE ,
CONTACT.CONTACT_ID )
VALUES (
:frmContatos.colCOMPANY_ID ,
:frmContatos.colCONT_EMAIL ,
:frmContatos.colCONT_FAX ,
:frmContatos.colCONT_FIRST_NAME ,
:frmContatos.colCONT_LAST_NAME , :frmContatos.colCONT_PHONE ,
:frmContatos.colCONT_TITLE ,
:frmContatos.colCONTACT_ID ) " )
Call SalTblDoInserts( hWndForm , hSqlContatos, TRUE )
!
Call SqlPrepare( hSqlContatos, "
UPDATE CONTACT SET

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


CONTACT.COMPANY_ID
= :frmContatos.colCOMPANY_ID ,
CONTACT.CONT_EMAIL
= :frmContatos.colCONT_EMAIL ,
CONTACT.CONT_FAX
= :frmContatos.colCONT_FAX ,
CONTACT.CONT_FIRST_NAME = :frmContatos.colCONT_FIRST_NAME ,
CONTACT.CONT_LAST_NAME
= :frmContatos.colCONT_LAST_NAME ,
CONTACT.CONT_PHONE
= :frmContatos.colCONT_PHONE ,
CONTACT.CONT_TITLE
= :frmContatos.colCONT_TITLE
WHERE
CONTACT.CONTACT_ID
= :frmContatos.colCONTACT_ID " )
Call SalTblDoUpdates( hWndForm , hSqlContatos, TRUE )
!
Call SqlPrepare( hSqlContatos, "DELETE FROM CONTACT
WHERE CONTACT.CONTACT_ID
= :frmContatos.colCONTACT_ID" )
Call SalTblDoDeletes( hWndForm, hSqlContatos, ROW_MarkDeleted )
Call fPopulate( )
Pushbutton: pbIMPRIMIR
Message Actions
On SAM_Click
! Call SalReportTableCreate( "contatos.qrp", hWndForm, lParam )
Call SalShowWindow( colCOMPANY_ID )
Call SalReportTableView( hWndForm , hWndNULL , "contatos.qrp", lParam )
Call SalHideWindow( colCOMPANY_ID )
Pushbutton: pbCANCELAR
Message Actions
On SAM_Click
Call SalSendMsg( hWndForm , SAM_Close , 0, 0 )
Contents
Column: colCOMPANY_ID
Column: colCONTACT_ID
Title: Cdigo Contato
Maximum Data Length: 18
Column: colCONT_FIRST_NAME
Title: Primeiro Nome
Maximum Data Length: 18
Column: colCONT_LAST_NAME
Title: ltimo Nome
Maximum Data Length: 18
Column: colCOMPANY_NAME
Title: Empresa
Maximum Data Length: 30
Cell Options
Cell Type? Drop Down List
List Values
Message Actions
On SAM_Create
Call SalListPopulate( hWndItem , hSql , "SELECT COMPANY_NAME FROM COMPANY " )
On SAM_AnyEdit
Call SqlPrepareAndExecute( hSql , " SELECT COMPANY_ID FROM COMPANY
INTO :frmContatos.colCOMPANY_ID WHERE COMPANY_NAME = :MyValue " )
Call SqlFetchNext( hSql , lParam )
Column: colCONT_EMAIL
Title: e-mail
Maximum Data Length: 64
Column: colCONT_TITLE
Title: Cargo
Maximum Data Length: 18
Column: colCONT_PHONE
Title: Telefone
Maximum Data Length: 18
Column: colCONT_FAX
Title: Num Fax
Maximum Data Length: 18
Functions
Function: fNovaLinha
Description:
Returns
Parameters
Static Variables
Local variables

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 68

Centura Team Developer Mdulo Bsico

pg 69

Actions
Call SalTblSetFocusCell( hWndForm, SalTblInsertRow( hWndForm,TBL_MaxRow), colCONTACT_ID, -1, -1)
Function: fPopulate
Description:
Returns
Parameters
Static Variables
Local variables
Actions
Call SalTblPopulate( hWndForm , hSqlContatos, "
SELECT
CONTACT.COMPANY_ID ,
CONTACT.CONT_EMAIL ,
CONTACT.CONT_FAX ,
CONTACT.CONT_FIRST_NAME ,
CONTACT.CONT_LAST_NAME ,
CONTACT.CONT_PHONE ,
CONTACT.CONT_TITLE ,
CONTACT.CONTACT_ID ,
COMPANY.COMPANY_NAME
INTO
:frmContatos.colCOMPANY_ID ,
:frmContatos.colCONT_EMAIL ,
:frmContatos.colCONT_FAX ,
:frmContatos.colCONT_FIRST_NAME ,
:frmContatos.colCONT_LAST_NAME ,
:frmContatos.colCONT_PHONE ,
:frmContatos.colCONT_TITLE ,
:frmContatos.colCONTACT_ID ,
:frmContatos.colCOMPANY_NAME
FROM CONTACT , COMPANY
WHERE
CONTACT.COMPANY_ID = COMPANY.COMPANY_ID "
, TBL_FillAll )
Window Parameters
Window Variables
Sql Handle: hSqlContatos
Message Actions
On SAM_Create
Call SqlConnect( hSqlContatos )
Call fPopulate( )
On SAM_RowHeaderDoubleClick
Call SalTblSetRowFlags( hWndForm , lParam , ROW_MarkDeleted, TRUE )
On SAM_RowHeaderClick
Call SalTblSetRowFlags( hWndForm , lParam , ROW_MarkDeleted, FALSE )

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 70

Centura Team Developer Mdulo Bsico

pg 71

6. Dynalib
6.. Dynalib
1.. Conceito
2.. Implementando Dynalib
Conceito
Uma Dynalib um mdulo compilado com funes e objetos que so utilizados dinamicamente por
outras aplicaes em tempo de execuo. Uma Dynalib um tipo de arquivo intermedirio entre
uma APL e uma DLL. Assim como uma APL, possvel inclu-la numa aplicao e utilizar alguns
de seus recursos. A diferena de uma Dynalib em relao a uma APL que nem todo o cdigo
fonte da biblioteca compartilhado para reutilizao. Assim como uma DLL, o seu contedo s
carregado para a memria quando o aplicativo requer algum recurso que pertence a Dynalib, isto j
em tempo de execuo. A principal diferena entre uma Dynalib e uma DLL que a Dynalib um
formato de arquivo proprietrio do Centura, no sendo possvel sua utilizao em outros ambientes
de desenvolvimento.
Podem ser compartilhados numa Dynalib :
As funes globais
As variveis globais
Objetos top-level e suas funes
Objetos MDI, suas funes e seus objetos child.
As vantagens na utilizao de Dynalibs so :
Desenvolvimento Modular. Voc pode separar sua aplicao em mdulos distintos (dynalibs),
onde cada mdulo dedica-se a realizar uma determinada tarefa.
Economia de Recursos. Voc precisar de menos espao para distribuir suas aplicaes.
Atualizao Modular. possvel recompilar uma biblioteca depois que uma aplicao j encontrase em produo, sem recompilar a aplicao em si.
Segurana de Cdigo Fonte. possvel a distribuio de bibliotecas escritas em SAL sem que o
cdigo fonte seja revelado.
Compilao Rpida. As dynalibs no so compiladas a cada vez que a aplicao , isso reduz
drasticamente o tempo de abertura dos programas e tambm da compilao.
Obs: No desenvolvimento de grandes aplicativos, provvel que alguns limites internos do Centura
sejam atingidos. Por exemplo a tabela de smbolos, o espao para as strings, o nmero de objetos
entre outros. Cada dynalib possui seus prprios recursos e so independentes do restante da
aplicao. Isso pode ajudar a evitar alguns limites impostos pelo Centura.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 72

Implementando Dynalib
Para a gerao de uma dynalib o primeiro passo identificar quais os itens que sero exportados,
identific-los e compilar a biblioteca ativando a gerao da dynalib. Observe a definio da
constante e a declarao da funo interna Get_Versao() que ir recuperar o valor da constante
DYNALIB_VERSAO. Observe tambm que a frente do nome da funo est a palavra chave para
que o Centura entenda quais elementos sero exportados na gerao da dynalib , ! __exported.

Atravs da caixa de dilogo Build Settings ( menu Project / Build Settings... ) feita a
configurao do Centura Builder para que seja gerada a dynalib.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 73

Observe na figura abaixo que a dynalib foi includa numa aplicao e que a funo Get_Versao()
aparece no outline da aplicao. O cdigo fonte da funo no visualizado. Assim como o
programador no faz a menor idia de que a constante DYNALIB_VERSAO existe.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 74

Obs : Dynalib prov ao desenvolvedor a possibilidade de componentizar e modularizar a aplicao.


Com as dynalibs o desenvolvedor pode passo-a-passo enviar ao cliente partes novas da aplicao
que foi comprada ou enviada para demonstrao, sem que seja necessrio enviar uma verso
completa para o cliente.
Importante : Normalmente as dynalibs continuam compatveis mesmo aps uma atualizao do
pacote Centura Team Developer, fique atento ao arquivo release notes que acompanha cada nova
verso, neste arquivo informado se existe a necessidade de recompilar as dynalibs. Isso s deve
ocorrer quando as verses forem binariamente incompatveis.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 75

7. Gerao do Executvel
Gerao do Executvel
A gerao do executvel com o Centura Builder extremamente simples, basta acionar o menu
Project / Build : app_curso.exe.
Lembre-se que a aplicao precisar estar livre de erros de compilao.
Atravs da caixa de dilogo Build Setting pode ser configurado a gerao do executvel, seu path
e o cone da aplicao.
O executvel gerado pelo Centura no independente, ou seja, o executvel sozinho no o
suficiente para que a aplicao seja executada corretamente pelo usurio. Alguns cuidados devem
ser tomados :

Normalmente, todo o contedo do diretrio Centura\Deploy necessrio para que o


executvel funcione corretamente. Neste diretrio esto as bibliotecas do Centura, drivers dos
bancos de dados e o mdulo run-time do Centura e do ReportBuilder. Este diretrio deve estar
no path da mquina que for utilizar o aplicativo. Sem este diretrio a aplicao no
executada.
As bibliotecas de terceiros como as DLLs e controles ActiveX devem estar devidamente
instalados na mquina que ir executar o aplicativo.
As dynalibs que a aplicao estiver utilizando precisam estar no mesmo diretrio do
executvel. Sem as dynalibs, a aplicao executa normalmente at o momento em que um
recurso presente na dynalib for requerido. Neste momento a execuo da aplicao
interrompida.
Os demais arquivos utilizados pela aplicao ( cones, bitmaps, cursores, layouts de relatrios
etc ) tambm devem estar no mesmo diretrio onde o executvel est localizado. Sem estes
arquivos, a aplicao executa, mas pode no ser obtido os efeitos esperados.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 76

Centura Team Developer Mdulo Bsico

pg 77

8. O Report Builder
8.. O Report Builder
1.. Fundamentos do Report Builder.
2.. Funes SALReport*
3.. Definindo layouts.
O Report Builder
O Report Builder um poderoso gerador de relatrios e faz parte do pacote Centura Team
Developer. uma ferramenta de fcil utilizao alm de ser um gerador de relatrios padro
WYSIWYG (what you see is what you get). No Report Builder voc desenha o relatrio utilizando
as ferramentas disponveis na paleta de objetos e ento salva o layout como um template.
Posteriormente, o relatrio ser linkado aos dados que podem vir de um banco de dados padro
SQL, atravs do Centura Bulder, para ento produzir relatrios com qualidade comercial.
Fundamentos do Report Builder.
O ambiente de desenvolvimento de relatrios mostrado na figura abaixo.

reas do ReportBuilder

Nesta figura so mostradas as seguintes ferramentas :

Indicador da posio do objeto selecionado no relatrio.


Indicador da largura do objeto selecionado no relatrio.
Tipo e Tamanho da fonte utilizada
Tamanho da fonte utilizada
3 botes que controlam o alinhamento esquerda, ao centro e direita.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 78

Boto Bold on/off


Boto Itlico on/off
Boto Sobrescrito on/off
Boto Sublinhado on/off

Nesta figura so mostradas as seguintes ferramentas :

contedo do campo.
Boto para ativar o editor de frmulas
Combobox para configurar a formatao do campo.

Seo
do Descrio
Relatrio
Report Header
o cabealho que dever aparecer apenas no incio do relatrio, antes da
primeira pgina de dados.
Page Header
o cabealho que ser mostrado em todas as pginas do relatrio,
normalmente utilizado para mostrar a data, hora, nmero da pgina e algumas
informaes sobre o relatrio.
Detail Block
corresponde a cada linha de dados que chega da fonte dos dados.
Page Footer
impresso no rodap de cada pgina.
Report Footer
impresso apenas quando o relatrio encerra. Muito til para se fazer um
resumo do relatrio.
A paleta de controles possui algumas ferramentas que podem ser colocadas em vrias sees do
relatrio, assim como no Centura, o relatrio vai sendo montado a cada objeto nele colocado.
Os objetos disponveis so :
cone
objeto

do Nome
Selector
Background Text
Field

Box

Descrio
Destaca um objeto no modelo para que seja executada alguma
operao com o mesmo, como mudar a fonte. similar ao
Selector do Centura Builder.
Similar ao objeto Background Text do Centura Builder. Pode
ser usado para definir algum literal caractere, rtulos e
cabealhos de colunas no relatrio.
Similar ao datafield do Centura Builder. Provavelmente este
seja o objeto mais utilizado do Report Builder. Normalmente
utilizado para fazer um link direto com uma coluna do banco de
dados ou para uma frmula.
Similar ao frame do Centura Builder. Seu uso estritamente
cosmtico.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


Picture
Line
Graph
Cross Tab
Preserve
Selection
Auto Selector

pg 79

Similar ao objeto picture do Centura Builder. Pode conter uma


imagem ou um objeto OLE.
Insere uma nova linha em qualquer bloco do template.
Similar ao objeto Graph do Centura Builder. Insere um grfico
de negcios no relatrio.
Insere um controle para a gerao de relatrios tabulares.
Mantm selecionado o objeto atual aps a insero de algum
objeto no layout. No retornando ferramenta default, que o
Selector.
Seleciona automaticamente o objeto Selector, aps a insero
de algum objeto no layout.

O Editor de Frmulas

O Report Builder possui um editor de frmulas para que seja possvel definir frmulas para os
dados que chegam da aplicao. O editor de frmulas possui uma grande variedade de funes
agrupadas nas seguintes categorias :

Funes agregadas ( como average, count, max )


Funes de tratamento de campos tipo string ( como compare, substring, case )
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 80

Funes de tratamento de campos tipo Date/Time ( como currentDate, currentTime )


Funes matemticas ( como truncate, power e mod )
Funes especiais ( como PageNumber, ReportFileName )

Obs : Lembre-se estas funes atuam nos dados depois que estes j passaram pelo Centura
Builder. Portanto, existem duas oportunidades de transformao dos dados ; usando as funes da
linguagem SAL no Centura Builder e usando estas funes prprias do Report Builder. No
esquecendo que existe uma terceira oportunidade, a recuperao no banco de dados via comando
SQL. H uma grande abertura para que os dados sejam trabalhados amplamente,
SQL_SAL_ReportWindows, entre o momento em que o dado requisitado do banco de dados at
sua impresso numa impressora.
A comunicao Centura Builder x Report Builder
O primeiro passo foi descrito acima, desenhar e salvar (*.QRP) o template do relatrio. Agora
precisamos invocar e enviar os dados a partir do Centura Builder. Isso feito atravs das funes
SalReport* que so usadas para associar um template com os dados e iniciar a impresso do
relatrio. O relatrio se comunica com o Centura Builder atravs utilizando-se de mensagens.
Cada vez que o Centura Builder termina de processar uma mensagem, ele envia ao Report Builder
uma resposta conhecida para que o prximo passo seja dado. Assim funciona a comunicao
entre o Centura Builder e o Report Builder, assim so processados os relatrios.
Funes SAL utilizadas para imprimir ou visualizar um relatrio :
Funo
SalReportCreate
SalReportPrint
SalReportView
SalReportTableCrea
te
SalReportTableView
SalReportTablePrint

Descrio
Cria um template de relatrio, linkado s variveis do Centura Builder
Envia diretamente um template de relatrio para impressora.
Permite que o relatrio seja pre-visualizado na tela antes de ser impresso.
Cria um template de relatrio, linkado s colunas de uma table window do
Centura Builder
Permite que o relatrio seja pre-visualizado na tela antes de ser impresso.
Baseia-se nos dados presentes numa table window.
Envia diretamente um template de relatrio para impressora. Baseia-se nos
dados presentes numa table window.

A troca de mensagens e dados entre o Centura Builder e o Report Builder mostrada abaixo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

CB
RB
RB
RB
CB
RB
CB
RB
CB
RB
CB
RB

executa uma chamada funo SalReportView ou SalReportPrint.


iniciado pelo Centura Builder.
l o template do relatrio (*.QRP)
informa ao Centura Builder que o relatrio est sendo iniciado
envia ao Centura Builder a mensagem SAM_ReportStart.
executa algumas tarefas de inicializao
instrui ao CenturaBuilder que prepare para o envio do primeiro lote de informaes.
envia ao Centura Builder a mensagem SAM_ReportFetchInit
prepara os dados e envia ao ReportBuilder TRUE/FALSE para que o relatrio continue.
informa ao Centura Builder que est pronto para formatar um bloco do relatrio.
envia ao Centura Builder a mensagem SAM_ReportNotify.
pode manipular variveis do relatrio se for necessrio.
solicita ao Centura Builder uma linha de dados.
envia ao Centura Builder a mensagem SAM_ReportFetchNext.
armazena nas variveis do relatrio os dados a serem impressos.
e retorna ao Report Builder TRUE ou FALSE para que o relatrio continue.
informa ao Centura Builder que o relatrio terminou.
envia ao Centura Builder a mensagem SAM_ReportFinish.
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico


19

CB

pg 81

encerra as atividades desconectando do banco de dados por exemplo.

Todo o processamento responsvel pela transferncia dos dados entre banco de dados at o
relatrio descrito entre os itens 10 e 16. Forma-se um loop entre estes processos at que o
Centura Builder retorno FALSE (item 16) e ento o Report Builder encerra o relatrio.
O dilogo entre o Centura Builder e o Report Builder a cada troca de mensagem :
Mensagem
SAM_ReportStart
SAM_ReportFetchInit
SAM_ReportFetchNext
SAM_ReportNotify
SAM_ReportFinish

O que o ReportBuilder diz


OK, estou vivo
Pode ir buscar os dados.
Esta linha j foi, pode mandar outra por favor.
Ateno, estou comeando a formatar uma seo especial do
relatrio
Terminei.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 82

Centura Team Developer Mdulo Bsico

pg 83

9. Centura e a OOP
9. Centura e a OOP
9.1.. A implementao da OOP no Centura.
9. Programao Orientada a Objetos
O Centura implementa uma srie de recursos tpicos de uma linguagem orientada a objetos.
Podemos afirmar seguramente que o Centura uma linguagem orientada a objetos. Mostraremos
nos exemplos a seguir como implementar alguns destes recursos.
Com a programao orientada ao objeto torna-se possvel :
*
*
*

A definio de classes
Criar classes derivadas de classes j existentes.
Criar objetos destas classes.

Objetos
Um objeto uma entidade de software que combina :
Dados que representam um objeto.
Cdigo procedural que obtm ou modifica os dados de um objeto.
Um objeto pode representar :
Um conceito tangvel como uma janela.
Um conceito abstrato como uma conta bancria.
Um objeto uma instncia de uma classe. Um objeto contm as informaes e o comportamento
da classe origem.
Classes
Uma classe um molde para um objeto. Numa classe voc define a estrutura de dados e o
comportamento que sero compartilhados mais tarde, quando voc criar instncias dessa classe.
Voc define o mesmo comportamento e a mesma estrutura de dados para os objetos sem precisar
duplicar o cdigo para cada um dos objetos. Os objetos de uma classe compartilham os mesmos
dados e os mesmos comportamentos,mas cada objeto possui seus prprios valores para os dados.
Herana
A herana permite que voc defina uma nova nos moldes de uma classe j existente. Uma nova
classe que voc deriva de uma classe base herda o comportamento e a estrutura de dados da
classe base. Assim, uma classe derivada pode :
Expandir a classe base acrescentando novos dados e comportamentos.
Modificar um comportamento de uma classe redefinindo o comportamento herdado.
Desenvolvendo Classes e Objetos.
Siga estas instrues genricas para desenvolver classes e objetos :

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 84

1. Decida que classe voc ir utilizar.


2. Escolha as variveis e funes para cada classe. Para classes de objetos podem ser definidos
tambm aes que sero acionadas pelas mensagens.
3. Organize as classes numa hierarquia.
Definindo uma classe
Vamos definir agora uma classe de pushbutton.
Global Declarations
Classes
Pushbutton Class: cpbCancelar
Title: Cancelar
Description:
Derived From
Class Variables
Instance Variables
Functions
Message Actions
On SAM_Click
Call SalSendMsg( hWndForm , SAM_Close , 0 , 0 )

Observe que esta classe extremamente simples, porm muito til.


Um outro exemplo de uma classe de datafield que nos seria muito til na confecco da tela de
manuteno de Empresas.
Data Field Class: cdfLimpar
Description:
Derived From
Class Variables
Instance Variables
Functions
Message Actions
On PAM_Limpar
Call SalClearField( hWndItem )

Estes so exemplos extremamente simples da utilizao de classes no Centura.


Um estudo mais detalhado sobre este assunto indispensvel.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

pg 85

Centura Team Developer Mdulo Bsico

pg 86

10. Team Object Manager


10. Team Object Manager
O Centura Team Developer possui uma poderosa ferramenta para o gerenciamento de projetos e
de equipes de desenvolvimento. O Team Object Manager gerencia os projetos e tudo o que est
envolvido nesse processo; projetos, aplicaes, bibliotecas, imagens, relatrios, documentos,
equipes, faz controle de verso e muitas outras atividades tpicas de um sistema de gerenciamento
de projetos.
Toda a operao do Team Object Manager ( TOM ) baseada num, repositrio onde esto
localizadas todas as informaes. Este repositrio uma base de dados padro SQL que pode
funcionar num servidor de rede ou numa mquina stand-alone. O TOM suporta os seguintes
bancos de dados :
Centura SQLBase,
Informix,
MS-SQLServer e
Oracle.
Na figura abaixo pode ser observada a interface inicial do TOM.

TOM. Viso inicial do projeto Starter.


Para que o TOM gerencie a equipe de desenvolvimento necessrio primeiramente cadastrar a
equipe toda. Cada usurio recebe um nome cdigo, uma senha e seus privilgios que servem de
classificao da hierarquia dos membros da equipe. Os possveis privilgios so Gerente de

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 87

projetos, Manuteno dos membros do projeto, Modificar os membros do projeto e Modificar as


propriedades do repositrio. Isso se faz atravs da tela mostrada na figura abaixo.

Todos os membros da equipe podem ser confortavelmente visualizados conforme a figura abaixo,
os nomes e seus direitos. Qualquer alterao que se fizer necessria em algum usurio pode ser
feita nesta tela. Clicando-se com o boto direito do mouse no nome de um usurio far com que
um menu especfico de usurios aparea com todas as opes de configurao possveis para o
usurio escolhido.

Os projetos so criados no TOM atravs da janela do Assistente de Criao de Projeto, que


mostrada na figura abaixo. Neste assistente so configurados os parmetros para que o TOM crie
o projeto desejado. Basicamente o TOM precisa de um cdigo do projeto e do nome.
neste momento que uma das decises mais importantes da criao do projeto deve ser tomada ;
O tipo de armazenamento dos componentes do projeto. O TOM pode armazenar tudo referente ao
LAIRTON NOGUEIRA DE ALMEIDA JNIOR
Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 88

projeto num repositrio (num banco de dados SQL). Mas pode tambm armazenar no repositrio
apenas os ponteiros e informaes sobre a equipe e sobre os projetos, colocando o grande volume
de dados num diretrio configurado nesta tela. Neste diretrio ficam todos os programas fontes,
imagens, relatrios, ou seja todos os itens do projeto. Essa uma informao extremamente
importante que deve ser decidida neste momento.

O prximo passo incluir no projeto os seus componentes. Para isso o TOM oferece uma interface
bastante amigvel para o armazenamento e organizao dos componentes. Isso pode ser
visualizado na figura abaixo, onde facilmente possvel observar que o programa app_curso.app
est sendo utilizado pelo usurio LAIRTON. Este o ponto mais importante da utilizao do TOM
a ser assimilado neste momento. O mecanismo de Check-In e Check-Out.
Estando uma aplicao guardada no repositrio do TOM, cada vez que um desenvolvedor precisa
realizar alguma manuteno nesta aplicao ele retira do TOM a cpia mais recente da aplicao
requerida. Esta operao registrada pelo TOM e todas as informaes referentes a esta tarefa
ficam no TOM armazenadas. Basicamente so : O nome do desenvolvedor que extraiu um
determinado mdulo do projeto para um diretrio. Fica armazenado o nome do desenvolvedor, o
componente, o diretrio (para o qual o componente foi extrado) e a data e hora da operao. A
esta operao d-se o nome de Check-Out, pois um integrante da equipe extraiu um componente
do projeto, para manuteno.
Obs : Estando um programa em Check-Out, no possvel que nenhum outro desenvolvedor
realize Check-Out novamente. A menos que esta operao esteja habilitada no TOM e que os
integrantes da equipe tenham conscincia dos danos que esse tipo de comportamento pode
causar se utilizado de forma incorreta.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 89

Check-In a operao oposta ao Check-Out. Ocorre quando o desenvolvedor encerrou suas


alteraes no componente e est ento devolvendo ao repositrio o aplicativo devidamente
atualizado. Apenas o desenvolvedor que solicitou o Check-Out pode realizar o Chek-In do mdulo.

Em determinadas ocasies o programa em Check-Out pode no ter sido modificado. Neste caso a
operao correta no o Check-In, mas sim o Unlock.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Centura Team Developer Mdulo Bsico

pg 90

O TOM possui tambm uma srie de relatrios que podem e devem ser utilizados para um melhor
gerenciamento dos projetos. Este recurso e muitos outros que compem o TOM devem ser
analisados atentamente e delicadamente pelos desenvolvedores quando houver oportunidade.

LAIRTON NOGUEIRA DE ALMEIDA JNIOR


Lairton@CenturaExplorer.com http://www.CenturaExplorer.com

Вам также может понравиться