You are on page 1of 581

Programando com o Centura Team Developer 2000

Caro Leitor, este livro foi originalmente lanado em junho de 2000. Seu contedo refere-se ao ento Centura Team Developer verso 2.0, chamado na poca de Centura Team Developer 2000, da vem a sigla CTD2000. Em diversos pontos do livro, onde for citado o endereo www.centuraexplorer.com, deve ser considerado http://appstartup.blogspot.com.br, nele, h uma rea especfica para tratar deste livro e dos arquivos que so citados nos exemplos. Este livro est sendo disponibilizado agora, em maio de 2013, em formato PDF para livre utilizao por qualquer pessoa que tiver necessidade de estudar Centura Team Developer 2000. A base desta ferramenta de programao est neste livro, portanto pode ser utilizado como fonte de estudo mesmo para verses mais recentes do Team Developer. Contatos com o autor podem serfeitos atravs do e-mail lairton@live.com ou atravs do blog App StartUp no url http://appstartup.blogspot.com.br Bom estudo!

Lairton Nogueira de Almeida Jnior

Programando com o Centura Team Developer 2000

Para Christiane, Netinho e Marcelinha

Pgina 2

Programando com o Centura Team Developer 2000

Pgina 3

Programando com o Centura Team Developer 2000

Agradecimentos So tantas as pessoas que de forma direta ou indireta ajudaram na confeco deste livro, eu no conseguiria citar todos os nomes aqui, mas eu no posso deixar de agradecer a algumas pessoas .... Ao sr. Agenor Correia, muito obrigado por ter me mostrado este caminho e pelo seu investimento em mim. Obrigado por ter acendido a chama. Pelas oportunidades eu gostaria de agradecer ao Jorge Correia, Eduardo Aguiar, Jos Luna, Petrcio Barros, ao Francinaldo e ao Ryan Bahard . Vocs podero observar muito do nosso dia-a-dia de trabalho neste projeto. Ao pessoal da Centura. Muito obrigado ao Joubert Stape e a Ana Paula, a ajuda de vocs tem sido muito importante enriquecendo em muito o contedo deste livro. Um abrao tambm ao pessoal da Centura Software Corporation, Jeremy Shaw, Raghavan Gurumurthy, Cezary Hajlasz e a Charity Silkebakken pela colaborao. Ao Krause Correia, meu grande amigo pessoal e profissional, muito obrigado pelas sugestes, pelo apoio junto ao contedo deste trabalho, principalmente no que diz respeito aos relatrios, pelas noites em que ficamos at muito tarde debatendo os assuntos do livro. Eu gostaria de agradecer tambm aos clientes das ferramentas da Centura, pois me foraram a buscar solues para as suas necessidades, provendo contedo para este livro. E a todos os meus alunos que so realmente a base deste livro. As experincias que tivemos nos treinamentos serviram de estrutura principal deste trabalho que agora poder dar-lhes todas as informaes sobre o Centura, num nico local. Eu gostaria de agradecer especialmente a: Meus pais e irmos: Lairton, Clia, Fbio, Leandro, rico, Andr e ao Danilo. Muito Obrigados. Meus amigos: Jones Melo, Cristovo, Roberto Galvo, Urbano Chagas pela fora que me transmitiram. A todos os colegas de trabalho por ler os pedaos do livro, pelas sugestes e perguntas que me fizeram cada vez mais ver o que o livro deveria ter, aos poucos o seu contedo foi modificando-se de acordo com as necessidades de vocs. Sra. Ana Claudia, muito obrigado pelas suas sugestes, pela pacincia em ler este livro todo vrias vezes, pelo apoio e pelo incentivo a cada passo do caminho, desde o nicio at sua concluso. E principalmente a Deus, por ter dado sade, condies de aprendizado e essa vontade interior de transmitir conhecimento s pessoas. Obrigado por me ajudar a conhecer as pessoas certas nas horas certas e por permitir que tudo isso esteja acontecendo desse jeito. Me ajudaram muito a manter o esprito do livro as audies de "Dawn of a new Century" do Secret Garden, "Dance of the Angel" do Slava Gaigoayan, "Luzia" do Paco de Luca, "The
Pgina 4

Programando com o Centura Team Developer 2000

Music of The Grand Canyon" do Nicholas Gunn e do "Key in G" do Kenny G e na sua fase final de concluso o "Na Presso" do Lenine que retratam a trilha sonora deste livro.

Pgina 5

Programando com o Centura Team Developer 2000

Uma olhada rpida ...


Programando com o Centura Team Developer 2000
Elementos do SQLWindows/32

Parte I Parte II Parte III Parte IV Parte V

Captulo 1 - Apresentao do Centura SQLWindows/32 Captulo 2 - A Linguagem SAL Captulo 3 - O acesso ao SQL Captulo 4 - Programao Baseada em Eventos Captulo 5 - Programando com o SQLWindows/32 Obtendo mais do SQLWindows/32 com a tecnologia QuickObjects Captulo 6 - Utilizando os QuickObjects Captulo 7 - Explorando os QuickObjects Captulo 8 - Programao Orientada a Objetos Captulo 9 - Ampliando o desenvolvimento com o CDK Captulo 10 - Criando seus prprios QuickObjects Concluindo o desenvolvimento de aplicaes Captulo 11 - Relatrios com o Report Builder Captulo 12 - Distribuio do produto final Captulo 13 - Traduzindo aplicaes com o Object Nationalizer Captulo 14 - Gerenciamento de equipes com o Team Object Manager

Sua aplicao Centura falando com o mundo Captulo 15 - Desenvolvimento de componentes COM no SQLWindows Captulo 16 - Desenvolvendo aplicaes para Web

Guia de Referncia Completo Apndice A - Guia de referncia das funes SAL Apndice B - Guia de referncia das funes SQL Apndice C - Guia de referncia das mensagens SAM Apndice D - Guia de referncia das funes do Report Builder Apndice E - Classes e funes da Biblioteca VisualToolchest Apndice F - Guia de Instalao do Centura Team Developer 2000

Pgina 6

Programando com o Centura Team Developer 2000

Apresentao Para um melhor aproveitamento do contedo apresentado neste livro, recomendamos que o leitor siga a ordem em que os captulos esto apresentados. Todos os aspectos do Centura Team Developer so abordados ao longo dos vinte e dois captulos, portanto, ignorar a seqncia pode fazer com que o leitor encontre alguma dificuldade na utilizao de alguns conceitos que foram explicados em captulos anteriores. Programando com o Centura Team Developer 2000 est dividido em cinco partes: Parte I - Elementos do SQLWindows/32 Nos captulos 1, 2 e 3, o SQLWindows/32 detalhadamente explicado. apresentado todo o ambiente de programao, a parte terica referente aos conceitos da linguagem e a explanao de todos os seus objetos, alguns conceitos sobre bancos de dados SQL e sua utilizao junto ao SQLWindows/32. Os conceitos de programao baseada a eventos so transmitidos ao leitor no captulo 4. No captulo 5 esto os exemplos de programao, exercitando os conceitos introduzidos inicialmente. A primeira parte de importncia vital para a correta compreenso e utilizao do restante do livro. Parte II - Obtendo mais do SQLWindows com a tecnologia QuickObjects O SQLWindows/16 na sua verso 5 trouxe aos desenvolvedores a tecnologia dos QuickObjects, os captulos 6 e 7 tratam, de forma minuciosa, todos os seus conceitos e utilizao. O captulo 8 apresenta os conceitos da programao orientada a objetos, dirigida ao SQLWindows/32. A leitura deste captulo indicada, mesmo aos leitores que j possuem conhecimento das tcnicas de programao orientada a objetos, uma vez que, nele so relacionadas as terminologias da OOP aos componentes do SQLWindows/32. Uma grande ferramenta presente no Centura Team Developer que auxilia o desenvolvimento de aplicaes em SQLWindows/32 o CDK. O captulo 9 explica o modo como o CDK funciona e os benefcios que pode trazer aos desenvolvedores Centura. Os exemplos vistos no captulo nove so estendidos no captulo 10, onde o ciclo fechado com a criao de QuickObjects personalizados pelo programador. Esta a parte onde alguns dos conceitos mais avanados do SQLWindows/32 so abordados, como os QuickObjects, a tecnologia de orientao a objetos e a gerao de cdigo. Parte III - Concluindo o desenvolvimento de aplicaes O ciclo de desenvolvimento de aplicaes concludo nesta parte, em que so apresentados os refinamentos da sua aplicao.
Pgina 7

Programando com o Centura Team Developer 2000

No captulo 11 visto a gerao dos relatrios com o Report Builder e a sua interao com o SQLWindows/32. A interface do usurio do Report Builder e a interface com programas externos abordada de forma detalhada. As diversas formas de distribuio do produto final incluindo a gerao de executveis, dynalibs e dlls so abordadas no captulo 12. Para a gerao de dlls voc precisa ter instalado o Microsoft Visual C++ e o Object Compiler. O captulo 13 dedicado ao Object Nationalizer, onde vemos o quanto simples traduzir as aplicaes feitas em SQLWindows para diversos idiomas. Para encerrar a terceira parte,, o captulo 14 apresenta o Team Object Manager, que facilita o gerenciamento de projetos e equipes de desenvolvimento.

Parte IV - Sua aplicao Centura falando com o mundo Podemos seguramente afirmar que esta parte a mais atraente de todo o livro, por envolver as tecnologias mais faladas atualmente. No captulo 15 a integrao do SQLWindows/32 com a tecnologia de componentes COM rodando no MTS detalhadamente explicada com instrues passo-a-passo para que voc construa uma aplicao COM+ rapidamente. Coloque sua aplicao desenvolvida em SQLWindows/32 na Internet atravs das extenses para a web da Centura (CWE). Voc precisar j ter devidamente instalado, e configurado, um servidor de Web que esteja disponvel para utilizao juntos aos exemplos do captulo 16. Parte V - Guia de referncia completo. Esta dever ser a parte mais utilizada pelo leitor, pois, aqui foram agrupados os captulos que serviro de referncia ao desenvolvedor, na sua utilizao diria. Esto descritas detalhadamente todas as funes e mensagens da linguagem do SQLWindows/32. Nos apndices A e B esto todas as funes SAL e SQL. As mensagens SAM so explicadas no apndice C, enquanto as funes disponveis no Report Builder esto presentes no apndice D. A descrio de todas as classes e funes que compem a biblioteca Visual ToolChest, encontrada no Apndice E. O apndice F contm as explicaes de como instalar o Centura Team Developer. Essas instrues devem ser seguidas fielmente, pois, a escolha dos componentes a serem instalados dirigida aos exemplos demonstrados no livro.

Pgina 8

Programando com o Centura Team Developer 2000

O propsito deste livro Apresentar ao desenvolvedor o conjunto de ferramentas que compe o Centura Team Developer 2000, explicando os conceitos da linguagem SQLWindows, seus comandos, funes e objetos. Explorar a tecnologia dos QuickObjects e a gerao de cdigo com o CDK. Mostrar a gerao de relatrios atravs do Report Builder. Demonstrar como feito o gerenciamento de projetos e equipes de desenvolvedores com o Team Objetct Manager. E por fim, pretendemos, deixar o desenvolvedor familiarizado com o ambiente, pronto para comear a desenvolver projetos, utilizando a fora total do pacote de ferramentas de que o Centura Team Developer 2000 composto. Aos programadores que j possuem alguma experincia com verses anteriores do SQLWindows, este livro faz a ponte entre o Gupta SQLWindows e o Centura SQLWindows/32. Usurios do Team Windows, Edit Windows e Report Windows, podero conhecer suas novas verses, a evoluo dos produtos. Os novos conceitos e novos recursos da ferramenta, como por exemplo as extenses para web e o suporte aos componentes COM tambm devem ser de grande valia aos desenvolvedores j familiarizados com o Centura Team Developer. A quem se destina Analistas de sistemas, programadores, estudantes e profissionais, mesmo de outras reas, que desejam desenvolver aplicaes para os ambientes Windows95 ou para a Internet. Pr-requisitos Este livro assume que o leitor tenha conhecimentos em : Utilizao do Microsoft Windows95, Windows98 ou WindowsNT, sua interface e conceitos. A utilizao do mouse. Alguma linguagem de programao como Basic, Clipper, Cobol ou C. Bancos de dados relacionais Linguagem SQL E-mail, Internet e redes locais.

Pgina 9

Programando com o Centura Team Developer 2000

A Organizao

No decorrer do livro algumas convenes tipogrficas e notaes so utilizadas, a saber: Notao voc Explicao O desenvolvedor ( programador ). Voc que est lendo este livro e construindo uma aplicao. usurio A pessoa ( usurio final ) que utilizar o aplicativo que voc ( o desenvolvedor ) est construindo. aplicao A tela ou conjunto de telas que voc est desenvolvendo. palavras em Negrito ser utilizado para destacar os termos prprios do CTD, como por exemplo: negrito - nomes dos menus que voc deve selecionar - File | New... - comandos e funes do SQLWindows, quando citados no decorrer de alguma explicao ou instruo - Call SalQuit( ) - os tipos de objetos do SQLWindows - data field, form window. palavras em itlico Os nomes das variveis definidas pelo programador - sNome, nCodigo, bOk palavras escritas A representao do cdigo fonte do programa, listagens ou trechos de assim programas, so sempre mostrados com a fonte alterada para Courier New tamanho 8.
On SAM_Create Call SalCenterWindow ( hWndForm )

nomes de arquivos Os nomes dos arquivos citados em letras maisculas so arquivos que escritos em letras devem ser considerados exatamente como est escrito. Por exemplo: MAISCULAS SQL.INI QCKDVC.APL Seqncia de teclas de atalho onde voc deve manter pressionada a Alt+4 tecla esquerda do sinal +, para ento pressionar a tecla indicada direita. Por exemplo: Alt+4 - pressione a tecla Alt, mantenha pressionada enquanto pressiona a tecla 4. TRUE Constantes lgicas definidas internamente pelo prprio FALSE SQLWindows/32. A constante TRUE possui valor 1 e significa sucesso numa operao. A constante FALSE possui valor 0 e significa falha em determinada operao. Alguma observao importante que voc necessita saber. Obs: Uma informao vital. Extremamente importante. Seu Ateno: desconhecimento pode causar um resultado indesejado.

Pgina 10

Programando com o Centura Team Developer 2000

INDICE

Pgina 11

Programando com o Centura Team Developer 2000

Pgina 12

Programando com o Centura Team Developer 2000

Captulo 1
Apresentao do Centura SQLWindows/32
Neste captulo voc apresentado ao ambiente de desenvolvimento do Centura Team Developer, o SQLWindows/32. Nele so mostrados os componentes do ambiente de desenvolvimento, entre os quais o Outline, o Customizer, o Attribute Inspector, a paleta de Controles, o ActiveX Explorer, as barras de ferramentas e todos os menus do SQLWindows/32. de fundamental importncia que o programador esteja familiarizado com este ambiente, isso o ajudar no trabalho com a ferramenta.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Ambiente de Desenvolvimento Apresentamos 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 SQLWindows/32, no qual o programador define suas classes, organiza as telas da aplicao, os seus objetos, codifica a aplicao e monta a estrutura do banco de dados.

O Ambiente de desenvolvimento, Centura SQLWindows/32. O Centura SQLWindows/32 dividido em duas partes, conforme ilustrado acima : Quadro esquerdo Onde realizada a navegao pela aplicao, listando os nomes de todos os seus componentes, porm, nenhuma codificao da aplicao pode ser aqui efetuada. Sua principal funo mostrar, de forma organizada, o contedo da sua aplicao. O item que for selecionado neste quadro mostrado em detalhes no quadro direito. Quadro direito Local em que escrito o programa, o cdigo fonte. O quadro direito sempre mostra os detalhes do item que estiver selecionado no quadro esquerdo, para tanto, possui uma barra de pastas localizadas na sua parte inferior. O nvel de detalhes mostrados depende da pasta selecionada.
Para cada pasta selecionada, um nvel de detalhes do item especificado no quadro esquerdo visualizado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na prxima figura voc pode observar a pasta Layout sendo utilizada.

O objeto sendo visualizado atravs da pasta Layout.


Utilizando as pastas localizadas no quadro direito do Centura SQLWindows/32, voc pode acessar rapidamente os diversos locais de um programa fonte.

Observe que a figura abaixo mostra o mesmo componente, porm, visto atravs da pasta Variables, que apresenta apenas as variveis deste objeto. Na imagem que se segue, nenhuma varivel foi definida, mas quando o for, ser nesta rea do programa fonte.

O mesmo objeto, porm, sendo mostrado atravs da pasta Variables. A prxima figura mostra a visualizao do mesmo objeto, contudo, visto atravs da pasta Parameters, que apresenta ao programador apenas os parmetros que o objeto selecionado no quadro esquerdo possui. Na imagem abaixo nenhum parmetro foi definido.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Os parmetros do objeto sendo visualizados pela pasta Parameters. A prxima figura mostra a visualizao do mesmo objeto, porm, visto atravs da pasta Actions, que apresenta ao programador as aes do objeto selecionado no quadro esquerdo. Na imagem abaixo nenhuma ao foi codificada para este objeto.

As aes do objeto sendo visualizadas pela pasta Actions. A prxima figura mostra a visualizao do mesmo objeto, porm, visto atravs da pasta Components, que apresenta ao programador todos os componentes do objeto selecionado no quadro esquerdo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O contedo do objeto sendo visualizado pela pasta Components. A prxima figura mostra a visualizao do mesmo objeto, porm, visto atravs da pasta Outline, que apresenta ao programador todo o cdigo fonte do objeto selecionado no quadro esquerdo, o cdigo fonte engloba o contedo de todas as outras pastas mostradas no quadro direito.

Todo o cdigo fonte do objeto sendo visualizado pela pasta Outline. A prxima figura mostra a visualizao da descrio do objeto, porm, visto atravs da pasta Description. A descrio do objeto qualquer comentrio feito a respeito de algum objeto. Na imagem abaixo nenhuma descrio foi feita.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A descrio do objeto sendo visualizada atravs da pasta Description. Explore cada elemento destas pastas. Quanto mais familiarizado com elas voc estiver, maior ser sua facilidade de locomoo atravs do Centura SQLWindows/32, ajudando a melhorar sua produtividade. Estas pastas localizadas na parte inferior do quadro direito podem variar de acordo com o item escolhido no quadro esquerdo. Observe na prxima figura que algumas das pastas mostradas acima desapareceram para dar lugar a novas pastas relativas ao item escolhido no quadro esquerdo, que neste caso o item Application1.

As constantes da aplicao esto sendo visualizadas atravs da pasta Constants. Alm das pastas que permitem que sejam visualizadas partes da sua aplicao, contamos ainda com os menus de contexto, que podem ser acionados em praticamente todos os pontos do programa. Esses menus possuem um item chamado Open View que permite um maior nvel de detalhe na viso de parte do cdigo fonte.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Outline O Outline o cdigo fonte propriamente dito. Nele ficam armazenadas as instrues da linguagem SAL (a linguagem de programao do Centura Team Developer). O Outline do Centura SQLWindows/32 uma poderosa maneira de se organizar o cdigo fonte, pois, permite que cada item tenha o seu lugar apropriado, impossibilitando a utilizao de um objeto num local no adequado para ele. A definio de varivel tem seu local especfico, assim como a definio das funes, classes e todos os demais elementos que compem o programa SQLWindows. Observe que cada linha do programa iniciada pelo smbolo que nos faz lembrar um diamante. Este diamante assume duas caractersticas, cheio e vazio, ou preto e branco. O diamante cheio (ou preto) indica que existem linhas de cdigo subordinadas linha visualizada. Clique duas vezes no diamante cheio para que as linhas subordinadas sejam expandidas, e ento visualizadas. Uma linha iniciada por um diamante vazio, indica que no h linhas subordinadas. O clique duplo numa linha iniciada por um diamante cheio ir expandir as linhas subordinadas, caso estas estejam comprimidas. Se linhas j estiverem expandidas, um clique duplo tem efeito contrrio, ou seja, faz com que a seo toda seja comprimida.

Os diamantes servem para informar se a linha de cdigo possui linhas subordinadas. Voc pode tambm utilizar algumas teclas de atalho: Tecla + * / Funo expande um nvel do outline ( equivalente a um clique duplo numa linha comprimida ). expande todos os nveis do outline, a partir da linha selecionada. comprime toda a linha ( equivalente a um clique duplo numa linha expandida ). comprime todos os nveis do outline inteiro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

primeira vista, o Outline contm as seguintes sees principais : Libraries

Seo Libraries. Nesta seo, so definidos os nomes dos arquivos referentes s bibliotecas que o aplicativo far uso. O Centura SQLWindows/32 diferencia o fonte atravs de cores , para indicar o fonte includo e o fonte normal. Essas cores podem ser configuradas pelo programador, mediante o menu Tools | Preferences. A figura acima ilustra a definio de vrias bibliotecas numa aplicao. Observe que a primeira biblioteca utilizada identificada pela palavra chave Dynalib, enquanto que as demais so identificadas pela palavra File Include. Esses dois tipos de bibliotecas so explicadas abaixo:
Outros programas fontes em Centura

Na figura acima, so demonstrados atravs das linhas de cdigo subordinadas seo Libraries e iniciadas pela palavra chave File Include, correspondentes a bibliotecas SQLWindows em formato no compilado. A partir do momento em que essa biblioteca includa, todo o contedo desse arquivo passa a estar visvel no arquivo hospedeiro, assim como todos os objetos, funes e at mesmo as bibliotecas que l foram inseridas. Voc pode construir suas funes, janelas, classes genricas, elaborando assim, suas prprias bibliotecas. As bibliotecas no compiladas normalmente possuem a extenso *.APL mas podem ter extenso *.APP.
Arquivos fonte Centura j compilados, as Dynalibs

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tambm na figura acima, so representados pelas linhas de cdigo subordinadas seo Libraries e iniciadas pela palavra chave Dynalib, correspondentes a bibliotecas SQLWindows em formato compilado. 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, na carga do programa e na atualizao, uma vez que a Dynalib j est compilada. Isso trs um ganho de performance durante o desenvolvimento da aplicao. As bibliotecas compiladas possuem a extenso *.APD. Consulte o Captulo 12 Distribuio do Produto Final, para saber todos os detalhes sobre as Dynalibs.
Global Declarations

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 nesta seo.

Formats

Onde so definidos os formatos para os campos, os quais podem ser :


Pgina PAGE 582

Programando com o Centura Team Developer 2000

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 SQLWindows/32 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 declaradas conforme o exemplo abaixo, onde a funo SWinFindWindow do prprio SQLWindows/32 definida :

Declarao de uma funo externa.


Observe que o valor do item 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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Declarao de algumas constantes.


As constantes do programa devem ser definidas na seo Constants, e podem ser: System User Enumerations As constantes System e User podem ser dos tipos de dados Boolean, Date/Time, Number ou String, e voc deve utilizar essas sees para melhor administrar suas constantes. Enumerations so colees de constantes numricas que so utilizadas em servidores COM. O SQLWindows automaticamente cria uma GUID a cada Enumeration definida. Como padro, cada Enumeration possui um valor que inicia em 0 (zero), sendo incrementado de 1 (um) a cada elemento. O valor do incremento pode ser alterado, bem como duplicado. Resources Os recursos visuais da aplicao definidos nesta seo passam a fazer parte do executvel final gerado pelo Centura SQLWindows/32. Ou seja, cursores, figuras tipo bitmap e cones so includos no executvel, facilitando a distribuio do aplicativo. Variables

Declarao de algumas variveis.


Pgina PAGE 582

Programando com o Centura Team Developer 2000

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, Session Handle, Sql Handle, String, Window Handle e dos tipos definidos pelo programador. Voc ver como trabalhar com tipos de dados definidos pelo programador no captulo 5.
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, utilizando o Centura Object Compiler.

Named Menus Named Menus so definies de estruturas de menus que sero posteriormente utilizadas na aplicao. Os menus definidos na seo Named Menus so visveis em todo o aplicativo e podem ser usados, 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: ActiveX Class Child Table Class COM Proxy Class Data Field Class Frame Class Group Box Class Line Class Multiline Field Class Pushbutton Class Vertical Scroll Bar Class Background Text Class CoClass Combo Box Class Dialog Box Class Functional Class Horizontal Scroll Bar Class List Box Class Option Button Class Radio Button Class Check Box Class Column Class Custom Control Class Form Window Class General Window Class Interface MDI Window Class Picture Class Table Window 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. O Customizer

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Customizer, mostrando as propriedades 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 o 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 dispor esse 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 quando o programa est sendo executado, Run-Time Mode, possvel visualizar as caractersticas dos objetos. Obviamente, no permitido alterar nenhuma caracterstica em Run-Time.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Attribute Inspector

O Attribute Inspector possui praticamente as mesmas caractersticas apresentadas no customizer, com uma diferena bsica: o Attribute Inspector permanece ativo at que voc o desative. O customizer permanece ativo apenas enquanto voc visualiza as caractersticas do objeto, com isso, voc pode selecionar vrios objetos sem que seja necessrio ativar novamente o Attribute Inspector. Com o Attribute Inspector voc pode visualizar as mesmas propriedades acessveis pelo Customizer. Observe as propriedades de um form window sendo visualizadas atravs do Attribute Inspector:

Attribute Inspector mostrando as propriedades de um form window.


Para acionar o Attribute Inspector pressione, simultaneamente, as teclas Alt 3. Voc precisa decidir se vai utilizar o Customizer ou o Attribute Inspector, pois, os dois no podem ser utilizados simultaneamente. Essa opo deve ser configurada atravs do menu Tools | Preferences, acionando a pasta Presentation.

Na janela de configurao Preferences voc escolhe entre utilizar o Customizer ou o Attribute Inspector.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A Paleta de Controles Todos os objetos visuais tipo child do Centura SQLWindows/32, os quais esto disponveis para que o desenvolvedor utilize em sua aplicao, encontram-se agrupados na Paleta de Controles. Sempre que um dos botes da Paleta de Controles selecionado, os nomes das suas subclasses (se existir) so mostrados no listbox localizado na parte inferior da Paleta de Controles. A Paleta de Controles pode ser acionada de trs maneiras diferentes: pressionando simultaneamente as teclas Alt 4. acionando o menu Tools | Controls . clicando no cone Controls localizado na prpria barra de ferramentas do SQLWindows.

O cone Controls.

A Paleta de Controles bastante flexvel, permitindo ao desenvolvedor configur-la da forma que for mais agradvel. Isso torna o desenvolvimento extremamente confortvel. A Paleta de Controles possui trs grupos de botes, cada grupo representa um tipo de objeto que est disponvel para o programador. Os trs tipos so: No primeiro grupo de botes existe um boto para cada tipo de Objeto Child nativo do SQLWindows. No segundo grupo de botes esto os objetos tipo Custom Controls. Existe um boto genrico para os Custom Controls, um boto que ativa os componentes do SQLWindows para construo de aplicativos de bancos de dados e um terceiro boto que aciona o componente para construo de grficos de negcios. Inicialmente o terceiro grupo mostra apenas dois botes, o primeiro serve para incluir na aplicao um controle ActiveX genrico. O segundo boto representa o Controle ActiveX do Report Builder.

Controles disponveis no Centura SQLWindows/32. O segundo e terceiro grupo de botes da barra de Controles podem ser personalizados pelo programador, basta arrastar e soltar um objeto no local desejado da barra de Controles. A prxima figura ilustra a personalizao do grupo de objetos ActiveX da Paleta de Controles.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Arraste um controle ActiveX muito utilizado para o grupo dos controles ActiveX na Paleta de Controles. Cada cone mostrado na Paleta de Controles representa um tipo de objeto no Centura SQLWindows/32. Quando um tipo de objeto escolhido, 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. As prximas figuras ilustram a incluso de um objeto da Paleta de Controles na aplicao. 1 O objeto escolhido na paleta Controls o pushbutton.

2 Movimente o mouse para o local onde voc deseja colocar o objeto. Observe que o ponteiro do mouse assume a forma do objeto escolhido na paleta Controls.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

3 Quando encontrar a localizao ideal, clique uma vez com o boto esquerdo do mouse. Dessa forma, o objeto colocado na sua aplicao. Automaticamente o ponteiro do mouse volta sua aparncia normal e o cursor de edio de texto posicionado no objeto que foi inserido na aplicao.

No caso do objeto escolhido neste exemplo, que um pushbutton, o texto que voc escrever ser o ttulo do objeto. 4 Aps dar um ttulo ao objeto, e teclando-se ENTER, o objeto assume a aparncia mostrada abaixo. Os pequenos quadrados posicionados ao redor do objeto indicam que o objeto est selecionado.

5 Estando selecionado, possvel modificar suas caractersticas atravs do Attribute Inspector.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

6 Enquanto um objeto est selecionado, possvel utilizar o mouse para alterar suas dimenses.

Clique num dos quadrados que envolve o objeto e arraste para o tamanho desejado. O objeto pode ser excludo de duas formas: Selecione o objeto e pressione a tecla Delete. Selecione o objeto, clique com o boto direito do mouse para acionar o menu de contexto. Acione o item de menu chamado Delete.

Excluso de um objeto.
O Assistente de Cdigo

A principal funo do Assistente de Cdigo do Centura SQLWindows/32 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.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Assistente de Cdigo um objeto que sempre mostrado por cima de todas as outras janelas do Centura SQLWindows/32, podendo ser posicionado em qualquer local da tela e ter suas dimenses alteradas.
O Assistente de Cdigo pode ser acionado de trs maneiras diferentes: pressionando simultaneamente as teclas Alt 3. acionando o menu Tools | Coding Assistant . clicando no cone Coding Assistant localizado na prpria barra de ferramentas do SQLWindows.

O cone Coding Assistant.

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 a esse adicionados. Alm disso, o Assistente de Cdigo agrupa as informaes por categorias, conforme mostrado abaixo:

O Assistente de Cdigo classifica as informaes possveis de serem 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 Classes Base Pgina PAGE 582

Programando com o Centura Team Developer 2000

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 referncia a um determinado objeto, no necessrio saber exatamente o seu nome, basta escolh-lo no Assistente de Cdigo. As prximas figuras ilustram a escrita de cdigo utilizando-se o Assistente de Cdigo. 1 O Assistente de Cdigo sensitivo. Baseia-se no item selecionado do outline.

Observe a figura abaixo, como o item do outline que est selecionado a seo Application Actions, o Assistente de Cdigo relaciona os eventos que podem ser adicionados a essa seo. Clique duas vezes no item On SAM_AppStartup e observe que ele automaticamente inserido no outline.

Neste momento, o item do outline que est selecionado o evento SAM_AppStartup (que acabou de ser inserido) . A partir desse ponto pode ser inserido no outline dois tipos de elementos, um comando ou outro evento. Por esse motivo o Assistente de Cdigo mostra dois listboxes. No listbox superior esto os elementos que podem ser adicionados no mesmo nvel do item selecionado no outline, enquanto que no listbox inferior esto os elementos que podem ser
Pgina PAGE 582

Programando com o Centura Team Developer 2000

adicionados no interior da seo selecionada no outline. Neste exemplo vamos adicionar um elemento no interior da seo selecionada no outline, portanto, clique duas vezes no item chamado Call, mostrado no listbox inferior.

O comando Call foi inserido no outline e o cursor de edio de texto foi posicionado automaticamente no final da mesma linha do comando inserido. Neste momento voc pode digitar o restante do comando diretamente no outline, ou pode continuar utilizando as facilidades oferecidas pelo Assistente de Cdigo .

No combobox localizado na parte superior do Assistente de Cdigo, selecione o item Sal Functions. Isso far com que todas as funes do SQLWindows sejam disponibilizadas para que voc possa escolher uma que ser includa no seu programa fonte.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Logo abaixo do combobox onde voc escolheu Sal Functions est um datafield que trabalha em conjunto com a lista das funes. Comece a digitar o nome da funo desejada, que a mesma ser localizada na lista das funes. Neste exemplo utilizaremos a funo chamada SalCreateWindow, que serve para fazer com que um determinado form window seja criado na aplicao. Inicie a digitao do nome da funo e observe que a cada letra digitada o Assistente de Cdigo localiza a funo que mais se parea com o texto digitado. Digite apenas SalCr, pois isso o suficiente para que o Assistente de Cdigo selecione a funo correta, conforme mostrado na figura abaixo. Neste momento voc pode teclar ENTER para que a funo seja inserida no outline.

Quando o Assistente de Cdigo insere uma funo no outline, seus eventuais parmetros so selecionados (conforme a figura abaixo). A funo utilizada neste exemplo possui dois parmetros, os seus tipos de dados so mostrados no outline. Isso facilita a escrita do programa, pois, voc j sabe (sem que seja necessrio consultar a documentao online) que tipos de variveis/objetos devem ser utilizados.

Clique duas vezes no primeiro parmetro, Template. Um tipo de dado Template refere-se a um nome de objeto. Neste caso o nome do objeto a ser criado. Em seguida selecione Windows Names no Assistente de Cdigo para que sejam mostrados os nomes de todos os objetos.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Clicando duas vezes no nome do objeto desejado, o Assistente de Cdigo mover o nome escolhido para a regio selecionada no outline.

10 Clique duas vezes no nome Window Handle que indica o tipo de dado do prximo parmetro da funo SalCreateWindow. Depois selecione System Variables nas categorias do Assistente de Cdigo. Isso far com que sejam mostradas as variveis do SQLWindows.

11 Selecione hWndNULL no Assistente de Cdigo, clicando duas vezes para que seja transportada para o outline na posio correta.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

12 Dessa forma, uma linha de comando no outline do SQLWindows foi montada. Pressione ENTER para encerrar a digitao da linha e para que o Assistente de Cdigo identifique a posio do outline que est selecionada, mostrando os itens que podem ser adicionados.

deste modo que escrevemos programas em linguagem SAL no outline do SQLWindows. Voc pode escrever seus programas sem utilizar o Assistente de Cdigo, porm, bem mais prtico utiliz-lo na escrita do cdigo SAL. Voc pode ativar/desativar o Assistente de Cdigo pressionando as teclas Alt 2 simultaneamente.
O Database Explorer

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Database Explorer.
A partir do prprio ambiente de desenvolvimento do Centura SQLWindows/32 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 se pode realizar todas essas tarefas tpicas de desenvolvimento de sistemas e ainda incluir , alterar e excluir dados nas tabelas.

Assim como todas as ferramentas do Centura Team Developer, o Database Explorer trabalha com todos os tipos de bancos de dados padres de mercado, de forma transparente. ActiveX Explorer
Para que voc possa analisar o contedo dos servidores ActiveX (*.dll, *.exe, *.olb, *.ocx e *.tlb), instalados em sua mquina, o SQLWindows/32 oferece uma ferramenta chamada ActiveX Explorer que, atravs de suas janelas, proporciona uma viso clara e simples das CoClasses, interfaces, enumerators e eventos, alm de uma documentao dos mtodos informando os tipos de dado dos seus parmetros e dos valores de retorno.

Voc pode acionar o ActiveX Explorer atravs do menu Tools | ActiveX Explorer.

O ActiveX Explorer. As duas figuras acima ilustram a utilizao do ActiveX Explorer. A primeira figura mostra a seleo de um servidor ActiveX sendo feita. A segunda figura mostra os componentes desse servidor, onde cada elemento possui um checkbox ao seu lado esquerdo. O programador deve selecionar os elementos que deseja utilizar, pois o ActiveX Explorer ir gerar o cdigo SAL equivalente, numa APL separada, aos elementos escolhidos do servidor ActiveX.

Obs : O ActiveX Explorer gera uma APL para o servidor Activex escolhido pelo programador. Se o programador escolher na primeira janela do ActiveX Explorer uma APL (previamente gerada), ao invs de escolher um servidor, o ActiveX Explorer automaticamente l a APL escolhida, localiza o servidor ActiveX correspondente e carrega as informaes deste. Barras de ferramentas As barras de ferramentas do SQLWindows so mostradas abaixo. As aes dos seus botes so sempre encontradas em algum item de menu.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

As barras de ferramentas podem ser personalizadas com relao ao seu contedo, tamanho e localizao. Para configurar as barras de ferramentas acione o menu Tools | Toolbars. As duas figuras mostradas abaixo ilustram as janelas de configuraes das barras de ferramentas.

Configurao das barras que estaro visveis e do contedo de cada barra de ferramentas.
Explorando os menus

Os menus do SQLWindows/32 so mostrados abaixo, seguidos das descries de cada item. Alguns dos recursos podem no estar disponveis, dependendo da forma como o produto instalado. O Menu File
Menu New...

Descrio
Inicia uma nova aplicao do Centura SQLWindows/32. aberta a Pgina PAGE 582

Programando com o Centura Team Developer 2000

Open...

Save

Save As... Page Setting...

Print Exit

caixa de dilogo Template, para que seja escolhido um modelo de aplicao ou para que seja includo um modelo novo, definido pelo programador. Se voc no escolher nenhum modelo e clicar no boto cancel, a caixa de dilogo Template encerrada e nenhuma aplicao criada. Ativa a caixa de dilogo que permite escolher e abrir uma aplicao existente no SQLWindows/32. Atravs desta caixa de dilogo podese optar entre os diversos tipos de aplicaes ( apl, app ou apt ). Voc pode ter apenas uma aplicao aberta por vez numa instncia do SQLWindows/32, mas pode ter diversas instncias do SQLWindows32 abertas simultaneamente, cada uma com uma aplicao. Salva a aplicao com o nome atual. Se for um nova aplicao, ainda sem nome, a caixa de dilogo Save As mostrada, permitindo que voc escolha um local e o nome para que a sua aplicao seja gravada. Se voc no informar um nome e clicar no boto Cancel, a aplicao no ser gravada. Salva uma cpia da aplicao atual com um novo nome, solicitado na caixa de dilogo Save As. Permite acesso s configuraes de impresso do Outline: Tipo e tamanho da fonte, ttulos do cabealho e rodap, e margens. O outline impresso exatamente da forma como est apresentado na tela, os itens subordinados so impressos apenas se a seo estiver expandida. Imprime o Outline de acordo com as configuraes feitas no item anterior. Fecha o Centura SQLWindows/32. Se existir alguma alterao feita na aplicao, e que ainda no foi gravada, o SQLWindows/32 perguntar se voc deseja gravar as alteraes antes de sair.

O Menu Edit Nome Undo, Cut, Copy, Paste e Delete Insert line Comment Items Descrio De acordo com suas funes padro do Windows. Insere uma linha no Outline a partir do local selecionado. Marca como comentrio o item selecionado. Todas as linhas subordinadas ao item selecionado sero tambm comentadas. No SQLWindows/32 uma linha comentada iniciada pelo smbolo de exclamao ( ! ). Tira a marca de comentrio do item selecionado. Expande o outline um nvel a partir do nvel selecionado. Voc tambm pode expandir um nvel, clicando duas vezes num diamante cheio que no esteja expandido. Comprime o outline a partir do nvel selecionado. Voc tambm pode comprimir uma seo do outline, clicando duas vezes num diamante cheio que j esteja expandido. Expande o outline inteiro. Isso pode demandar tempo. Comprime o outline inteiro. Apenas os objetos top level estaro visveis. Promove o item selecionado um nvel, na hierarquia do outline.
Pgina PAGE 582

Uncomment Items Outline | Expand One Level Outline | Collapse

Outline | Expand All Levels Outline | Collapse Outline Outline | Promote

Programando com o Centura Team Developer 2000

Outline | Demote Outline | Move Up Outline | Move Down Find Find Again Replace

Properties...

Rebaixa o item selecionado um nvel, na hierarquia do outline. Move o item selecionado uma linha para cima no outline. Move o item selecionado uma linha para baixo no outline. Mostra a janela Find para que voc especifique o texto que deseja procurar no outline. Repete a ltima busca realizada no outline. Mostra a janela Replace para que voc especifique o texto que deseja procurar e o texto que ir substitu-lo, quando for encontrado. Se algum objeto estiver selecionado no quadro esquerdo do SQLWindows/32, o customizer acionado, mostrando as propriedades do objeto selecionado. Porm, se o primeiro item da rvore de objetos mostrada no quadro esquerdo do SQLWindows/32 estiver selecionado, a caixa de dilogo chamada Properties ativada, mostrando as estatsticas e as configuraes de run-time da aplicao.

O Menu Project Nome Check Out... Check In... Compile Descrio Ativa o Team Object Manager para extrair algum componente do repositrio. Ativa o Team Object Manager para incluir o componente atual no repositrio. Compila a aplicao. Para cancelar a compilao clique no boto Cancel que mostrado na caixa de dilogo durante o processo de compilao. Visualiza o prximo erro de compilao, quando a aplicao compilada e mais de um erro detectado. Visualiza o erro de compilao anterior, quando a aplicao compilada e mais de um erro detectado. Executa a aplicao atual. Se a aplicao no estiver compilada o SQLWindows/32 automaticamente compila a aplicao. Se durante a compilao, nenhum erro for detectado a aplicao executada. Instala no registro do Window o servidor COM que estiver atualmente aberto no SQLWindows. Remove do registro do Window o servidor COM que estiver atualmente aberto no SQLWindows. Mostra a caixa de dilogo chamada Build Settings, onde configurado o modo como a aplicao ser gerada. Voc pode especificar que a aplicao ser gerada como um executvel normal, uma dynalib, uma biblioteca, configuara as opes para uso do Object Compiler para a gerao de uma dll, indica o tipo de servidor COM (Local, In-Proc ou MTS) a ser gerado.
Pgina PAGE 582

Next Error Previous Error Execute

Register Server Un-Register Server Regenerate GUIDs... Build Settings...

Programando com o Centura Team Developer 2000

Build

Lembre-se, para que a aplicao gerada possa ser utilizada pelo Object Nationalizer, o check box Enable Resource Editing deve estar marcado. Efetivamente gera o executvel, dynalib, a dll ou o servidor COM, conforme as configuraes feitas no menu Build Settings.

O Menu Component Nome New Descrio Mostra um menu onde voc pode escolher um componente a ser adicionado a sua aplicao. Os itens do novo menu que aparecer dependem de qual item est selecionado no outline. Por exemplo, se o item Classes estiver selecionado no quadro esquerdo do SQLWindows/32, este menu de contexto mostrar os nomes de todas as classes possveis de serem includas aplicao neste momento. Ativa os Assistentes do SQLWindows/32. Os assistentes aqui disponibilizados dependem da forma como o Centura foi instalado. Ativa o assistente para controles ActiveX. Permite que voc relacione uma classe a uma caixa de dilogo que ser ativada em tempo de desenvolvimento a partir de uma instncia da classe. Essa caixa de dilogo normalmente utilizada para configurar as propriedades do objeto, propriedades estas que sero utilizadas em tempo de execuo. Para explorar mais este recurso consulte o Captulo 10 Criando seus prprios QuickObjects. Ativa o Assistente de Definies de Menus, para que voc possa construir seus menus atravs de uma interface grfica. Carrega numa nova instncia do SQLWindows/32 biblioteca selecionada. As bibliotecas que foram includas aplicao, atravs da seo Libraries, so mostradas no outline numa cor diferente do restante do cdigo. A qualquer momento essa biblioteca destacada pode ser acionada numa nova instncia do SQLWindows/32, basta clicar com o boto direito do mouse numa parte do cdigo da biblioteca, e escolher o item Go To Item no menu de contexto. Mostra o nome da biblioteca ao qual o fonte selecionado pertence. As bibliotecas que foram includas aplicao, atravs da seo Libraries, so mostradas no outline numa cor diferente do restante do cdigo. Para saber a que biblioteca pertence o cdigo selecionado, clique com o boto direito do mouse numa parte do cdigo da biblioteca, e escolha o item Show Item Information no
Pgina PAGE 582

Wizards ...

ActiveX Wizard ... QuickObject Editor ...

Menu Editor ...

Go To Item

Show Item Information

Programando com o Centura Team Developer 2000

Refresh Libraries

Merge Libraries

Large Icons

Small Icons

List

Details

menu de contexto. Inclui novamente todas as bibliotecas definidas na seo Libraries do outline. Faa isso para atualizar o seu programa com a verso mais recente das bibliotecas. Incorpora no programa atual todas as bibliotecas que foram definidas na seo Libraries do outline. Uma vez includas, no possvel desfazer essa ao. Todo o cdigo passa a ser uma nica aplicao. Seleciona automaticamente a tab Components, localizada na parte inferior do quadro direito do SQLWindows/32, e mostra os componentes no formato de cones grandes. Seleciona automaticamente a tab Components, localizada na parte inferior do quadro direito do SQLWindows/32, e mostra os componentes no formato de cones pequenos. Seleciona automaticamente a tab Components, localizada na parte inferior do quadro direito do SQLWindows/32, e mostra os componentes no formato de lista. Seleciona automaticamente a tab Components, localizada na parte inferior do quadro direito do SQLWindows/32, e mostra os componentes em detalhes.

O Menu Layout Nome Preview Window Descrio Mostra a janela como ela aparecer ao usurio em tempo de execuo. A janela mostrada "fora" do quadro direito do ambiente do SQLWindows/32. Neste momento voc pode clicar num elemento visual mostrado na janela e observar que o elemento clicado selecionado no outline, dessa forma a localizao dos itens no outline facilitada. Traz para cima o item selecionado. Envia para baixo o item selecionado. Alinha os objetos selecionados grade. Opes para se configurar o alinhamento dos objetos visuais. Opes para se configurar o espao entre os objetos visuais. Opes para se configurar o tamanho dos objetos visuais. Liga / Desliga a utilizao da grade. Configura a ordem de tabulao dos objetos visuais. Quando voc ativa este item, o SQLWindows/32 mostra nos data fields, combo box, colunas da table window e nos multiline fields, textos demonstrando os dados nos objetos. Isso muito til para que voc saiba o tamanho necessrio para cada objeto. Mostra as barras de rolagem em tempo de design, nas laterais dos objetos form window e table window. Faz com que os objetos configurados como invisveis
Pgina PAGE 582

Bring to Front Send to Back Align to Grid Align Edges Space Evenly Make Same Size Grid Tab Order Show Sample Text

Show Design Scroll Bars Show Hidden Windows

Programando com o Centura Team Developer 2000

possam ser visualizados. Essa configurao s vlida em tempo de design. Quando a aplicao executada, os objetos invisveis no so mostrados. O Menu Debug Nome Go Stop Continue Break Descrio Quando em modo de design executa a aplicao, quando em modo de run-time retorna ao modo de design. Interrompe a execuo da aplicao saindo do modo de execuo, retornando ao SQLWindows/32. Continua a execuo da aplicao quando em debugmode. Interrompe a execuo da aplicao na linha que est sendo executada, e permite entrar em modo de depurao da aplicao. Executa a prxima linha de comando e retorna o controle ao SQLWindows/32. Se o comando for uma funo, a primeira linha desta funo selecionada, e voc pode continuar acompanhando passo-a-passo a execuo da funo. No caso de funes do prprio SQLWindows/32, e funes externas, o procedimento semelhante ao descrito no item Step Over. Executa a prxima linha de comando e retorna o controle ao SQLWindows/32. Se o comando for uma funo, o SQLWindows/32 executa todos os comandos no seu interior, e posiciona na linha imediatamente posterior. Se a linha atual do outline for um breakpoint, ao ser acionado este item a linha deixar de ser um breakpoint, e se a linha no for um breakpoint passar a ser. Quando o SQLWindows/32 est executando a aplicao, ele pra a execuo entrando em modo de depurao assim que encontrar uma linha marcada como breakpoint. Desmarca todas as linhas do outline que estiverem marcadas como breakpoint. Desabilita todos os breakpoints configurados. Habilita todos os breakpoints que foram anteriormente desabilitados. No mostra as linhas de cdigo durante a execuo. Mostra as linhas de cdigo, destacando-as, durante a execuo em modo lento. O Intervalo de segundos configurado na caixa de dilogo Preferences. Mostra as linhas de cdigo, destacando-as, durante a execuo em modo rpido. Permite que voc depure um servidor COM da mesma forma que uma aplicao normal. Permite que voc depure um servidor COM da mesma forma que uma aplicao normal.
Pgina PAGE 582

Step Into

Step Over

Breakpoints | Toggle

Breakpoints | Clear All Breakpoints | Disable All Breakpoints | Enable All No Animate Slow Animate

Fast Animate Playback Playback rewind

Programando com o Centura Team Developer 2000

O Menu Database O menu Database s mostrado quando o Database Explorer , que acionado atravs do menu Tools | Database Explorer, est sendo utilizado. Nome Open Database Explorer New SQL Script Table Stored Procedure Descrio Executa o Database Explorer. Permite a criao de nova Tabela, ndice, Store Procedure, Store Procedure Package ou Banco de Dados. Ativa o SQLTalk. Comandos para edio, manuteno e filtro nos dados da tabela selecionada. Ativa o editor de stored procedures. Este item depende muito do tipo de banco de dados aberto no Database Explorer. Comandos para a criao de uma nova consulta ou abertura de uma consulta j existente. Adiciona um novo Banco de Dados relao j existente. Desconecta do banco de dados. Visualiza as tabelas do sistema. (Catlogo) Encerra a execuo do Database Explorer.

Query Add to list Disconnect View System Tables Close Database Explorer O Menu Tools Nome Users Tools...

ToolBars...

Preferences...

Output Coding Assistant Attribute Inspector

Descrio Mostra uma caixa de dilogo que lhe permite configurar as ferramentas mostradas no menu Tools. Voc pode personalizar a barra de menu Tools adicionando itens de menu. Permite que voc escolha quais barras de ferramentas do SQLWindows estaro visveis ou no. Voc pode tambm criar suas prprias barras de ferramentas personalizando os botes de cada uma. Por exemplo, voc pode montar uma barra de ferramentas nova pessoal, com os comandos do SQLWindows mais utilizados por voc. Ativa a janela de Propriedades do Centura SQLWindows/32, 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 SQLWindows/32 para representar comentrios no programa fonte e itens includos, configura o assistente de cdigo, customizer e attribute inspector. Visualiza a janela de Output, onde so mostrados os erros e avisos ocorridos na compilao. Visualiza o Assistente de Cdigo. Visualiza o Inspetor dos Atributos.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Controls Variables Call Stack Messages Expressions

Database Explorer ActiveX Explorer Report Builder

Team Object Manager Browse All Classes Diff / Merge Tool SQLTalk

Visualiza a Paleta de Controles. Em modo de Debug, mostra a janela de variveis. Em modo de Debug, mostra a janela com a seqncia de objetos e eventos executados. Em modo de Debug, mostra a janela com a pilha de mensagens em execuo. Em modo de Debug, mostra uma janela onde possvel avaliar o contedo dos objetos, das variveis e os valores retornados pelas funes. Inicia o Database Explorer. Inicia o ActiveX Explorer. Executa o gerador de relatrios Report Builder. Consulte o Captulo 11 O Report Builder, para saber mais sobre esta ferramenta. Executa o gerenciador de projetos Team Object Manager. Executa o browser grfico das classes, mostrando a hierarquia e estrutura das classes, graficamente. Executa o aplicativo Diff/Merge que identifica diferenas entre dois programas fontes. Executa o SQLTalk. Consulte o Captulo 3 - Acesso ao SQL, para saber mais sobre o SQLTalk.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 2
A Linguagem SAL
Neste captulo apresentamos a linguagem de programao e todos os componentes utilizados no SQLWindows/32. Voc ficar familiarizado com a maneira como a linguagem est estruturada, suas regras, os tipos de dados, os objetos, os menus, enfim, todos os elementos da linguagem SQLWindows. Sero mostrados detalhadamente todos os objetos e os tipos de menus do SQLWindows/32, com suas respectivas caractersticas, para total aproveitamento do desenvolvedor.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A Linguagem SAL Toda a programao em Centura SQLWindows/32 feita atravs da linguagem SAL (Scalable Application Language), uma linguagem amadurecida, poderosa e de fcil entendimento. Um programa fonte em linguagem SAL composto de comandos e funes SAL e de comandos SQL. O programa fonte

Um programa Centura SQLWindows/32 pode ter as seguintes extenses padres : APL Tipo de arquivo que identifica Bibliotecas, utilizado para armazenar objetos, classes e rotinas genricas que sero aproveitadas em diversas aplicaes desenvolvidas, utilizando-se o SQLWindows/32. APP Tipo de arquivo que identifica Aplicaes em formato binrio, um formato proprietrio. Uma aplicao que esteja gravada neste formato s pode ser visualizada atravs do prprio SQLWindows/32. APT Tipo de arquivo que identifica Aplicaes em formato texto padro. Uma aplicao que esteja gravada neste formato pode ser visualizada atravs do SQLWindows/32 e tambm atravs de um editor de textos padro TXT, embora no seja recomendada qualquer alterao no fonte, mediante uma interface diferente da disponibilizada no SQLWindows/32. APD - Tipo de arquivo que identifica Aplicaes compiladas em Dynalibs. Dynalibs so utilizadas para o compartilhamento de funes, janelas e suas funes, e objetos child. Este formato proprietrio, sua utilizao reservada a aplicaes desenvolvidas em Centura SQLWindows/32.
APC - Tipo de arquivo que identifica Aplicaes compiladas com o Centura 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 ambiente Windows. 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.
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

Pgina PAGE 582

Programando com o Centura Team Developer 2000


...........

O SQLWindows/32 avalia a primeira expresso no If, se for obtido um valor TRUE ( Verdadeiro ), ento, o cdigo subordinado ao comando If executado. No caso da expresso retornar FALSE, o Centura SQLWindows/32 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 SQLWindows/32 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 sim um comando Else, o Centura ento executa o cdigo subordinado ao comando Else. Se no for encontrado comando Else, ele simplesmente continua a execuo do programa. O SQLWindows/32 utiliza a hierarquia presente no Outline para determinar o bloco de comandos subordinados 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 SQLWindows/32 interpreta como FALSE. Qualquer valor diferente de zero interpretado 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, uma vez que, nValor diferente de TRUE. 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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O comando Select Case outro comando de avaliao de condies na linguagem do Centura SQLWindows/32. 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 avaliada 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. O Centura SQLWindows/32 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 SQLWindows/32 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 SQLWindows/32 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 ERRO_INSERT, ERRO_UPDATE e ERRO_DELETE so constantes numricas inteiras.
Select Case ( nErro ) Case ERRO_INSERT Call SalMessageBox( "Registro j existe.", "Case", MB_Ok ) Break Case ERRO_UPDATE Case ERRO_DELETE Call SalMessageBox( "Registro no foi encontrado.", "Case", MB_Ok ) Break Default Call SalMessageBox( "Erro desconhecido", "Case", MB_Ok ) Break

Nesse exemplo o tratamento de erro para os comandos de UPDATE e DELETE o mesmo; o erro de INSERT possui sua prpria crtica de erro. Ao invs de repetir todo o bloco de cdigo para as crticas de erro do UPDATE/DELETE, eles so colocados um acima do outro. J que no existe nenhum Break no Case ERRO_UPDATE, a execuo
Pgina PAGE 582

Programando com o Centura Team Developer 2000

prossegue ao prximo Case e termina quando o Centura SQLWindows/32 encontrar o Break subordinado ao Case ERRO_DELETE.
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 ]

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Todo o cdigo subordinado ao comando While ou ao comando Loop so parte do lao.

O While um lao onde a condio avaliada antes deste ser executado pela primeira vez. A expresso precisa ser avaliada e deve ser TRUE ( diferente de zero ). O lao continua at que uma destas 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. Pode ser utilizado o comando Loop e While para montar laos aninhados ( nested loops ). Nesse 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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Operadores Matemticos O Centura suporta os operadores matemticos que so padro entre a maioria das linguagens, conforme a tabela abaixo :

Operado r + * / = != > < >= <= ** 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

Nota
Entende-se pelo termo bitwise a comparao bit-a-bit de posicionamento idntico em duas expresses numricas.

Variveis

Um data type refere-se ao tipo de informao 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 SQLWindows/32 suporta os tipos de dados definidos SQL de acordo com o padro ANSI 92. Isso 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 pode ser armazenado numa varivel e o escopo da varivel - escopo refere-se a acessibilidade que geralmente Local ou Global.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Uma varivel local visvel apenas na funo, objeto, ou janela que a mesma foi definida. Normalmente no pode ser acessada de fora do local definido. Uma varivel local geralmente desaparece quando o objeto que a criou fechado. Isso 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 SQLWindows/32. Tipo de dado Boolean Descrio Dever ser usado apenas quando for importante identificar um dos dois estados ( on/off, yes/no, verdadeiro ou falso ). Date/Time Um valor que inclui uma Data e a Hora em seu formato. File Handle Usado para identificar um arquivo. Long String Uma cadeia de caracteres maior que 254 bytes. Number Um nmero. Session Handle Usado para identificar uma sesso junto a um servidor de banco de dados. SQL Handle Usado para identificar uma conexo junto a um servidor de banco de dados. String Uma cadeia de caracteres. Window Usado para identificar uma instncia de um objeto sendo executado. Handle
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 SQLWindows/32. 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 Session Handle: shSessao String: sDescricao Window Handle: hWndObjeto

Quando voc define uma varivel, como mostrado logo acima, mesmo que a varivel ainda no tenha sido utilizada nenhuma vez, ela j possui um valor, o valor default que iniciado pelo prprio SQLWindows.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tipo de dado Date/Time Number String Window Handle

Valor default Um valor data/hora nulo. O mesmo que a constante DATETIME_Null Valor 0 (zero). O mesmo que a constante NUMBER_Null Um valor string nulo. O mesmo que a constante STRING_Null. Um valor window handle nulo. O mesmo que a varivel de sistema hWndNULL.

Obs.: No Centura, o tamanho mximo permitido para os nomes de variveis de 32 caracteres. possvel o uso das letras, nmeros e do sinal _ (underscore). Os nomes das variveis e dos objetos so case-sensitive. Portanto, sNome uma varivel e sNOME outra. Veremos como trabalhar com as variveis do SQLWindows nos exemplos presentes nos captulos onde so mostrados exemplos de programao.
Variveis do Sistema

O Centura SQLWindows/32 possui algumas variveis internas, chamadas de Variveis do Sistema (System Variables). So variveis cuja definio no se faz necessria antes de utiliz-las. So, portanto, especiais. A tabela abaixo apresenta algumas variveis do sistema e suas descries : Varivel - MyValue - hWndForm - hWndItem - hWndMDI - hWndNull - wParam - lParam - nArgCount - strArgArray - SqlDatabase - SqlUser - SqlPassword
Vetores

Descrio O valor do objeto atual. Assume o tipo de dado do objeto. O Window Handle do objeto top level atual. O Window Handle do objeto atual. O Window Handle do objeto mdi atual. Equivale a um valor tipo Window Handle nulo. Um valor numrico para ser utilizado como parmetro em mensagens. Um valor numrico para ser utilizado como parmetro em mensagens. Contm a quantidade de argumentos passados como parmetro quando a aplicao iniciada. 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.

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]

Pgina PAGE 582

Programando com o Centura Team Developer 2000


Number: anMeses [1:12] String: asNomes [*]

O primeiro vetor declarado, abStatus, um vetor que poder armazenar apenas valores 1 (TRUE) ou 0 (FALSE), pois seu tipo de dados Boolean. 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 caracteres vlidos. Este vetor dinmico, ou seja, 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 durante a execuo do programa. Enumerations so constantes numricas que so utilizadas em servidores COM para conter listas de valores. Normalmente o primeiro item da lista define o valor inicial e os demais itens so sempre acrescidos de um. No exemplo mostrado na figura abaixo, o primeiro item possui valor 1, o segundo 2 e assim por diante. Constantes so declaradas no outline na seo chamada Constants, que uma seo subordinada a seo Global Declarations.

Declarao de Constantes.

As Funes

O Centura SQLWindows/32 apresenta um conjunto de funes que embutido linguagem SAL. Essas 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 SQLWindows/32.
O Centura disponibiliza uma quantidade enorme de funes. Consulte o Capitulo 13 Guia de Referncia das Funes SAL, para uma explicao detalhada de todas as funes disponveis no SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Os Objetos do Centura SQLWindows/32 O Centura SQLWindos32 dispe de um conjunto de objetos bsicos que so normalmente suficientes para a implementao das solues necessrias aos desenvolvedores no seu dia-a-dia. Esses objetos so todos apresentados ao desenvolvedor na Paleta de Controles, que iremos analisar em detalhes agora.

Esses objetos so os elementos utilizados para a criao da interface com o usurio. Dividem-se em trs tipos : Personalizvel Codificvel Recebe / Mensagens Sim Sim Sim Sim No No No Sim No / Sim Envia

Window Objects Background Itens Menus

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. Esses tm alguma funo lgica no programa, ou seja, possuem algum cdigo associado a eles. No Centura SQLWindows/32, esses objetos dispem de uma identificao nica na aplicao, a qual damos o nome de handles.
Os Window Objects podem ser

Top Level Window So os objeto do tipo mdi, form window, dialog box e table window. Child Window So os outros objetos que esto sempre subordinados a algum objeto top level. Jamais um objeto Child existir sem que exista um objeto top level. Vamos agora analisar detalhadamente cada um dos objetos do SQLWindows/32.
MDI Window

Um objeto top level do tipo mdi. Um objeto mdi o nico top level 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 essas janelas. Quando um mdi encerrado, automaticamente todas as suas janelas filhas so encerradas tambm. Objetos tipo mdi so geralmente utilizados para servirem de menu principal das aplicaes que requerem muitas janelas abertas simultaneamente.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Um mdi, assim como todos os outros objetos do SQLWindows/32, possui diversas propriedades. Voc pode alterar os valores de qualquer uma das propriedades do objeto, atravs do Customizer ou do Attribute Inspector. Abaixo esto relacionadas todas as propriedades de um objeto do tipo mdi : Propriedade MDI Window Object Title Accessories Enabled Tool Bar Visible Tool Bar Size Tool Bar Position Status Bar Visible Automatically Create Maximizable Minimizable System Menu Descrio O nome interno do mdi. Nome utilizado pelo programador. O ttulo que aparecer na barra de ttulos quando o programa estiver sendo executado. Indica se os acessrios do mdi estaro visveis. Os acessrios so a barra de ferramentas e a barra de mensagem. Indica se a barra de ferramentas estar visvel. a medida da altura da barra de ferramentas ( em unidades de form ). Indica a localizao da barra de ferramentas. Indica se a barra de mensagens estar visvel. Indica se o mdi ser criado automaticamente quando a aplicao for executada. Indica se o mdi poder ser maximizado. Indica se o mdi poder ser minimizado. Indica se o menu do sistema, localizado na parte superior esquerda do objeto, poder ser utilizado pelo usurio quando a aplicao estiver em tempo de execuo. Indica se o mdi poder ter seu tamanho alterado. Indica o estado inicial (maximizado, minimizado ou normal) do mdi. Informe aqui o nome de um cone para este mdi. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto.

Resizable Initial State Icon File Name Left Top Width Height

Para incluir um MDI na sua aplicao: 1 Clique com o boto direito do mouse na palavra "Windows" localizada no quadro esquerdo. 2 Ser mostrado um menu de contexto onde voc deve escolher o item New. 3 Depois basta clicar no item chamado "MDI Window". Conforme mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Form Window Um objeto top level 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. Pode tambm apresentar uma barra de ferramentas em qualquer um dos seus lados, alm de uma barra de mensagens.

Um objeto top level do tipo form window .

Obs : Quando um form window criado como filho de um mdi, a sua barra de mensagens no visualizada no form window, mas sim no mdi. Esse um comportamento padro do Windows, no requerendo nenhum esforo de programao por parte do desenvolvedor.

Um form window, assim como todos os outros objetos do SQLWindows/32, possui diversas propriedades. Voc pode alterar os valores de qualquer uma das propriedades do objeto, atravs do Customizer ou do Attribute Inspector. Abaixo esto relacionadas todas as propriedades de um objeto do tipo form window : Propriedade Form Window Object Title Accessories Enabled Descrio O nome interno do form window, utilizado pelo programador. O ttulo que aparecer na barra de ttulos do form window, quando o programa estiver sendo executado. Indica se os acessrios estaro visveis. Os acessrios so a barra de ferramentas e a barra de mensagem.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tool Bar Visible Indica se a barra de ferramentas estar visvel. a medida da altura da barra de ferramentas ( em unidades de form Tool Bar Size ). Tool Bar Indica a localizao da barra de ferramentas. Position Status Bar Indica se a barra de mensagens estar visvel. Visible Indica o estilo de visualizao do form window. Display Style Indica se o form window ser criado automaticamente, quando a Automatically aplicao for executada. Create Indica se o form window poder ser maximizado. Maximizable Indica se o form window poder ser minimizado. Minimizable Indica se o menu do sistema, localizado na parte superior esquerda System Menu do objeto, poder ser utilizado pelo usurio, quando a aplicao estiver em tempo de execuo. Indica se o form window poder ter seu tamanho alterado. Resizable Indica o estado inicial (maximizado, minimizado ou normal) do Initial State form window. Icon File Name Informe aqui o nome de um cone para este form window. Largura da pgina. Page Width Altura da pgina. Page Height Nmero de pginas. Page Count A coordenada mais esquerda do objeto. Left A coordenada da parte superior do objeto. Top A largura do objeto. Width A altura do objeto. Height Indica a cor utilizada no corpo do form window. Background Color A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement

Para incluir um Form Window na sua aplicao: 1 Clique com o boto direito do mouse na palavra "Windows" localizada no quadro esquerdo. 2 Ser mostrado um menu de contexto onde voc deve escolher o item New. 3 Depois basta clicar no item chamado "Form Window". Conforme mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Dialog Box

Os Dialog Box no possuem a caracterstica de serem filhos de algum outro objeto. Sempre so mostrados por cima das demais janelas, e, estando ativo um Dialog Box, nenhum elemento de outra janela pode ser acionado. Os Dialog Box no podem ser minimizados, maximizados e ter seus tamanhos alterados em tempo de execuo. Tambm possuem barras de ferramentas e de status. Obs : J que os objetos do tipo 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 na parte inferior do prprio objeto. Esse tambm um comportamento padro do Windows, no requerendo nenhum esforo de programao do desenvolvedor.

Um objeto top level do tipo dialog box. Um dialog box, assim como todos os outros objetos do SQLWindows/32, possui diversas propriedades. Voc pode alterar os valores de qualquer uma das propriedades do objeto, atravs do Customizer ou do Attribute Inspector. Abaixo esto relacionadas todas as propriedades de um objeto do tipo dialog box : Propriedade Dialog Box Object Title Descrio O nome interno do dialog box, utilizado pelo programador. O ttulo que aparecer na barra de ttulos do dialog box, quando o programa estiver sendo executado. Indica se os acessrios estaro visveis. Os acessrios so a barra de Accessories ferramentas e a barra de mensagem. Enabled Tool Bar Visible Indica se a barra de ferramentas estar visvel. a medida da altura da barra de ferramentas ( em unidades de form Tool Bar Size
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tool Position Status Bar Indica se a barra de mensagens estar visvel. Visible Indica o estilo de visualizao do dialog box. Display Style Existem trs tipos disponveis: Type of Dialog O tipo Modeless indica que o usurio poder utilizar outros recursos da aplicao enquanto usa este dialog box. Poder utilizar menus, outras janelas, etc. O tipo Modal indica que o usurio no poder utilizar outros recursos da aplicao atual, porm, poder utilizar outras aplicaes do sistema operacional, como um editor de textos e planilhas. J o tipo System Modal indica que o usurio no poder utilizar nenhum outro recurso. O sistema ficar aguardando que o dialog box tipo System Modal seja encerrado, para ento prosseguir normalmente. A coordenada mais esquerda do objeto. Left A coordenada da parte superior do objeto. Top A largura do objeto. Width A altura do objeto. Height Indica a cor utilizada no corpo do form window. Background Color A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement Para incluir um Dialog Box na sua aplicao: 1 Clique com o boto direito do mouse na palavra "Windows" localizada no quadro esquerdo. 2 Ser mostrado um menu de contexto onde voc deve escolher o item New. 3 Depois basta clicar no item chamado "Dialog Box". Conforme mostrado na figura abaixo:

). Bar Indica a localizao da barra de ferramentas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

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. Esse 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. Os demais comportamentos so idnticos ao do form window.

Um objeto top level do tipo table window.


Uma table window, assim como todos os outros objetos do SQLWindows/32, possui diversas propriedades. Voc pode alterar os valores de qualquer uma das propriedades do objeto, atravs do Customizer ou do Attribute Inspector.

Abaixo esto relacionadas todas as propriedades de um objeto do tipo table window : Propriedade Table Window Object Title Descrio O nome interno da table window, utilizado pelo programador. O ttulo que aparecer na barra de ttulos da table window quando o programa estiver sendo executado. Indica se os acessrios estaro visveis. Os acessrios so a barra de Accessories ferramentas e a barra de mensagem. Enabled Tool Bar Visible Indica se a barra de ferramentas estar visvel. a medida da altura da barra de ferramentas ( em unidades de form Tool Bar Size ). Tool Bar Indica a localizao da barra de ferramentas. Position Status Bar Indica se a barra de mensagens estar visvel. Visible Indica se a table window ser criada automaticamente quando a Automatically aplicao for executada. Create Indica se a table window poder ser maximizada. Maximizable Indica se a table window poder ser minimizada. Minimizable Indica se o menu do sistema, localizado na parte superior esquerda System Menu do objeto, poder ser utilizado pelo usurio, quando a aplicao estiver em tempo de execuo. Indica se a table window poder ter seu tamanho alterado. Resizable Indica o estado inicial (maximizado, minimizado ou normal) da Initial State table window. Icon File Name Informe aqui o nome de um cone para esta table window.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. Indica a quantidade de linhas de dados que uma linha da table window ter. Allow Row Indica se o usurio poder modificar, em tempo de execuo, a altura das linhas da table window. Sizing Indica a cor utilizada no corpo do form window. Background Color A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement Indica se o SQLWindows/32 ir manter todas as linhas no cache da Discartable table window, ou se manter apenas as linhas utilizadas, descartando as demais. O comportamento padro do SQLWindows/32 descart-las. Max Row in O nmero de linhas que a table window manter no seu cache, o valor padro manter 100 linhas, o mximo 32.753. Memory Left Top Width Height Lines Per Row Para incluir uma Table Window na sua aplicao: 1 Clique com o boto direito do mouse na palavra "Windows" localizada no quadro esquerdo. 2 Ser mostrado um menu de contexto onde voc deve escolher o item New. 3 Depois basta clicar no item chamado "Table Window". Conforme mostrado na figura abaixo:

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.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As Propriedades de um objeto tipo Background Text:

Propriedade Background Text Visible Left Top Width Height Justify Background Color Text Color Font Name Font Size Font Enhancement

Descrio O texto que aparecer na aplicao para o usurio. Indica se o objeto est ou no visvel. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. Indica o tipo de alinhamento do objeto. Indica a cor utilizada no fundo do objeto. A cor do texto. O nome da fonte utilizada. O tamanho da fonte. Melhoramentos da fonte.

Para incluir um objeto Background Text na sua aplicao:

1 Ative a Paleta de Controles, pressionando Alt 4. 2 Clique no cone equivalente ao Background Text.

3 Clique na posio onde voc deseja colocar o Background Text na sua aplicao. Todos os demais objetos Child so inseridos na aplicao dessa forma. 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. As propriedades de um objeto tipo Group Box : Propriedade Group Box Descrio O texto que aparecer na aplicao para o usurio, na parte superior esquerda do objeto. Indica se o objeto est ou no visvel. Visible A coordenada mais esquerda do objeto. Left A coordenada da parte superior do objeto. Top A largura do objeto. Width A altura do objeto. Height Background Color Indica a cor utilizada no fundo do objeto.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Text Color Font Name Font Size Font Enhancement

A cor do texto. O nome da fonte utilizada. O tamanho da fonte. Melhoramentos da fonte.

O cone do objeto Group Box na paleta Controls. 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. As propriedades de um objeto tipo Frame : Propriedade Visible Left Top Width Height Corners Border Style Border Thickness Background Color Border Color Descrio Indica se o objeto est ou no visvel. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. Indica o tipo de laterais a ser utilizado no objeto. Indica o tipo de borda a ser utilizado no objeto. Indica a espessura da borda a ser utilizada no objeto. Indica a cor utilizada no fundo do objeto. A cor da borda do objeto.

O cone do objeto Frame na paleta Controls. 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. As propriedades de um objeto tipo Line : Propriedade Visible Begin X Begin Y End X End Y Line Style Descrio Indica se o objeto est ou no visvel. O ponto inicial das coordenadas do objeto, no eixo X. O ponto inicial das coordenadas do objeto, no eixo Y. O ponto final das coordenadas do objeto, no eixo X. O ponto final das coordenadas do objeto, no eixo Y. Indica o tipo de linha a ser utilizado no objeto.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Line Thickness Line Color

Indica a espessura da linha a ser utilizada no objeto. A cor da linha.

O cone do objeto Line na paleta Controls. 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. As propriedades de um objeto tipo Data Field: Propriedade Data Field Visible Left Top Width Height Data Type Max Data Length Editable Border Justify Descrio O nome do objeto utilizado internamente pelo programador. Indica se o objeto est ou no visvel. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. O tipo de dado do contedo do objeto. A quantidade mxima de caracteres que o objeto ir suportar. Indica se o contedo do objeto poder ser editado pelo usurio. Indica se o objeto ter uma borda. Indica a forma como o contedo do objeto aparecer alinhado para o usurio. Indica a formatao a ser utilizada no objeto. Format Indica a mscara de edio a ser utilizada no objeto quando o Input Mask usurio estiver digitando os dados. As predefinies referentes ao pas. Country Background Color Indica a cor utilizada no fundo do objeto. A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement

O cone do objeto Data Field na paleta Controls. Multiline Text Normalmente utilizado para a digitao e visualizao de campos de textos longos, cartas, observaes, arquivos padro texto, logs de erro, etc.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

As propriedades de um objeto tipo Multiline Text: Propriedade Multiline Field Visible Left Top Width Height String Type Descrio O nome do objeto utilizado internamente pelo programador. Indica se o objeto est ou no visvel. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. O tipo de string do contedo do objeto. Pode ser string ou long string. Max Data Length A quantidade mxima de caracteres que o objeto ir suportar. Indica se o contedo do objeto poder ser editado pelo usurio. Editable Indica se o objeto ter uma borda. Border Se Yes, o SQLWindows/32 quebra as frases automaticamente, Word Wrap continuando a digitao na linha seguinte. Indica se o objeto ter a barra de rolagem na sua lateral direita. Vertical Scroll Background Color Indica a cor utilizada no fundo do objeto. A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement

O cone do objeto Multiline Text na paleta Controls. 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 tempo 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. As propriedades de um objeto tipo Child Table : Propriedade Child Table Visible Left Top Width Height Lines Per Row Descrio O nome do objeto utilizado internamente pelo programador. Indica se o objeto est visvel ou no. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. Informe aqui a quantidade de linhas de dados que uma linha da
Pgina PAGE 582

Programando com o Centura Team Developer 2000

child table ter. Allow Row Sizing Indica se o usurio poder modificar, em tempo de execuo, a altura das linhas da child table. Background Color Indica a cor de fundo da child table. A cor do texto. Text Color O nome da fonte utilizada. Font Name O tamanho da fonte. Font Size Melhoramentos da fonte. Font Enhancement Indica se o SQLWindows/32 ir manter todas as linhas no cache Discartable da table window, ou se manter apenas as linhas utilizadas, descartando as demais linhas. O comportamento padro do SQLWindows/32 descart-las. Max Row in O nmero de linhas que a table window manter no seu cache. O valor padro manter 100 linhas, o mximo 32.753. Memory

O cone do objeto Child Table na paleta Controls. Column Cada coluna do banco de dados mostrada numa table window num objeto Column. Pode ser personalizada pelo usurio em tempo de execuo, tendo sua largura alterada. Pode mostrar informaes tipo string, date/time, number e long string. As propriedades de um objeto tipo Column: Propriedade Column Object Title Visible Column Width Data Type Max Data Length Editable Cell Type Sorted Descrio O nome do objeto utilizado internamente pelo programador. O ttulo da coluna. Indica se o objeto est ou no visvel. A largura do objeto. O tipo de dado do contedo da coluna. A quantidade mxima de caracteres que o objeto ir suportar. Indica se o contedo do objeto poder ser editado pelo usurio. Indica o tipo da clula. Quando o tipo da clula Drop Down List, classifica os valores em ordem alfabtica crescente. Quando o tipo da clula Multiline, indica se a barra de rolagem Vertical Scroll estar visvel. Auto Drop Down Quando o tipo da clula Drop Down List, indica se a lista ser aberta automaticamente, quando o usurio posicionar o foco na clula. Allow Text Quando o tipo da clula Drop Down List, indica se o usurio poder editar valores que no estejam presentes na lista. Editing Quando o tipo da clula Check, indica o valor atribudo coluna, quando o Checked Value
usurio selecionar o objeto. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Unchecked Value Ignore Case Justify Format Input Mask Country Word Wrap

Quando o tipo da clula Check, indica o valor atribudo coluna, quando o usurio desfazer a seleo no objeto. Quando o tipo da clula Check, indica se o SQLWindows/32 ir ignorar o tipo de letra utilizado. Maisculas e minsculas. Indica a forma como o contedo do objeto aparecer alinhado para o usurio. Indica a formatao a ser utilizada no objeto. Indica a mscara de edio a ser utilizada no objeto, quando o usurio estiver digitando os dados. As predefinies referentes ao pas. Se Yes, o SQLWindows/32 quebra as frases automaticamente, continuando a digitao na linha seguinte.

O cone do objeto Column na paleta Controls. Pushbutton utilizado normalmente para se ativar alguma ao no sistema, so os botes de comando. As propriedades de um objeto tipo Pushbutton : Propriedade Object Name Object Title Visible Left Top Width Height File Name Picture Transparent Color Keyboard Accelerator Background Color Text Color Font Name Font Size Font Enhancement Descrio o nome do objeto, que ser utilizado pelo programador. o ttulo do objeto. Indica se o objeto est visvel ou no. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. O nome de uma imagem para ser mostrada dentro do objeto. Indica a cor que ser substituda pela cor de fundo do objeto. Essa caracterstica funciona apenas no caso das imagens tipo bitmap. O atalho que ativa o objeto. Indica a cor do fundo do objeto. A cor do texto no objeto. O tipo da fonte do texto utilizado no objeto. O tamanho da fonte utilizada no objeto. O melhoramento da fonte do texto utilizada no objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O cone do objeto Push Button na paleta Controls.


Radio Button So normalmente agrupados em um Group Box e utilizados para que o usurio escolha uma opo nica, quando no permitido mltipla escolha.

As propriedades de um objeto tipo Radio Button : Propriedade Object Name Object Title Visible Left Top Width Height Background Color Text Color Font Name Font Size Font Enhancement Descrio O nome interno do objeto, utilizado pelo programador. O ttulo do objeto. Indica se o objeto est visvel. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. Indica a cor do fundo do objeto. A cor do texto no objeto. O tipo da fonte do texto utilizado no objeto. O tamanho da fonte utilizada no objeto. O melhoramento da fonte do texto utilizada no objeto.

O cone do objeto Radio Button na paleta Controls. Check Box Diferentemente dos Radio Buttons, os Check Boxes permitem mltiplas escolhas. As propriedades de um objeto tipo Check Box : Propriedade Object Name Object Title Visible Left Top Width Height Background Color Text Color Font Name Descrio O nome interno do objeto, utilizado pelo programador. O ttulo do objeto. Indica se o objeto est visvel. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. Indica a cor do fundo do objeto. A cor do texto no objeto. O tipo da fonte do texto utilizado no objeto.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Font Size Font Enhancement

O tamanho da fonte utilizada no objeto. O melhoramento da fonte do texto utilizada no objeto.

O cone do objeto Check Box na paleta Controls. Option Button Possui um comportamento parecido com o do PushButton, porm, o controle da aparncia up e down do option button feita pelo programador. Extremamente til quando a tarefa no pode ser acionada novamente. Esse objeto amplamente usado em barras de ferramentas. As propriedades de um objeto tipo Option Button : Propriedade Object Name Object Title Visible Left Top Width Height File Name Picture Transparent Color Button Style Background Color Text Color Font Name Font Size Font Enhancement Descrio o nome do objeto, que ser utilizado pelo programador. o ttulo do objeto. Indica se o objeto est visvel ou no. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. O nome de uma imagem para ser mostrada dentro do objeto. Indica a cor que ser substituda pela cor de fundo do objeto. Essa caracterstica funciona apenas no caso das imagens tipo bitmap. o estilo do boto, pode ser Palette, Radio ou Check. Indica a cor do fundo do objeto. A cor do texto no objeto. O tipo da fonte do texto utilizado no objeto. O tamanho da fonte utilizada no objeto. O melhoramento da fonte do texto utilizada no objeto.

O cone do objeto Option Button na paleta Controls. List Box Normalmente os List Box so utilizados para mostrar uma lista de dados que geralmente vem do banco de dados. Permite tambm a seleo de vrios elementos da lista.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

As propriedades de um objeto tipo List Box : Propriedade Object Name Visible Left Top Width Height Multiple Selection Descrio O nome do objeto, utilizado pelo programador. Indica se o objeto est visvel ou no. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. Indica se ser permitido ao usurio escolher mais de um elemento da lista. Indica se a lista de itens do objeto estar ordenada Sorted automaticamente. Indica se o list box ter uma barra de rolagem vertical na sua Vertical Scroll lateral direita. Background Color Indica a cor do fundo do objeto. A cor do texto no objeto. Text Color O tipo da fonte do texto utilizado no objeto. Font Name O tamanho da fonte utilizada no objeto. Font Size O melhoramento da fonte do texto utilizada no objeto. Font Enhancement

O cone do objeto List Box na paleta Controls. Combo Box Normalmente os Combo Box 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. As propriedades de um objeto tipo Combo Box : Propriedade Object Name Visible Left Top Width Height String Type Max Data Length Editable Input Mask Descrio O nome do objeto utilizado pelo programador. Indica se o objeto est visvel ou no. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. O tipo de dado do combop box, pode ser string ou long string. O nmero mximo de caracteres que o objeto pode digitar num combo box. Indica se o usurio poder digitar algum texto no combo box. Indica a mscara de edio a ser utilizada no objeto quando o usurio estiver digitando os dados.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Indica se a lista de itens do objeto estar ordenada automaticamente. Always Show List Indica se a lista do combo box estar sempre aberta. Indica se o combo box ter uma barra de rolagem vertical na sua Vertical Scroll lateral direita. Background Color Indica a cor do fundo do objeto. A cor do texto no objeto. Text Color O tipo da fonte do texto utilizado no objeto. Font Name O tamanho da fonte utilizada no objeto. Font Size O melhoramento da fonte do texto utilizada no objeto. Font Enhancement Sorted

O cone do objeto Combo Box na paleta Controls. Picture Normalmente utilizado para apresentar imagens grficas, cones, figuras. As propriedades de um objeto tipo Picture : Propriedade Object Name Visible Left Top Width Height Editable Picture Contents Transparent Color Picture Fit Descrio O nome interno do objeto. Indica se o objeto est visvel ou no. As coordenadas mais esquerda do objeto. As coordenadas da parte superior do objeto. A largura do objeto. A altura do objeto. Indica se o usurio poder alterar o contedo do objeto. O nome de uma imagem para ser mostrada dentro do objeto. Indica a cor que ser substituda pela cor de fundo do objeto. Essa caracterstica funciona apenas no caso das imagens tipo bitmap. Indica o estilo do preenchimento do objeto, pode ser: Scale - A imagem mostrada no seu tamanho original. Size to Fit - A imagem mostrada de acordo com o tamanho do objeto picture. Size for Best Fit - A imagem mostrada no tamanho em que melhor visualizada, baseando-se no tamanho do objeto picture. O percentual da escala ( largura ); o valor padro 100. Scale Width O percentual da escala ( altura ); o valor padro 100. Scale Height Indica se o objeto ir ocupar todo o espao do objeto pai. Tile to Parent Indica o tipo de laterais a ser utilizado no objeto. Corners Especifica o estilo da linha da borda. Border Style Border Thickness A espessura da linha da borda do objeto. Background Color Indica a cor do fundo do objeto. Indica a cor da borda do objeto. Border Color

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O cone do objeto Picture na paleta Controls. Custom Control utilizado para que objetos de terceiros possam ser usados no Centura. As propriedades de um objeto tipo Custom Control : Propriedade Object Name Object Title Current DLL MS Windows Class Name Visible Left Top Width Height Border Etched Border Vertical Scroll Horizontal Scroll Hollow Window Descrio O nome do objeto utilizado internamente pelo programador. o nome que aparecer no ttulo do objeto. Mostra o nome da DLL que define a classe do objeto. o nome da classe do objeto definido na DLL. Este nome fornecido pelo autor da DLL. Indica se o objeto estar ou no visvel. A coordenada mais esquerda do objeto. A coordenada da parte superior do objeto. A largura do objeto. A altura do objeto. Indica se o objeto ter uma borda. Indica se o objeto ter uma borda tipo etched.
Indica se a barra de rolagem vertical do objeto estar visvel.

Indica se a barra de rolagem horizontal do objeto estar visvel. Indica se o objeto ter o comportamento equivalente a um group box, ou seja, se voc poder colocar outros objetos ocupando a sua rea, sem que o Centura sobreponha o objeto. Os valores disponveis so: Tab Stop None O usurio no poder mover o foco para o objeto. Group O primeiro ou o ltimo item do grupo poder receber o foco atravs da tecla Tab. Entre os demais objetos, o foco alterado atravs das teclas para cima e para baixo. Tab - O usurio poder colocar o foco no objeto utilizando a tecla Tab. Indica se o objeto ir ocupar todo o espao do objeto pai. Tile to Parent MS Windows Identifica um estilo para o objeto. Essa informao especfica do objeto, consulte o seu manual. Style Identifica um estilo estendido para o objeto. Essa informao MS Windows especfica do objeto, consulte o seu manual. Extended Style Background Color A cor de fundo do objeto. A cor do texto no objeto. Text Color O tipo da fonte do texto utilizado no objeto. Font Name O tamanho da fonte utilizada no objeto. Font Size O melhoramento da fonte do texto utilizada no objeto. Font Enhancement

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O cone do objeto Custom Control na paleta Controls.

Tipos de Menus

Os menus so de grande utilidade num aplicativo, pois atravs deles que o usurio chama por uma determinada janela. Menus so como os outros objetos do SQLWindows/32, porm, no esto na paleta de controles e no podem receber mensagens. Os menus podem ser colocados na aplicao diretamente no outline, atravs do Assistente de Cdigo, ou utilizando-se o Editor de Menus. Apenas os objetos mdi, form window e top level table window permitem a utilizao de menus. O SQLWindows/32 oferece ao desenvolvedor os seguintes tipos de menus : Popup menu Menu item Menu separator Menu row Menu column Named menus Windows menu

Esses tipos de menus, o Editor de menus e a criao de menus dinamicamente em tempo de execuo, sero demonstrados agora detalhadamente. Popup menu Um popup menu utilizado para agrupar outros menus numa lista. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao.

O popup menu no outline, em execuo e o Coding Assistant.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Propriedades de um popup menu : Propriedade


Menu Title Enabled When

Descrio Este o nome que aparece na barra de menus quando a aplicao est sendo executada. Voc pode indicar uma condio para que o menu seja habilitado ou desabilitado, essa condio ser avaliada sempre que a barra de menus for desenhada pela aplicao. O valor da condio avaliado e se retornar TRUE o popup menu habilitado, se retornar FALSE o mesmo aparece desabilitado na barra de menus. Essa condio avaliada em duas ocasies: Aps a execuo da mensagem SAM_Create, quando a janela desenhada pela primeira vez, e antes da mensagem SAM_CreateComplete. Quando a funo SalDrawMenuBar for executada. O texto informado nesta propriedade mostrado na barra de status do form window, top level table window ou mdi window, quando o foco posicionado no menu. O menu no precisa ser ativado para que o texto seja mostrado na barra de status, basta que seja selecionado.

Status Text

Menu Item Um menu item o item de menu que efetivamente permite que o programa execute determinadas aes ao ser ativado. Menu items so os elementos que compem um popup menu. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao.

O menu item Copiar em destaque no outline, em execuo e o Coding Assistant. Propriedades de um menu item: Propriedade Descrio

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Menu Item

Este o nome que aparece na barra de menus quando a aplicao est sendo executada. Keyboard Accelerator Uma combinao de teclas que utilizada como atalho para acionar um menu. A combinao de teclas mostrada no menu direita do nome do menu item. Voc pode utilizar o Assistente de Cdigo para ter a lista de combinaes disponveis. O texto informado nesta propriedade mostrado na barra de status do form window, top level table window ou mdi window, quando o foco posicionado no menu. O menu no precisa ser ativado para que o texto seja mostrado na barra de status, basta que seja selecionado. Voc pode indicar uma condio para que o menu seja habilitado ou desabilitado, essa condio ser avaliada seguindo-se as regras abaixo : A condio de um menu item localizado na barra de menus da aplicao avaliada em duas ocasies : Aps a execuo da mensagem SAM_Create, quando a janela desenhada pela primeira vez, e antes da mensagem SAM_CreateComplete. Quando a funo SalDrawMenuBar for executada. A condio de um menu item localizado no interior de um popup menu avaliada apenas quando o popup menu desenhado, ou seja, quando o usurio "abrir" o popup menu. O valor da condio avaliado e se retornar TRUE o menu item habilitado, se retornar FALSE o mesmo aparece desabilitado. Voc pode indicar uma condio para que o menu aparea marcado (checked). Quando a condio retornar TRUE, o menu aparece com uma marca, quando a condio retornar FALSE, a marca retirada. A marca de checked mostrada esquerda do nome do menu. Os comandos SAL que sero executados quando o usurio acionar o menu item.

Status Text

Enabled When

Checked When

Menu Actions

Menu Separator Um menu separator uma linha horizontal colocada entre menus items, utilizada para separar visualmente um grupo de menus relacionados. Sua funo apenas esttica, no influenciando em nada na lgica da aplicao. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

O menu separator em destaque no outline, em execuo e no Coding Assistant. O menu separator no possui propriedades.

Menu Row Um menu row utilizado para iniciar uma nova linha de menus a partir do local onde posicionado. Sua funo apenas esttica, no influenciando em nada na lgica da aplicao. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao.

O menu row em destaque no outline, sua visualizao em execuo e no Coding Assistant. Um menu row no possui propriedades.

Menu column Um menu column utilizado para agrupar itens de menu em colunas verticais a partir do local onde posicionado. Sua funo apenas esttica, no influenciando em nada na lgica da aplicao. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O menu column em destaque no outline, sua visualizao em execuo e no Coding Assistant. Um menu column no possui propriedades.

Named menus Atravs de um named menu possvel compartilhar uma definio de menu popup por toda a aplicao. Esse compartilhamento de menus pode ser feito atravs de sua utilizao na seo Named Menu de qualquer objeto top level table window, form window ou mdi da aplicao. Voc pode criar um menu dinamicamente em qualquer posio da tela. Para definir um named menu que poder ser compartilhado por toda a aplicao, defina-o na seo chamada Named Menus do Global Declarations. Os named menus definidos num form window, top level table window ou num mdi s podero ser compartilhados nos prprios objetos onde foram definidos e nos seus objetos filhos. Voc pode utilizar o Coding Assistant para definir os menus diretamente no outline da sua aplicao. Observe na figura abaixo a definio e a utilizao de um named menu num form window.

Um named menu em destaque no outline e no Coding Assistant.

Propriedades de um named menu: Propriedade Descrio

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Menu Menu Title Enabled When

Este o nome que voc dever utilizar quando quiser utilizar o named menu na aplicao. Este o nome que aparece na barra de menus quando a aplicao est sendo executada. Voc pode indicar uma condio para que o menu seja habilitado ou desabilitado, essa condio ser avaliada sempre que a barra de menus for desenhada pela aplicao. O valor da condio avaliado e se retornar TRUE o menu habilitado, se retornar FALSE o mesmo aparece desabilitado na barra de menus. Essa condio avaliada em duas ocasies: Aps a execuo da mensagem SAM_Create, quando a janela desenhada pela primeira vez, e antes da mensagem SAM_CreateComplete. Quando a funo SalDrawMenuBar for executada. O texto informado nesta propriedade mostrado na barra de status do form window, top level table window ou mdi window quando o foco posicionado no menu. O menu no precisa ser ativado para que o texto seja mostrado na barra de status, basta que seja selecionado.

Status Text

Windows menu Windows menu um tipo especial de popup menu que mostra os nomes de todas as 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. Isso feito sem que seja necessrio qualquer esforo de programao.

O Editor de menus O SQLWindows/32 possui um editor de menus que voc pode utilizar para auxili-lo na definio de menus. O Editor de Menus possui uma interface grfica amigvel que aplica no outline todas as configuraes feitas. Voc pode ativar o editor de menus das seguintes formas: Ou Clique com o boto direito do mouse no form window, top level table window ou mdi onde voc deseja criar o menu. No menu de contexto que ir aparecer acione o menu Menu Editor.... Clique no form window, top level table window ou mdi onde voc deseja criar o menu. Acione o menu Component | Menu Editor....

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Editor de Menus.

Menus em tempo de execuo Voc pode criar um popup menu dinamicamente em tempo de execuo, em qualquer posio da tela da sua aplicao, com a funo SalTrackPopupMenu ( hWndObj , sNomeDoMenu , nFlags , nX , nY ). Onde : hWndObj o window handle do objeto que ir processar as mensagens enviadas pelo menu. sNomeDoMe O nome de um named menu que precisa estar definido em um destes trs nu locais: na seo Named Menus do objeto informado em hWndObj na seo Named Menus do objeto pai do objeto hWndObj seo Named Menus do Global Declarations nFlags Especifica como o popup menu ser mostrado. Voc pode combinar os valores dos flags com o operador OR ( | ) . Os flags disponveis so: TPM_LeftButton - O usurio pode clicar nos itens do menu com o boto esquerdo. TPM_RightButton - O usurio pode clicar nos itens do menu com o boto direito. TPM_CenterAlign - Centraliza o menu horizontalmente na janela. TPM_CursorX - Mostra o menu na posio do mouse, ao invs de usar a posio nX. TPM_CursorY - Mostra o menu na posio do mouse, ao invs de usar a posio nY. TPM_LeftAlign - Alinha o menu horizontalmente esquerda na janela. TPM_RightAlign - Alinha o menu horizontalmente direita na janela. nX e nY As coordenadas da tela onde o menu ser desenhado. Esses valores so ignorados caso voc utilize TPM_CursorX e TPM_CursorY em nFlags.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Observe o cdigo abaixo:


Pushbutton: pbMENU_EDITAR On SAM_Click Call SalTrackPopupMenu( hWndForm,'menuEditar', TPM_CursorX | TPM_CursorY | TPM_LeftAlign, 0 ,0 )

Esse cdigo, quando executado, comporta-se conforme mostrado na figura que se segue.

O menu dinmico sendo utilizado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 3
O acesso ao SQLBase
O Centura SQLBase Alguns comandos bsicos SELECT , INSERT , UPDATE , DELETE , ALTER TABLE, COMMIT, CREATE INDEX, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, DROP VIEW e ROLLBACK. Tabela de Comandos do Centura SQLBase Tabela de Funes do Centura SQLBase Usando o Centura SQLBase atravs do CTD Quando utilizar SqlPrepare / SqlExecute ou SqlPrepareAndExecute ?

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Centura SQLBase O SQLBase o Sistema Gerenciador de Banco de Dados Relacional (SGBDR) da Centura Software Corporation, com implementao completa da linguagem SQL. Ele foi desenhado e construdo especialmente para redes de PCs na plataforma Intel e suporta vrias configuraes de LAN/WAN.

As plataformas SQLBase hoje disponveis so: NetWare 3.x e 4.x, MS Windows 3.1 e Windows for Workgroups 3.11 (16-bits), Windows NT e Windows 95 (32-bits). Na plataforma 16-bits, o SQLBase suporta mono-usurios com comunicao local e servidores remotos. Nas outras plataformas, o SQLBase suporta mltiplos usurios com comunicao remota, atravs de rede e tambm comunicao local.
As configuraes atualmente existentes para o SQLBase vo desde o SQLBase para Smartcard, utilizado em smart cards num nico processador (chip de memria), passando pelo SQLBase Lite, embutido em aplicaes de larga comercializao e baixo custo. H ainda as tradicionais verses do protuto: a verso SQLBase Desktop mono-usurio, e as verses multi-usurio do SQLBase Server para 5, 10, 25, 50 e usurios ilimitados.

Todas as verses do banco de dados SQLBase caracterizam-se por : alto desempenho ; baixo consumo de memria devido ao small footprint gerado ; escalabilidade desde smart cards at ambientes multi-usurio e plataforma ; necessidade mnima, prxima de zero, de administrao de suas bases de dados .

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Alguns comandos bsicos O Centura SQLBase possui uma srie de comandos que podem ser utilizados pelo desenvolvedor e pelo administrador das bases de dados. Mostraremos agora os principais comandos a serem utilizados no desenvolvimento de aplicaes com o CTD. Os comandos para administrao do servidor, e das bases de dados, no sero abordados por no fazerem parte do propsito deste livro. Os comandos mais utilizados no desenvolvimento de aplicaes client/server, para a manuteno de tabelas, vises e ndices so mostrados em detalhes abaixo :

SELECT Este comando encontra, recupera e mostra dados. Ele especifica as seguintes informaes : As tabelas ou vises a serem procuradas no banco de dados
As condies de procura

A sequncia na qual os dados so mostrados Os comandos SELECT so recursivos; eles podem ser aninhados dentro do SELECT principal. Sintaxe : SELECT [ ALL ] [ DISTINCT ] <expressao> FROM <nome_da_tabela> / <nome_da_visao> WHERE <condicao_pesquisa>
[GROUP BY <constante> / <nome_da_coluna>]

[HAVING <condicao_pesquisa> ] [ORDER BY constante [ASC] [DESC]] nome_da_coluna ] [FOR UPDATE OF nome_da_coluna ] [UNION ] Argumentos :
ALL DISTINCT Expressao

FROM <nome_da_tabela> <nome_da_visao> WHERE <condicao_pesquisa> GROUP BY <constante> <nome_da_coluna>

O default para um comando SELECT : recuperar todas as linhas. No mostra linhas duplicadas. Uma lista de seleo contendo expresses separadas por vrgulas. Uma expresso pode ser um nome de coluna, uma constante, uma varivel assinalada, o resultado de uma funo ou uma palavra-chave do sistema. Um mximo de 255 expresses so permitidas na lista. Contm os nomes de tabelas ou vises a partir das quais um conjunto de linhas resultante. Especifica uma condio de procura para as tabelas bsicas ou visos. A condio de procura no pode conter funes agregadas. Esta clusula agrupa as linhas resultantes da consulta, de acordo com os nomes de coluna da clusula.
Se a coluna pela qual o agrupamento ocorre uma expresso, voc deve Pgina PAGE 582

Programando com o Centura Team Developer 2000

especificar um nmero que indica a sua posio relativa na lista de seleo, mas apenas se a expresso tem mais de uma coluna.

HAVING <condicao_pesquisa> ORDER BY constante [ASC] [DESC]] nome_da_coluna ]

[FOR UPDATE OF nome_da_coluna ]

Esta clusula permite estabelecer uma condio de procura por um grupo de linhas resultantes de um GROUP BY ou colunas agrupadas. Especifica a ordem das linhas em uma tabela de resultados. As linhas podem ser ordenadas por mais de uma coluna. Se a coluna de ordenao derivada de uma funo ou expresso aritmtica, a coluna deve ser especificada por um inteiro que signifique o nmero relativo da sua posio no comando SELECT. Cada nome de coluna ou nmero, pode ser opcionalmente seguido de ASC ou DESC, indicando ordenao ascendente ou descendente. Se voc est usando um cursor nomeado, esta clusula trava partes da tabela, de forma que atualizaes e delees subsequentes no causam incompatibilidades entre usurios concorrentes.

Exemplos : SELECT * FROM CUSTOMER; SELECT DISTINCT JOB FROM EMP; SELECT EMPNO,SALARY/12 FROM EMPSAL WHERE SALARY > 400; SELECT DEPTNO, MIN(SALARY), AVG(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO=EMPSAL.EMPNO GROUP BY DEPTNO; SELECT * FROM EMP WHERE JOB IN (SELECT JOB FROM EMP WHERE LNAME = 'Drape'); SELECT * FROM ORDERS WHERE CUSTNO=2 ORDER BY ORDERDATE; SELECT LNAME FROM EMP WHERE DEPTNO = 2500 FOR UPDATE OF JOB;

INSERT

Este comando insere linhas de dados em uma tabela ou viso, no existindo um nmero mximo de linhas que podem ser inseridas. No caso das vises, as linhas so inseridas na tabela base.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc deve possuir privilgio INSERT na tabela para executar este comando. Se o banco de dados possui integridade referencial definida, as regras de integridade devem ser seguidas, para que se possa incluir dados em uma tabela pai, contendo uma chave primria, ou em uma tabela dependente, contendo uma chave estrangeira.
Sintaxe :

INSERT INTO <nome_da_tabela> [ <nome_da_coluna> ] <nome_da_visao> VALUES ( <constantes> ) ( <variaveis_bind> ) ( <palavra_chave> ) [ADJUSTING <nome_cursor> ] subselect

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Argumentos : <nome_da_tabela> <nome_da_visao> <nome_da_coluna> Nome de uma tabela existente no banco de dados. Nome de uma viso existente no banco de dados. Um ou mais nomes de colunas na tabela ou viso especificada, para as quais sero fornecidos valores. Voc no pode omitir um nome de coluna ou inserir nulos em colunas NOT NULL. Esta clusula contm uma linha de valores de colunas a serem inseridos. Os valores podem ser constantes, variveis assinaladas ou palavras-chave do sistema. Separe com vrgulas os valores de colunas. Esta clusula usada para programao de conjuntos de resultados (result sets). Ela permite que o usurio insira uma linha sem invalidar o conjunto de resultados corrente. As linhas inseridas so posicionadas no final do conjunto de resultados e do banco de dados. Insere linhas provenientes de uma tabela de resultados, produzida por um comando SELECT. O nmero de colunas recuperadas deve ser igual ao nmero de colunas a serem inseridas. Voc no pode usar a clusula ORDER BY no sub-select. Voc no pode usar a clusula UNION no sub-select, mas pode usar uma viso contendo esta clusula.

<constantes> <variaveis_bind> <palavra_chave> <nome_cursor>

subselect

Exemplos : INSERT INTO EMP VALUES (1001,Carver,Dan,2500,01-APR-1994, Manager) INSERT INTO EMP (EMPNO,LNAME,FNAME,HIREDATE) (1002,Murphy,Bill,17-APR-1994) INSERT INTO EMP VALUES (1003,Johnson,Bob Bo, 2500,01-FEB-1994, Analyst)

UPDATE

Este comando atualiza valores em uma ou mais colunas de uma tabela ou viso, baseado em condies de procura especficas. Voc deve possuir o privilgio UPDATE nas colunas da tabela ou da viso. Uma mensagem de erro retornada se as regras de integridade dos dados forem violadas por um comando UPDATE. Sintaxe : UPDATE <nome_da_tabela>
Pgina PAGE 582

Programando com o Centura Team Developer 2000

<nome_da_visao> [ <nome_relacionado> ] <nome_da_coluna> = <expressao> NULL [WHERE <condicao_de_pesquisa> ] SET Argumentos : <nome_da_tabela> <nome_da_visao> <nome_relacionado> <nome_da_coluna> Identifica uma tabela existente. Somente colunas de tabelas criadas pelo usurio podem ser atualizadas. Identifica uma viso existente. Voc no pode atualizar uma viso baseada em mais de uma tabela. Um nome relacionado deve ser especificado se a condio de procura envolve uma sub-consulta relacionada. Identifica as colunas a serem atualizadas em uma tabela ou viso. Colunas derivadas de uma expresso aritmtica, ou uma funo, no podem ser atualizadas. Se o valor de atualizao for NULL, a coluna deve ter sido definida de forma a aceitar valores nulos. Se a coluna a ser atualizada um ndice nico, o valor de atualizao deve ser nico, ou um erro ser retornado. Se o valor de atualizao uma expresso string na qual duas ou mais strings so concatenadas, o tamanho resultante da string no pode exceder 254 caracteres. WHERE A condio de procura qualifica um conjunto de linhas para <condicao_de_pesquisa> atualizao. Exemplos : UPDATE EMPSAL SET SALARY = 45000 WHERE EMPNO= 1004; UPDATE EMPSAL SET SALARY = SALARY*1.10 WHERE EMPNO IN (SELECT EMPNO FROM EMP WHERE DEPTNO = 2500); UPDATE EMPSAL SET SALARY= 40000 WHERE CURRENT OF EMPCURSOR;
DELETE

SET

Este comando apaga uma ou mais linhas que satisfazem a condio de procura de uma nica tabela ou viso. Para execut-lo, voc deve possuir privilgio DELETE na tabela. A sintaxe do comando DELETE :
DELETE FROM <nome_da_tabela> Pgina PAGE 582

Programando com o Centura Team Developer 2000

<nome_da_visao> [<nome_relacionado>] [ WHERE <condicao_de_pesquisa> ] [ CURRENT OF <nome_cursor> ] Argumentos : nome_da_tabela nome_da_visao nome_relacionado WHERE condicao_de_pesquisa Nome de tabela especificado por qualquer usurio, com privilgios de deleo. Nome de viso especificado por qualquer usurio com, privilgios de deleo. Um nome relacionado pode ser usado dentro da condio de procura para designar a tabela ou a viso. A condio de procura qualifica um conjunto de linhas para deleo. Obs : Se voc no especificar uma condio para o comando DELETE, todas as linhas da tabela sero apagadas. OF Um comando DELETE com esta clusula chamado posicional ou controlado por cursor. Este tipo de atualizao requer dois cursores abertos: - Cursor 1, associado a um comando SELECT; - Cursor 2, associado a um comando DELETE. Um nome de cursor deve ser associado ao Cursor 1, antes que este comando seja executado. Exemplos : DELETE FROM emp WHERE codemp = 1234

CURRENT nome_cursor

DELETE FROM empsal WHERE codemp IN ( SELECT codemp FROM emp WHERE coddepto = 12 ) DELETE FROM hitrico

ALTER TABLE

Este comando pode ser utilizado para executar as seguintes funes : - Adicionar, apagar ou modificar uma coluna. - Renomear uma coluna ou tabela. As vises que fazem referncia a colunas ou tabelas apagadas ou renomeadas, so automaticamente apagadas. J os comandos pr-compilados que referenciam colunas ou tabelas apagadas, ou renomeadas, no so apagados. Sintaxe : ALTER TABLE <nome_da_tabela>
Pgina PAGE 582

Programando com o Centura Team Developer 2000

DROP ADD

<nome_da_coluna> <nome_da_coluna> <tipo_de_dado> [( tamanho)] [NOT NULL] [NOT NULL WITH DEFAULT] RENAME <nome_da_coluna> <novo_nome_da_coluna> TABLE <novo_nome_da_tabela> MODIFY <nome_da_coluna> <tipo_de_dado> [( tamanho)] [NULL] [NOT NULL] [NOT NULL WITH DEFAULT]

Argumentos : ADD Adiciona uma coluna em uma tabela. As colunas so criadas da mesma forma que no comando CREATE TABLE. ADD a clusula default se nenhuma clusula for especificada. Remove uma coluna de uma tabela. Se a coluna possui dados, os dados so perdidos. Voc no pode apagar: uma coluna indexada, uma coluna pertencente a uma chave, colunas do catlogo do sistema. Altera os atributos de uma coluna. Voc pode aumentar o tamanho de uma coluna caracter, mas no diminu-lo. Voc no pode alterar o tipo de dado da coluna. Voc no pode alterar o tamanho de uma coluna numrica. NULL - Remove o atributo NOT NULL de uma coluna. NOT NULL - Adiciona o atributo NOT NULL a colunas que correntemente aceitam nulos. Se a coluna contm valores nulos, voc no pode redefin-la como NOT NULL. NOT NULL WITH DEFAULT - Esta clusula previne uma coluna de conter valores nulos e permite valores default que no sejam nulos. Altera o nome de uma tabela ou coluna. Tabelas e colunas que fazem parte do catlogo do sistema no podem ser renomeadas.

DROP

MODIFY

RENAME

Exemplos : ALTER TABLE EMP ADD JOB VARCHAR(15); ALTER TABLE EMP DROP JOB, HIREDATE; ALTER TABLE EMP RENAME TABLE EMPLOYEE; ALTER TABLE EMP MODIFY HIREDATE NOT NULL;
Pgina PAGE 582

Programando com o Centura Team Developer 2000

COMMIT Este comando efetiva todas as alteraes realizadas no banco de dados desde o ltimo COMMIT ou ROLLBACK, ou desde a conexo inicial do usurio, se no houveram comandos realizados. A operao COMMIT aplica-se a todos os comandos SQL, incluindo comandos de definio (CREATE, DROP, ALTER) e de controle (GRANT, UPDATE, DELETE). Os locks so sempre liberados depois de um COMMIT, a menos que o modo de preservao de cursores esteja ativo.

Sintaxe : COMMIT Exemplos : COMMIT; (sinaliza fim de transao e incio de uma nova) <Comando SQL ...> <Comando SQL ...> <Comando SQL ...> COMMIT; (efetiva os trs comandos SQL acima)
CREATE INDEX

Este comando cria um ndice baseado em uma ou mais colunas da tabela, no existindo limite para o nmero de ndices por tabela. Os possveis tipos de ndices so : UNIQUE ou CLUSTERED HASHED. Obs. : - se um ndice do tipo clustered hashed, sua chave no pode ser atualizada. - se voc cria uma tabela contendo uma chave primria usando CREATE TABLE, deve criar um ndice nico baseado nas colunas da chave primria. Funes nos ndices :
Pode-se criar um ndice que o resultado da utilizao de funes no-aninhadas na coluna, ou colunas, da tabela. Estes ndices so usados pelo SQLBase sempre que as respectivas funes so chamadas na clusula WHERE.

Sintaxe : CREATE [UNIQUE] [CLUSTERED HASHED] INDEX <nome_do_indice> ON <nome_da_tabela> ( <nome_da_coluna> [ASC ] [DESC] ) [PCTFREE integer constant] [SIZE integer value ROWS BUCKETS]
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Argumentos : UNIQUE Esta palavra-chave fora valores nicos dentro da tabela. Um erro retornado se esta propriedade de unicidade de valores for violada durante uma operao de insero ou atualizao. Esta clusula armazena linhas de dados em localizaes baseadas no valor da chave. Um ndice deste tipo aumenta a velocidade de acesso randmico s linhas da tabela. O SQLBase usa este tipo de ndice quando: - todas as colunas-chave esto na clusula WHERE; - as colunas somente usam condies de igualdade, como C1=C2. Cada nome de ndice consiste de um identificador longo, prfixado por um qualificador implcito que o identificador do criador do ndice. Nome da tabela para a qual criar o ndice. Viso no pode ser usada. Especifica se o ndice est na ordem ascendente ou descendente. ASC o valor default.

CLUSTERED HASHED

INDEX <nome_do_indice> <nome_da_tabela> ASC / DESC

Exemplos : CREATE INDEX HIRE_IDX ON EMP ( HIREDATE ) CREATE INDEX NAME_IDX ON EMP ( LNAME, FNAME ) CREATE UNIQUE INDEX EMP_IDX ON EMP ( EMPNO DESC ) CREATE INDEX LN_IDX ON EMP ( @UPPER( LNAME)) CREATE INDEX CODE_IDX ON EMP ( @LEFT( DEPTNO, 3 ) )

CREATE TABLE Este comando cria uma tabela com colunas especficas-somente poder ser definido um mximo de 253 colunas para cada tabela. Para execut-lo necessrio ter autoridade RESOURCE, SYSADM ou DBA. Ao usar CREATE TABLE com constraints referenciais, voc pode definir uma chave estrangeira com as mesmas especificaes que a chave primria da tabela pai. Pode-se tambm especificar a regra de deleo da constraint referencial. A regra default RESTRICT.

Sintaxe : CREATE TABLE <nome_da_tabela> ( <nome_da_coluna> <tipo_de_dado> [NOT NULL] [NOT NULL WITH DEFAULT] ) [ PRIMARY KEY ( <nome_da_coluna> )] [ FOREIGN KEY [ <nome_da_chave> ] ( <nome_da_coluna> )
Pgina PAGE 582

Programando com o Centura Team Developer 2000

REFERENCES <nome_da_tabela_pai> [ ON DELETE [ RESTRICT] [ CASCADE] [ SET NULL]]] ) Argumentos : <nome_da_tabel Um nome de tabela qualificado tem a forma : identificador.nome da a> tabela, onde identificador o nome do criador da tabela. <tipo_de_dado> Uma coluna pode ter os seguintes tipos de dados: CHAR (tamanho) , VARCHAR (tamanho) , DECIMAL [(preciso, escala)] , FLOAT , INTEGER , LONG VARCHAR , NUMBER , SMALLINT , DATE , DATETIME , TIME , TIMESTAMP. PRIMARY Cria a chave primria para a tabela. KEY As seguintes regras se aplicam para a chave primria: - Se uma tabela possui chave primria, voc deve tambm criar um ndice nico baseado nas colunas da chave; - No pode conter mais de 16 colunas cuja soma do tamanho dos atributos dever ser menor que 255. Colunas do tipo LONG ou LONG VARCHAR no devero ser utilizadas; - Os valores da chave primria devem ser nicos; - Cada tabela s pode ter uma chave primria. FOREIGN KEY Especifica a chave estrangeira para uma tabela. Cada valor na chave estrangeira deve possuir um valor correspondente na chave primria da qual origina. <nome_da_chav Voc pode assinalar um nome chave estrangeira para identific-la. Este e> nome pode ter at 18 caracteres. Se ele no fornecido, o SQLBase cria um nome baseado na primeira coluna da chave estrangeira. REFERENCES Identifica a tabela pai em um relacionamento e define as restries necessrias. NOT NULL Requer que dados estejam presentes na coluna toda vez que uma linha for adicionada tabela. NOT NULL Esta clusula previne uma coluna de conter valores nulos e permite WITH valores default que no sejam nulos. DEFAULT ON DELETE Especifica as regras de deleo em uma tabela. O valor default RESTRICT. Estas regras s so usadas para definir uma chave estrangeira. CASCADE Apaga primeiro as linhas selecionadas, depois as linhas dependentes, ignorando as regras de deleo dos dependentes. RESTRICT Especifica que a linha s pode ser apagada se nenhuma outra linha depender dela. SET NULL Especifica que para cada deleo executada na chave primria, valores correspondentes da chave estrangeira so configurados como NULL. Exemplos :
Pgina PAGE 582

Programando com o Centura Team Developer 2000

CREATE TABLE EMP ( EMPNO INT NOT NULL , LNAME VARCHAR(15) , FNAME CHAR(10) , DEPTNO SMALLINT , HIREDATE DATE , JOB VARCHAR (15) PRIMARY KEY ( EMPNO ) ) CREATE TABLE EMPSAL ( EMPNO INTEGER, SALARY DECIMAL (9,2), REVISO LONG VARCHAR, PRIMARY KEY ( EMPNO ) , FOREIGN KEY ( EMPNO ) REFERENCES EMP ON DELETE CASCADE )

CREATE VIEW

Este comando cria uma viso a partir de uma ou mais tabelas, ou vises.
Voc pode modificar tabelas atravs de uma viso, somente se a viso referencia um nico nome de tabela na clusula FROM do comando SELECT, e as colunas da viso no so derivadas de funes ou expresses aritmticas.

Para criar uma viso, voc deve possuir privilgio de SELECT nas colunas das tabelas que compem a viso. Sintaxe : CREATE VIEW <nome_da_visao> [( <nome_da_coluna> )] AS SELECT [WITH CHECK OPTION] Argumentos : <nome_da_visao> <nome_da_coluna> O nome da viso deve ter a forma: identificador do dono.nome da viso Especifica nomes de colunas, devendo apenas ser especificado se voc deseja que as colunas da viso tenham nomes diferentes das colunas da tabela. Um comando SELECT que defina a viso. A viso contm as linhas resultantes da execuo deste comando SELECT. Voc no pode usar a clusula ORDER BY em uma definio de VISO. Faz com que todas as operaes de insero e atualizao atravs da viso sejam checadas contra a definio da viso, e rejeitadas caso no estejam em conformidade com a definio.
Pgina PAGE 582

SELECT

WITH CHECK OPTION

Programando com o Centura Team Developer 2000

Exemplos : CREATE VIEW PAY AS SELECT FNAME, LNAME, SALARY FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO CREATE VIEW DEPT_SAL (DEPT, TOTSAL) AS SELECT DEPTNO, SUM(SALARY) FROM EMP, EMPSAL WHERE EMP.EMPNO = EMPSAL.EMPNO GROUP BY DEPTNO; CREATE VIEW WEEK2 AS SELECT * FROM ORDERS WHERE ORDERDATE > = 05-JUL-94 WITH CHECK OPTION

DROP INDEX Este comando remove do banco de dados o ndice especificado. J os comandos pr-compilados, que referenciam ndices apagados, no so automaticamente deletados.

Um ndice s pode ser apagado por seu criador ou por um usurio com autoridade SYSADM ou DBA. Sintaxe : DROP INDEX <nome_do_indice> Argumentos : <nome_do_indice> Nome do ndice a ser removido. ndices de tabelas do sistema no podem ser removidos. Vises e tabelas existentes no so afetadas. Exemplo : DROP INDEX EMP_IDX;

DROP TABLE Este comando remove do banco de dados a tabela especificada. Os comandos pr-compilados que referenciam tabelas apagadas no so automaticamente deletados. J as triggers definidas para as tabelas so apagadas. Em um banco de dados com integridade referencial definida, ao apagar a tabela voc est apagando a sua chave primria, bem como as chaves estrangeiras em outras tabelas que faam referncia tabela pai. O comando DROP TABLE apaga todas as constraints nas quais a tabela apagada era pai ou dependente. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Uma tabela s pode ser apagada por seu criador ou por um usurio com autoridade SYSADM ou DBA. Sintaxe : DROP TABLE <nome_da_tabela> Argumentos : <nome_da_tabela> Esta clusula apaga os seguintes objetos: - a tabela especificada; - todos os sinnimos e ndices para a tabela; - todos os privilgios garantidos para a tabela; - todas as vises dependentes; - todas as triggers definidas para a tabela.

Exemplo : DROP TABLE EMP;

DROP VIEW Este comando remove do banco de dados a viso especificada. J os comandos pr-compilados que referenciam vises apagadas no so automaticamente deletados. Uma viso s pode ser apagada por seu criador ou por um usurio com autoridade SYSADM ou DBA.

Sintaxe : DROP VIEW <nome_da_viso> Argumentos : <nome_da_visao> Remove do catlogo do sistema a viso especificada, alm de todas as vises dependentes e seus privilgios.

Exemplo : DROP VIEW WEEK2

ROLLBACK

Este comando finaliza uma transao corrente.


Quando um comando ROLLBACK executado, o SQLBase aborta a transao corrente. Isto restaura o banco de dados, at o estado que ele estava antes do ltimo COMMIT ou ROLLBACK, ou, se isso no ocorreu, at o momento da conexo pelo usurio. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : ROLLBACK Exemplos : COMMIT; <SQL Command> <SQL Command> <SQL Command> ROLLBACK ;
Tabela dos comandos do SQLBase Nome Descrio

ALTER DATABASE ALTER DBAREA ALTER EXTERNAL FUNCTION ALTER PASSWORD ALTER STOGROUP ALTER TABLE ALTER TABLE (mensagens de erro) ALTER TABLE (integridade referencial) ALTER TRIGGER AUDIT MESSAGE CHECK DATABASE CHECK INDEX CHECK TABLE COMMENT ON

Altera o grupo de armazenamento ou log para um banco de dados. Altera o tamanho da rea do banco de dados. Altera a definio de uma funo externa. Altera a senha. Adiciona ou apaga uma rea do banco de dados de um grupo de armazenamento. Altera a definio de uma tabela. Torna as mensagens de erro especficas para uma determinada violao de integridade referencial. Adiciona ou apaga chaves primrias e estrangeiras. Habilita e desabilita triggers definidas em tabelas. Grava uma mensagem em um arquivo de auditoria. Verifica a integridade do banco de dados. Verifica a integridade de um determinado ndice. Verifica a integridade de uma determinada tabela. Substitui ou adiciona um comentrio definio de uma tabela, viso, coluna ou funo externa do catlogo do sistema. Finaliza uma unidade lgica de trabalho e efetiva alteraes por ela realizadas no banco de dados. Cria fisicamente um banco de dados. Cria uma rea de banco de dados. Cria um evento. Cria uma funo externa. Cria um ndice em uma tabela. Cria um grupo de armazenamento. Define um nome alternativo para uma tabela, view ou funo externa. Define uma tabela. Cria uma trigger.
Pgina PAGE 582

COMMIT CREATE DATABASE CREATE DBAREA CREATE EVENT CREATE EXTERNAL FUNCTION CREATE INDEX CREATE STOGROUP CREATE SYNONYM CREATE TABLE CREATE TRIGGER

Programando com o Centura Team Developer 2000

CREATE VIEW DBATTRIBUTE DEINSTALL DATABASE DELETE DROP DATABASE DROP DBAREA DROP EVENT DROP EXTERNAL FUNCTION DROP INDEX DROP STOGROUP DROP SYNONYM DROP TABLE DROP TRIGGER DROP VIEW GRANT (nveis de autoridade no banco de dados) GRANT (privilgios em tabelas) GRANT EXECUTE ON

Define uma viso de uma ou mais tabelas ou vises. Configura atributos especficos do banco de dados. Retira um banco de dados da rede, tornando-o no disponvel para usurios. Apaga uma ou mais linhas de uma tabela. Apaga fisicamente um banco de dados. Apaga fisicamente uma rea de banco de dados. Apaga um evento. Apaga uma funo externa.

Remove um ndice. Apaga um grupo de armazenamento. Apaga um sinnimo. Apaga fisicamente a tabela de um banco de dados. Apaga uma trigger. Apaga uma viso. Assinala nveis de autorizao ou privilgios para um banco de dados. Assinala um ou mais privilgios especficos para uma tabela ou view. Assinala privilgio usurios para execuo de stored procedures e funes externas. INSERT Insere uma ou mais linhas em uma tabela j existente. INSTALL DATABASE Coloca o banco de dados na rede, tornando-o acessvel por usurios. LABEL Adiciona ou altera etiquetas nas definies do catlogo. LOAD Carrega uma ou mais tabelas em um banco de dados. LOCK DATABASE Coloca um lock exclusivo no banco de dados, prevenindo conexes por outros usurios. PROCEDURE: Cria um procedimento. REVOKE Revoga nveis de autorizao ou privilgios para um banco de dados. REVOKE EXECUTE ON Revoga privilgio de usurios para execuo de stored procedures e funes externas. ROLLBACK Finaliza uma unidade lgica de trabalho e desfaz alteraes realizadas no banco de dados durante a ltima transao. ROWCOUNT Conta o nmero de linhas de uma tabela. SAVEPOINT Determina um ponto de checagem dentro de uma transao. SELECT Consulta tabelas ou vises. SET DEFAULT STOGROUP Especifica um grupo de armazenamento default. START AUDIT Inicia uma auditoria no banco de dados. STOP AUDIT Finaliza uma auditoria no banco de dados. UNLOAD Descarrega o banco de dados em um arquivo externo. UNLOCK DATABASE Libera o lock exclusivo de um banco de dados, colocado atravs do comando LOCK DATABASE. UPDATE Atualiza valores de colunas de uma tabela ou view. UPDATE STATISTICS Atualiza as estatsticas para um ndice de uma tabela.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tabela das Funes do Centura SQLBase Nome Descrio

AVG COUNT MAX MIN SUM @ABS @ACOS @ASIN ATAN @ATAN2 @CHAR @CHOOSE @CODE @COS @CTERM @DATE @DATETOCHAR @DATEVALUE @DAY @DECIMAL @DECODE @EXACT @EXP @FACTORIAL @FIND @FV @HEX @HOUR @IF @INT @ISNA @LEFT @LENGTH @LICS @LN @LOG @LOWER @MEDIAN @MICROSECOND @MID @MINUTE @MOD @MONTH @MONTHBEG @NOW

Mdia dos itens. Contador dos itens. Nmero mximo de itens. Nmero mnimo de itens. Somatrio dos itens. Valor absoluto.
Arco-coseno.

Arco-seno. Arco-tangente do segundo quadrante. Arco-tangente do quarto quadrante. Caracter ASCII de um cdigo decimal. Seleciona o valor de uma lista baseado em uma correlao. Cdigo decimal ASCII do primeiro caracter em uma string. Coseno. Perodo necessrio para se obter ganhos no futuro. Converte para valor do tipo data. Edita valor do tipo data. Edita valor do tipo data. Dia do ms. Valor decimal de uma string hexadecimal. Dada uma expresso, retorna uma string. Compara duas strings. Retorna logartmo natural base (e) elevado potncia x. Fatorial. Posio dentro da string1 que ocorre na string2. Valor futuro obtido a partir de uma srie de pagamentos iguais. String hexadecimal de um nmero decimal. Hora do dia. Testa nmero e retorna 1 se VERDADEIRO ou 2 se FALSO. Parte inteira. Retorna VERDADEIRO se NULO. Substring mais esquerda. Tamanho de uma string. Ordenao usando conjunto de caracteres internacionais. Logartmo natural base (e) de x (positivo). Logartmo de x na base 10. Maisculo para minsculo. Valor do meio de um conjunto de itens. Valor em microsegundos. Retorna uma string, comeando com o caracter em posio-inicial. Minuto da hora. Mdulo de x/y. Ms do ano. Primeiro dia do ms. Data e Hora correntes.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

@NULLVALUE @PI @PMT @PROPER @PV @QUARTER @QUARTERBEG @RATE @REPEAT @REPLACE @RIGHT @ROUND @SCAN @SDV @SECOND @SIN @SLN @SQRT @STRING @SUBSTRING @SYD @TAN @TERM @TIME @TIMEVALUE @TRIM @UPPER @VALUE @WEEKBEG @WEEKDAY @YEAR @YEARBEG @YEARNO

Retorna uma string ou nmero especificado por y se x NULO. Valor Pi ( = 3.14159265). Pagamentos necessrios para quitar um emprstimo. Converte o primeiro caracter de cada palavra de uma string para maisculo e torna os outros caracteres minsculos. Valor atual de uma srie de pagamentos iguais. Nmero que representa o trimestre. Primeiro dia do trimestre. Taxa de juros necessria para um investimento crescer para uma valor futuro. Concatena uma string com ela mesma por um determinado nmero de vezes. Substitui caracteres em uma string. Substring mais direita. Arredonda um nmero. Procura um padro em uma string. Desvio padro. Segundos do minuto. Seno. Depreciao linear. Raiz quadrada. Converte um nmero em uma string. Retorna uma parte da string. Mtodo da depreciao da soma dos dgitos do ano. Tangente. Nmero de perodos para pagamento de um investimento. Retorna um valor do tipo data/hora dados hora, minuto e segundo. Retorna um valor do tipo data/hora dados HH:MM:SS [AM ou PM]. Remove brancos; comprime mltiplos espaos. Minscula para maiscula. Converte uma string de caracteres contendo dgitos para um nmero. Primeiro dia da semana (segunda-feira). Dia da semana. O ano, tendo como base 1900. Primeiro dia do ano. Ano do calendrio.

Usando o Centura SQLBase atravs do CTD

A utilizao de uma base de dados numa aplicao desenvolvida em Centura Team Developer, na maioria dos casos, feita basicamente da seguinte forma :
Conectar a aplicao ao banco de dados

Para que voc possa utilizar um banco de dados necessrio estabelecer uma conexo entre a aplicao e a base de dados. Esta conexo feita, em CTD, utilizando-se a funo SqlConnect. O nome da base de dados que ser conectada deve estar na varivel do sistema
Pgina PAGE 582

Programando com o Centura Team Developer 2000

chamada SqlDatabase, assim como o nome do usurio e a senha devem estar nas variveis SqlUser e SqlPassword, respectivamente. Para saber se a conexo foi bem sucedida, verifique o valor retornado pela funo SqlConnect. Sendo a conexo realizada com sucesso, voc ter um handle sql conectado ao banco de dados. Podemos chamar tambm este handle sql de cursor, este termo tambm bastante utilizado e, em resumo, significa que existe um canal de comunicao entre a aplicao e o banco de dados. atravs deste canal de comunicao que toda a interao com o banco de dados realizada. Uma aplicao Centura pode ter um nmero teoricamente ilimitado de conexes simultneas com bancos de dados, inclusive com bancos de diferentes fornecedores. Por exemplo, voc pode conectar sua aplicao com bases de dados Centura SQLBase, Oracle/Unix, SqlServer/WindowsNT, DB2/MVS e DBFs/ODBC, ao mesmo tempo. Observe abaixo um cdigo padro, mostrando uma tpica conexo sendo feita :
Set SqlDatabase = "ISLAND"

Set SqlUser = "SYSADM" Set SqlPassword = "SYSADM" Call SqlConnect( hSql1 )

Obs :
Se voc executar as funes SqlImmediate ou SqlExists antes de executar SqlConnect, a aplicao ser automaticamente conectada ao banco de dados.

Compilar o comando SQL Aps a conexo ser realizada com sucesso, voc pode utilizar os comandos sql para consultar, incluir, alterar ou excluir informaes da base de dados conectada. Os comandos devem ser enviados ao servidor de banco de dados para que este analise o seu comando. Esta fase, chamada compilao, conhecida no CTD por preparao. Voc deve utilizar a funo SqlPrepare no CTD para realizar esta funo. O comando enviado ao servidor analisado, verificando-se a existncia de algum erro de sintaxe. As vises utilizadas so resolvidas, o comando otimizado, e ento gerado um plano de execuo.

Observe abaixo um cdigo padro, mostrando uma tpica preparao de um comando sql : Call SqlPrepare( hSql1 , SELECT COMPANY_NAME FROM COMPANY )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Definir alguns argumentos

O propsito desta fase identificar as variveis da aplicao que recebem os dados atravs do comando sql utilizado na fase anterior. Estas variveis so conhecidas no CTD pelo termo variveis INTO. Observe abaixo um cdigo padro, mostrando uma utilizao das variveis INTO : Call SqlPrepare( hSql1 , SELECT COMPANY_ID , COMPANY_NAME INTO :dfCodigo , :dfNome FROM COMPANY )

Obs :
Voc no pode deixar de utilizar os dois pontos : precedendo o nome de cada varivel citada na clusula INTO do comando sql. O compilador do CTD no faz esse tipo de verificao, e o erro ser identificado apenas em tempo de execuo da sua aplicao.

Executar o comando Este passo realizado pelo servidor de banco de dados, que ir verificar a existncia da utilizao de variveis BIND, obtendo os valores necessrios para a correta execuo do comando. Variveis BIND so, normalmente, variveis da aplicao CTD que possuem valores a serem obtidos pelo servidor antes que o comando sql seja executado. Geralmente so valores utilizados em codies. Voc deve utilizar a funo SqlExecute no CTD para realizar esta funo.

Observe abaixo um cdigo padro, mostrando uma utilizao das variveis BIND : Call SqlPrepare( hSql1 , SELECT COMPANY_ID , COMPANY_NAME INTO :dfCodigo , :dfNome FROM COMPANY WHERE COMPANY_ID = :nCodigo ) Call SqlExecute( hSql1 )

Obs :
Assim como as varaveis INTO, voc no pode deixar de utilizar os dois pontos : precedendo o nome de cada varivel BIND do comando sql. O compilador do CTD no faz esse tipo de verificao e o erro ser identificado apenas em tempo de execuo da sua aplicao. A principal diferena entre as variveis INTO e as variveis BIND que as variveis BIND so enviadas ao servidor para que o comando sql seja executado corretamente, exercendo influncia no resultado do comando. As variveis INTO so enviadas para a aplicao pelo servidor com os dados recuperados.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Recuperar os dados At este momento, o fluxo de informaes tem sido sempre da aplicao para o servidor. Nenhum dado retornou do servidor at agora. O nico modo de se obter informaes vindas do banco de dados fazendo uso do comando select e, ento, recuperando o resultado deste comando. Os passos anteriores so responsveis pela requisio dos dados, tarefas estas realizadas pelas funes SqlPrepare e SqlExecute, ou pela funo SqlPrepareAndExecute. Para se obter os dados resultantes do comando select que foi preparado e executado anteriormente, faz-se necessrio o uso das funes SqlFetchPrevious, SqlFetchRow e SqlFetchNext.

Ao conjunto de linhas que compem o resultado de um comando select, d-se o nome de result set. As funes SqlFetch* so responsveis pela navegao neste result set.
As funes SqlFetchPrevious e SqlFetchNext permitem a navegao para trs e para frente, respectivamente, uma linha por vez, atravs do result set. A funo SqlFetchRow permite que uma determinada linha seja posicionada sem que seja preciso navegar por todas as demais. Ou seja, salta direto para uma linha especfica. Este recurso chamado de scrolling. Existem duas funes que recuperam informaes do banco de dados carregando-as num objeto visual. Estas executam internamente as funes SqlPrepare, SqlExecute e SqlFetchNext. As funes SalTblPopulate e SalListPopulate carregam o result set obtido por um comando select em objetos do tipo table window, e em list box (ou combo box), respectivamente. Nestes casos, a navegao pelo result set no feita atravs do uso da funes SqlFetch*.

Obs :
A navegao no result set feita na mquina cliente e no na servidora. Por esse motivo, alguns cuidados devem ser observados para a obteno de resultados satisfatrios, como por exemplo o espao em disco disponvel na mquina cliente, pois, arquivos temporrios so gerados. Estes arquivos temporrios gerados podem, eventualmente, no serem apagados ao final do processo. Isto pode ocorrer em tempo de desenvolvimento. No esquea de apagar estes arquivos temporrios.

Finalizar a transao

Para encerrar uma transao voc deve utilizar um dos dois comandos disponveis, dependendo do caso em que se aplicar. Use o comando commit para tornar permanentes as edies feitas no banco de dados, ou ento, use o comando rollback para descartar qualquer modificao que tenha sido realizada.
Quando um destes comandos executado, todas as transaes abertas so destrudas, ou seja, qualquer comando que tenha sido preparado com as funes SqlPrepare, SqlPrepareAndExecute e SqlRetrieve so destrudas, sendo necessrio compilar novamente os comandos.

Para executar um comando commit voc pode utilizar a funo SqlCommit. No caso do comando rollback, voc pode fazer uso da funo SqlPrepareAndExecute( hSql , ROLLBACK ).
Desconectar do banco de dados Quando no for mais necessrio a utilizao de um handle sql, este deve ser desconectado. Para desconectlo voc deve utilizar a funo SqlDisconnect. Neste momento, o canal de comunicao que foi criado com a funo SqlConnect destrudo, liberando recursos de memria da estao cliente e do servidor. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Quando utilizar SqlPrepare / SqlExecute ou SqlPrepareAndExecute ?

Na maioria dos casos, no h diferena entre utilizar as funes SqlPrepare e SqlExecute com relao a utilizao da funo SqlPrepareAndExecute. Porm, importante observar dois detalhes: Call SqlPrepare( hSql, sComandoSql ) Call SqlExecute( hSql ) Que pode ser substitudo pelo seguinte cdigo : Call SqlPrepareAndExecute( hSql , sComandoSql )
Neste caso, claramente observada uma ntida vantagem na utilizao da funo SqlPrepareAndExecute, pois, em apenas uma chamada de funo, so executadas as duas tarefas anteriores, otimizando a utilizao da rede e do servidor do banco de dados. Isso, j pode ser bastante significante.

Observe este outro exemplo : Set nIndice = 1 While nIndice < 500 Call SqlPrepareAndExecute( hSql,INSERT INTO tab_a ( col1 ) VALUES ( :nIndice ) ) Set nIndice = nIndice + 1 Call SqlPrepareAndExecute( hSql, COMMIT ) Neste exemplo, so feitas 500 incluses no banco de dados, utilizando-se um lao While. Mltiplas atualizaes ao banco de dados podem causar problemas na estao cliente e junto ao servidor. Para evitar esse tipo de problema, podemos escrever um cdigo equivalente ao mostrado acima, porm, mais eficiente. Set nIndice = 1 Call SqlPrepare(hSql,INSERT INTO tab_a ( col1 ) VALUES ( :nIndice ) ) While nIndice < 500 Call SqlExecute( hSql ) Set nIndice = nIndice + 1 Call SqlPrepareAndExecute( hSql, COMMIT ) No primeiro exemplo, o comando preparado todas as 500 vezes ! Observe que a compilao do comando est fora do lao, ou seja, o comando preparado apenas uma vez. Nas demais vezes, ele apenas executado. Na preparao do comando montado o link com a varivel BIND nIndice, indicando que, quando o comando for executado pelo servidor, o valor de nIndice ser utilizado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 4
Programao Baseada em Eventos
O SQLWindows/32 uma linguagem de programao de quarta gerao, extremamente rica e poderosa, que tambm orientada a eventos. Alis, o SQLWindows/32, nasceu orientado a eventos. Portanto, de suma importncia ao desenvolvedor estar devidamente familiarizado com os conceitos que orientam o desenvolvimento de aplicaes baseadas em eventos.

Neste captulo, esses conceitos so apresentados de forma simples, utilizando exemplos de aplicaes que exploram recursos possveis de serem implementados apenas numa linguagem orientada a eventos, como o caso do SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Introduo
O Microsoft Windows um ambiente orientado a eventos. Todos os objetos de uma aplicao MS Windows so chamados de window objects. Esses podem ser form windows, data fields, combo box e table windows, entre outros. A responsabilidade em criar, manter e destruir os objetos de uma aplicao do Windows. dele tambm a tarefa de gerenciar os requisitos de memria e recursos para as aplicaes.

Linguagens como Pascal ou C so procedurais. O Centura SQLWindows/32 uma linguagem baseada em eventos e mensagens. Os objetos do SQLWindows/32 recebem a mensagem e executam a devida ao. Um evento, ou uma srie de eventos, geram uma mensagem e esta enviada aos objetos ativos que executam as devidas aes. Eventos e mensagens controlam todo o fluxo de execuo de um programa Centura. Podemos afirmar que o usurio final quem controla os eventos, assim como a aplicao. Por exemplo, o usurio pode clicar num conjunto de objetos e atingir um determinado resultado, clicando nos mesmos objetos, porm, numa outra seqncia, os resultados podem ser completamente diferentes. Todos os objetos do ambiente Windows comunicam-se por meio de mensagens. Mensagens so o protocolo para comunicao entre os objetos. Definio Eventos Num nvel bastante bsico, o Windows possui quatro eventos de hardware, a saber: : De teclado como teclas do cursor e teclas de funo. Do mouse como clique do boto esquerdo e clique duplo. De timers como o relgio interno. De Caneta ptica a leitura de dados atravs de uma caneta.
Existem muitos outros eventos derivados dos eventos de hardware e alguns outros que so gerados pelas aplicaes. Por exemplo, quando uma aplicao encerrada, um evento gerado, resultando no recebimento de uma mensagem pela janela principal.

Mensagens Uma mensagem um simples numeral hexadecimal compreendido entre o nmero 0 e 0xFFFF. Essas mensagens podem originar-se do prprio ambiente Windows, do SQLWindows32 ou do cdigo da aplicao. As aplicaes enviam mensagens aos objetos. Se um objeto possuir alguma ao preparada para essa mensagem, a ao executada. A nica forma de avisar a um objeto que uma mensagem chegou atravs do nmero da mensagem. Um evento gera uma mensagem e, se o objeto estiver preparado para esta mensagem, uma ao ser executada em resposta a mensagem enviada. Objetos

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Um objeto qualquer elemento visual ou no visual presente numa aplicao. Todos os objetos no Centura SQLWIndows32 possuem uma seo a ele correspondente no outline. No SQLWindows32 existem dois tipos de objetos:

Objetos Passivos: so objetos que no podem receber e nem enviar mensagens, eles no possuem a seo Message Actions no outline. Os objetos background text, group box, frame e line so exemplos de objetos passivos no SQLWindows32.
Objetos Ativos: so objetos que possuem a seo message actions no outline do SQLWindows32, possibilitando a recepo de mensagens. Tendo recebido uma mensagem, o objeto executa uma ao que pode envolver enviar outras mensagens a outros objetos. Por exemplo, quando o usurio clica num push button, uma mensagem SAM_Click enviada ao objeto. Neste exemplo, o message actions do objeto precisa estar preparado para receber essa mensagem e executar as aes devidas.
Pushbutton: pb1 Message Actions On SAM_Click ! Aes

O comando On SAM_Click informa ao objeto que execute uma ao, quando receber a mensagem cujo nmero corresponda constante SAM_Click.

Obs : Voc pode fazer uso das funes SalGetFirstChild e SalGetNextChild para acessar os objetos ativos e passivos numa aplicao.

Evento Mensagem Ao

Um evento faz com que uma mensagem seja enviada a um objeto. Se esse objeto captar a mensagem atravs do comando On, todo o bloco de ao subordinado executado at o fim, ou at que seja executado um comando Return. Nem todos os objetos recebem todas as mensagens. Por exemplo, apenas o objeto Aplicao recebe a mensagem SAM_AppStartup. A aplicao recebe essa mensagem antes que qualquer objeto visual seja criado. Um objeto push button no pode receber essa mensagem, assim como no faz sentido a aplicao receber a mensagem SAM_Click. As mensagens podem partir de trs locais distintos : MS Windows - Mensagens geradas pelo prprio sistema operacional. Por exemplo, WM_PAINT Aplicao Centura, atravs de interao do usurio - Mensagens geradas devido a aes do usurio. Por exemplo, SAM_Click. Aplicao Centura, via programao - Mensagens geradas por cdigo SAL.

Trs funes podem ser utilizadas para o envio de mensagens entre objetos: SalSendMsg Envia uma mensagem para a fila de mensagens de um objeto. SalPostMsg Envia uma mensagem para ser executada imediatamente por um objeto.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalSendMsgToChildren Envia uma mensagem para cada um dos objetos child, a qual deve ser executada imediatamente. Mensagens definidas pelo usurio Uma mensagem , basicamente, um nmero. Tanto o MS Windows quanto o Centura reservam um conjunto de nmero para mensagens. A Constante do SQLWindows32 SAM_User marca o fim das mensagens do MS Windows e do Centura, indicando o incio das mensagens disponveis para os usurios do SQLWindows32. Se o MS Windows ou o Centura adicionarem novas mensagens, o valor da constante SAM_User automaticamente incrementado, no ocorrendo impacto algum s aplicaes.

Informaes adicionais Fazendo parte de todo esse recurso de mensagens do sistema operacional, existem duas variveis do MS Windows que podem ser utilizadas para transmisso de parmetros. So elas: wParam ( 2 bytes tipo WORD ) Aceita valores entre 0 e 65.535 lParam ( 4 bytes tipo LONG ) Aceita valores entre 4.294.967.296 e 4.294.967.295 So comumente utilizadas nas aplicaes SQLWindows32. A utilizao da varivel wParam demonstrada no fragmento de cdigo abaixo:
Pushbutton: pbOk Message Actions On SAM_Click Call SalSendMsg( dfNOME , CEM_Limpa , TRUE , 0 ) Data Field: dfNOME Message Actions On CEM_Limpa If wParam Set MyValue = 'OK' Else Set MyValue = ''

No exemplo acima, o objeto dfNOME recebe a mensagem CEM_Limpa, enviada pelo push button pbOK e, dependendo do valor da varivel wParam. Caso o valor da varivel wParam seja TRUE, tomada uma determinada ao. Se o valor da varivel wParam for FALSE, uma outra ao tomada. Exemplo 1 Vamos construir uma aplicao extremamente simples, com base nos conceitos apresentados neste captulo, facilitando o entendimento dos mesmos. Lembre-se que os
Pgina PAGE 582

Programando com o Centura Team Developer 2000

problemas que voc ter de resolver, no dia-a-dia das empresas so bem mais complexos do que este exemplo; entretanto, adequado para ilustrar as teorias apresentadas at ento. 1- Inicie uma aplicao nova no Centura SQLWindows/32. 2- Defina uma Constante chamada CEM_Mensagem, na seo Constants do Global Declarations.

3- Construa um form window. 4- Coloque nele dois push button chamados, pbOK e pbLIMPAR, incluindo os seus devidos ttulos. 5- Trs data fields devem ser colocados neste form window. Sua janela deve parecer-se com a figura mostrada abaixo :

6- Insira o cdigo referente ao pbOK. No evento SAM_Click, envie a mensagem CEM_Mensagem a todos os objetos filho do form window, passando TRUE no parmetro wParam.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

7- O cdigo do pbLIMPAR. No evento SAM_Click, envie a mensagem CEM_Mensagem a todos os objetos filho do form window, passando FALSE no parmetro wParam.

8- O cdigo dos data fields so todos iguais. Capture a mensagem CEM_Mensagem e verifique o valor da varivel wParam. Quando wParam for TRUE ( 1 ) , escreva Ol no contedo do data field. Quando wParam for FALSE ( 0 ) , limpe o contedo do data field.

Se voc tiver alguma dvida, confira a listagem do cdigo fonte abaixo:


Pushbutton: pbOK Title: Ok Message Actions On SAM_Click Call SalSendMsgToChildren( hWndForm, CEM_Mensagem, TRUE, 0 ) Pushbutton: pbLIMPAR Title: Limpar Message Actions On SAM_Click Call SalSendMsgToChildren( hWndForm, CEM_Mensagem, FALSE, 0 ) Data Field: df1 Message Actions On CEM_Mensagem If wParam Set MyValue = 'Ol' Else Set MyValue = '' Data Field: df2

Pgina PAGE 582

Programando com o Centura Team Developer 2000


Message Actions On CEM_Mensagem If wParam Set MyValue Else Set MyValue Data Field: df3 Message Actions On CEM_Mensagem If wParam Set MyValue Else Set MyValue

= 'Ol' = ''

= 'Ol' = ''
partir do site

Voc pode fazer download dos arquivos fonte presentes no livro diretamente a http://www.centuraexplorer.com.br/livro_ctd2000/. Este exemplo chama-se exCap04_01.app.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 5
Programando com o Centura SQLWindows
Neste captulo desenvolveremos algumas aplicaes. Vrias telas de manuteno, consulta e um album de fotografias so montadas e explicadas em detalhes. Todos os programas fontes so disponveis para download no site http://www.centuraexplorer.com.br/livr_ctd2000/ alm de alguns outros exemplos e tutoriais. Nestes exemplos, demonstrado o uso das tcnicas mais comuns utilizadas na resoluo de problemas comerciais tpicos, encontrados nas empresas.

Neste captulo, utilizaremos o banco de dados que acompanha o prprio Centura Team Developer, as ferramentas de Bancos de Dados nele contidas, o Servidor de SQLBase, a base de dados de exemplos chamada ISLAND e o Database Explorer. Portanto, extremamente importante que a instalao do Centura Team Developer tenha sido realizada conforme as instrues descritas no Apndice F Guia de Instalao do Centura Team Developer 2000. 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. Essa abordagem mais avanada ser vista a partir do stimo captulo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Login do Sistema Esta a janela responsvel pela segurana do sistema. S podem ter acesso ao sistema os usurios autorizados, que tenham conhecimento da senha e de um determinado nome de usurio do banco de dados. No caso do nosso exemplo, o nome do usurio e a senha devem estar cadastrados no banco de dados que estiver sendo utilizado. Ou seja, s tm acesso ao sistema usurios cadastrados no banco de dados.

Esta janela 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 utilizado. Caso o usurio no digite corretamente uma senha e um nome de usurio vlidos, o sistema emitir uma mensagem de erro. A janela de login permanece ativa 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: Solicitar um nome de usurio e senha vlidos. 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( "Usurio ou senha invlidos." , "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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Depurando
Inicialmente, observe as variveis que esta janela utiliza. Na seo Window Parameters, declarado um parmetro da janela de login, tipo Receive Sql Handle ( prhSql ), que ser utilizado para retornar um handle vlido ao local de onde foi chamada a janela de login. J na seo Variables, declarada uma varivel tipo Sql Handle ( hSql ), que ser efetivamente utilizada na janela para a conexo. Esta declarao dupla se fez necessria, pois, a funo SqlConnect precisa de uma varivel como parmetro, no sendo possvel a utilizao de prhSql, uma vez que este j um parmetro da janela de login. O data field chamado dfSenha formatado com o atributo Invisible, que faz com que o contedo do campo no fique visvel ao usurio. Durante a digitao so mostrados asteriscos para garantir o sigilo da senha. No cdigo do evento SAM_Click no boto pbOK, o nome da base de dados a ser utilizada est sendo atribudo varivel do sistema chamada SqlDatabase. Este nome est fixo neste exemplo. Eventualmente, tambm poderia ser digitado na janela de login, assim como feito com o nome do usurio ( que atribudo a SqlUser ) e a senha do usurio ( que atribuda a SqlPassword ). Lembre-se, voc no precisa digitar estas trs variveis do sistema, pode escolher com o mouse atravs do uso do Coding Assistant. No combo box, escolha System Variables, assim, as variveis do sistema sero listadas, inclusive estas trs citadas acima. Ainda no cdigo do evento SAM_Click no boto pbOK, testado o retorno da funo SqlConnect. Se a funo apresentar algum erro ( retornando FALSE ), o fluxo do programa desviado para o cdigo imediatamente superior, o When SqlError, onde uma mensagem de erro mostrada ao usurio. Se tudo ocorrer bem, e a funo retornar TRUE, sgnifica que a conexo foi bem sucedida e que o programa pode continuar, ento, o handle sql que foi conectado em hSql atribudo a prhSql e a janela de login encerrada pela funo SalEndDialog, tendo como o seu segundo parmetro o valor TRUE, indicando o sucesso da operao de login. No cdigo do evento SAM_Click no boto pbCancelar, a janela de login encerrada pela funo SalEndDialog, tendo como o seu segundo parmetro o valor FALSE, indicando que o usurio cancelou a operao de login. Observe que o boto pbCancelar foi configurado de forma que, a qualquer momento que o usurio pressionar a tecla ESC, o cdigo deste objeto acionado. Isso feito atravs do atributo Keyboard Accelerator, e pode ser configurado atravs do Customizer ou do Attribute Inspector. Para obter maiores informaes a respeito da utilizao das funes do Centura, consulte o apndice F, Guia de Referncia das Funes SAL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Menu Principal. O Menu Principal a janela de onde todas as funes do sistema so acionadas, onde todos os menus esto definidos. Usaremos uma janela tipo MDI Window que a mais apropriada para esta funo, pois, possui a Interface de Mltiplos Documentos ( Multiple Document Interface ) permitindo que vrias janelas sejam administradas pela janela MDI.

Esta janela possui o seguinte comportamento : Somente aps o sucesso no login ( que foi programado no exemplo anterior ), 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" )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Menu Actions Call SalCreateWindow( frmFaturas , hWndMDI ) Menu Separator Menu Item: Sair Status Text: Sair do sistema. Menu Actions Call SalSendMsg( hWndMDI , SAM_Close , wParam ,lParam ) Tool Bar Contents Functions Window Parameters Window Variables Message Actions On SAM_Create If NOT SalModalDialog( dlgLogin , hWndMDI , hSql ) Call SalQuit( )

Depurando
Inicialmente, observe o evento SAM_Create no Message Action do mdiPrincipal, esta parte do cdigo a primeira a ser executada pela aplicao. Neste momento est sendo feita uma chamada ao dialog box dlgLogin, que foi definido no exemplo anterior. Conforme as definies l feitas, observe que, se o dialog box retornar FALSE, a aplicao encerrada atravs da funo SalQuit. Observe o menu Empresas, a seo Enable When, tem a finalidade de habilitar ou no o menu Empresas, de acordo com um valor lgico que ser avaliado ali. Neste exemplo, a funo SalFindWindow se encarrega de fazer a verificao da existncia de alguma janela com o nome informado e que ainda esteja aberta, caso encontre, retornar TRUE, fazendo com que o menu no fique habilitado para o usurio. Este um bom exemplo de como fazer para no permitir que a mesma janela seja acionada duas vezes, podendo vir a causar problemas para a aplicao. Ainda no menu Empresas, a seo Menu Actions contm todo o cdigo a ser executado quando o usurio acionar o menu. Neste caso, a janela frmEmpresa criada atravs do uso da funo SalCreateWindow. Todos os comandos do Centura podem ser utilizados num Menu Actions, exceto o comando On, que captura eventos ocorridos no sistema. Para obter maiores informaes a respeito da utilizao das funes do Centura, consulte o apndice F, Guia de Referncia das Funes SAL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Form de manuteno na tabela de empresas Esta tela de manuteno realiza as funes de consultar, imprimir, incluir, alterar e excluir informaes da tabela de empresa ( tabela COMPANY ) . 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 para os comandos Select, Insert, Update e Delete. Consulte o Captulo 3 Acesso ao SQLBase, para maiores informaes. Esta janela chamada pelo mdiPrincipal quando o usurio ativa o menu Empresas.

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 ( dfCOMPANY_ID ) e ento clicar no boto Procurar ( pbPROCURAR ). 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, para tanto basta clicar no boto identificado pelo smbolo |< ( pbPRIMEIRO ). Para ver o ltimo registro, s clicar no boto com o smbolo >| ( pbULTIMO ). Dessa forma, fica bastante fcil 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 ( pbGRAVAR ) . Assim possvel incluir uma nova empresa, o usurio necessita apenas preencher os campos e acionar o boto Gravar. O Boto Gravar distingue o momento correto de executar uma incluso ou uma alterao. Para excluir uma empresa, basta fazer uma consulta, localizar a empresa desejada e clicar no boto Excluir ( pbEXCLUIR ). Neste exemplo, a impresso do relatrio no tem nenhum relacionamento com os dados que estiverem sendo mostrados no momento. O relatrio impresso sempre com todas as empresas existentes no cadastro.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

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 ) 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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Data Type: String Message Actions On PAM_Limpa Call SalClearField( hWndItem ) Background Text: Estado Data Field: dfSTATE Data Maximum Data Length: 30 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: pbEXCLUIR 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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Window Parameters Window Variables 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 )

Depurando
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Observe as variveis definidas neste form na seo Window Variables. Atravs da varivel sWhere, demonstramos a utilizao de uma pesquisa onde a condio s conhecida quando em tempo de execuo. A varivel sWhere usada para montar a condio da busca de empresa. As demais variveis, sSqlSelect, sSqlInsert, sSqlUpdate e sSqlDelete so utilizadas para armazenar os comandos SQL Select, Insert, Update e Delete. A utilizao destas variveis pode ser observada no evento SAM_Create do form frmEmpresa, onde os comandos so atribudos s variveis e, posteriormente, nos botes pbGRAVAR e pbEXCLUIR, onde os comandos so efetivamente utilizados, junto ao banco de dados. Para a utilzao de todos os comandos sql desta janela, foi definido o handle de conexo chamado hSqlEmpresa. A varivel nTotalLinhas serve para o controle da navegao nos registros pesquisados. As demais variveis (address, city, company_id, company_name, url, country, phone e state ) so utilizadas para a emisso do relatrio das empresas. Sua utilizao se faz visvel junto ao evento SAM_ReportStart. Observe que o form window frmEmpresa foi configurado de forma a no ser criado automaticamente, atravs da propriedade Automatically Created at Runtime, que pode ser configurada no Customizer ou no Attribute Inspector. Neste exemplo utilizado botes na barra de ferramentas do form window frmEmpresa, portanto, observe o cdigo da seo Contents da Tool Bar deste form window. Todos os botes da tool bar possuem um cdigo bastante parecido, onde basicamente feita uma verificao para saber se a navegao pode ser realizada e, caso positivo, feita uma chamada funo SqlFetchRow para que a navegao seja efetivada. Caso a navegao no seja possvel, mostrada ao usurio uma mensagem de alerta explicando o problema, atravs da funo SalMessageBox. Observe que na utilizao desta funo usada uma constante do usurio chamada MSG_ErrNAV, que foi definida na seo Constants, no Global Declarations. Foi utilizada esta tcnica para demonstrar uma maneira de padronizar todas as mensagens de erro de navegao. Estando na seo Constants, observe a definio de uma outra constante chamada PAM_Limpa. Esta constante utilizada em todos os data fields para capturar o evento gerado pelo usurio para que os campos da janela sejam limpos, permitindo nova digitao. Observe o Message Actions do data field dfCOMPANY_ID. O evento PAM_Limpa capturado e a ao tomada a de limpar o contedo do objeto, a funo SalClearField faz isso. A prxima funo chamada SalEnableWindow, que disponibiliza o objeto para a utilizao do usurio. Este procedimento feito todas as vezes em que o data field dfCOMPANY_ID precise ser reiniciado. Os data fields restantes seguem o mesmo padro quanto ao evento PAM_Limpa. Ou seja, fazem uma chamada a funo SalClearField para que o seu contedo seja limpo. Observe que os objetos ( data fields ) os quais recebem os dados digitados pelo usurio, esto configurados conforme a definio da tabela no banco de dados, no que diz respeito aos tipos de dados e aos tamanhos dos campos. O evento SAM_Click no Message Actions do push button pbLIMPAR envia a mensagem PAM_Limpa ( utilizando a funo SalSendMsgToChildren ) para todos os objetos filhos do objeto identificado pelo handle hWndForm, que, neste caso, referese ao frmEmpresa. Este o procedimento mais recomendado, de forma que, cada objeto filho implemente seu prprio mtodo PAM_Limpa. Observe que o contador de linhas tambm iniciado. J o push button pbGRAVAR, identifica se a operao a ser executada uma incluso ou alterao, baseando-se no estado do objeto dfCOMPANY_ID. Se este objeto estiver
Pgina PAGE 582

Programando com o Centura Team Developer 2000

habilitado, significa que o usurio teve condies de digitar alguma informao neste objeto e , ento , acionar o boto de gravao. Quando isso acontece, deve ser realizada uma incluso. A alterao sempre realizada aps uma pesquisa, e, como est codificado no pbPROCURAR, assim que uma pesquisa realizada, o objeto dfCOMPANY_ID desabilitado. A funo SqlPrepareAndExecute prepara e executa os comandos Insert ou Update ( dependendo do caso ) para os dados que esto nos data fields. A funo SqlCommit encerra a transao. Logo em seguida, enviado ao boto pbLIMPAR o evento SAM_Click, simulando um click com o mouse no objeto, para que os campos da janela sejam reiniciados. O push button pbEXCLUIR s pode ser utilizado aps uma consulta, pois, s possvel excluir uma empresa que j encontra-se cadastrada no banco de dados. Por isso, a crtica feita saber se o objeto dfCOMPANY_ID est habilitado, se no estiver, significa que foi realizada uma consulta, podendo ento ser excluda alguma empresa. Mesmo aps essa crtica, ainda solicitada a confirmao do usurio. Logo em seguida, enviado ao boto pbLIMPAR o evento SAM_Click, para que os campos da janela sejam reiniciados. O push button pbPROCURAR o responsvel por buscar os dados no banco de dados e mostr-los nos data fields. Para isso, feita uma crtica, com o intuito de saber se o usurio informou o cdigo de alguma empresa ou se o usurio quer consultar todas as empresas, iniciando a navegao at encontrar a desejada. Essa crtica feita com o auxlio da funo SalIsNull. Observe que o comando where montado apenas se foi informado alguma empresa. A funo SqlPrepareAndExecute executa o comando montado, e a funo SqlFetchNext traz a primeira linha retornada no comando select executado, mostrando os dados nos data fields. Se SqlFetchNext retornar FALSE, significa que nenhuma linha foi encontrada com a condio especificada, ento, a varivel nTotalLinhas zerada. A funo SqlGetResultSetCount obtm o nmero total de linhas retornados pelo select executado, para controle da navegao dos registros. Ento, a funo SalDisableWindow desabilita o objeto dfCOMPANY_ID. Isso muito importante para o restante da aplicao, pois, baseado neste status do dfCOMPANY_ID que os push buttons pbGRAVAR e pbEXCLUIR so ou no executados. No message actions do push button pbIMPRIMIR est o cdigo responsvel por ativar o preview de uma listagem do cadastro de empresas. O push button pbCANCELAR envia uma mensagem de SAM_Close para o form, para que este form window seja encerrado, e ento o controle da aplicao passe para o mdiPrincipal. Observe o evento SAM_ReportStart no Message Actions do frmEmpresa. Este evento enviado para a aplicao pelo Report Builder e capturado quando o relatrio est pronto para ser formatado, ao ser iniciado. Neste momento, o comando select responsvel por capturar os dados da tabela de empresas preparado. Quando o evento SAM_ReportFetchInit capturado pela aplicao, o comando sql foi preparado no evento anterior executado. Todas as linhas do relatrio so transportadas do banco de dados ao relatrio no evento SAM_ReportFetchNext. Se a aplicao retornar FALSE, no evento SAM_ReportFetchInit ou no SAM_ReportFetchNext , o relatrio encerrado. Para obter maiores informaes a respeito da utilizao das funes do Centura, consulte o apndice F, Guia de Referncia das Funes SAL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

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. Neste exemplo, usaremos o objeto toplevel table window, onde os dados so trabalhados na forma de planilha. Assim, pode-se facilmente trabalhar com vrios registros simultaneamente. possvel incluir registros, alterar e excluir ao mesmo tempo. A table window um objeto bastante poderoso e complexo, conforme demonstramos nos recursos bsicos. As informaes so trazidas do banco de dados e mostradas na forma tabular, onde cada coluna visual representa uma coluna do banco de dados, ou um campo. Cada linha da table window refere-se a uma linha da tabela no banco de dados, ou, um registro. O encontro de uma linha numa determinada coluna recebe o nome de clula. Esta clula possui praticamente o mesmo comportamento de um data field, podendo inclusive assumir o comportamento de um combo box, multiline field ou check box, alm do comportamento de data field. Na lateral esquerda de cada linha da table window existe uma coluna cinza, no editvel. Esta coluna chama-se row header e normalmente utilizada para servir de sinalizador do status da linha da table window. no row header que mostrado os flags da linha. Consulte o Captulo 2 para obter maiores detalhes sobre a table window, seus flags e atributos.

O comportamento desta tela parecido com a tela de Empresas, porm, no existe a consulta, j que os dados so mostrados todos na table window. Um outro recurso interessante que demonstrado a utilizao da coluna Empresa ( colCOMPANY_NAME ), que foi programada e tem o comportamento similar ao objeto combo box. Observe o cdigo fonte :
Table Window: frmContatos Display Settings Initial State: Maximized Description:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

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 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 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 )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

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 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 )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Depurando
Observe a nica varivel definida na seo Window Variables deste form. Apenas uma varivel tipo sql handle ( hSqlContatos ) utilizada para realizar todas as operaes de pesquisa e manuteno na tabela. Esta varivel conectada ao banco de dados no evento SAM_Create do form. No evento SAM_Create do form feita a conexo com o banco de dados utilizando uma funo chamada fPopulate. Esta funo no faz parte das funes pr-definidas pelo Centura, trata-se de uma funo de usurio. Sua finalidade carregar os dados da tabela do banco de dados para a table window. Observe o cdigo da funo fPopulate, definida na seo Functions do top-level table window frmContatos. A funo SalTblPopulate executa o comando select e carrega os dados retornados na table window. Uma outra funo de usurio utilizada, a qual encontra-se definida na mesma seo Functions deste form. a funo fNovaLinha, que insere uma nova linha na table window e posiciona o cursor de edio na coluna colCONTACT_ID, para que o usurio inicie a digitao das informaes da nova linha. Ainda no Message Actions do do top-level table window frmContatos, observe o cdigo dos eventos SAM_RowHeaderClick, que desliga o flag de linha marcada para ser excluda, e o evento SAM_RowHeaderDoubleClick, onde a linha ento marcada para excluso. Essa ao de marcar/desmarcar a linha efetuada pela funo SalTblSetRowFlags. Na seo Contents esto definidas as colunas desta table window. Observe que para cada coluna foi configurado um tamanho mximo limitando que sejam digitadas informaes maiores do que a capacidade das colunas da tabela no banco de dados. A coluna colCOMPANY_NAME possui uma caracterstica especial, assumindo o comportamento de um combo box, que configurado atravs do customizer ou do attribute inspector. Observe o seu Message Actions. No evento SAM_Create, atravs da funo SalListPopulate, o Centura carrega para a coluna os nomes das empresas da table COMPANY. O evento SAM_AnyEdit utilizado para capturar o momento em que o usurio escolhe uma das empresas na lista. Neste momento, recuperado da tabela o cdigo da empresa escolhida, e este armazenado na coluna colCOMPANY_ID. Observe a utilizao da varivel de sistema chamada MyValue, que neste caso representa o texto escolhido na poro combo box da coluna. O restante do cdigo do programa est na seo Tool Bar. Observe que o push button pbNOVALINHA apenas faz uma chamada funo fNovaLinha. No evento SAM_Click do push button pbATUALIZAR so executados os comandos insert, update e delete, da forma mais simples a ser implementada no Centura, utilizando-se as funes SalTblDoInserts, SalTblDoUpdates e SalTblDoDeletes, que procuram na table window alguma linha marcada com os flags de incluso, alterao e excluso. Assim, pode-se efetuar a devida operao na tabela do banco de dados. O push button pbIMPRIMIR ativa o preview do relatrio, fazendo uso da funo SalReportTableView. Observe que a coluna colCOMPANY_ID mostrada (SalShowWindow) antes da chamada do preview do relatrio, e escondida (SalHideWindow) logo aps. Isso feito, pois a funo SalReportTableView s leva para o relatrio as colunas visveis da table window. Essa operao rpida o suficiente para que o usurio no perceba visualmente o ocorrido. Para obter maiores informaes a respeito da utilizao das funes do Centura, consulte o apndice F, Guia de Referncia das Funes SAL.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Construindo um lbum de fotografias


No exemplo que se segue demonstramos vrios recursos do SQLWindows/32 numa aplicao bastante simples e curiosa, um lbum de fotografias. Neste lbum, as fotografias so armazenadas numa base de dados SQL, mais especificamente, utilizando uma base Centura SQLBase. Este exemplo composto de trs janelas, sendo que, duas delas so do tipo dialog box e uma do tipo form window. Na figura abaixo, pode ser observada a janela principal do lbum de fotografias.

Janela principal do lbum de Fotografias. Atravs desta janela, possvel visualizar as diversas categorias de fotografias que j foram cadastradas no banco de dados. Assim que uma categoria escolhida, no list box Categoria, os nomes das fotografias nela cadastradas so listados no list box Imagens. Qua ndo o usurio clica no nome da fotografia, a imagem correspondente mostrada logo abaixo, no objeto picture. A qualquer momento podem ser acrescentadas novas categorias s j existentes. Essa funo acionada atravs do boto chamado Nova..., localizado logo acima do list box Categoria, onde so mostrados os nomes das categorias cadastradas. A janela onde as categorias so inseridas, mostrada na figura abaixo :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Janela de cadastramento de novas categorias.

A janela de incluso de categorias extremamente simples, possui um list box, onde so apresentados os nomes das categorias que j esto cadastradas na base de dados, e um data field para digitao do nome da nova categoria. O cadastramento das imagens feito atravs da janela mostrada na figura abaixo.

Janela de escolha de novas imagens. Esta janela apresenta alguns recursos interessantes e bem fceis de serem utilizados.
Logo de incio, o combo box Drive, que um combo especial, mostra de forma automtica todos os drives disponveis. Este combo box um dos objetos da biblioteca de classes Visual Toolchest, que acompanha o CTD.

O list box Diretrio, tambm um objeto da Visual Toolchest, apresenta um comportamento j bem familiar ao ambiente Windows, onde permitido navegar entre os diretrios do drive escolhido no combo box Drive.
Assim que o diretrio escolhido, os nomes dos arquivos so mostrados no list box abaixo, conforme o tipo de imagem escolhido no combo box Tipo de Imagem. Quando o usurio clica no nome de um arquivo, a imagem correspondente a este arquivo visualizada ao lado direito, num objeto picture.

Quando o usurio desejar incluir no banco de dados a imagem mostrada, basta clicar no boto Incluir. Para que este exemplo funcione corretamente, so necessrios dois pr-requisitos bsicos : 1 A biblioteca de classes Visual Toolchest deve estar disponvel. Caso no esteja, voc precisa instalar corretamente o CTD, para isso, siga as instrues descritas no Apndice F Guia de Instalao do Centura Team Developer 2000.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

2 As tabelas utilizadas neste exemplo precisam existir no banco de dados. Do contrrio, voc deve executar o programa dbAlbum.app, o qual se encontra disponivel para download no site http://www.centuraexplorer.com.br/livro_ctd2000/ . Obs : O programa fonte deste exemplo, Album.app, tambm pode ser encontrado no site.
Para programar este exemplo, necessrio informar ao Centura SQLWindows/32 que voc deseja utilizar a biblioteca de classes Visual Toolchest. Essa informao deve estar na seo do outline chamada Libraries. Para entrar com essa informao, siga os seguintes passos : 1 Inicie uma nova aplicao clicando no boto New. 2 No quadro do lado esquerdo do Centura SQLWindows/32, a rvore dos componentes da aplicao, clique uma vez no primeiro elemento da rvore, chamado Application1. 3 Agora, no quadro direito do Centura SQLWindows/32, onde mostrado o outline, clique na tab inferior chamada Libraries. Isto far com que apenas a seo Libraries seja mostrada no outline. A janela do Centura SQLWindows/32 deve estar conforme mostrada na figura abaixo :

Janela do Centura SQLWindows/32, mostrando uma aplicao nova. 4 No outline, clique na seo Libraries com o boto direito do mouse, fazendo com que o menu de contexto para o item Libraries seja mostrado. 5 No menu de contexto, apenas posicione o mouse sobre a opo chamada Add Next Level. Isso far com que um novo menu seja mostrado. Neste menu, aparecem os nomes das bibliotecas que podem ser adicionadas ao seu programa. Escolha, ento, a opo chamada Visual Toolchest. Isto far com que a biblioteca chamada vt.apl seja adicionada ao programa fonte.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A biblioteca Visual Toolchest sendo adicionada ao outline.

Observe abaixo, o fonte da janela principal do lbum de fotografias :


Form Window: frmAlbum Title: Album Accesories Enabled? Yes Tool Bar Contents Background Text: Categoria Pushbutton: pbINCLUIR_CATEGORIA Message Actions On SAM_Click If SalModalDialog( dlgINCLUIR_CATEGORIAS , hWndForm ) Call SalSendMsg( lbCATEGORIAS, CEM_Populate, wParam , lParam ) List Box: lbCATEGORIAS List Initialization Message Actions On SAM_Create Call SalSendMsg( hWndItem, CEM_Populate, wParam , lParam ) On CEM_Populate Call SalListPopulate( hWndItem , hSql, "SELECT NOME FROM IMG_CATEGORIAS" ) On SAM_Click Set sItemEscolhido = SalListQueryTextX( hWndItem , SalListQuerySelection( hWndItem ) ) Call SqlPrepareAndExecute( hSql , "SELECT ID_CATEGORIA INTO :nIdCategoria FROM IMG_CATEGORIAS WHERE NOME = :sItemEscolhido " ) Call SqlFetchNext( hSql , lParam ) Call SalSendMsg( lbIMAGENS, CEM_Populate, wParam , lParam ) Background Text: Imagens List Box: lbIMAGENS Message Actions On CEM_Populate Call SalListPopulate( hWndItem , hSql, "SELECT NOME_ARQ FROM FOTOS WHERE CATEGORIA = :nIdCategoria" ) On SAM_Click Set sImagem = SalListQueryTextX( hWndItem , SalListQuerySelection( hWndItem ) ) Call SqlPrepareAndExecute( hSql , " SELECT FOTO INTO :lsIMAGEM FROM FOTOS WHERE NOME_ARQ = :sImagem AND CATEGORIA = :nIdCategoria " ) If SqlFetchNext( hSql , lParam ) Call SalPicSetString( picIMAGEM , PIC_FormatObject, lsIMAGEM ) Pushbutton: pbEXCLUIR_IMG Message Actions On SAM_Click If IDYES = SalMessageBox( "Deseja realmente excluir a imagem " || sImagem || " ?" ,"Confirma excluso", MB_YesNo | MB_IconQuestion) Call SqlPrepareAndExecute( hSql , " DELETE FROM FOTOS WHERE nome_arq = :sImagem AND categoria = :nIdCategoria" ) If SqlCommit( hSql ) Call SalSendMsg( lbIMAGENS, CEM_Populate, wParam , lParam )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pushbutton: pbINCLUIR_IMG Message Actions On SAM_Click Call SalModalDialog( dlgINCLUIR_IMAGENS , hWndForm , nIdCategoria ) Call SalSendMsg( lbIMAGENS, CEM_Populate, wParam , lParam ) Contents Picture: picIMAGEM Fit: Size for Best Fit Tile To Parent? Yes Functions Window Parameters Window Variables String: sItemEscolhido Number: nIdCategoria String: sImagem Long String: lsIMAGEM Sql Handle: hSql Message Actions On SAM_Create Set SqlDatabase = 'ISLAND' Call SqlConnect( hSql ) On SAM_Close Call SqlDisconnect( hSql )

Depurando
Este form contm cinco variveis. sItemEscolhido utilizada no SAM_Click do list box lbCATEGORIAS, para armazenar o nome da categoria escolhida pelo usurio, assim como a varivel nIdCategoria armazena o cdigo da categoria escolhida. De forma similar a varivel sImagem utilizada no SAM_Click do lbIMAGENS, armazena o nome do arquivo da imagem que o usurio escolheu,. Ainda neste mesmo evento, a varivel lsIMAGEM serve de intermediria entre a imagem no banco de dados e sua representao visual ao usurio, atravs do objeto picIMAGEM. Uma imagem gravada no banco de dados precisa ser trazida aplicao numa varivel do tipo long string, para ser ento associada a um objeto picture. Isso feito utilizando-se a funo SalPicSetImagem. A varivel hSql o handle sql conectado ao banco de dados. Observe que, o cdigo do boto pbEXCLUIR_IMG faz com que uma caixa de dilogo padro do Windows pergunte ao usurio se ele deseja realmente excluir a imagem selecionada. Esse procedimento sempre adotado antes das excluses de informaes no banco de dados. O registro ser excludo apenas se o usurio confirmar a excluso, clicando no boto Sim. Observe que os botes pbINCLUIR_IMG e pbINCLUIR_CATEGORIA, apenas ativam a janela de incluso de imagens e categorias, respectivamente. Neste exemplo utilizado um evento definido pelo programador, chamado CEM_Populate. Esta definio feita na seo Constants do Global Declarations. Este evento permite forar a carga dos dados no objeto, neste caso, no lbCATEGORIAS e no lbIMAGENS. Para obter maiores informaes a respeito da utilizao das funes do Centura, consulte o Apndice F - Guia de Referncia das Funes SAL.

Observe abaixo o fonte da janela onde so includas novas categorias :


Dialog Box: dlgINCLUIR_CATEGORIAS Title: Categorias Contents Background Text: Nome da Nova Categoria Data Field: dfCATEGORIA Data

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Maximum Data Length: 40 Data Type: String Editable? Yes Background Text: Categorias existentes List Box: lbCATEGORIAS Message Actions On SAM_Create Call SalListPopulate( hWndItem , hSql, "SELECT NOME FROM IMG_CATEGORIAS" ) Pushbutton: pbOK Title: OK Message Actions On SAM_Click If fIncluiCategoria ( ) Call SalSendMsg( hWndForm , SAM_Close, 0, 1 ) Else Call SalSendMsg( hWndForm , SAM_Close, 0, 0 ) Pushbutton: pbCANCELAR Title: Cancelar Message Actions On SAM_Click Call SalSendMsg( hWndForm , SAM_Close, 0, 0 ) Functions Function: fIncluiCategoria Description: Returns Boolean: Parameters Static Variables Local variables Number: nIdCategoria Actions If SqlPrepareAndExecute( hSql , "SELECT NOME FROM IMG_CATEGORIAS WHERE NOME = :dfCATEGORIA" ) If SqlFetchNext( hSql , lParam ) Call SalMessageBox( "Categoria j cadastrada. Informe um nome diferente.", "Ateno", MB_Ok ) Return FALSE If SqlPrepareAndExecute( hSql , "SELECT MAX( ID_CATEGORIA ) + 1 INTO :nIdCategoria FROM IMG_CATEGORIAS" ) If SqlFetchNext( hSql , lParam ) If NOT ( nIdCategoria > 0 ) Set nIdCategoria = 1 If SqlPrepareAndExecute( hSql , "INSERT INTO IMG_CATEGORIAS ( ID_CATEGORIA , NOME ) VALUES ( :nIdCategoria , :dfCATEGORIA ) " ) Return SqlCommit( hSql ) Window Parameters Window Variables Sql Handle: hSql Message Actions On SAM_Create Call SqlConnect( hSql ) On SAM_Close Call SqlDisconnect( hSql ) Call SalEndDialog( hWndForm , lParam )

Depurando
Neste dialog box utilizada uma funo definida pelo usurio, chamada fIncluiCategoria. A definio desta funo est na seo Functions do dialog box dlgINCLUIR_CATEGORIAS. Esta funo executa basicamente trs comandos : O primeiro comando select verifica se a categoria que o usurio digitou j existe cadastrada no banco de dados, se existir, mostra uma mensagem ao usurio (categoria j cadastrada) e no processa o restante do cdigo da funo. O segundo comando obtm o valor mximo armazenado na coluna ID_CATEGORIA e acrescenta um a este nmero, que ser utilizado na gravao da nova categoria. Dessa forma, cada categoria possui um nmero diferente, sequencial e em ordem crescente. O terceiro comando
Pgina PAGE 582

Programando com o Centura Team Developer 2000

inclui a categoria digitada pelo usurio, com o cdigo obtido no comando anterior, na tabela IMG_CATEGORIAS. Observe que, o cdigo do boto pbOK faz uma crtica ao valor retornado pela funo fIncluiCategoria. Se a funo retornar FALSE, significa que a incluso no foi realizada com sucesso. Ento, enviada a mensagem SAM_Close para o top level, fazendo com que a janela seja encerrada. Se a incluso for bem sucedida, a mesma mensagem enviada, porm, o valor do ltimo parmetro da funo SalSendMsg 1, ou seja, lParam igual a 1. Observe que na mensagem SAM_Close do dlgINCLUIR_CATEGORIAS, a ltima funo utilizada, SalEndDialog, usa a varivel lParam no seu ltimo parmetro. Ess procedimento faz que a janela principal da aplicao, o frmAlbum, tome conhecimento do momento em que a incluso da categoria foi bem sucedida, para ento carregar novamente os dados no list box lbCATEGORIAS. Obtenha maiores informaes a respeito da utilizao das funes do SQLWindows/32 consultando o Apndice F - Guia de Referncia das Funes SAL.

Observe abaixo o fonte da janela onde so includas novas imagens :


Dialog Box: dlgINCLUIR_IMAGENS Title: Incluir Imagens Contents Background Text: Drive Combo Box: cmbDRIVE Class: cDriveComboBox Message Actions On SAM_Click Set sDrive = cmbDRIVE.GetSelectedDrive( ) Call SalSendMsg( lbDIR , CEM_Populate, 0, 0 ) Background Text: Diretrios Background Text: Pr-visualizao da imagem Background Text: Arquivos List Box: lbDIR Class: cDirListBox Message Actions On CEM_Populate Call lbDIR.Populate( sDrive ) On VTM_Click Call SalSendMsg( lbARQUIVOS, CEM_Populate, 0, 0 ) List Box: lbARQUIVOS Message Actions On CEM_Populate Call fCarregaArquivos( ) On SAM_Click Call SalPicSetFile( picPREVIEW , lbDIR.GetSelectedDir( ) || "\\" || SalListQueryTextX( hWndItem , SalListQuerySelection( hWndItem ) ) ) Picture: picPREVIEW Pushbutton: pbINCLUIR Message Actions On SAM_Click Call fIncluir( ) Pushbutton: pbFECHAR Message Actions On SAM_Click Call SalDestroyWindow( hWndForm ) Background Text: Tipo de Imagem Combo Box: cmbTIPO List Initialization Text: Windows ( *.bmp ) Text: Imagens Gif ( *.gif ) Text: Internet ( *.jpg ) Message Actions On SAM_Create Call SalListSetSelect( hWndItem , 0 ) On SAM_Click

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Call fCarregaArquivos( ) Functions Function: fCarregaArquivos Local variables String: sFiltro String: asArquivos [*] Actions Call SalListClear( lbARQUIVOS ) Set sFiltro = lbDIR.GetSelectedDir( ) || fGetTipoArquivo ( ) Call VisDosEnumFiles( sFiltro , FA_Standard , asArquivos ) Call fCopiaVetorParaLista( asArquivos , lbARQUIVOS ) Function: fGetTipoArquivo Returns String: Actions If cmbTIPO = "Windows ( *.bmp )" Return "\\*.bmp" If cmbTIPO = "Imagens Gif ( *.gif )" Return "\\*.gif" If cmbTIPO = "Internet ( *.jpg )" Return "\\*.jpg" Function: fIncluir Local variables Long String: lsIMAGEM String: sNomeArq String: sPathCompleto Actions Call SalPicGetString( picPREVIEW, PIC_FormatObject, lsIMAGEM ) Set sPathCompleto = lbDIR.GetSelectedDir( ) || SalListQueryTextX( lbARQUIVOS , SalListQuerySelection( lbARQUIVOS ) ) Set sNomeArq = SalListQueryTextX( lbARQUIVOS , SalListQuerySelection( lbARQUIVOS ) ) Call SqlPrepareAndExecute( hSql , "INSERT INTO FOTOS ( CATEGORIA , NOME_ARQ, DESC_FOTO , FOTO ) VALUES ( :pnIdCategoria, :sNomeArq, :sPathCompleto , :lsIMAGEM ) " ) If SqlCommit( hSql ) Call SalMessageBox( "Imagem foi includa com sucesso.", "Incluso de imagem", MB_Ok ) Window Parameters Number: pnIdCategoria Window Variables String: sCategoria String: sDrive Sql Handle: hSql Message Actions On SAM_Create Call SqlConnect( hSql ) Call SqlPrepareAndExecute( hSql , " SELECT NOME INTO :sCategoria FROM IMG_CATEGORIAS WHERE ID_CATEGORIA = :pnIdCategoria" ) If SqlFetchNext( hSql , lParam ) Call SalSetWindowText( hWndForm , "Escolher imagens a serem includas na categoria " || sCategoria ) On SAM_Close Call SqlDisconnect( hSql )

Depurando
Observe que este dialog box recebe um parmetro definido na seo Window Parameters, chamado pnIdCategoria. Este parmetro indica a categoria onde as imagens sero includas. O nome da categoria, mostrado na barra de ttulo do dialog box, atravs da funo SalSetWindowText, obtido no SAM_Create do dialog box. Observe que o cmbDRIVE pertence a uma classe de objetos especial, a classe cDriveComboBox. Este objeto no possui definies para o evento SAM_Create. As instrues para este evento encontran-se na classe. Apenas o cdigo do SAM_Click foi definido na instncia, e este obtm a letra do drive escolhido ( atravs da funo GetSelectedDrive ) enviando a mensagem CEM_Populate para o lbDIR, que mostrar os diretrios do drive selecionado.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

O objeto lbDIR tambm pertence a uma classe especial, chamada cDirListBox. Nesta esto codificados os procedimentos para que este objeto comporte-se de forma similar ao list box de diretrios do Windows. Isso feito para tornar a utilizao do objeto familiar aos usurios do Windows. Observe o cdigo do CEM_Populate do objeto lbARQUIVOS, onde feita uma chamada funo fCarregaArquivos, a qual definida na seo Functions. Nela, so utilizadas algumas funes da biblioteca Visual Toolchest, entre elas a funo VisDosEnumFiles, que obtm os nomes dos arquivos, de acordo com o filtro especificado na varivel sFiltro. A funo fCopiaVetorParaLista definida pelo programador, e seu cdigo ( conforme listado abaixo ) est presente na seo Internal Functions do Global Declarations. A cada clique do usurio num dos nomes das imagens, mostrados no lbARQUIVOS, executado o cdigo do evento SAM_Click, onde a funo SalPicSetFile mostra no objeto picture o contedo de um arquivo de imagem tipo bmp, gif ou jpg. Observe a forma como includa a imagem no banco de dados, na funo fIncluir. A funo SalPicGetString copia a imagem mostrada no objeto picture para a varivel lsIMAGEM, que gravada no banco de dados. Para obter maiores informaes a respeito da utilizao das funes do SQLWindows/32, consulte o Apndice F - Guia de Referncia das Funes SAL.

Segue abaixo o cdigo da funo fCopiaVetorParaLista :


Function: fCopiaVetorParaLista Description: Copia todos os elementos de um vetor tipo string para um objeto do tipo list box ou combo box. Parameters String: pasVetor [*] Window Handle: phWndLista Local variables Number: nNumElementos Number: nNumItem Actions Call SalArrayGetUpperBound( pasVetor , 1, nNumElementos ) While nNumItem <= nNumElementos Call SalListAdd( phWndLista , pasVetor [ nNumItem ] ) Set nNumItem = nNumItem + 1

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Debug do Centura SQLWindows/32 O debugador do Centura SQLWindows/32 uma poderosa ferramenta que voc tem em mos para auxli-lo no processo de depurar a aplicao e encontrar possveis falhas. Analisando a lgica de execuo da aplicao, o contedo das variveis e dos objetos, os valores de retorno das funes, entre outros recursos que tornam indispensvel o conhecimento do debug. Esta ferramenta mostrada a seguir. Para que voc possa depurar sua aplicao necessrio que a mesma esteja sendo executada a partir do Centura SQLWindows/32. No possvel depurar uma aplicao sendo executada a partir de um executvel. Mesmo no Centura SQLWindows/32, existem algumas situaes onde o depurador no atua. So elas : Funes externas Estas funes so, geralmente, definidas em arquivos tipo DLL e EXE, so normalmente geradas atravs de outros compiladores. Dynalibs Uma dynalib como uma DLL, o seu cdigo j est compilado e protegido. Objetos ActiveX As funes e eventos destes objetos tambm so protegidos, no sendo possvel depur-los. Porm, seus atributos esto acessveis ao depurador.

O processo de depurao consiste em identificar uma linha no cdigo fonte, onde, a partir desta linha, a execuo do programa poder ser acompanhada passo-a-passo, assim como os valores dos objetos, variveis etc, podero ser analisados, e at mesmo alterados. Para identificar a linha de cdigo desejada, voc deve clicar nesta linha com o mouse, e marcar a linha como breakpoint. Ento, a linha marcada ter sua cor alterada de modo a ser destacada visualmente das demais linhas do programa. Estando com uma linha marcada, ative ou desative um breakpoint de uma das seguintes maneiras : pressione a tecla de atalho F9. acione o menu de contexto e selecione a opo Toggle Breakpoint. acione o menu Debug / Breakpoints / Toggle.

Estes passos podem ser efetuados tanto em modo de execuo como em modo de design.

Obs : A linha marcada como breakpoint ser destacada das demais linhas do programa, conforme definio feita na janela de configuraes de preferncias. O default do Centura SQLWindows/32 mostrar os breakpoints na cor vermelha. Voc pode alterar este default acionando o menu Tools / Preferences, na rea de configuraes chamada Outline.

A barra de ferramentas do debug Quando o fluxo de execuo do programa atingir a linha marcada com o breakpoint, a execuo do programa ser interrompida e a janela da aplicao ser substituda pela janela do Centura SQLWindows/32, ento, o outline mostrado com a linha marcada com o breakpoint em destaque. Estar disponvel neste momento a barra de ferramentas do debug, onde possvel acionar algumas tarefas, conforme descritas abaixo :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As descries detalhadas de cada cone da barra de ferramentas do debug. Continue Use esta ferramenta para fazer com que o programa continue a ser executado normalmente, ou seja, sair do modo de depurao. Porm, se o fluxo de execuo do programa encontrar outro breakpoint, o depurador ativado novamente. Break Use esta ferramenta para fazer com que o fluxo de execuo do programa seja interrompido, no importando o local onde esteja, e o modo de depurao ser ativado. Step into Use esta ferramenta quando a linha a ser executada possuir uma funo cujo cdigo voc deseja depurar. O depurador entra na funo e continua a execuo, passo-a-passo, no seu message actions. Step over Use esta ferramenta quando a linha a ser executada possuir uma funo cujo cdigo voc no deseja depurar. O depurador executa a funo, porm, no mostra a sua execuo passo-a-passo, continuando o fluxo de execuo do programa. Observe que, se no message actions desta funo (ou de alguma funo que esta chamar) houver alguma marca de breakpoint, o depurador pra a execuo nessa linha. Variables Use esta ferramenta para visualizar numa janela os valores de algumas variveis selecionadas previamente. Atravs desta janela, possvel tambm adicionar algumas variveis, alm de expresses. Esta janela pode continuar sendo visualizada enquanto o programa depurado. Isso de grande utilidade, pois, nesta janela, voc pode inspecionar o valor de vrias vriveis ao mesmo tempo. Call stack Use esta ferramenta para visualizar numa janela todo o fluxo de execuo do programa, os objetos, eventos executados nestes objetos e funes chamadas. Esta janela mostra todas estas informaes na sequncia em que so chamadas, ajudando muito na depurao do cdigo. Messages Use esta ferramenta para visualizar numa janela todos os eventos que a aplicao est executando, at mesmo os eventos do sistema operacional. Esta ferramenta extremamente til, pois, atravs da janela por ela acionada, obtemos, alm dos nomes dos eventos executados, a informao de qual objeto recebeu determinado evento e os valores das variveis do sistema operacional lParam e wParam. Expressions Use esta ferramenta para visualizar uma janela que permite obter o valor de expresses e variveis, mesmo estas no estando relacionadas ao fluxo atual do programa.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 6
Utilizando os QuickObjects
Um dos recursos mais poderosos disponveis no Centura Team Developer so os QuickObjects. Utilizando-os voc poder desenvolver rapidamente aplicaes, sem a necessidade de codificao em SAL ( Scalable Application Language, a linguagem de programao do SQLWindows/32 ), no entanto, deve conhecer a maneira como o negcio da sua aplicao funciona. O Centura Team Developer dispe de uma arquitetura complexa e poderosa de objetos prconstrudos, inteligentes e expansveis. Os QuickObjects so construdos segundo os conceitos da teoria de Orientao a Objetos, obedecendo suas regras e sua hierarquia. Os QuickObjects so compostos de classes visuais e no visuais, que oferecem ao desenvolvedor uma maneira rpida e poderosa de se desenvolver aplicaes em SQLWindows/32, dispondo de variadas fontes de dados, incluindo-se bases de dados relacionais como SQLBase, Lotus Notes e sistemas de e-mail. Neste captulo, voc ir trabalhar com os QuickObjects que acompanham o SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A Arquitetura dos QuickObjects Os QuickObjects so desenvolvidos em linguagem SAL, utilizando-se tcnicas de orientao a objetos, portanto, uma vez conhecendo sua arquitetura, o programador poder perfeitamente criar novos QuickObjects a partir dos j existentes, ou at mesmo criar QuickObjects completamente novos. Existem trs tipos de QuickObjects Data Sources Visualizers Commanders

Data Sources Os QuickObjects Data Sources so utilizados para acessar dados estruturados, ou no, como por exemplo bancos de dados sql, e-mail e Lotus Notes. So representados visualmente por um objeto tipo child table. Cada coluna dessa child table corresponde a uma informao na fonte de dados. Os QuickObjects Data Sources para bancos de dados sql so representados numa aplicao SQLWindows/32 pela classe cQuickTable, e permitem acesso a todos os tipos de bancos de dados com os quais o SQLWindows/32 possui conectividade: Centura SQLBase, Oracle, Sybase, MS SQLServer entre outros. ( Consulte no Captulo 3 - Acesso ao SQL, a seo Conectividade, para maiores detalhes sobre a conectividade do SQLWindows/32 ) Os QuickObjects para sistemas de e-mail so representados numa aplicao SQLWindows/32 pela classe cQuickEMail, e suportam os sistemas de e-mail da Lotus ( VIM ), da Microsoft ( MAPI ) e da Novell ( MHS ). Os QuickObjects Data Sources so a parte principal do QuickObjects do SQLWindows/32, eles controlam o estado dos Commanders e o que ser mostrado nos Visualizers. Visualizers Os QuickObjects Visualizers so utilizados para mostrar e manipular os dados providos pelos QuickObjects Data Sources, estando sempre ligados a estes. Os QuickObjects Visualizers so associados aos QuickObjects Data Sources no momento em que o desenvolvedor est desenhando a tela, em tempo de design, atravs da Paleta de Controles. Os Visualizers podem ser personalizados pelo Customizer. Os QuickObjects Visualizers so representados visualmente, numa aplicao SQLWindows/32, pelas seguintes classes: cQuickField Similar ao objeto Data Field. cQuickMLField Similar ao objeto Multiline Text. cQuickRadio Similar ao objeto Radio Button. cQuickRadioGroup Similar ao objeto Radio Button. cQuickCheckBox Similar ao objeto Check Box. cQuickListBox Similar ao objeto List Box. cQuickComboBox Similar ao objeto Combo Box. cQuickPicture Similar ao objeto Picture. cQuickGraph Permite apenas visualizao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Commanders Assim como os Visualizers, os Commanders esto sempre ligados aos QuickObjects Data Sources, essa ligao feita em modo de design. Os comandos dependem do tipo do Data Sources associado, conforme relacionado abaixo: Comandos associados aos QuickObjetcs Data Sources para Bancos de Dados: Apply Faz as atualizaes necessrias, dos dados que tenham sido excludos, alterados ou includos. Similar ao comando sql commit. Delete Quando associado a um Data Source tipo Master, marca para excluso o registro pai e todos os filhos. Quando associado a um Data Source tipo Detail, marca para excluso apenas os registros selecionados no objeto filho. Discard Desconsidera todas as edies feitas nos dados contidos no Data Source ao qual o QuickObject Commander est associado, carregando novamente os dados da fonte de dados. Similar ao comando sql rollback. First Este um comando para navegao pelos dados do Data Source, faz com que o foco seja posicionado na primeira linha de dados. Last - Este um comando para navegao pelos dados do Data Source, faz com que o foco seja posicionado na ltima linha de dados. New Prepara o Data Source para a incluso de uma nova linha de dados. Next - Este um comando para navegao pelos dados do Data Source, faz com que o foco seja posicionado na prxima linha de dados. Previous - Este um comando para navegao pelos dados do Data Source, faz com que o foco seja posicionado na linha anterior. Retrieve Carrega todos os dados no QuickObject Data Source.

Comandos associados aos QuickObjetcs Data Sources para E-Mail: Address Obtm a lista de endereos dos destinatrios. Attach Anexa arquivos a uma mensagem. Forward Encaminha uma mensagem. Login Efetua login no sistema de e-mail. Logout Efetua logout no sistema de e-mail. Mark Read Marca uma mensagem como lida. Reply Responde uma mensagem ao destinatrio. Save Salva o contedo de uma mensagem. Send Envia uma mensagem.

Comandos associados aos QuickObjetcs Data Sources para Lotus Notes: First Move para o primeiro documento, no result set de documentos do Lotus Notes. Last - Move para o ltimo documento, no result set de documentos do Lotus Notes. Next - Move para o prximo documento, no result set de documentos do Lotus Notes. Previous - Move para o documento anterior, no result set de documentos do Lotus Notes. Retrieve - Carrega novamente os dados da fonte de dados. New - Prepara o Data Source para a incluso de um novo documento. Delete Marca um registro para ser excludo. Apply - Faz as atualizaes necessrias aos dados que tenham sido excludos, alterados ou includos. Discard Descarta as modificaes feitas, carregando novamente os dados da fonte de dados. Mail Mostra a caixa de dilogo para enviar correio do Notes. Replicate Server Cria uma rplica do servidor atual. New Replica Cria uma nova rplica do banco de dados atual no servidor escolhido.

Os QuickObjects Commanders no executam comando algum junto ao banco de dados, na realidade, eles apenas comunicam ao QuickObject Data Sources, a que esto relacionados, a ao a ser realizada. Por exemplo, quando o usurio aciona o comando First, o QuickObject Commander envia uma mensagem ao QuickObject Data Source, onde o comando First ser ento executado. Toda a interface entre a aplicao e o Pgina PAGE 582

Programando com o Centura Team Developer 2000

banco de dados feita sempre pelo QuickObject Data Source. Os demais QuickObjects fazem a solicitao junto ao Data Source, e este a executa junto ao banco de dados.

Ateno Ao desenvolver uma aplicao utilizando os QuickObjects da Centura, os QuickObjects Data Sources devem ser criados antes dos demais QuickObjects Commanders e Visualizers. Caso os Commanders ou Visualizers sejam criados antes, no ser possvel relacion-los a um QuickObjects Data Sources.

Como funciona um QuickObject ? Um QuickObject um objeto especial do SQLWindows/32 que possibilita o desenvolvimento de aplicaes sem a necessidade de escrever cdigo adicional. Isso no quer dizer que no seja possvel adicionar cdigo SAL a um QuickObject. Um QuickObject, assim como um objeto normal do SQLWindows/32, configurado atravs do seu Customizer ( ou Attribute Inspector ), porm, no caso dos QuickObjects, existe uma propriedade adicional. atravs dessa propriedade que o desenvolvedor tem acesso s configuraes Quick. Por exemplo, um QuickComboBox recebe, em tempo de design, a informao de qual comando sql deve ser executado para que as informaes, em tempo de execuo da aplicao, sejam mostradas ao usurio corretamente. Dessa forma, no existe a necessidade de codificao pelo programador. Existem duas formas bsicas pelas quais os QuickObjects trabalham, so elas: Gerao de Cdigo Uma das maneiras de trabalhar dos QuickObjects, que tornam os objetos do SQLWindows/32 avanados e poderosos, a Gerao de Cdigo SAL. Um QuickObject, como por exemplo uma classe cQuickTable, em tempo de desenvolvimento, cria as colunas, na seo Contents da table window, equivalentes ao comando sql necessrio para carregar os dados, quando a aplicao estiver sendo executada. Essa gerao de cdigo j utilizada nos QuickObjects do Centura ( que acompanham o pacote do CTD ), est tambm disponvel aos programadores atravs da interface provida pelo Components Developer Kit, o CDK, porm, no entraremos em detalhes sobre esse assunto agora. O CDK estudado no Captulo 10 Criando seus prprios QuickObjects. Nomeao de Propriedades A outra forma de trabalhar dos QuickObjects, que expande as caractersticas naturais dos objetos Centura, chamada Named Properties, algo como Nomeao de Propriedades. Funciona baseada em propriedades e seus valores. Uma propriedade basicamente composta de dois elementos: um nome e um valor. Cada um dos elementos mostrados no Customizer de um objeto uma propriedade com um valor associado. Essas propriedades so configuradas em tempo de design, ou seja, quando o objeto ainda est sendo criado pelo programador. Por exemplo, um data field possui uma propriedade chamada Editable, que pode possuir dois valores, Yes ou No, determinando quando o usurio poder editar o valor deste data field. Essa propriedade, e todas as demais que so mostradas num Customizer de um objeto do SQLWindows/32, so propriedades naturais do objeto. A Nomeao de Propriedades consiste na definio de propriedades adicionais. Por exemplo, esse mesmo data field poderia conter uma propriedade nomeada pelo desenvolvedor chamada TextoExplicativo, utilizada para que, em tempo de execuo, quando o mouse estivesse por cima do objeto, o valor da propriedade TextoExplicativo fosse mostrado na barra de status do form.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Construindo uma Aplicao Vamos criar uma tpica aplicao de negcios, utilizando o QuickObject chamado QuickForm, que acessar duas tabelas relacionadas. Utilizaremos a base de dados ISLAND, que acompanha o CTD, e que instalada conforme as instrues do Apndice F Guia de Instalao do Centura Team Developer 2000 . A tabela COMPANY ser a tabela principal da nossa aplicao, tambm chamada de tabela Master, e a tabela INVOICE ser a tabela filha, tambm chamada tabela Detail. Essa aplicao ser capaz de realizar a navegao atravs de todos os registros da tabela COMPANY, sendo que, sempre sero mostrados os registros da tabela INVOICE relacionados empresa que estiver com o foco. Ou seja, para cada empresa escolhida, sero apresentadas as invoices pertencentes a essa empresa. Alm da navegao, ser possvel tambm realizarmos alteraes de informaes, incluses e excluses. A aplicao ser capaz de realizar todas essas atividades, sem que seja necessrio qualquer conhecimento da linguagem SAL pelo programador, pois, no ser preciso escrever cdigo algum. Acompanhe as instrues a seguir, para criar uma aplicao de acesso a banco de dado, utilizando os QuickObjects do SQLWindows/32: Inicie o Centura SQLWindows/32 clicando no respectivo cone do menu iniciar. Normalmente o menu do Centura est localizado no Menu iniciar | Programas | Centura | Team Developer 2000 . Ento escolha o cone do SQLWindows 2000. Voc deve ativar o Assistente do QuickForm que est localizado na caixa de dilogo onde concentram-se todos os Assistentes do SQLWindows/32. Essa caixa de dilogo recebe o nome de Wizards, e pode ser acionada atravs do boto chamado Wizards, situado na barra de ferramentas do SQLWindows/32. Ou atravs do menu Component | Wizards. - boto chamado Wizards, situado na barra de ferramentas do Centura SQLWindows/32.

O menu Component | Wizards.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na janela Wizards, selecione o Assistente chamado QuickForm, e clique no boto Start.

A janela Wizards. Na janela inicial do Assistente QuickForm, escolha: Tipo de form: Form Window Posio da ToolBar: Top E clique no boto Next.

Assistente do QuickForm, escolha aqui a aparncia da sua aplicao. Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Assistente do QuickForm precisa agora conectar-se ao banco de dados. Efetue a conexo atravs da janela abaixo, Database Login, informando o nome da base de dados. Neste exemplo utilizaremos a base chamada ISLAND. Informe SYSADM, no campo nome do usurio, e senha.

A janela Database Login, do QuickForm. O prximo passo agora escolher os nomes das tabelas que sero os Data Sources da aplicao. Escolha inicialmente a tabela COMPANY. Quando voc escolhe uma tabela, o seu nome e os seus campos so mostrados no quadro do lado direito. Isso pode ser feito de uma das seguintes formas: Clicando duas vezes no nome da tabela desejada. Clicando uma vez no nome da tabela e arrastando para o quadro do lado direito. Clicando ou utilizando as teclas para cima e para baixo, posicionando o foco no nome da tabela desejada, e clicando no boto Choose Source.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc deve, neste momento, saber quais colunas da tabela escolhida devero fazer parte da sua aplicao. Observe que, ao escolher a tabela COMPANY, no quadro do lado direito apareceu o nome da tabela e os nomes de todas as colunas que a compem. Ao lado do nome de cada coluna existe um cone amarelo. A aplicao gerada pelo QuickForm ir considerar apenas as colunas que possurem esse cone ao seu lado. Ento, basta clicar uma vez no nome da coluna que voc no quer que aparea na sua aplicao. Para esse exemplo, deixe marcadas as colunas conforme a figura anterior, ou seja, as colunas COMPANY_ID, COMPANY_NAME, CORPORATE_URL e PHONE devem estar selecionadas. A tabela COMPANY a tabela master dessa nossa aplicao. Voc deve agora escolher a tabela detail, ou seja, a tabela INVOICE. Siga os mesmos procedimentos utilizados na escolha da tabela COMPANY, selecionando a tabela INVOICE e deixando visveis todas as suas colunas. Conforme a figura abaixo :

Tabelas Master e Detail da nossa aplicao. Observe que, as duas tabelas foram ligadas visualmente. Um link foi feito ligando a tabela COMPANY tabela INVOICE. Esse link o relacionamento entre os dois Data Sources que sero criados na sua aplicao. Clique ento no boto Finish para que o QuickForm crie a aplicao, que deve ter o visual semelhante ao mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Janela da aplicao gerada pelo QuickForm. Observe que o Centura SQLWindows/32, automaticamente, posiciona a aplicao gerada na Tab chamada Layout. Isso faz com que a janela da aplicao seja vista. Dessa forma, nesta aplicao, podemos facilmente observar os trs tipos de QuickObjects de que falamos no incio deste captulo. Os pushbuttons so os Commanders ( First, Prev, Next, Last, Retrieve, New, Delete, Apply e Discard ), os data fields so os Visualizers ( Company Id, Company Name, Corporate Url e Phone ) e a child table window o QuickObject Data Source para a tabela INVOICE. Suas colunas so Visualizers. O Data Source da tabela COMPANY est com a propriedade Visible configurada para No, por esse motivo, no est visvel. Neste momento, voc pode alterar, da maneira que desejar, a posio dos objetos gerados pelo QuickForm. A aplicao est pronta para ser executada. Pressione a tecla F7 ou acione o menu Debug | Go. Quando o SQLWindows/32 pedir que a aplicao seja salva, informe o nome qckForm1.app, para facilitar futuras referncias. Com a aplicao em execuo, clique nos botes Last, Prev, Next e First da barra de ferramentas para navegar pelos registros da tabela master, a tabela COMPANY. Observe que cada vez que uma nova empresa selecionada, a child table onde so mostradas as INVOICES atualizada com as informaes referentes empresa escolhida.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Aplicao gerada com o QuickForm sendo executada. Observe o cdigo fonte gerado pelo QuickForm, esto l todos os objetos e seus respectivos cdigos necessrios para o funcionamento correto da aplicao. Para ver o cdigo fonte da aplicao: Volte ao Centura SQLWindows/32, fechando a janela da aplicao gerada pelo QuickForm, que est sendo executada. Clique na Tab chamada Outline, isso far com que o SQLWindows/32 mostre o cdigo fonte gerado pelo QuickForm momentos antes.

Sua janela dever se parecer com a figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Viso do outline mostrando o cdigo fonte gerado pelo QuickForm. A aplicao est pronta e voc pode realizar quaisquer alteraes que julgue necessrio. Por exemplo, altere o nmero de colunas visveis na table window onde aparecem as INVOICES. No necessrio que as colunas COMPANY_ID e COMPANY_NAME estejam visveis. Ento, atravs do customizer ( ou do Attribute Inspector) de cada uma, atribua No propriedade Visible. Na figura abaixo, a coluna COMPANY_ID est sendo configurada atravs do Attribute Inspector.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Coluna Company_id sendo configurada, atravs do Attribute Inspector.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Alterando e expandindo a aplicao Nesta aplicao montada, voc tem, rapidamente, as informaes sobre as INVOICES da empresa desejada. Vamos agora acrescentar uma outra tabela a nossa aplicao. Ser uma tabela filha da tabela INVOICES, contendo os itens que compem a INVOICE selecionada na child table. Ou seja, acrescentaremos agora aplicao um terceiro QuickObject Data Sources, correspondente tabela do banco de dados, chamada INVOICE_ITENS. No SQLWindows/32, selecione a Tab chamada Layout para que a janela da aplicao seja visualizada. Ative a paleta de controles ( pressionando Alt-4 ) e escolha o controle tipo child table window.

Controles. Em destaque, a classe cQuickTable. Neste momento, sero mostrados na paleta de controles os nomes das classes de child table. Clique uma vez na classe chamada cQuickTable e coloque na janela da aplicao a child table. Imediatamente, aps esse ato, a child table window ser desenhada no local onde voc colocou, acionando pelo SQLWindows/32, a janela de configurao da classe cQuickTable. Essa janela aparecer solicitando as informaes para login na base de dados. Informe os valores: ISLAND, SYSADM e SYSADM para Database, User Name e Password, respectivamente. Em seguida, na janela chamada cQuickTable Properties, voc dever informar o nome da tabela que ser utilizada como Data Source, na child table colocada na aplicao. Escolha ento a tabela desejada, clicando duas vezes no nome da tabela chamada INVOICE_ITEM. So mostrados os nomes das colunas. Escolha as colunas que devero fazer parte da aplicao. Para este exemplo, selecione todas as colunas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Janela de configurao das propriedades da classe cQuickTable.

Os pushbuttons dessa janela sero habilitados neste momento, clique no pushbutton chamado Sort, e informe a coluna chamada ITEM_NO. Clique ento no boto Ok.

Janela para informar a classificao dos dados. De volta janela principal das propriedades da classe cQuickTable, clique no pushbutton Apply para que o QuickObject escreva as instrues referentes s configuraes realizadas. A aplicao ser gerada, ou melhor, ao cdigo j existente, um novo cdigo, referente ao QuickObject Data Source, ser acrescentado a tabela INVOICE_ITEM. Devemos relacionar a tabela INVOICE_ITEM com a sua tabela pai, no caso, a tabela INVOICE. Para isso, siga os seguintes passos: Pgina PAGE 582

Programando com o Centura Team Developer 2000

Clique com o boto direito do mouse na child table window tblINVOICE1, que a tabela correspondente ao Data Source para a tabela INVOICE. Ao aparecer o menu de contexto, conforme a figura abaixo, clique na opo chamada Quick Table.

Menu de contexto, permiti acesso janela de configurao das propriedades da cQuickTable. Assim, voc tem acesso janela de configurao das propriedades do cQuickTable, onde o pushbutton Links deve ser pressionado. Isso far com que voc tenha acesso janela de configurao dos links, mostrada na figura abaixo, onde os Data Sources so relacionados entre si. Escolha, ento, no list box Master Table Columns, a coluna INVOICE_NO, pois esta a coluna chave da tabela INVOICE. No lado direito, no combo box Detail Tables\Columns, voc deve clicar no nome da child table tblINVOICE_ITEM3, que foi adicionada aplicao recentemente. Clique no pushbutton New.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Definio do relacionamento entre os Data Sources INVOICE e INVOICE_ITENS. Clique no pushbutton OK para salvar esta configurao. De volta janela de configurao da cQuickTable, clique no pushbutton Apply para salvar as alteraes, e para que as configuraes sejam aplicadas ao programa fonte. Se voc desejar, altere a propriedade Visible da coluna INVOICE_NO para No, pois, no necessrio que essa esteja visvel. Feito isso, execute novamente a aplicao para realizar um teste. Observe que, para cada INVOICE escolhida, sero listados agora todos os itens que a compem.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Nesta figura pode ser observada todos os itens que compem uma INVOICE. Observe na figura acima que, os valores da coluna Color formam um conjunto de valores que podem ser apresentados de outra forma, visualmente, atravs de outro objeto. Esse um timo exemplo para conhecer a funcionalidade de um outro QuickObject, o QuickRadioGroup. Acione a paleta de controles do SQLWindows/32 e selecione o controle Radio Button. Ao fazer isso sero mostradas na paleta as classes de radio button disponveis. Escolha a classe cQuickRadioGroup. O Centura identifica que essa corresponde a uma classe de QuickObjects e, imediatamente, a paleta de controles passa a mostrar tambm os nomes dos Data Sources disponveis. Selecione o Data Source chamado tblINVOICE_ITEM3 e a coluna COLOR, conforme mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Paleta de controles. Esse QuickObject far uma consulta ao banco de dados pela coluna COLOR, utilizando a clusula DISTINCT no comando select, obtendo assim os valores existentes na coluna escolhida. Para cada valor retornado, este QuickObject cria um radio button na aplicao, fazendo com que a mesma fique assim:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

QuickRadioButton criados a partir da coluna COLOR. Na verdade, cada item dessa INVOICE corresponde a um pedido de camisetas, indicando a quantidade, o preo e a estampa. A estampa correspondente ao item a informao contida na coluna STYLE_ID. Utilizaremos essa informao para mostrar a imagem da estampa num objeto picture, tambm sem escrever nenhuma linha de cdigo SAL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O processo agora o mesmo utilizado nos exemplos anteriores. Acione a paleta de controles ( Alt-4 ). Escolha o objeto tipo child table. Selecione a classe cQuickTable, para adicionar um novo QuickObject Data Source. Ao colocar essa child table da classe cQuickTable na sua aplicao, aparecer a janela de configuraes da classe. Efetue o login e selecione a tabela chamada PRODUCT. Dessa tabela, escolha apenas as colunas STYLE_ID e PICTURE. Clique em seguida no pushbutton Apply. A child table chamada tblPRODUCT4 criada e as duas colunas escolhidas so colocadas no seu interior. Voc precisa agora relacionar os dois Data Sources. Ento, clique com o boto direito do mouse na tblINVOICE_ITENS3 e escolha no menu de contexto a opo chamada Quick Table. Efetue o login, se for necessrio. Na janela de configurao das propriedades do objeto tblINVOICE_ITENS3, clique no pushbutton Links para relacionar o Data Source com o recm includo tblPRODUCT4. A coluna a ser utilizada para relacionamento a coluna chamada STYLE_ID. No esquea de pressionar o pushbutton New. Clique no boto OK e, na janela de configurao das propriedades, pressione o pushbutton Apply. Selecione, na paleta de controles, o objeto tipo picture, a classe cQuickPicture e o Data Source que voc acabou de adicionar, ou seja, tblPRODUCT4. Selecione ento a coluna PICTURE, colocando-a na sua aplicao. Voc j pode executar a aplicao. Observe que, para cada item selecionado na child table tblINVOICE_ITENS3, a imagem correspondente ser mostrada no objeto picture.

Visualizao da estampa da camiseta. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc tem pronta uma aplicao que trabalha com quatro tabelas relacionadas entre si, completamente funcional, mostrando inclusive figuras, sem digitar nenhuma linha de cdigo SAL. Os prximos passos so, estudar os outros QuickObjects do SQLWindows/32, que so mostrados no Captulo 7 Explorando os QuickObjects, e aprender a construir seus QuickObjects no Captulo 10 Criando seus prprios QuickObjects.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 7
Explorando os QuickObjects
Dando prosseguimento ao Captulo 7, onde foram apresentados os conceitos bsicos dos QuickObjects do SQLWindows/32, apresentaremos neste captulo mais alguns QuickObjects, que auxiliaro o programador a construir aplicaes avanadas. Sero abordados os principais quickobjects disponveis, com exemplos e instrues passo-apasso para que voc, ao trmino do estudo, esteja apto a aplicar os recursos aqui demonstrados.

O estudo deste captulo possui dois pr-requisitos: extremamente necessrio que o Captulo 6 tenha sido estudado e compreendido totalmente, pois, uma srie de instrues contidas nestes dois captulos, so idnticas. Porm, no sero explicadas detalhadamente novamente, j que o fizemos no capitulo 6. importante lembrar que, para que todos os QuickObjects aqui citados estejam disponveis, necessrio que as instrues descritas no Apendice A Guia de Instalao do Centura Team Developer 2000, tenham sido seguidas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Usando os QuickTabs Os QuickTabs so os QuickObjects do SQLWindows/32 que facilitam a utilizao dos controles de Tabs nas aplicaes escritas em linguagem SAL. Os controles de Tabs so extremamente teis quando se faz necessrio mostrar muitas informaes numa mesma janela. Com as Tabs possvel que, na mesma janela, sejam mostradas muitas informaes divididas em categorias, por exemplo. Com os QuickTabs voc poder construir aplicaes no SQLWindows/32 onde os recursos visuais sero idnticos aos encontrados normalmente em ferramentas como o Microsoft Office. No Captulo 6 foi desenvolvida uma aplicao envolvendo as tabelas de company, invoice, invoice_item e product. Todas estas informaes foram colocadas numa mesma janela, tornando-a um pouco apertada devido ao grande nmero de informaes presentes. Agora ser desenvolvida a mesma aplicao, porm, as informaes sero divididas em categorias e colocadas em Tabs. Observe na figura abaixo a aplicao que voc ir construir utilizando os QuickTabs :

Janela da aplicao utilizando os QuickTabs. Acompanhe os passos a seguir, para criar esta aplicao, utilizando os QuickObjects do SQLWindows/32: Inicie o Centura SQLWindows/32. Se este j estiver aberto, salve a aplicao que porventura esteja sendo utilizada, e inicie uma nova aplicao clicando no boto da barra de ferramentas chamado New, pressionando juntas as teclas Ctrl+N ou acionando o menu File | New. Para desenvolver esta aplicao, utilizaremos os QuickObjects do SQLWindows/32, conforme demonstrado no Captulo 6. Portanto, necessrio informar ao Centura SQLWindows/32 que sero utilizadas as classes dos seus QuickObjects. Essas classes esto numa biblioteca, assim como as classes dos QuickTabs. Ento, inclua essas duas bibliotecas ao programa.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para inclu-las, localize a seo Libraries do outline e informe os nomes das bibliotecas clicando com o boto direito do mouse na palavra Libraries, no outline, e escolhendo as duas bibliotecas, conforme ilustrado abaixo :

Biblioteca dos QuickObjects sendo includa ao programa.


Dessa forma, inclua ao seu programa as duas bibliotecas. No final dessa operao, a seo Libraries do seu outline deve estar assim :

Agora, adicione em sua aplicao o form window que ir conter os demais objetos. O form window utilizado deve ser da classe cQuickTabsForm. Proceda da seguinte forma: No Centura SQLWindows/32, clique com o boto direito do mouse no item chamado Windows, localizado no quadro esquerdo, chamado Application1. Escolha as opes New e depois cQuickTabsForm, no menu de contexto que aparecer.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O form window sendo includo atravs do menu de contexto. Isso far com que um form window da classe cQuickTabsForm seja adicionado ao outline. Coloque um nome para o seu form e ative a paleta de controles pressionando as teclas Alt4. Adicione ao form window uma child table da classe cQuickTable que servir como Data Source relacionado tabela COMPANY da base de dados. Escolha os seguintes campos da tabela COMPANY: COMPANY_ID COMPANY_NAME ADDRESS CITY CORPORATE_URL COUNTRY PHONE STATE Atravs do Customizer, ou do Attribute Inspector, altere a propriedade View da table window tblCOMPANY1 para o valor Browse Bar. Isso far com que a table window mude sua aparncia, tornando-se uma barra de navegao. Na paleta de controles, clique no cone correspondente ao data field e selecione a classe cQuickField. Escolha o Data Source tblCOMPANY1 e marque todas as colunas mostradas na paleta de controles, exceto a coluna chamada ROWID. Feito isso, clique no form window para que os data fields correspondentes s colunas escolhidas sejam criados na aplicao. Neste momento, sua aplicao deve estar assim:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Aplicao sendo construda dentro do objeto QuickTab. Voc precisa adicionar mais uma Tab ao seu form window. Clique com o boto direito do mouse numa rea do form window, at que o menu de contexto abaixo seja mostrado :

Menu de contexto do QuickTab. Escolha a ltima opo, Tab Frame Properties. Voc ter acesso janela de configurao das propriedades do QuickTabs. Todas as configuraes so feitas nesta janela.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Inclua mais trs linhas na table window desta janela, clicando no boto New.

Caixa de dilogo onde todas as propriedades do QuickTab so configuradas. Em cada uma das linhas includas escreva Invoice, Itens e Detalhes Itens. Em seguida, clique no pushbutton OK. Isso far com que seja adicionado ao form window mais trs Tabs, cada uma com os nomes digitados. Clique na Tab chamada Invoice e adicione uma child table da classe cQuickTable. Atravs da janela de configurao das propriedades da classe cQuickTable, relacione esse Data Source tabela INVOICE. Selecione as seguintes colunas da tabela INVOICE: AMOUNT_PAID COMPANY_ID DATE_PAID INVOICE_DATE INVOICE_NO
Atravs do pushbutton Sort, configure para que a classificao dos pedidos seja pela coluna INVOICE_NO.

Agora, o seu form window deve estar assim :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tela da aplicao aps a incluso do Data Source para a tabela INVOICE. Relacione os Data Source tblCOMPANY1 e tblINVOICE2 atravs da janela de configuraes do Data Source tblCOMPANY1. Lembre-se, a coluna COMPANY_ID o link entre os dois objetos. Voc pode executar a aplicao agora e verificar que, os pedidos mostrados na Tab Invoice esto sempre relacionados Empresa escolhida na Tab Empresa. Desta vez, possvel visualizar mais informaes na tela, de forma bem mais confortvel, pois, as informaes esto organizadas nas Tabs. Do mesmo modo descrito no captulo 6, voc pode acrescentar aplicao as demais informaes dos itens dos pedidos ( INVOICE_ITENS) e a imagem da estampa (PRODUCTS).

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As Propriedades do QuickTabs

A caixa de dilogo das propriedades do QuickTabs possui as seguintes Tabs, que so descritas abaixo: Tabs Associa um Tab Label a uma determinada Tab Name. Tab Label o nome que aparecer para o usurio, quando a aplicao estiver sendo executada. Nessa Tab, voc pode criar, apagar, alterar e mudar a posio das Tabs da sua aplicao. Fonts Voc pode definir o tipo de fonte e o tamanho que desejar para ser utilizada pela aplicao. Ao informar uma fonte especfica, tenha certeza de que a fonte especificada estar disponvel no seu sistema. Voc pode tambm definir que as fontes utilizadas sero as mesmas da janela pai, para isso, marque o radio button chamado User Parents Font. Colors Especifica as cores das letras e do fundo da janela (background). As cores definidas so aplicadas a todas as Tabs. No possvel especificar cores diferentes para cada Tab. Size nesta pasta que voc configura se as Tabs da aplicao tero o tamanho da janela pai. Neste caso, os valores informados nos campos Left, Right, Top e Botton, indicam a distncia da borda da janela para a borda do quadro dos Tabs. Style Voc pode especificar o nmero de linhas de Tabs que desejar, se a posio das Tabs ser acima ou abaixo, assim como a aparncia ( seguindo o padro Windows3.1 ou Windows95 ). Windows Nesta Tab da janela de configuraes voc pode associar uma Tab da sua aplicao a um form window ou um dialog box, que ser criado assim que a Tab seja acionada pela primeira vez.
As Mensagens do QuickTabs

O QuickTabs possui uma srie de mensagens que podem ser interceptadas pelo programador, que so: TABSM_Create - Para garantir a correta inicializao da classe picTabs. Utilize esta mensagem, ao invs de usar SAM_Create. TABSM_UserRequest Esta mensagem enviada a um objeto da classe picTabs para indicar que o usurio tentou selecionar uma das Tabs disponveis. Verifique o valor da varivel wParam para saber o nmero da Tab que o usurio clicou. Se voc quiser impedir o usurio de escolher uma determinada Tab, Utilize a funo CancelMode( ). TABSM_TabActivateStart - Esta mensagem enviada a um objeto da classe picTabs, antes que os objetos pertencentes Tab sejam mostrados, para indicar que uma determinada Tab foi selecionada pelo usurio. Verifique o valor da varivel wParam para saber o nmero da Tab escolhida pelo usurio. TABSM_TabActivateFinish - Esta mensagem enviada a um objeto da classe picTabs, depois que os objetos pertencentes Tab so mostrados, para indicar que uma determinada
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tab foi selecionada pelo usurio. Verifique o valor da varivel wParam para saber o nmero da Tab escolhida pelo usurio. Voc pode tambm, ao invs de capturar essas mensagens, utilizar as funes late bound equivalentes a cada uma das mensagens. So elas: Nome da Mensagem TABSM_Create TABSM_UserRequest TABSM_TabActivateStart TABSM_TabActivateFinish Funo late bound TabCreate ( ) TabUserRequest ( ) TabActivateStart ( ) TabActivateFinish ( )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Utilizando o QuickGraph O QuickGraph um QuickObject tipo Visualizer, que utiliza um QuickObject Data Source para apresentar as informaes graficamente. Os grficos podem ser apresentados baseando-se em uma ou mais colunas da table window. Entre alguns recursos do QuickGraph, destacam-se: Grficos verdadeiramente 3D. Total controle de elevao, rotao e perspectiva. Hot-Graphs para criao de grficos sensveis ao click. Controle das fontes utilizadas nos ttulos e legendas. Controle sobre os estilos das grades. Impresso e exportao dos grficos.

Assim como os demais QuickObjects, o QuickGraph no necessita de nenhuma programao, porm, possui uma rica gama de funes que podem ser utilizadas atravs do SQLWindows/32, que tornam os grficos extremamente flexveis quando utilizados via programao. O QuickGraph uma classe do SQLWindows/32, podendo ser modificada e expandida com facilidade.

Pr-requisitos

Para utilizar o QuickGraph, conforme mostrado neste exemplo, a instalao do SQLWindows/32 deve ter sido feita seguindo-se as instrues descritas no Apendice F Guia de instalao do Centura Team Developer 2000. Na aplicao, voc precisa incluir na seo Libraries, a biblioteca de QuickObjects chamada qckdvc.apl, onde definida a classe cQuickGraph. Assim como todos os QuickObjects Visualizers, voc precisa associ-los a um QuickObject Data Source. A utilizao do QuickGraph extremamente simples, conforme mostrado abaixo: Inicie uma nova aplicao no Centura SQLWindows/32. Declare a biblioteca de classes qckdvc.apl na seo Libraries do Outline. Voc precisar de um DataSorce para servir os dados para o QuickGraph. Observe a figura abaixo, nela foi desenvolvida uma aplicao simples. Uma aplicao Master/Detail envolvendo as tabelas COMPANY e INVOICE, como demonstramos no Captulo 6.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Aplicao que servir de Data Source para o QuickGraph. O prximo passo selecionar, na paleta de controles, o objeto QuickGraph. Escolha o Data Source chamado tblINVOICE2, conforme ilustrado na figura que se segue:

O Data Source tblINVOICE2 sendo selecionado. Coloque ento o QuickGraph na janela da sua aplicao. Atravs da barra de ferramentas do QuickGraph voc poder personalizar os diversos aspectos do seu grfico, como por exemplo as colunas nele mostradas. Clique no cone chamado QuickGraph, que est na barra de ferramentas do QuickGraph. Isso far com que a janela de configuraes chamada Graph Control aparea. Efetue as configuraes conforme ilustrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Janela de controle dos elementos do QuickGraph. Salve sua aplicao como exQckGraph.app. Execute a aplicao pressionando a tecla F7.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Aplicao utilizando o QuickGraph.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Utilizando o QuickHTML Com o QuickHTML possvel, facilmente, construir uma aplicao para navegao pela Internet, ou seja, um Web Browser, com todas as funcionalidades de navegao encontradas no Microsoft Internet Explorer. Construir um simples web browser extremamente fcil, no sendo necessrio escrever nem uma linha de cdigo SAL. Observe a figura abaixo, onde um web browser contrudo com o QuickHTML est sendo utilizado para navegar pela Internet.

Um Web Browser construdo com o QuickHTML.


Pr-requisitos

Para utilizar o QuickHTML, a instalao do SQLWindows/32 deve ter sido feita seguindose as instrues descritas no Apendice F Guia de instalao do Centura Team Developer 2000. Na aplicao, voc precisa incluir na seo Libraries, a biblioteca onde o QuickHTML est definido. Inclua a biblioteca chamada qckwax.apl. Para construir um web browser com o QuickHTML, siga os seguintes passos:
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Inicie uma nova aplicao no Centura SQLWindows/32. Declare a biblioteca de classes qckwax.apl na seo Libraries do Outline. Crie um form window. Ative a paleta de Controles e escolha o objeto do tipo Custom Control. Escolha a classe cQuickHTML e coloque o objeto no form window. Altere algumas caractersticas do objeto cQuickHTML, atravs do Customizer ou do Attribute Inspector. Name : oCTDBrowser Tile to Parent : Yes Atravs do Customizer ( ou Attribute Inspector) do form window, altere as seguintes propriedades: Name: frmQckHTML Object Title: CTD Browser Accessories Enabled: Yes Initial State: Maximized
Na barra de ferramentas do form window, coloque um data field ( dfURL) e um pushbutton ( pbABRIR).

O seu cdigo fonte deve ficar assim:


Form Window: frmQuickHTML Description: Named Menus Menu Tool Bar Contents Background Text: URL : Data Field: dfURL Pushbutton: pbABRIR Contents Custom Control: oCTDBrowser Message Actions Functions Window Parameters Window Variables Message Actions

A janela, em modo de design, deve estar assim:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O form window que ser utilizado para navegar na Internet. Voc j pode executar o seu browser e navegar naturalmente pela Internet. Digite o endereo do site desejado, no campo Address do controle web browser, e utilize os pushbuttons na sua barra de ferramentas. Tudo deve funcionar perfeitamente, exceto os dois objetos que foram colocados na barra de ferramentas, pois, ainda no escrevemos cdigo para eles. Para isso, escreva o seguinte cdigo no Message Actions do pbABRIR :
Pushbutton: pbABRIR Keyboard Accelerator: Enter Message Actions On SAM_Click Call oCTDBrowser.PageLoad( dfURL )

Observe a propriedade Keyboard Accelerator do pbABRIR. Isso faz com que, quando o usurio digitar o endereo e pressionar a tecla Enter, seja ativado o SAM_Click do pbABRIR.
Propriedades do QuickHTML

Atravs da caixa de dilogo de propriedades do QuickHTML possvel configurar e alterar diversos comportametos do objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As propriedades da classe cQuickHTML.

Funes do QuickHTML : EnumLinks ( ) Obtm todos os links da pgina html. GetSource ( ) Obtm o cdigo fonte em HTML da pgina. GetCurrentURL ( ) Obtm o endereo da pgina. GetPageTitle ( ) Obtm o ttulo de uma pgina. GetStatus ( ) Obtm o cdigo de status de uma pgina. GoHome ( ) Vai para a pgina especificada na propriedade m_strHomePage. PageCancel ( ) Cancela o carregamento da pgina. PageLoad ( ) Carrega uma determinada pgina. PageBackward ( ) Mostra a pgina anterior da lista de histrico. PageForward ( ) Mostra a pgina seguinte da lista de histrico. PageReload ( ) Carrega novamente uma pgina. SetSource ( ) Define o texto origem para ser mostrado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 8
Programao Orientada a Objetos com o SQLWindows/32
Este captulo descreve as caractersticas do SQLWindows no suporte a Orientao a Objetos. So mostradas as classes e objetos, herana, encapsulamento, polimorfismo e a implementao de todos estes conceitos no SQLWindows. A compreenso deste captulo muito importante para o prosseguimento do estudo dos demais captulos.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Os Benefcios da Orientao a Objetos Modelagem mais prxima da realidade, mais apurada. A reutilizao de cdigo aumentada. A confiana aumentada. Diminuio dos problemas com manuteno. Classes Classe a base da programao orientada a objetos. um modelo que define as aes e os atributos de um determinado tipo de objeto. Todos os indivduos de uma determinada classe so idnticos em sua forma e comportamento, mas possuem dados diferentes em seus atributos. Aos indivduos das classes d-se o nome de instncias. As classes podem ser criadas em hierarquias, que podem passar os dados e comportamentos entre elas. Os atributos de uma classe so os dados da classe. Por exemplo: Classe de Pushbutton: cpbNavegacao Atributos : Titulo MsgDica MsgStatus MsgErro As aes definidas numa classe so os procedimentos, ou comportamentos, comuns entre todos os membros dessa classe. As implementaes dessas aes so chamadas de mtodos. Os mtodos podem ser internos e externos, ou privados e pblicos. Um mtodo interno no requer interao com outros objetos, so mtodos acionados pelo prprio objeto. Um mtodo externo necessita de uma interao com objeto para ser realizado. Os mtodos de uma classe so as aes tomadas pela classe. Por exemplo: Classe de Pushbutton: cpbNavegacao Mtodos : MostrarMsgDica MostrarMsgStatus MostrarMsgErro _AtivarBarraDeStatus Existem duas formas de se acionar procedimentos nos objetos: Passiva - esta forma caracteriza-se pelo recebimento, pelo objeto, de uma mensagem que pode ter sido enviada de algum objeto da mesma classe, ou de outra. O objeto que recebe a mensagem deve decidir se executa alguma ao ou se simplesmente ignora a solicitao. Ativa - desta forma, um objeto externo explicitamente requisita que alguma ao especfica seja realizada, normalmente, o valor de algum atributo obtido.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Uma Instncia refere-se a um determinado objeto que pode ser desenhado numa tela, no caso dos objetos visuais, ou declarado, no caso de objetos abstratos.

Objetos Objetos so criados numa aplicao em tempo de execuo, so chamados tambm de instncias de uma classe. As classes so apenas as definies de um conjunto de objetos. Objeto refere-se a uma instncia especfica de uma classe, que possui as caractersticas definidas na classe. No SQLWindows/32 podemos criar os seguintes tipos de classes de objetos: Classes de Objetos Visuais como data fields, combo box, pushbutton ... Classes de Objetos Custom Controls. Classes Abstratas Functional Class. Os atributos de um objeto so comuns em relao aos outros objetos da mesma classe, porm, os valores dos seus atributos so diferentes. Por exemplo: Pushbutton cpbNavegacao: pbPrimeiro Atributos : Titulo 'Primeiro' MsgDica 'Vai para o primeiro registro' MsgStatus 'Posiciona no primeiro registro do conjunto de registros pesquisados.' MsgErro 'Erro ao tentar posicionar no primeiro registro.' Classe Base a classe da qual uma determinada classe derivada. A classe derivada herda da sua classe base todas as definies dos dados e do seu comportamento. Uma classe base expandida em classes mais especializadas, e estas so derivadas da classe base. A classe cAutomoveis uma classe derivada da classe cMeiosDeTransporte, que a classe base. Herana Herana a maneira pela qual uma classe na hierarquia pode compartilhar dados e comportamentos de outras classes, sem duplicao de cdigo. Uma classe derivada, automaticamente, inclui dados e comportamentos de todas as suas classes base. Pode acrescentar seus prprios dados e comportamentos, e pode tambm redefinir os dados e comportamentos herdados das classes base. A herana permite que uma classe utilize e expanda todas as propriedades, operaes (os mtodos) e mensagens a outras classes. Quando uma classe criada derivada de uma classe base, d-se o nome de Herana Simples. E quando a classe deriva de mais de uma classe base, chamamos de Herana Mltipla.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Encapsulamento O ideal que um objeto jamais acesse diretamente os atributos de outro objeto. O correto que cada objeto defina uma interface para que outros objetos possam utilizar ao requisitar dados e invocar mtodos. Dessa forma, um objeto pode ser tratado como uma caixa preta, possuindo sua interface para entrada/sada, fazendo com que no seja necessrio ao desenvolvedor conhecer as definies internas do objeto. Ento, so criados mtodos para atribuir e obter os valores dos atributos e um objeto, escondendo a complexidade interna necessria para manter os valores dos seus atributos. No objeto pbPrimeiro, que uma instncia da classe cpbNavegacao, o mtodo ObtemTitulo( ) retorna o valor do atributo do objeto chamado Titulo. O mtodo MostraMsgErro( ) mostra ao usurio a mensagem adequada de erro numa caixa de dilogo. Objetos externos podem utilizar os mtodos sem preocupar-se com a complexidade que envolve o processamento dos mesmos.

Polimorfismo basicamente o fato de objetos da mesma classe (ou no) responderem de forma diferente a mesma mensagem. Normalmente, o mtodo padro para uma determinada operao especificado em alguma classe pai. Eventualmente, uma ou mais classes filhas podem necessitar de uma implementao diferente para um determinado mtodo. Sendo assim, a classe filha faz a especificao da operao que passa a ser um mtodo interno seu. Fazendo isso, a classe filha no herda mais as especificaes para esse mtodo, definido em suas classes pai. Nesse caso, diz-se que foi implementado o polimorfismo atravs de sobreposio de mtodos, a classe filha "sobrescreveu" o mtodo antes definido na classe pai. Observe o exemplo: Classe cCalculadora Mtodos Imprimir ( ) imprime o resultado da operao matemtica realizada. Copiar ( ) copia o resultado para a rea de transferncia. Classe cCalculadoraAvancada Classe Base : cCalculadora Mtodos Imprimir ( ) imprime o resultado das ltimas dez operaes realizadas. Copiar ( ) copia os ltimos dez resultados para a rea de transferncia. Comportamento Muitos objetos de uma classe podem apresentar o mesmo comportamento ao representar e processar dados. Esse comportamento conhecido como comportamento da classe. Existem casos em que os objetos de uma mesma classe apresentam comportamento diferente, o qual conhecido como comportamento da instncia.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Implementando OOP no Centura SQLWindows/32 As classes no SQLWindows/32 esto localizadas no outline, na seo Global Declarations | Classes, ou, conforme ilustrado abaixo, na pasta Classes, localizada no quadro esquerdo do SQLWindows/32. Observe abaixo como so organizadas as classes no outline. Exemplo de classe de form window :

Representao de uma classe de form window no SQLWindows/32. Na figura acima esto mostradas as sees pertencentes a uma classe de form window. Cada tipo de classe possui sees especficas ao seu tipo. Porm, as sees so basicamente as mesmas. Por exemplo, uma classe de pushbutton possui as mesmas sees descritas abaixo, com exceo das sees que so especficas aos objetos do tipo form window. No caso da classe de form window, as sees so: Seo no Outline Form Window cfrmPadrao Descrio Class: Descreve o tipo e o nome da classe. O nome da classe ser utilizado quando voc instanciar um objeto, este nome ser apresentado no menu de contexto de criao de objetos tipo top level. A descrio da classe. Utilize para propsitos de documentao, informando o que esta classe faz. Quando esta classe derivada de outra, o nome da classe base fica nesta seo. No caso de herana mltipla, os nomes aparecem listados aqui. A ordem dos nomes das classes pode fazer muita diferena. A definio do menu que ser utilizado pelos membros da classe. A definio da toolbar utilizada pelos membros da classe. Os objetos child. Variveis que so compartilhadas entre os membros da classe. Variveis especficas para cada instncia desta classe. So as variveis cujos valores so nicos para cada elemento.
Pgina PAGE 582

Description Derived From

Menu Tool Bar Contents Class Variables Instance Variables

Programando com o Centura Team Developer 2000

Functions

Message Actions

Funes ( mtodos ) que podero ser utilizadas pelos membros da classe. So similares s funes utilizadas no restante da aplicao, exceto pelo fato de que os mtodos aqui declarados do acesso aos atributos da classe ( as variveis de classe e de instncia ). As aes padres aos membros da classe.

A definio da classe A figura abaixo ilustra a definio de uma classe de pushbutton chamada cpbDica:

Definio da varivel de instncia isMsgDica. A varivel isMsgDica ser utilizada para mostrar ao usurio um texto identificando a sua funo. Cada instncia da classe cpbDica precisa atribuir varivel isMsgDica a mensagem que ser mostrada ao usurio, a sua mensagem especfica. Isto feito conforme ilustrado na figura abaixo:

A inicializao da varivel de instncia isMsgDica com as mensagens a serem mostradas. Podemos agora analisar o funcionamento do mtodo MostrarMsgDica( ):

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A utilizao das variveis de instncia. Observe que o mtodo MostrarMsgDica( ), que foi definido na classe, utiliza o mesmo cdigo para todas as instncias, porm, os valores so diferentes, pois, a varivel de instncia isMsgDica foi inicializada em cada instncia com seus devidos valores. Isso faz com que o resultado tambm seja diferente. O comportamento descrito na classe representa o comportamento padro aos membros da classe que iro responder aos eventos, desde que no sejam sobrepostos os mtodos. As modificaes necessrias a um determinado objeto, que necessite executar uma tarefa diferente da descrita na classe, so feitas da forma normal, como qualquer cdigo escrito em qualquer parte do programa, porm, apenas no mtodo a ser redefinido. Conforme ilustrado no exemplo abaixo :

Sobreposio de cdigo
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Essa modificao no cdigo faz com que o pb1 continue funcionando conforme as instrues descritas na classe base. J o objeto pb2, que teve o cdigo referente ao evento SAM_Click modificado, no executar o cdigo padro definido na classe. Esse exemplo demonstra o polimorfismo por sobreposio de cdigo. Classes Derivadas Vamos agora definir uma classe de pushbutton que deve ser derivada da classe cpbDica, ou seja, tudo o que j foi codificado para a classe cpbDica ser automaticamente herdado por essa nova classe. Apenas para demonstrar outra maneira de se definir uma classe, utilizaremos o assistente do SQLWindows/32 para essa tarefa. Ative o Assistente para Gerao de Classes, atravs da caixa de dilogo Wizards ( Ctrl-W ). Na sua primeira janela, voc precisa informar ao Assistente de Classes o tipo da classe a ser gerada.

Assistente de Classes. Conforme a figura acima, escolha no list box com os tipos de classes a classe de Pushbutton, em seguida clicando no pushbutton Next. Na prxima janela do Assistente de Classes voc deve informar o nome e a descrio da classe a ser gerada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Assistente de Classes, informaes sobre o nome da classe. Conforme a figura acima, d o nome para a classe e sua descrio. Classe : cpbDica2 Descrio : Classe de pushbutton para servir de base aos objetos que devero apresentar a sua mensagem de dica na barra de status. E clique no pushbutton Next. Na prxima janela do Assistente de Classes voc deve selecionar a classe que ser a classe base da classe gerada.

O Assistente de Classes, a escolha da classe base. Conforme a figura acima, escolha a classe cpbDica, que foi previamente criada. Clique no pushbutton Add para que a classe base seja efetivamente escolhida. Prossiga pressionando no pushbutton Next.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na prxima janela do Assistente de Classes voc poder confirmar o que ser gerado na sua aplicao. Clicando no pushbutton Finish, o Assistente de Classes ir criar a classe no local apropriado do Outline, que ficar conforme mostrado na figura abaixo:

O cdigo da classe que foi gerado pelo Assistente de Classes.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Tipos de classes do SQLWindows/32 O SQLWindows/32 suporta quatro tipos de classes. Esses tipos de classes possuem em comum vrios recursos como funes, variveis de instncia e de classe. Com exceo das classes do tipo Functional Class, todas as demais possuem a seo message actions. Veremos uma descrio dos tipos de classes disponveis no SQLWindows/32: Functional Class A classe functional um objeto no visual que pode ser utilizado para representar objetos intangveis. Por exemplo, um processo de controle de estoque no pode ser representado visualmente, porm, o processo possui um padro definido. Classes funcionais tambm podem ser utilizadas como Classes Abstratas Base, para objetos tangveis. General Window Class Uma classe tipo General Window possui todas as funcionalidades encontradas numa classe tipo functional e possui ainda a seo Message Actions. Assim como a classe Functional, essa classe no possui representao visual, porm, pode ser utilizada para compartilhar a funcionalidade das mensagens, das funes e variveis entre todos os demais tipos de classes. Classes do tipo General Window s podem ser utilizadas como classe abstrata. Classes Window Classes Window so as classes correspondentes a cada tipo de objeto do SQLWindows/32 (por exemplo, scroll bars, radio buttons e combo box). Essas classes devem ser utilizadas como base para as definies das classes instanciadas pelos objetos visuais. Devem ser usadas tambm para dar a aparncia correspondente funcionalidade das aplicaes. Classes Custom Control Classes tipo custom control so utilizadas para permitir que DLLs e controles do Visual Basic possam ser utilizados no SQLWindows/32. Atravs de classes custom control o programador pode expandir a funcionalidade de um controle, ou empacotar a funcionalidade para facilitar a sua utilizao. A grande diferena presente nesta classe est em prover a funcionalidade necessria para se relacionar com rotinas externas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A representao das classes no outline do SQLWindows/32 Uma classe no outline do SQLWindows/32 representada por uma determinada estrutura. Essa estrutura padro e pouca diferena h entre as estruturas de diferentes classes. Abaixo esto descritas as sees que so adicionadas ao outline quando voc cria uma classe. As sees das classes so: Nome da classe utilizado quando voc instancia um objeto. Esse nome apresentado no menu de contexto de criao de objetos tipo top level. Para classes de objetos child, o nome da classe mostrado na paleta de controles. Assim que voc escolher um tipo de objeto, as classes desse objeto so listadas na Paleta de Controles. Derived From Quando uma classe derivada de outra, o nome da classe base fica nesta seo. Voc no pode derivar classes de tipos diferentes. Por exemplo, uma classe de combo box no pode ter como classe base uma classe de pushbutton. Classes tipo functional s podem ter como classe base uma ou mais classes do tipo functional. Classes tipo general window s podem ter como classe base uma ou mais classes do tipo functional e general window class. Classes de objetos top level e child s podem ter como classe base uma ou mais classes do mesmo tipo, classes tipo functional e/ou do tipo general window class. Class Variables Variveis de classe so as variveis que armazenam dados compartilhados entre todos os membros da classe. Isso significa que existe apenas um nico local alocado para armazenamento desse tipo de varivel para todos os membros da classe. Esse tipo de varivel bastante parecido com uma varivel Global, exceto pelo fato de que s pode ser utilizada por membros da classe. Se um membro da classe armazena um valor numa varivel de classe, todos os demais membros da classe podem ver o novo valor. Instance Variables Variveis de instncia so variveis definidas para utilizao pela classe. Porm, diferente das variveis de classe, existe um local de armazenamento para cada membro da classe. Dessa forma, cada instncia da classe possui seus prprios valores para os mesmos atributos. Functions
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funes (mtodos) que podero ser utilizadas pelos membros da classe. So similares s funes utilizadas no restante da aplicao, exceto pelo fato de que os mtodos aqui declarados do acesso aos atributos da classe (as variveis de classe e de instncia), e no podem ser utilizados de fora da classe. Message Actions Todos os tipos de classe possuem esta seo, exceto as classes functional e as classes de objetos passivos (como line, background e frames). Todo o processamento global de mensagens deve ser codificado nesta seo. A nica forma de compartilhamento de mensagens entre objetos visuais de tipos diferentes atravs do message actions da classe general window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 9
Ampliando o desenvolvimento com o CDK
Neste captulo voc conhecer os fundamentos do CDK, seus benefcios, componentes, e aprender a utilizar seus recursos, entre eles a gerao de cdigo fonte, talvez o mais interessante dos recursos disponveis no SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apresentao O CDK uma biblioteca orientada a objeto que possui uma srie de classes, as quais podem ser utilizadas pelos programadores em SQLWindows/32 e em linguagem C++.

O CDK torna possvel:

O desenvolvimento de ferramentas adicionais para os programadores em linguagem SQLWindows/32. A confeco de assistentes, componentes e uma srie de utilitrios que ajudam a aumentar a produtividade. Adaptao do ambiente de desenvolvimento Centura de acordo com as necessidades do desenvolvedor. A integrao do Centura com outras ferramentas de desenvolvimento, como por exemplo ferramentas upper-CASE, ferramentas de teste e anlise de performance.

Utilizao e benefcios Utilizando os objetos providos pela biblioteca CDK voc pode desenvolver uma srie de ferramentas que aumentaro sua produtividade em diversas tarefas repetitivas, tarefas que, se realizadas manualmente, podem demorar muito tempo para ficarem prontas, alm de no haver garantia de padronizaco e de qualidade. Alguns exemplos de ferramentas que voc pode construir:

Um programa que salve as aplicaes e suas respectivas bibliotecas em formato binrio ou texto. Essa uma forma muito interessante de economizar o espao ou de atualizar as bibliotecas de todas as suas aplicaes. Pode alterar a funcionalidade da opo Save na barra de ferramentas do SQLWindows/32, para que, automaticamente, seja realizado um backup do arquivo fonte. Personalizar o ambiente de desenvolvimento, permitindo que voc configure as propriedades de vrios objetos num form window, ao mesmo tempo. Personalizar objetos de forma que suas propriedades sejam configuradas atravs de amigveis assistentes, ficando essas armazenadas dentro do objeto, no aparecendo no outline. Essas propriedades so recuperadas pelo objeto quando for necessrio, e o programador pode alter-las atravs da sua janela de configurao. Um programa que faz as correes necessrias, quanto ao tratamento de datas com quatro dgitos para o ano, evitando assim que ocorram erros com a chegada do ano 2000.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Expandir e aumentar o seu ambiente de trabalho, criando voc mesmo seus utilitrios para ajud-lo no processo de desenvolvimento. Melhorar a preciso da implementao do cdigo, utilizando ferramentas que, de forma bastante simples, atravs de interfaces amigveis, faam a gerao de cdigo automaticamente.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Interfaces O CDK possui trs interfaces, descritas abaixo: Interface Outline Esta interface composta de um conjunto de classes e funes que permitem a manipulao do outline de uma aplicao SQLWindows/32. Essa manipulao feita atravs de um outro programa escrito em SQLWindows/32 ou C++. Para utilizao dessa biblioteca de classes, necessrio o conhecimento da estrutura do outline do SQLWindows/32. Utilize a interface Outline para criar programas que leiam e que gerem aplicaes SQLWindows/32 com a linguagem SAL ou C++. As classes e funes providas pela interface Outline esto presentes na biblioteca chamada CDK.APL, que instalada junto com o CDK, conforme instrues descritas no Apndice F - Guia de instalao do Centura Team Developer 2000. Interface Runtine Esta interface permite que se obtenha o estado dos objetos de uma aplicao SQLWindows/32 quando estes encontram-se em tempo de execuo, pode ser utilizada por uma srie de utilitrios como ferramentas de automatizao de testes. Voc pode utilizar a interface Runtime para avaliaes de performance, depurao etc. Pode tambm acompanhar a execuo de cada comando, gravando um arquivo de log, sem utilizar nenhum comando de depurao do SQLWindows/32, ou seja, sem alterao no cdigo fonte.

Interface Notification Esta interface permite que um programa receba avisos cada vez que voc modificar o foco no outline, apagar um item, adicionar um item, abrir ou salvar uma aplicao no SQLWindows/32. Voc pode criar ferramentas que executem tarefas, como selecionar uma linha na viso Outline. A interface Notification atua sobre a interface do SQLWindows/32 com o programador.

Ferramentas do CDK O CDK possui algumas ferramentas para o SQLWindows/32 que so instaladas junto com o produto no subdiretrio cdk\samples, so elas:
Pgina PAGE 582

Programando com o Centura Team Developer 2000

CDK Item Explorer Cada elemento no outline do SQLWindows/32 possui um valor numrico, identificado por uma constante declarada na seo Constants na biblioteca CDK.APL. Este utilitrio permite que voc conhea os valores de cada elemento do outline, bastando que voc selecione o componente desejado. Wizard Wizard Instala o seu assistente junto aos assistentes do SQLWindows/32. Property Editor Mostra as propriedades de um objeto, permitindo que sejam alteradas. Mass Customizer Lista todos os objetos child de um determinado top level window e permite que voc modifique os valores dos atributos de um ou mais objeto ao mesmo tempo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O modo de funcionamento O modo de funcionamento do CDK bastante simples. Consiste basicamente de uma aplicao ( ativa ), que serve como um editor das propriedades, ou seja, uma janela de configuraes, que l e escreve o cdigo fonte na aplicao que est sendo configurada (passiva). A aplicao ativa pode ser escrita em SQLWindows/32 ou em linguagem C++. Existem quatro maneiras de relacionar sua aplicao SQLWindows/32 aplicao que configura as propriedades, so elas:

Relacionando, atravs do QuickObject Editor, o objeto aplicao que serve de editor das propriedades. Adicionando um cone na barra de ferramenats do SQLWindows/32 que ativa o editor de propriedades. Escrevendo cdigo na aplicao a partir de um programa em execuo, o qual abre um fonte SQLWindows/32, l e escreve os comandos necessrios, salva e fecha a aplicao. Registrando, como um Assistente, a aplicao que serve como editor de propriedades. Essa aplicao passa a ser ativada a partir da janela Wizards do prprio SQLWindows/32.

Sero mostrados exemplos para cada um dos casos citados acima.

Informao: Os captulos 9 e 10 do todas as informaes necessrias para realizar essas quatro tarefas citadas acima, sendo de suma importncia que voc compreenda o funcionamento dos QuickObjects, que foi explicado no captulo 6, e as classes estudadas no captulo 8.

Utilizando o QuickObject Editor Atravs do QuickObject Editor, voc relaciona uma classe a um aplicativo que ir configurar suas propriedades. A criao de uma aplicao que configura as propriedades de objetos estudada em detalhes no captulo 10 - Criando seus prprios QuickObjects. A seguir, sero enumeradas as instrues que voc deve seguir para relacionar uma classe ao aplicativo que ir configurar as suas propriedades. 12Inicie uma nova aplicao no SQLWindows/32. Crie uma nova classe de data fields, chamada cMeuDataField, na seo de classes do outline. Crie um novo form window chamado frmExemplo.
Pgina PAGE 582

3-

Programando com o Centura Team Developer 2000

4-

Coloque um data field da classe cMeuDataField no form window frmExemplo.

D um nome a esse data field, utilize o nome dfTEXTO para facilitar futuras referncias. 56Acione o QuickObject Editor atravs dos menus Component | QuickObject Editor.... Na tela do QuickObject Editor preencha os campos com as informaes descritas a seguir: Selecione a classe cMeuDataField que voc criou conforme o item 2. No campo Application Name informe a aplicao chamada exCDK_App_01.exe, (posteriormente estudaremos detalhadamente a construo dessa aplicao). Voc pode fazer download dos arquivos fonte presentes no livro diretamente a partir do site http://www.centuraexplorer.com.br/livro_ctd2000/. 9No combo box Dialog Name voc deve escolher o dlgConfigProp.

78-

10- No campo Command Text escreva "Propriedades..." ( sem as aspas ). 11- Sua tela deve estar igual a figura mostrada abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Clique no boto OK para aplicar as configuraes feitas e fechar a janela do QuickObject Editor. Os demais campos dessa tela sero explicados no final deste exemplo. 12- Acione o customizer do data field que voc colocou no form window frmExemplo. Observe que uma nova opo apareceu no customizer, a opo chamada Propriedades....

Essa nova opo foi criada para ativar a aplicao que ir configurar as propriedades desse objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

13- Abaixo voc pode observar a janela de configurao das propriedades que foi chamada conforme configurado no QuickObject Editor.

Essa janela a janela de configurao das propriedades da classe cMeuDataField. Para facilitar referncias futuras, salve sua aplicao como exCap10_01.app. O QuickObject Editor O QuickObject Editor serve para relacionar as classes visuais desenvolvidas no SQLWindows/32 as suas respectivas aplicaes, responsveis por configurar os seus atributos. Essa aplicao deve ter sido construda numa verso binariamente compatvel com o SQLWindows/32 que est sendo executado no momento. Por exemplo, no possvel a uma classe, atualmente carregada no outline do SQLWindows/32, ser configurada por uma aplicao gerada numa verso do SQLWindows/16, ou ainda numa verso anterior do Centura Team Developer 2000. Observe abaixo o que significa cada objeto presente na tela do QuickObject Editor:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

1 No list box Classes so mostrados os nomes de todas as classes visuais da aplicao. Voc s pode configurar as classes definidas na aplicao atual. Classes pertencentes a outras bibliotecas so mostradas em letras azuis, porm, no podem ser alteradas. As classes que voc pode configurar so mostradas em letras pretas. 2 No campo Application Name, voc deve informar o path completo do aplicativo responsvel pela configurao das propriedades da classe selecionada no list box Classes. Esse aplicativo o programa que, utilizando a biblioteca de classes do CDK, l e grava no outline as configuraes necessrias. 3 Voc deve escolher um dos nomes mostrados no combo box Dialog Name, onde so mostrados os nomes dos dialog boxes presentes na aplicao que voc informou no campo Application Name. O dialog box que voc escolher ser ativado, quando solicitado pelo programador, para configurar as propriedades das instncias da classe selecionada no list box Classes. Veremos mais frente como construir os dialog boxes de configurao de propriedades. 4 Atravs do QuickObject Editor voc pode especificar duas maneiras de se ativar o dialog box de configurao de propriedades. A maneira padro atravs da opo que adicionada no customizer do objeto, conforme voc pde observar no exemplo anterior. Outra maneira fazer com que, de forma automtica, o dialog box de configurao seja acionado, assim que voc, a partir da paleta de controles, coloca o objeto no form window. Para que isso ocorra, selecione o check box identificado na figura acima pelo nmero 4. 5 No campo Palette Bitmap voc pode especificar o path completo da figura que ser utilizada como cone da classe, que ser mostrado na paleta de controles. 6 No campo CommandText voc deve informar o texto do novo item que ser adicionado no customizer do objeto. Atravs desse item de menu, o programador poder acionar a janela de configuraes das propriedades do objeto. 7 Se voc quiser que os objetos tipo data source sejam mostrados na paleta de controles, selecione o check box identificado na figura acima com o nmero 7. Para salvar as configuraes feitas para uma classe, e poder configurar outras classes, clique no boto Apply. Clicando no boto OK as configuraes feitas so gravadas, e o QuickObject Editor encerrado. O boto Clear limpa as configuraes para a classe que estiver selecionada. Para sair do QuickObject Editor, sem gravar as configuraes feitas, clique no boto Cancel.

Adicionando sua aplicao como um cone na barra de ferramentas do SQLWindows/32 Voc pode adicionar cones na barra de ferramentas do SQLWindows/32, para ativar os aplicativos de configurao de propriedades dos objetos.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

A seguir, sero enumeradas as instrues que devero ser seguidas para adicionar um cone na barra de ferramentas do SQLWindows/32. Neste exemplo, o cone executar a mesma aplicao do exemplo anteiror. 1Caso seja necessrio, inicie o SQLWindows/32 e carregue a aplicao exemplo chamada exCap10_01.app, utilizada no exemplo anterior. Acione a janela de configuraes das ferramentas atravs do menu Tools | User Tools. Para adicionar uma nova ferramenta voc deve clicar no boto Add. No campo chamado Command informe a aplicao chamada exCDK_App_01.exe, No esquea de colocar o path completo, para que a aplicao seja encontrada. Essa foi a mesma aplicao utilizada no exemplo anterior. No campo Parameters digite: "dlgConfigProp" $Outline $MarkedItem $MainWindow Posteriormente esses parmetros sero explicados. 6789No campo Working Directory informe o mesmo path utilizado no item 4. No campo Menu Text informe "Propriedades" ( sem as aspas ). No campo Tool Tip informe "Propriedades do objeto" ( sem as aspas ). Clique no boto OK para salvar as configuraes feitas.

2-

34-

5-

10- Observe que foi adicionado ao menu Tools o item que voc acabou de adicionar.

Para acionar a janela de propriedades, selecione o objeto data field e acione o menu Tools | Propriedades. 11- Voc pode tambm ativar a barra de ferramentas do SQLWindows/32. Acione o menu Tools | Toolbars ...
Pgina PAGE 582

Programando com o Centura Team Developer 2000

12- Marque o check box Tools para que a barra de ferramentas aparea.

13- A barra de ferramentas pode ser posicionada em qualquer lugar da tela.

A janela Tools Atravs da janela Tools possvel adicionar novas funcionalidades ao menu Tools do SQLWindows/32. Voc pode adicionar seus QuickObjects ( como mostrado no exemplo anterior ) ou chamadas para quaisquer aplicativos que voc desejar, como seu browser, aplicativo de e-mails, editor de textos ou agenda. Cada aplicativo adicionado ao menu Tools est tambm, automaticamente, disponvel na barra de ferramentas Tools. Observe abaixo o que significa cada objeto presente na tela de configuraes do menu Tools.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

1 O objeto mostrado no campo Tools um list view, onde so mostrados os cones e os nomes das aplicaes j configuradas no menu Tools, as aplicaes j existentes. Caso voc queira alterar alguma configurao feita numa ferramenta presente, basta clicar uma vez sobre seu cone ou nome, fazer as alteraes desejadas e ento clicar no boto OK para gravar as configuraes. 2 Quando o check box Ask for arguments est selecionado, o SQLWindows/32, ao executar o aplicativo que est sendo configurado, mostra uma caixa de dilogo solicitando por mais algum argumento a ser passado como parmetro ao aplicativo de configurao. 3 Ao marcar o check box Ask to save outline, o SQLWindows/32 sempre ir perguntar se voc deseja salvar a aplicao antes de executar o aplicativo configurado. 4 Informe no campo Command a linha de comando completa para a execuo da ferramenta desejada, ou seja, o path completo e o nome do aplicativo. Para executar o nosso aplicativo exemplo, informamos o path e o nome do seu executvel. Por exemplo, caso voc queira ativar o windows explorer informe C:\WINDOWS\EXPLORER.EXE.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

5 No campo Parameters so colocados os parmetros que sero enviados ao aplicativo a ser executado. No caso dos QuickObjects, os quatro primeiros parmetros sempre devem ser o nome do dialog box que ser ativado no aplicativo, o handle do outline atual, o handle do objeto ativo e o handle da janela principal. Voc deve utilizar as macros descritas abaixo: $File $FileName $FileDir $Outline $MainWindo w $DesignItem A especificao completa do nome do arquivo que representa o outline. O nome e extenso do arquivo que representa o outline. O drive e diretrio do arquivo que representa o outline. Um valor numrico equivalente ao outline atual. O handle da janela principal. O handle do objeto top level que est sendo utilizado no SQLWindows/32 ( o handle do form window, mdi, dialog box ou table ). O handle do objeto selecionado no outline.

$MarkedItem

6 Informe no campo Working Directory o diretrio de trabalho da aplicao informada no campo 4. 7 O texto informado no campo Menu Text ser adicionado ao menu Tools. 8 O texto informado no campo Tool Tip ser mostrado quando o mouse estiver sobre o cone da barra de ferramentas correspondente a essa ferramenta. 9 Voc pode escolher um dos cones mostrados no campo Available Icons, para que seja associado ao aplicativo que voc est configurando. Esse cone mostrado na barra de ferramentas Tools. 1 O boto identificado pelo nmero dez aciona um menu mostrando as macros que 0 voc pode informar no campo Parameters. Escrevendo cdigo numa aplicao Neste exemplo, mostraremos como construir uma aplicao em SQLWindows/32 que, utilizando o CDK, ir abrir uma aplicao, escrever algumas linhas de cdigo, salvar e fechar a aplicao. Os passos so os seguintes: Abrir a aplicao fonte, chamada exCap10_01.app, que criamos no primeiro exemplo. Localizar o form window que chamamos de frmExemplo. Definir uma varivel na seo variables do form window frmExemplo. Dentro desse form window, localizar o data field chamado dfTEXTO. Escrever algumas linhas de cdigo para o dfTEXTO. Salvar a aplicao com o nome exCap10_02.app. E sair.

Observe as instrues detalhadas para executarmos estas operaes:


Pgina PAGE 582

Programando com o Centura Team Developer 2000

1 - Caso seja necessrio, inicie uma nova aplicao no SQLWindows/32. 2 - Declare na seo file Include do outline a biblioteca do CDK chamada CDK.APL.

34-

Crie um novo form window chamado frmGeraCodigo. Coloque um pushbutton nesse form window, com o nome pbGERAR_CODIGO e com ttulo "Gerar Cdigo".

5-

Declare algumas variveis na seo Variables do form window frmGeraCodigo, conforme mostrado abaixo:

61 2 3 4 5 6 7 8 9 10 11 12 13

Digite o cdigo mostrado abaixo no message actions do boto pbGERAR_CODIGO. As linhas de cdigo esto numeradas para facilitar as explicaes:
On SAM_Click Call SalWaitCursor( TRUE ) Call CDK_App.InitFromFile ( "exCap10_01.app" ) If CDK_App.GetTopLevelWindow ( "frmExemplo" , oForm ) Call oForm.AddWindowVariable( CDK_IT_String, "sNome" ) If oForm.GetChildWindow ( "dfTEXTO" , oDataField ) Call oDataField.AddMessageAction ( "SAM_Create" , oMensagem ) Call oMensagem.GetActions ( oAcao ) Call oAcao.InsertAfter ( "Call SalGetItemName( hWndItem , sNome )" ) Call oAcao.InsertAfter( "Set MyValue = 'Ol, este o objeto ' || sNome") Call CDK_App.SaveOutline ( "exCap10_02.app" )

Pgina PAGE 582

Programando com o Centura Team Developer 2000


Call CDK_App.CloseApp ( ) Call SalWaitCursor( FALSE )

Na linha 3, a aplicao exCap10_01.app inicializada pela funo do CDK chamada InitFromFile. A varivel CDK_App representa o objeto aplicao. Na linha 4 a funo GetTopLevelWindow est localizando o objeto frmExemplo e, quando encontrar, inicializa o objeto representado pela varivel oForm. Na linha 5, uma varivel tipo String, chamada sNome, definida no objeto identificado pela varivel oForm. CDK_IT_String uma constante do CDK que representa o tipo de dado string, na definio de variveis. Na linha 6 a funo GetChildWindow localiza o objeto dfTEXTO, dentro do objeto representado pela varivel oForm, ou seja, o dfTEXTO procurado dentro do frmExemplo. Quando o data field for encontrado, o objeto representado pela varivel oDataField inicializado. Na linha 7 adicionado o evento SAM_Create no message actions do data field. A linha 8 inicializa o objeto oAcao, que ser utilizado para escrever o cdigo referente ao contedo do evento SAM_Create. Na linha 9 inserido uma linha de cdigo dentro do evento SAM_Create, essa linha obtm o nome do objeto, armazenando-o na varivel sNome, que foi definida na linha 5. Na linha 10 o valor do contedo do data field definido, utilizando-se o contedo da varivel sNome. 78Salve a aplicao ( como exCap10_03.app) e execute. Clique no pbGERAR_CODIGO, para que o cdgo seja escrito na aplicao destino. Aps o trmino da execuo, carregue a aplicao destino (exCap10_02.app) no SQLWindows/32 e observe o cdigo que foi escrito.
Form Window: frmExemplo Contents cMeuDataField: dfTEXTO On SAM_Create Call SalGetItemName( hWndItem , sNome ) Set MyValue = 'Ol, este o objeto ' || sNome

9-

Execute a aplicao e veja o resultado.

Assim, utilizando o CDK, voc pode construir programas que escrevam cdigo fonte no outline de aplicaes SQLWindows/32, podendo vir a criar aplicaes completas dessa
Pgina PAGE 582

Programando com o Centura Team Developer 2000

forma. Este assunto ser estudado detalhadamente no Captulo 11 - Criando seus prprios QuickObjects. Registrando seus Assistentes Suas aplicaes construdas com o CDK podem ser transformadas em Assistentes, e voc pode registrar essas aplicaes na caixa de dilogo de assistentes do prprio SQLWindows/32, a janela Wizards, facilitando a utilizao por parte dos desenvolvedores. Para que voc inclua suas aplicaes na janela Wizards, necessrio registrar no SQLWindows/32 o Assistente dos Wizards, uma aplicao que instalada junto com o CDK, chamada Wizard Wizard. Para instalar o Wizard Wizard siga os seguintes procedimentos: 12Ative o SQLWindows/32, caso seja necessrio. O Wizard ser adicionado na janela dos Wizards do SQLWindows/32. Pressione Ctrl-W, ou ative o menu Component | Wizards ... para visualizar a janela Wizards.

Clique no boto Cancel para fechar a janela Wizards. 3A aplicao Wizard Wizard precisa ser executada, isso pode ser feito de uma das maneiras mostradas abaixo: Ative o menu Executar no Menu Iniciar do seu Windows e informe o
Pgina PAGE 582

Programando com o Centura Team Developer 2000

aplicativo "C:\Program Files\Centura\cdk\sal\samples\Wizwiz.exe" para ser executado.

Atravs do Windows Explorer, localize o diretrio C:\CENTURA\CDK\TOOLS e clique duas vezes no programa WIZWIZ.EXE.

4-

Confirme a execuo da aplicao quando esta janela de confirmao for mostrada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

5-

A janela abaixo mostra as informaes que sero gravadas no registro do sistema.

No altere nenhuma das informaes mostradas, simplesmente clique no boto Install para que a instalao seja realizada. 6A janela mostrada abaixo indica que o processo de instalao do Wizard Wizard foi concludo com sucesso.

7-

O Wizard Wizard, devidamente registrado na janela Wizards do SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Uma vez que o Wizard Wizard encontra-se instalado, voc pode instalar seus prprios Wizards. O Wizard Wizard faz com que sua aplicao seja um assistente auto-instalvel, ou seja, que se registra automaticamente junto aos assistentes do SQLWindows/32. Para exemplificar o registro de uma aplicao com Assistente de Wizard utilizaremos a aplicao chamada "exemplo de editor de propriedades", exCDK_App_01.app, a qual foi citada no incio deste captulo para ilustrar a utilizao de uma aplicao que configura as propriedades de algum objeto. Siga as instrues abaixo para registrar a aplicao na janela de Wizards do SQLWindows/32: 1Ative o SQLWindows/32, se for necessrio, e carregue a aplicao chamada exCDK_App_01.app Salve a aplicao exCDK_App_01.app com o nome exCDK_App_01a.app. O Wizard Wizard escrever as instrues necessrias na seo Application
Pgina PAGE 582

23-

Programando com o Centura Team Developer 2000

Actions, na aplicao, para que essa se comporte como um assistente autoinstalvel, ento, apague ou comente a linha referente ao evento On AppStartup, no Application Actions da aplicao exCDK_App_01.app.

Comente apenas a linha do evento AppStartup, conforme mostrado acima. Apague ou comente o dialog box chamado dlgConfigProp que existe nessa aplicao.

4-

Ative a janela Wizards e execute o Wizard Wizard.

A figura mostrada acima a janela inicial do Wizard Wizard, o programa que transforma sua aplicao em um assistente auto-instalvel. Clique no boto Next para iniciar. 5Nesta janela voc deve informar o nome do aplicativo e o seu cone. Aps ser instalado, o seu aplicativo ser identificado na janela Wizards pelo nome que voc digitar no campo Title.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

O nome do cone mostrado no campo Icon File ( D:\Aplicacao\help.ico ) apenas uma sugesto.

Clique no boto Next para prosseguir. 6Nesta janela, digite "Propriedade" ( sem as aspas ) no campo Key.

Isso identifica o seu assistente perante o registro do Windows. 7Conforme a figura abaixo, digite o nome do dialog box que ser executado quando o seu aplicativo, que ser transformado em assistente, for ativado. Informe aqui o nome da janela principal do seu assistente, digitando "dlgConfigProp".

Clique no boto Next para continuar.


Pgina PAGE 582

Programando com o Centura Team Developer 2000

8-

Na janela abaixo, o Wizard Wizard est mostrando as informaes que sero registradas.

Clique no boto Finish.

Ao trmino desse processo, o cdigo adicionado pelo Wizard Wizard transformou a aplicao num assistente auto-instalvel. Quando a aplicao for executada pela primeira vez, ela automaticamente ser registrada no Registro do Windows, e o seu cone ser adicionado janela Wizards do SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 10
Criando seus prprios QuickObjects
No captulo 6 foi mostrado como desenvolver aplicaes com os QuickObjects que acompanham o Centura Team Developer. Foram construdas rapidamente algumas aplicaes sem a necessidade de programao em SQLWindows/32. Agora mostraremos como construir seus prprios QuickObjects, atravs de exemplos simples e instrues passo-a-passo. Atravs dos exemplos mostrados procuramos fazer com que voc compreenda as diversas possibilidades dos QuickObjects. Para construir seus prprios QuickObjects, voc precisa ter compreendido os conceitos apresentados nos captulos 8 - Programao Orientada a Objetos com o SQLWindows/32 e 9 - Ampliando o desenvolvimento com o CDK, pois essa a base da tecnologia dos QuickObjects.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Introduo Vamos relembrar alguns conceitos sobre os QuickObjects que precisam estar bem claros neste momento.

Os QuickObjects so classes especiais que possuem uma interface amigvel com o programador, para que sejam configuradas suas caractersticas, parmetros e alguns comportamentos para o objeto, quando este estiver sendo executado. Uma classe pode ser configurada via programao atravs de escrita de cdigo SAL diretamente no message actions do objeto instanciado, dessa forma configuramos os comportamentos e atributos. Atravs do customizer configura-se as caractersticas do objeto. Nesse ponto, os QuickObjects entram em ao, oferecendo uma maneira amigvel e produtiva para a configurao das propriedades do objeto, podendo vir a substituir totalmente os outros dois modos citados anteriormente. A configurao via QuickObjects consiste de uma aplicao que chamada para configurar as propriedades do objeto. Essa aplicao pode ter sido escrita em SQLWindows/32 ou em linguagem C++, utilizando a interface Outline da biblioteca CDK. O relacionamento entre uma classe e a aplicao que ir configurar suas propriedades, feito atravs do QuickObject Editor.

O ciclo de atividades de uma aplicao configuradora de propriedades em uma determinada classe descrito abaixo: 1 A aplicao QuickObject precisa saber quem a chamou, isso possvel atravs dos parmetros recebidos na varivel do sistema chamada strArgArray. Estas informaes necessrias esto contidas nos quatro primeiros elementos deste vetor: strArgArray[1]- O nome da caixa de dilogo a ser criada, para configurar as propriedades. strArgArray[2]- O identificador do outline da aplicao. strArgArray[3]- O identificador do objeto no outline. strArgArray[4]- O handle do objeto principal da janela de design. Voc no precisa preocupar-se com isso, deve apenas ter conhecimento. Existe um procedimento padro a todas as aplicaes QuickObjects que configuram propriedades em objetos, este cdigo deve estar presente na seo Application Actions e mostrado abaixo:
On SAM_AppStartup Call CDK_App.InitializeFramework() Call CDK_App.DisplayModalWindow() On SAM_AppExit Call CDK_App.CloseApp() Call CDK_App.CloseFrameWork()

2 A aplicao deve obter as propriedades a serem configuradas, para que, se necessrio, sejam alteradas. Existem vrias formas de se obter uma propriedade de um objeto, diversas funes podem ser utilizadas, por exemplo:
Pgina PAGE 582

Programando com o Centura Team Developer 2000

oObjeto.GetClassName ( ) - Obtm o nome da classe do objeto oObjeto. oObjeto.GetName ( ) - Obtm o nome do objeto. oObjeto.GetStrProperty ( 'PropXXX' , sProp ) - Obtem o valor da propriedade 'PropXXX'. A funo GetStrProperty deve ser utilizada para recuperar os valores das propriedades definidas pelo programador.

Lembre-se: As propriedades definidas pelo programador so armazenadas no interior do objeto, no estando visveis no attribute inspector, customizer ou no outline. A nica forma de acessar essas propriedades e alterar seus valores atravs da sua prpria aplicao configuradora.

3 Ao trmino da operao de configurao, a aplicao deve gravar as propriedades configuradas no interior do objeto. Existem vrias formas de se gravar uma propriedade num objeto, diversas funes podem ser utilizadas, por exemplo: oObjeto.SetObjectClass ( ) - Define a classe base do objeto. oObjeto.SetName ( ) - Define o nome do objeto. oObjeto.SetStrProperty ( 'PropXXX' , sProp ) - Gravar o valor da propriedade 'PropXXX' no objeto. A funo SetStrProperty deve ser utilizada para gravar os valores das propriedades definidas pelo programador.

Lembre-se: As propriedades criadas pelo programador so do tipo de dado string. Voc sempre deve tomar os devidos cuidados junto a sua utilizao, convertendo tipos diferentes ao grav-las dentro do objeto ( SetStrProperty ), e ao recuper-las ( GetStrProperty ).

Eventualmente utilizaremos alguns exemplos de aplicaes construdas em captulos anteriores, voc pode utilizar as aplicaes contrudas por voc ou recuper-la diretamente do CD-ROM que acompanha o livro. Exemplo 1 Trabalhando com propriedades definidas pelo programador. Neste exemplo iremos criar uma tpica janela de propriedades que ser utilizada para permitir que o programador configure o texto que ser mostrado na barra de status, quando o usurio posicionar o mouse por cima do objeto. 1 - Inicie uma nova aplicao no SQLWindows/32. 2 - Carregue no SQLWindows/32 a aplicao chamada exOOP2.app que foi
Pgina PAGE 582

Programando com o Centura Team Developer 2000

construda no Captulo 8 - Programao Orientada a Objetos no SQLWindows/32. Voc pode fazer download dos arquivos fonte presentes no livro diretamente a partir do site http://www.centuraexplorer.com.br/livro_ctd2000/. Este exemplo chama-se exOOP2.app.

Essa aplicao, mostrada na figura acima, faz com que uma mensagem seja mostrada na barra de status do form window. A mensagem configurada atravs do mtodo DefineMsgBarraStatus que foi definido na classe de pushbutton cpbDica. A utilizao dessa funo no ser mais necessria, pois, criaremos uma interface amigvel para configurar esta propriedade. 3 - Comente as linhas de cdigo existentes no message action do pbOK e do pbCANCELAR. 4 - Para facilitar futuras referncias salve a aplicao com o nome exQO2.app. 5 - Inicie uma outra instncia do SQLWindows/32. Voc ficar com dois SQLWindows/32 abertos em seu Windows, dessa forma ilustraremos melhor o que est acontecendo. 6 - Neste segundo SQLWindows/32 aberto defina na seo Libraries do outline a interface Outline do CDK, cujo nome do arquivo CDK.APL. Libraries File Include: CDK.apl 7 - Para facilitar futuras referncias salve a aplicao com o nome exQO2Prop.app.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

8 - Insira, na seo Application Actions desta aplicao, as linhas de cdigo mostradas abaixo:
On SAM_AppStartup Call CDK_App.InitializeFramework() Call CDK_App.DisplayModalWindow() On SAM_AppExit Call CDK_App.CloseApp() Call CDK_App.CloseFrameWork()

Essas linhas representam a inicializao e a finalizao do QuickObject que estamos criando. 9Crie um objeto dialog box chamado dlgConfigPropriedades, conforme mostrado na figura abaixo:

A mensagem que ser mostrada na barra de status do form ser mostrada no data field chamado dfTEXTO, permitindo assim, que o programador configure a mensagem de forma mais amigvel. Para gravar as alteraes basta clicar no boto Ok. Caso queira sair sem salvar as alteraes, utiliza-se o boto Cancela. 10- Para que o dfTEXTO mostre a mensagem configurada para o objeto voc precisa escrever as seguintes instrues no seu message actions:

O primeiro parmetro da funo GetStrProperty o nome da propriedade a ter seu valor recuperado, este valor armazenado na varivel ou objeto informado no segundo parmetro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

11- A prxima tarefa a ser realizada gravar o novo valor da propriedade MsgBarraStatus quando o usurio clicar no boto Ok. Para que o boto grave o valor da propriedade voc deve escrever as seguintes instrues no seu message actions:

O primeiro parmetro da funo SetStrProperty o nome da propriedade que ter seu valor modificado para o contedo da varivel ou objeto informado no segundo parmetro. Quando a propriedade no existe o SQLWindows/32 cria uma nova, com o nome informado. Neste caso, a funo SalEndDialog simula a operao salvar e fechar, pois, encerra o dialog box, retornando ao objeto origem, no outline do SQLWindows/32. 12- O cdigo do boto Cancelar simples, pois encerra a aplicao, sem salvar as alteraes que porventura tenham sido realizadas. O cdigo do boto Cancelar mostrado abaixo:

13- Voc precisa gerar o executvel desta aplicao, para poder relacionar a classe cpbDica ao dlgConfigPropriedades. 14- Para gerar o executvel, acione o menu Project | Build: exQO2Prop.exe

Pgina PAGE 582

Programando com o Centura Team Developer 2000

15- A janela abaixo mostradada no caso da gerao do executvel ser bem sucedida.

16- Caso ocorra algum problema, algo parecido a janela abaixo mostrado:

O erro pode no ser o mesmo mostrado na figura acima, mas voc deve corrigir o problema e executar novamente as instrues a partir do item 14. Agora voc precisa relacionar a classe cpbDica, que est definida no programa exQO2.app, ao executvel exQO2Prop.exe atravs do QuickObject Editor. Para fazer isso, siga as instrues abaixo: 1 - Retorne ao SQLWindows/32 que est com a aplicao exQO2.app carregada. 2 - Ative o QuickObject Editor atravs do menu Component | QuickObject Editor. 3 - Configure a classe cpbDica, conforme mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

E clique no boto OK para salvar as configuraes. 4 - Agora que a classe est configurada, voc pode testar a utilizao do seu QuickObject. 5 - Ative a paleta com os controles ( Ctrl-W ) e escolha o objeto do tipo pushbutton, conforme mostrado na figura abaixo:

Escolha a classe cpbDica e coloque o objeto no form window da sua aplicao. 6 - Ative o menu de contexto do objeto clicando sobre o mesmo com o boto direito do mouse, para ento acionar opo chamada "Propriedades". 7 - Na janela de propriedades, digite o texto que voc deseja que seja mostrado quando o mouse passar por cima do objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Clique no boto Ok para gravar e sair do QuickObject. 8 - Execute a aplicao.

Voc pode utilizar quantas propriedades forem necessrias para resolver as necessidades da sua aplicao, nesse exemplo, utilizamos apenas uma como efeito didtico.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Exemplo 2 Populando uma table window Neste exemplo mostraremos como fazer um assistente que gera uma aplicao SQLWindows/32 escrevendo o cdigo fonte necessrio para o seu funcionamento. Esta aplicao que ser gerada ser capaz de carregar, numa table window, as informaes presentes nma tabela do banco de dados, de acordo com as colunas que o programador desejar. A janela da aplicao gerada ser parecida com a figura abaixo:

Este assistente que criaremos a seguir ir gerar o cdigo necessrio para que a aplicao funcione, o programador no precisar escrever nenhuma linha de programao. Observe abaixo o cdigo fonte necessrio para que a janela acima funcione. Este cdigo foi gerado pelo assistente que criaremos a seguir:

Ser necessrio registrar o assistente na janela Wizards do SQLWindows/32, portanto, muito importante o total domnio das instrues necessrias a esse procedimento, que foi explicado no captulo 10 - Ampliando o desenvolvimento com o CDK. 1 - Inicie uma nova aplicao no SQLWindows/32.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

2 - Para facilitar futuras referncias salve a aplicao com o nome exQO3Wiz.app. 3 - Registre sua aplicao como Wizard auto instalvel . Os procedimentos so detalhadamente explicados no captulo 10 - Ampliando o desenvolvimento com o CDK, na seo chamada Registrando seus assistentes.

4 - Alm da biblioteca CDK.APL voc deve incluir na seo Libraries do outline a biblioteca chamada dlgLOGIN.APL, pois, nela encontra-se a janela que efetuar o login no banco de dados. A seo Libraries da sua aplicao deve estar parecida com a figura mostrada abaixo:

5 - Observe abaixo o layout do dialog box dlgGeraTbl, faa o mesmo em sua aplicao.

O programador deve escolher no combo box Tabela o nome da tabela desejada. No list box chamado Colunas o programador deve clicar duas vezes no nome de cada coluna que ser includa na aplicao. As colunas mostradas no list box do lado
Pgina PAGE 582

Programando com o Centura Team Developer 2000

direito sero includas na aplicao que ser gerada. Quando for acionado o boto Ok o programa escrever o cdigo fonte necessrio para que a aplicao funcione. 6Observe abaixo os nomes dado aos dos objetos, importante que este padro seja seguido para facilitar as explicaes a seguir.

7-

Abaixo mostrado o cdigo fonte referente a inicializao do dialog box:


On SAM_Create If NOT SalModalDialog( dlgLOGIN, hWndForm ) Call SalQuit( ) Else Call SqlConnect( hSql )

O dialog box dlgLOGIN ativado logo no incio da aplicao, para que o programa seja conectado ao banco de dados. 8Abaixo mostrado o cdigo fonte referente a inicializao do combo box cmbTABELAS:
Combo Box: cmbTABELAS Message Actions On SAM_Create Call SalListPopulate( hWndItem, hSql, "SELECT NAME FROM SYSTABLES")

Isso faz com que os nomes de todas as tabelas do banco de dados sejam carregados no combo box. 9Quando o nome de uma tabela for escolhida no combo box cmbTABELA os nomes das colunas desta tabela devem ser mostrados no list box lbCOLUNAS.
Combo Box: cmbTABELAS Message Actions On SAM_Click Call SalListPopulate( lbCOLUNAS, hSql, "SELECT NAME FROM SYSCOLUMNS WHERE TBNAME = :cmbTABELAS" )

Esse o cdigo necessrio ao cmbTABELAS, para que os nomes das colunas sejam mostrados no list box lbCOLUNAS. 10 - Quando o programador clicar duas vezes em algum dos nomes mostrados no lbCOLUNAS, esse nome deve ser colocado no lbCOLS_ESCOLHIDAS e retirado do lbCOLUNAS.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

List Box: lbCOLUNAS Message Actions On SAM_DoubleClick Call SalListAdd( lbCOLS_ESCOLHIDAS, SalListQueryTextX( hWndItem, SalListQuerySelection( hWndItem ))) Call SalListDelete( hWndItem, SalListQuerySelection( hWndItem ))

Observe que a funo SalListQuerySelection obtm o nmero do item selecionado, o item que o programador clicou, esse nmero passado como parmetro para a funo SalListQueryTextX que retorna o texto deste item, esse texto inserido no list box lbCOLS_ESCOLHIDAS pela funo SalListAdd. Tudo isso feito na primeira linha de cdigo do message actions, a segunda linha simplesmente exclui o item selecionado no list box lbCOLUNAS. 11 - O lbCOLS_ESCOLHIDAS possui comportamento semelhante, observe o cdigo fonte:
List Box: lbCOLS_ESCOLHIDAS Message Actions On SAM_DoubleClick Call SalListAdd( lbCOLUNAS, SalListQueryTextX( hWndItem, SalListQuerySelection( hWndItem ))) Call SalListDelete( hWndItem , SalListQuerySelection( hWndItem ))

12 - No boto Ok est a parte principal deste programa, atravs dele que o programador encerra a execuo do programa e ativa a gerao do cdigo fonte. O message actions do pbOK extremamente simples:
Pushbutton: pbOK Message Actions On SAM_Click Call dlgGeraTbl.fListaParaStr( ) Call dlgGeraTbl.fGeraCodigo( ) Call SalEndDialog( hWndForm , TRUE )

Vamos analisar mais detalhadamente as duas funes utilizadas. 13 - A funo fListaParaStr transfere os nomes das colunas que foram escolhidas, e que esto no lbCOLS_ESCOLHIDAS, para uma varivel stgring chamada sColunasEscolhidas. Nessa varivel as colunas esto separadas por vrgulas. Isso feito para que seja montado parte do comando SELECT que ser utilizado para carregar os dados na table window. Observe abaixo o cdigo fonte da funo fListaParaStr:
Function: fListaParaStr Local variables Number: nQtdEscolhidas Number: nIdx String: sColuna Actions Set nQtdEscolhidas = SalListQueryCount( lbCOLS_ESCOLHIDAS ) Set sColunasEscolhidas = STRING_Null While nQtdEscolhidas >= nIdx Set sColuna = SalListQueryTextX( lbCOLS_ESCOLHIDAS, nIdx ) If SalStrLength( sColuna ) >= 1 If SalStrLength( sColunasEscolhidas ) >= 1 Set sColunasEscolhidas = sColunasEscolhidas || ", " || sColuna Else Set sColunasEscolhidas = sColuna

Pgina PAGE 582

Programando com o Centura Team Developer 2000


Set nIdx = nIdx + 1

Suponha que o programador escolheu as colunas COMPANY_ID, COMPANY_NAME e PHONE. Estas colunas encontram-se no list box lbCOLS_ESCOLHIDAS. Ao trmino da execuo dessa funo o contedo da varivel sColunasEscolhidas ser "COMPANY_ID, COMPANY_NAME, PHONE". 14 - Isso tudo a preparao para a funo fGeraCodigo, que gera o cdigo fonte, seu cdigo mostrado abaixo:
Function: fGeraCodigo Local variables Number: nNumColunas Number: nColuna cdkBaseTable: oTable cdkColumn: oColuna cdkActionBlock: oAcao cdkMessageAction: oMsgAction cdkContainer: oForm Actions 1 Call CDK_App.AddTopLevelWindow( CDK_IT_TableWindow , "tw" || cmbTABELAS , oTable ) 2 Call oTable.SetWindowTitle( "Dados da tabela " || cmbTABELAS ) 3 Set nNumColunas = SalListQueryCount( lbCOLS_ESCOLHIDAS ) 4 Set nColuna = 0 5 While nNumColunas > nColuna 6 Call oTable.AddColumn( "col" || SalListQueryTextX( lbCOLS_ESCOLHIDAS, nColuna ) , oColuna ) 7 Call oColuna.SetWindowTitle( SalStrProperX( SalListQueryTextX( lbCOLS_ESCOLHIDAS, nColuna ) ) ) 8 Set nColuna = nColuna + 1 ! 9 Call oTable.AddWindowVariable( CDK_IT_SqlHandle, "hSql" ) ! 10 Call oTable.AddMessageAction( "SAM_Create", oMsgAction ) 11 Call oMsgAction.GetActions( oAcao ) ! 12 Call oAcao.InsertAfter( "Set SqlDatabase = '" || SqlDatabase || "' " 13 Call oAcao.InsertAfter( "Set SqlUser = '" || SqlUser || "' " 14 Call oAcao.InsertAfter( "Set SqlPassword = '" || SqlPassword || "' " 15 Call oAcao.InsertAfter( "Call SqlConnect ( hSql ) " ) ! 16 Call oAcao.InsertAfter( "Call SalTblPopulate ( hWndItem , hSql , ' SELECT " || sColunasEscolhidas || " FROM " || cmbTABELAS || " ' , TBL_FillAll ) " ) ! 17 Call oTable.AddMessageAction( "SAM_Close", oMsgAction ) 18 Call oMsgAction.GetActions( oAcao ) 19 Call oAcao.InsertAfter( "Call SqlDisconnect ( hSql ) " )

) ) )

As linhas foram numeradas para facilitar as explicaes a seguir: A linha 1 insere na aplicao um objeto tipo top level table window, neste momento, a varivel oTable inicializada representando o objeto criado. O ttulo da table window atribudo na linha 2. Na linha 3 o nmero de colunas escolhidas armazenado na varivel nNumColunas que ser utilizada juntamente com a varivel nColuna ( na linha 4 ) no loop definido pelo comando While ( na linha 5 ). Esse lao utilizado para criar as colunas na aplicao, de acordo com as colunas escolhidas no lbCOLS_ESCOLHIDAS. A linha 6 insere a coluna enquanto que a linha 7 determina o seu ttulo. A varivel que ser utilizada como handle sql inserida no outline da aplicao, conforme mostrado na linha 9. As prximas instrues, entre as linhas 10 e 19,
Pgina PAGE 582

Programando com o Centura Team Developer 2000

so utilizadas para a escrita propriamente dita do cdigo fonte. Essas linhas so inseridas no message actions da table window, so as informaes necessrias para a conexo e para a carga dos dados na table window. 15 - Voc deve gerar o executvel desta aplicao ( exQO3Wiz.exe ) e execut-lo para que seja adicionado janela Wizards do SQLWindows/32. Nesse exemplo mostramos como programar a gerao de cdigo completamente funcional em SQLWindows/32 utilizando a biblioteca CDK. Voc pode modificar e melhorar alguma funcionalidade dessa aplicao para melhor satisfazer suas necessidades de desenvolvimento.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 11
Imprimindo relatrios com o Report Builder
Este captulo procura apresentar os conceitos de funcionamento do Report Builder e do SQLWindows na impresso de relatrios. O mecanismo de comunicao entre o Report Builder e o SQLWindows so apresentados de forma simples sempre seguida de um exemplo. importante consultar o Apndice D - Guia de referncia das Funes do Report Builder para maiores detalhes das funes disponveis no Report Builder. Quanto s funes do SQLWindows que tratam da interface com relatrios recomendamos que seja consultado o Apndice A - Guia de Referncia das Funes SAL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O mecanismo de impresso de relatrio do Centura Team Developer O Report Builder a ferramenta que acompanha o Centura Team Developer destinada a confeco dos relatrios executados a partir das aplicaes desenvolvidas em SQLWindows. no Report Builder que voc define o layout do seu relatrio, as colunas, os grupos de quebras, os totais e as frmulas. Eventualmente voc pode ter necessidade de criar relatrios com grficos, necessidade suprida no Report Builder atravs de um objeto especfico para grficos. Voc define o layout desejado para o seu relatrio no Report Builder e salva este layout como um arquivo apropriado, com extenso "QRP", que pode ser utilizado no SQLWindows como parmetro nas funes SalReport* para identificar o relatrio a ser executado pela aplicao. Em tempo de execuo da aplicao, no momento em que o relatrio solicitado pelo usurio, voc deve fazer uso das funes SalReportPrint() ou SalReportView() para iniciar a impresso ou a visualizao do layout montado. Em tempo de execuo os dados so incorporados ao layout e o relatrio ento extrado para a impressora ou tela. O programador possui total controle sobre o envio dos dados da aplicao para o Report Builder. Atravs de uma srie de mensagens a comunicao entre as duas aplicaes estabelecida e a troca de informaes constante. No momento em que o programador faz uma chamada s funes que disparam o relatrio, o Report Builder iniciado, por isso o executvel do aplicativo Report Builder deve ser instalado no ambiente do cliente junto com a aplicao. Junto a essa chamada que inicia o relatrio so passados vrios parmetros partindo da aplicao para o Report Builder. Um desses parmetros o nome do arquivo de layout a ser carregado. Logo na sua inicializao o Report Builder faz algumas verificaes como por exemplo certificar-se da existncia do arquivo de layout informado. Existindo alguma anormalidade a prpria funo que iniciou o relatrio retorna um erro para a aplicao. Caso nenhum erro ocorra o Report Builder carrega na memria o layout informado e avisa para a aplicao que a inicializao do relatrio foi efetuada com sucesso. O modo pelo qual o Report Builder avisa a aplicao que tudo est OK enviando a mensagem SAM_ReportStart para o objeto identificado na inicializao como objeto responsvel pela comunicao entre a aplicao e o Report Builder. Voc deve interceptar essa mensagem na aplicao caso queira configurar alguns parmetros, variveis ou executar algumas tarefas tpicas de inicializao de relatrio. Neste momento o Report Builder est apto a receber dados vindos da aplicao. A tarefa de buscar os dados do contedo do relatrio no banco de dados deve ser realizada pela aplicao, o Report Builder apenas recebe estas informaes, formata de acordo com a definio do layout e envia para a impressora. Aps a mensagem SAM_ReportStart o Report Builder envia outra mensagem aplicao para indicar o momento em que a primeira pgina do relatrio ser formatada. A mensagem SAM_ReportFetchInit indica que o Report Builder est apto a receber as
Pgina PAGE 582

Programando com o Centura Team Developer 2000

informaes a serem impressas. Voc deve, neste momento, iniciar o envio do contedo a ser impresso. O restante da comunicao entre a aplicao e o relatrio passa a ser estabelecida atravs de duas mensagens: SAM_ReportFetchNext Quando o Report Builder envia esta mensagem para a aplicao significa que esta pode enviar dados para serem impressos. A aplicao deve, neste momento, obter a prxima linha de dados do local de origem das informaes a serem impressas, este local no precisa ser obrigatoriamente um banco de dados padro SQL. Relatrios podem ser impressos no Report Builder com dados vindos de qualquer lugar onde uma aplicao Centura SQLWindows seja capaz de ir buscar, por exemplo arquivos TXT, DBF, documentos de um processador de textos ou sites web. O Report Builder aguarda pelo valor de retorno da mensagem SAM_ReportFetchNext. Quando a aplicao determinar que o relatrio deve ser encerrado, um valor FALSE deve ser retornado nesta mensagem. Caso um valor TRUE seja retornado o Report Builder continua a impresso do mesmo. SAM_ReportNotify As informaes enviadas a partir da aplicao vo sendo formadas pelo Report Builder em blocos para ento serem impressas. Quando estes blocos atingem o limite de uma pgina a pgina impressa ou visualizada na tela. A mensagem SAM_ReportNotify enviada aplicao antes que qualquer desses blocos sejam formatados ou impressos, de modo que voc possa modific-los antes de serem formatados pelo Report Builder. Por exemplo, antes de formatar o cabealho voc pode enviar informaes como nome da empresa, intervalo de datas do perodo de abrangncia do relatrio ou at mesmo o nome do mdulo da aplicao. Consulte o Apndice C - Guia das Mensagens SAM para obter maiores detalhes sobre o funcionamento da mensagem SAM_ReportNotify.

De acordo com as definies feitas no layout quanto aos grupos de quebras o Report Builder automaticamente efetua as quebras de grupo atualizando os devidos sub-totais. Nenhum esforo de programao necessrio para que as quebras de grupo sejam feitas. Da mesma forma que nenhum esforo se faz necessrio no que diz respeito s quebras de pgina. De acordo com as definies de layout de pgina (tamanho, margens etc) o prprio Report Builder se encarrega de imprimir o rodap, saltar uma pgina, imprimir o cabealho e continuar a impresso normalmente do relatrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

J que a aplicao o responsvel por enviar os dados para o Report Builder, ela mesma a responsvel por determinar quando o relatrio deve ser encerrado. Para que o Report Builder entenda que o relatrio deve ser encerrado basta que, assim que a aplicao receber a mensagem SAM_ReportFetchNext, um valor FALSE seja retornado para o relatrio. Neste momento o Report Builder se encarrega de imprimir o rodap da pgina e, caso seja definido, a pgina final de resumo do relatrio. Assim que o Report Builder termina esse trabalho a mensagem SAM_ReportFinish enviada aplicao. Este todo o ciclo de comunicao entre a aplicao e o Report Builder necessrio para imprimir qualquer tipo de relatrio. Existe uma alternativa muito prtica e que pode ser utilizada na grande maioria dos relatrios necessitados pelas empresas. Consiste em carregar numa child table window todos os dados a serem enviados para o Report Builder, na ordem de classificao em que devem ser impressos. Simplesmente fazendo-se uma chamada funo SalReportTablePrint() ou SalReportTableView() o processo de enviar os dados para o Report Builder feito de forma automtica, sem que seja necessrio interceptar as mensagens SAM_ReportStart, SAM_ReportFetchInit, SAM_ReportFetchNext e SAM_ReportFinish na aplicao. Esta uma forma muito utilizada pois a mensagem SAM_ReportNotify continua a ser recebida pela aplicao, permitindo as "customizaes" que forem necessrias. O Report Builder Apresentaremos agora o Report Builder, a ferramenta onde os layouts so definidos, para em seguida mostrar alguns exemplos de como enviar dados e receber informaes do Report Builder. O Report Builder pode ser ativado a partir do ambiente do SQLWindows, onde a aplicao codificada. Atravs do menu Tools | Report Builder voc tem acesso ao Report Builder. A interface padro do Report Builder mostrada na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Assim como o ambiente de desenvolvimento de aplicaes SQLWindows, o Report Builder tambm possui os quadros esquerdo e direito, de forma a melhor organizar as informaes e facilitar a definio do layout do relatrio. No quadro esquerdo esto as definies dos itens, das variveis, frmulas, totais e das quebras de grupos. Basta acionar o menu de contexto clicando com o boto direito do mouse para ter acesso s telas de configuraes de cada item, permitindo que itens sejam includos, alterados e excludos rapidamente.

No quadro direito est localizado o layout propriamente dito. Onde devem ser colocados os itens a serem impressos. Existem reas distintas para que seja configurado o contedo do Report Header, Page Header, Detail Block, Page Footer e Report Footer. Cada uma dessas reas, quando expandidas, podem possuir diversas linhas onde os itens a serem impressos so colocados. Todas as configuraes quanto a posio, formatao de fonte, cores e melhoramento de fonte deve ser definida neste momento pois o relatrio ser impresso conforme as definies feitas neste local. A figura abaixo ilustra o item chamado PHONE, que est posicionado no Detail Block,
Pgina PAGE 582

Programando com o Centura Team Developer 2000

tendo sua fonte configurada atravs do combo box situado na barra de ferramentas do Report Builder.

Caso seja necessrio realizar configuraes mais profundas num determinado item, basta ativar o menu de contexto do objeto clicando sobre ele com o boto direito do mouse e acionando o menu item Properties. Isso far com que uma janela de configuraes das propriedades do item selecionado seja mostrada e diversas configuraes possam ser realizadas numa nica janela. Conforme ilustrado na figura abaixo:

A janela com as propriedades do objeto escolhido. Voc pode mover os itens situados na rvore localizada no quadro esquerdo diretamente para a posio desejada no layout, desta forma a confeco do seu layout de impresso bastante agilizada. Observe que no momento em que voc adiciona um Break Group, dois novos itens so adicionados na estrutura das sees no quadro direito, uma chamada Header do grupo e
Pgina PAGE 582

Programando com o Centura Team Developer 2000

outra Footer. Atravs dessa estrutura toda a implementao aos grupos de quebra e seus respectivos sub-totais habilitada. As frmulas Voc pode inserir frmulas em qualquer local do relatrio, no quadro esquerdo voc define a frmula e posteriormente a arrasta posicionando-a no quadro direito. Opcionalmente voc pode inserir um objeto do tipo campo (Field) e clicar no boto chamado Editor, localizado na barra de ferramentas do Report Builder.

Selecione o objeto Field, posicione o objeto no layout e clique no boto Editor. Dessa forma voc ter acesso janela do Editor de Formulas do Report Builder, onde frmulas complexas podem ser definidas mesclando-se os itens de dados definidos e as funes nativas do Report Builder.

O Editor de Frmulas do Report Builder. Consulte o Apndice D - Guia das Funes do Report Builder para obter informaes detalhadas do funcionamento de cada uma das funes disponveis no Report Builder, alm de seus parmetros, valores de retorno e descrio. Montando um relatrio rapidamente O Report builder presente no Centura Team Developer 2000 prov um meio extremamente rpido para a definio de layouts com nvel mdio de complexidade. Relatrios
Pgina PAGE 582

Programando com o Centura Team Developer 2000

complexos exigem esforo manual do desenvolvedor, que precisar criar cada item no quadro esquerdo e posicion-lo no seu devido lugar no quadro direito. Mostraremos agora como o Report Builder pode nos ajudar na montagem de um layout simples de relatrio. No exemplo abaixo ilustraremos um relatrio simples para que voc entenda o conceito e a forma de operao do Report Builder. Assim que o Report Builder iniciado a impresso que se tem de que o relatrio todo branco e vazio. Isso acontece pois o Report Builder inicia em modo Preview de um layout realmente vazio. Precisamos definir a query que servir de fonte de dados para o relatrio. 1 Clique no boto Define Query para que a caixa de dilogo chamada Define Query aparea.

2 Nesta caixa de dilogo voc deve informar, utilizando o mouse, o fornecedor do seu banco de dados, o nome, efetuar o login, escolher as tabelas e as colunas desejadas.

bem provvel que esta interface visual o faa lembrar dos Quick Objects vistos anteriormente nos captulos iniciais deste livro. 3 Conforme a figura anterior, voc pode escolher algumas colunas de uma ou mais
Pgina PAGE 582

Programando com o Centura Team Developer 2000

tabelas, montar as condies, a classificao e outros atributos da query que servir de fonte dos dados para o relatrio. importante lembrar que a query s fica armazenada no arquivo de layout caso este seja salvo com extenso .CQT. O padro para utilizarmos posteriormente numa aplicao SQLWindows o formato .QRP. Portanto tome cuidado para no fazer confuso com estes formatos. Arquivos do tipo CQT devem ser utilizados apenas pelo usurio final, no caso deste usurio ter acesso a um banco de dados para poder definir seus prprios layouts e imprimir seus prprios relatrios de forma automtica no Report Builder. 4 Aps a definio da fonte de dado do relatrio o Report Builder monta um modelo padro de layout de relatrio que pode ser perfeitamente personalizado.

5 O layout pode ser personalizado conforme as necessidades da aplicao e posteriormente salvo com extenso QRP, para que possamos utiliz-lo no SQLWindows.

A gerao do arquivo QRP Aps ter configurado todo o layout do seu relatrio voc deve export-lo para o formato QRP. Faa isso atravs do boto da barra de ferramentas chamado Export Template.

Exporte o seu layout para o formato QRP. O layout pode continuar existindo e voc deve salv-lo como .CQT pois provavelmente ser necessrio futuramente inserir ou excluir colunas no layout do relatrio. Com o
Pgina PAGE 582

Programando com o Centura Team Developer 2000

arquivo salvo em formato .CQT voc poder sempre que desejar gerar arquivos QRP, bastando para isso export-los.

Imprimindo a partir do SQLWindows Uma vez definido o layout no Report Builder o prximo passo para que a aplicao de impresso de relatrios seja concluda codificar o programa em SQLWindows para enviar os dados para o relatrio. Mostraremos como fazer isso abaixo: 1 Construmos uma aplicao onde um pushbutton ativar a impresso do relatrio.

Ilustraremos como ativar uma janela com a visualizao do relatrio em tela. Adicione ao pushbutton o seguinte cdigo:
Pushbutton: pbIMPRIME_EMPRESAS Message Actions On SAM_Click Call SalReportView( hWndForm, hWndNULL, sQRP, sINPUTS, sBINDS, nErro)

Consulte o Apndice A - Guia de referncia das Funes SAL para obter detalhes do funcionamento da funo SalReportView(), assim como seus parmetros. Lembre-se de definir as variveis que esto sendo utilizadas na seo Variables do form window. 3 Iniciando a conexo com o banco de dados e configurando variveis iniciais da aplicao.
On SAM_ReportStart Set SqlDatabase = "ISLAND" Set sSQL = " SELECT COMPANY_ID , COMPANY_NAME INTO :sCodigo , :sNome FROM COMPANY ORDER BY 1" Call SqlConnect( hSql )

Quando o Report Builder avisar que foi inicializado corretamente execute o comando SQL que ir recuperar as informaes do banco de dados a serem impressas.
On SAM_ReportFetchInit

Pgina PAGE 582

Programando com o Centura Team Developer 2000


Return SqlPrepareAndExecute ( hSql, sSQL )

Envie cada linha recuperada para o relatrio


On SAM_ReportFetchNext Return SqlFetchNext ( hSql )

A linha de cdigo abaixo ilustra o envio de uma data armazenada no data field dfData_Emissao para ser impressa no Page Header do relatrio. Observe que no layout do relatrio deve existir uma varivel definida do mesmo tipo de dado do data field utilizado.
On SAM_ReportNotify If lParam = RPT_BeforePageHeader Call SalReportSetDateTimeVar( hRelatorio, "dtDATA", dfData_Emissao )

Fim do relatrio. Sempre desconecte sua aplicao do banco de dados.


On SAM_ReportFinish Call SqlDisconnect( hSql )

importante observar os tipos de dados envolvidos nas variveis utilizadas. Isso pode economizar um tempo considervel no desenvolvimento da aplicao, pois o Report Builder no permite a troca de informaes atravs de variveis/objetos com tipos de dados diferentes. Procuramos mostrar neste captulo uma introduo quanto a utilizao do Report Builder e impresso de relatrio a partir do SQLWindows. Este assunto merece um estudo mais aprofundado que aguardamos ter oportunidade de estudar em outra ocasio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 12
Distribuio do produto final
Este captulo mostra ao leitor as trs formas de distribuio de aplicaes construdas com o SQLWindows/32. So explicados os seus conceitos, limitaes, forma de implementao e utilizao de cada uma das tecnologias apresentadas, bem como dicas de utilizao. extremamente importante que a instalao do Centura Team Developer tenha sido realizada conforme instrues presentes no Apndice F - Guia de Instalao do Centura Team Developer 2000 . Sero utilizados exemplos utilizando o Object Compiler que para funcionar corretamente, necessita que o MS Visual C++ tenha sido instalado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apresentao Uma vez pronta a sua aplicao, necessrio gerar o mdulo que ser distribudo aos seus usurios. No SQLWindows/32 essa distribuio pode ser feita de diversas maneiras. Dynalibs Uma dynalib um mdulo compilado com funes e objetos que so utilizados dinamicamente por outras aplicaes em tempo de execuo, um tipo de arquivo intermedirio entre uma APL e uma DLL. Assim como uma APL, possvel inclu-la numa na seo Libraries do outline da aplicao e utilizar seus recursos. A diferena entre dynalibs em bibliotecas *.APL que a dynalib no compartilha cdigo, mas sim as interfaces aos recursos como forms, table windows, funes e variveis. Assim como uma DLL, o seu contedo s carregado para a memria quando o aplicativo solicitar algum recurso que pertence a uma determinada dynalib, isto j em tempo de execuo. A principal diferena entre uma dynalib e uma DLL que a dynalib gerada diretamente a partir de um programa escrito em SQLWindows/32. Nem todos os recursos disponveis numa aplicao SQLWindows/32 podem ser compartilhados. Observe abaixo, o que pode ser compartilhado numa dynalib:

As funes globais As variveis nativas 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 encontra-se 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. Informao: No desenvolvimento de grandes aplicativos, provvel que alguns limites internos do SQLWindows/32 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 SQLWindows/32.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Limitaes Os recursos mostrados abaixo, no podem ser exportados atravs da utilizao de dynalib:

Constantes, classes e declaraes de funes externas. Coloque esses elementos num arquivo *.APL e inclua esse arquivo tanto na dynalib quanto na aplicao. Funes e variveis herdados. Crie e compartilhe funes servindo de interface para acessar as variveis ou chamar as funes herdadas. Objetos situados no interior da seo Contents. No possvel compartilhar apenas child objects.

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 fObtem_DynalibVersao( ) que ir recuperar o valor da constante Dynalib_Versao. Observe tambm que aps o nome da funo est a palavra chave ! __exported, que serve para que o SQLWindows/32 entenda quais elementos sero exportados na gerao da dynalib.

Aps indicar quais elementos da aplicao sero compartilhados voc precisa compilar a dynalib para que possa utilizar em outras aplicaes. Ative o menu Project | Build Settings... para ter acesso janela Build Settings, onde feita a configurao do SQLWindows/32 para que seja gerada a dynalib.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Certifique-se de que o radio button Dynalib est marcado.

Clique no boto OK para prosseguir. Para criar a dynalib acione o menu Project | Build: exDynalib.apd, quando a janela chamada Build Information aparecer, clique no boto OK.

Informao: Dynalib prov ao desenvolvedor a possibilidade de criao de componentes, modularizando a aplicao. Com as dynalibs o desenvolvedor pode, passo-apasso, 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.

Utilizando a dynalib Observe na figura abaixo que a dynalib exDynalib.apd foi includa na aplicao e que a funo fObtem_DynalibVersao ( ) 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.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Importante: Normalmente as dynalibs continuam compatveis mesmo aps uma atualizao do 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.

Executveis A gerao do executvel de uma aplicao SQLWindows/32 extremamente simples, basta acionar o menu Project | Build. Lembre-se que a aplicao precisar estar livre de erros de compilao. Atravs da caixa de dilogo Build Settings pode ser configurado a gerao do executvel, seu path e o cone da aplicao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O executvel gerado pelo SQLWindows/32 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 SQLWindows/32 e do Report Builder. 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.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Gerao de DLLs no Centura SQLWindows/32 A terceira forma de distribuio dos aplicativos em construdos com o SQLWindows/32 a gerao de arquivos dlls, feita atravs do Object Compiler. A gerao de arquivos dlls oferece, no s mais uma opo para a distribuio de aplicaes, como tambm uma forma de melhorar a performance da aplicao. O Object Compiler precisa ter sido habilitado na instalao do Centura Team Developer, conforme instrues descritas no Apndice F - Guia de Instalao do Centura Team Developer 2000. Para a compilao e gerao do arquivo .dll o Object Compiler necessita de um compilador C, que pode ser o Visual C++ verso 2.0, ou verses mais recentes. Por esse motivo, o Object Compiler necessita que alguns componentes presentes no compilador C estejam habilitados para que a dll seja gerada com sucesso, esse componentes so: utilitrio make compilador C linker As bibliotecas Os arquivos include.

Esses componentes podem ser localizados atravs do arquivo MSVC.INI localizado no diretrio do Windows, ou atravs das variveis de ambiente configuradas no arquivo batch chamado VCVARS32.BAT, que instalado junto com o Visual C++. Alm desses componentes, o Object Compiler precisa encontrar algumas bibliotecas que so encontradas nos diretrios CENTURA\LIB e CENTURA\INC. Itens que podem ser compilados Existem algumas partes de uma aplicao SQLWindows/32 que, quando compiladas pelo Object Compiler, so transformadas em dll. Mas preciso saber que partes da sua aplicao podem ser compiladas pois, por enquanto, no possvel compilar toda a aplicao SQLWindows/32. Com o Object Compiler a performance da aplicao pode ser melhorada sensivelmente, por isso necessrio saber que partes da aplicao podem obter benefcios com a compilao em C. Podem ser compilados com o Object Compiler os seguintes itens de uma aplicao SQLWindows/32: Funes internas Funes das classes tipo Functional Funes e mensagens das classes tipo General Window

As limitaes do Object Compiler O Object Compiler no ser capaz de gerar a biblioteca dll caso o cdigo fonte possua uma das seguintes caractersticas:
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Utilizao do comando When SqlError Chamada funo SalCompileAndEvaluate Chamada funes que no podem ser compiladas Chamada funes externas que possuam ao menos um parmetro do tipo structPointer Chamada funes Late Bound Referncia qualificada ( permitido apenas chamadas qualificadas variveis e funes da classe base) Referncia a algum objeto. Referncia a variveis, parmetros ou funes de algum objeto Dica : Declare sempre o tipo de dado de retorno da funo que voc deseja compilar.

i i

Convenes do Object Compiler Como vimos anteriormente, para indicar que um elemento da sua aplicao ser exportado em uma dynalib utiliza-se por conveno a palavra chave __exported, para a utilizao do Object Compiler existem algumas convenes. Importante : No coloque um espao e dois underscores aps um sinal de exclamao em seus comentrios.

As convenes a serem utilizadas junto ao Object Compiler so demonstradas abaixo: Para evitar a compilao de determinadas partes do cdigo SAL : __native

Podemos informar ao Object Compiler que utilize um determinado tipo de dado para variveis numricas. Utilize uma das seguintes convenes ao lado da declarao da varivel:

__byte __char __double __float


Pgina PAGE 582

Programando com o Centura Team Developer 2000

__word __int __long __dword __number ( o padro ) Dicas : Utilize os tipos de dados __byte, __char, __word, __int, __long ou __dword para contadores e ndices de vetores, e os tipos de dados __double e __float para clculos cientficos em notao exponencial.

Utilizando o Object Compiler Mostraremos agora como utilizar o Object Compiler, ou seja, como gerar dlls com o Centura SQLWindows/32. Lembre-se que a instalao do produto deve ter sido realizada conforme as instrues descritas no Apndice F - Guia de Instalao do Centura Team Developer 2000. Voc precisa ter disponvel o Visual C++ da Microsoft para que a compilao seja bem sucedida. Nos exemplos mostrados abaixo foi utilizado o MS Visual C++ 5.0. 1 - Inicie uma nova aplicao no SQLWindows/32. 2 - Salve a aplicao com o nome exCap13_01.apl para facilitar futuras referncias. 3 - Crie uma funo interna utilizando variveis numricas, se desejar utilize as convenes para os tipos dados numricos, conforme mostrado anteriormente.

Acima mostrado um exemplo de codificao de uma funo interna. 4 - Crie uma classe do tipo functional e nela defina algumas funes.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para efeito de demonstrao observe acima a definio de uma funo da classe cFC_01. Lembre-se sempre de especificar o tipo de dado que ser retornado pela funo. 5 - Crie uma classe tipo general e defina algumas funes e aes.

6 - Compile o aplicativo, para evitar erros de compilao, acionando a tecla F8. Se nenhum erro for encontrado acione o menu Project | Build Settings... para ter acesso janela mostrada abaixo:

Selecione o radio button chamado Include Library ( Using Object Compiler ) e, no campo Build Target, informe o nome do arquivo a ser gerado. Esse nome, que normalmente sugerido pelo SQLWindows/32, deve ter a extenso *.APC, identificando o arquivo como um arquivo compilado pelo Object Compiler.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

7 - O nome da dll que ser gerada pode ser configurado na mesma tela, na tab Object Compiler.

Se voc desejar, pode alterar as configuraes que o Object Compiler utilizar para a gerao da dll clicando no boto Settings... Clique no boto OK para salvar as configuraes da gerao da biblioteca dll. 8 - Acione o menu Project | Build para ativar a gerao da dll. A janela abaixo ser mostrada, confirme as informaes apresentadas. Caso voc queira alterar alguma configurao, clique no boto Settings para ter acesso janela Build Settings. Se estiver tudo correto clique no boto OK para que a gerao da dll tenha incio.

9 - A figura abaixo mostra a janela de status do Object Compiler, onde informado que a gerao da dll foi realizada com sucesso.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

10 -

Voc pode abrir o arquivo exCap13_01.APC e verificar o que foi feito pelo Objetc Compiler.

11 -

Para utilizar a biblioteca exCap13_01.DLL que foi gerada pelo Object Compiler voc precisa declarar o arquivo exCap13_01.APC na seo Libraries da sua aplicao.

Resumo Conforme vimos nesse captulo, existem trs formas que podemos distribuir aplicaes feitas em Centura SQLWindows/32. Voc precisa conhecer bem as trs formas para utilizar seus recursos de forma correta. Observe algumas sugestes:

Distribuio atravs de um executvel ( *.EXE ) Utilize o executvel para colocar a parte principal do seu aplicativo, a parte que serve apenas ao aplicativo, no sendo compartilhada com outras aplicaes. Por exemplo os menus, funes e objetos particulares ao aplicativo.

Distribuio atravs de uma dynalib ( *.APD ) Utilize a dynalib para compartilhar janelas top level e funes que devem ser compartilhadas entre diversas aplicaes. Por exemplo as janelas genricas como de login, tabelas e funes genricas.

Distribuio atravs de uma dll ( *.DLL ) Crie suas dlls para distribuir funes otimizadas de alta performance. Como vimos anteriormente as funes internas, funes definidas nas classes tipo funcional e general podem ser tambm compartilhadas atravs de dlls.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 13
Traduzindo aplicaes com o Object Nationalizer
Este captulo apresenta o Object Nationalizer, sua filosofia, benefcios e o modo como voc pode utiliz-lo. Essa uma ferramenta muito importante e til, pois, a grosso modo, permite que sejam alterados os executveis e dynalibs quanto ao idioma e quanto aos recursos visuais, para que a aplicao se adapte aos usurios. O Object Nationalizer uma evoluo do Edit Windows utilizado no SQLWindows/16. Portanto, muito importante que voc conhea perfeitamente seus recursos. Para utilizar o Object Nationalizer voc precisar ter instalado o Centura Team Developer conforme descrito no Apncice F Guia de Instalao do Centura Team Developer 2000.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Objetivo Com o Object Nationalizer possvel traduzir as aplicaes desenvolvidas em SQLWindows/32, sem modificar o seu cdigo fonte, sendo necessrio apenas o arquivo executvel e, se for o caso, as dynalibs. Voc pode tambm modificar a aparncia da interface do usurio, dispensando alterao no cdigo fonte. Por exemplo, aps a traduo, o tamanho de um componente pode no ser adequado para comportar o texto traduzido. As dimenses dos componentes da aplicao podem ser alteradas para se adaptarem s tradues feitas.

O que pode ser traduzido ? Um executvel Centura SQLWindows/32 no contm apenas a lgica da aplicao, dele fazem parte alguns atributos conhecidos por recursos ( resources ). Esses atributos so de natureza esttica, modific-los no acarretar em mudana na lgica da aplicao. So as propriedades dos objetos visuais. Propriedades que afetam diretamente a aparncia do objeto. O Object Nationalizer pode ser utilizado para extrair, visualizar e editar esses recursos diretamente dos arquivos executveis e das Dynalibs. Atravs do Object Nationalizer no possvel realizar qualquer alterao na lgica da aplicao, ou acessar o seu Outline. Por exemplo, a especificao do tipo da fonte utilizada num data field afeta apenas a aparncia do mesmo, no afeta a sua lgica. A cor da fonte e o seu tamanho, os ttulos dos pushbuttons, os background text so outros exemplos de atributos que no interferem no funcionamento do objeto. Esses atributos so os recursos possveis de serem alterados pelo Object Nationalizer.

O funcionamento do Object Nationalizer Existem duas figuras importantes que precisam ser bem compreendidas no trabalho com o Object Nationalizer, so elas: O Programador quem codifica a aplicao em SQLWindows/32 e gera o executvel da aplicao ou a Dynalib a ser utilizada por outras aplicaes. A aplicao feita de maneira normal, sem a preocupao do idioma a ser utilizado. O Tradutor quem, utilizando o Object Nationalizer, e possuindo uma cpia do arquivo gerado pelo programador, edita os recursos da aplicao realizando as devidas tradues e ajustes de layout de tela que se fizerem necessrios. Quando encerrar o trabalho, o tradutor pode salvar as alteraes no prprio executvel/dynalib, num arquivo texto padro ou num arquivo binrio especial para o armazenamento dos recursos ( *.apr ). Naturalmente que essas duas pessoas podem ser a mesma, dependendo do modo como a empresa decidir realizar o trabalho de traduo da aplicao. Mas importante que fique claro que o programador no precisa conhecer todos os idiomas em que a aplicao ser
Pgina PAGE 582

Programando com o Centura Team Developer 2000

utilizada. Assim como o tradutor no precisa conhecer nada de programao SQLWindows/32.

Obs : Para que o tradutor tenha acesso aos recursos de um arquivo executvel ou de uma dynalib, o programador precisa marcar o check box Enable Resource Editing, na caixa de dilogo Build Settings, quando for gerar o executvel ou a dynalib.

Atualizaes das verses do seu aplicativo interessante salvar a traduo num arquivo de recursos ( *.apr ), para que possa ser reutilizada quando estiver disponvel uma nova verso da aplicao. Por exemplo, suponha que a traduo da verso 1.0 de uma aplicao foi realizada para diversos idiomas diferentes, e cada idioma foi salvo num arquivo de recursos separado. Posteriormente, quando a verso 2.0 da mesma aplicao for disponibilizada, a traduo no precisar ser feita novamente desde o incio para cada um dos idiomas. Basta aplicar o arquivo de recursos, salvo anteriormente junto a nova verso do aplicativo, para cada idioma. Isso far com que todos os recursos presentes na verso1.0, e que ainda existam na verso 2.0, sejam automaticamente traduzidos, restando, ento, traduzir apenas os novos itens do aplicativo, incorporados com a nova verso. Todos os recursos que ainda existirem na nova verso do aplicativo j estaro traduzidos quando o arquivo de recursos for aplicado, sendo necessrio apenas traduzir os novos recursos. Uma vez feita essa traduo adicional, o arquivo de recursos ento atualizado para que seja utilizado novamente junto a prxima atualizao do aplicativo.

Aplicando as tradues em tempo de execuo Os arquivos de recursos podem tambm ser aplicados ao executvel ou dynalib enquanto a aplicao executada, ou seja, em tempo de execuo. Conforme o exemplo citado acima, foram salvos diversos arquivos de recursos, cada um contendo as tradues para um determinado idioma. Em tempo de execuo, a aplicao decide qual arquivo de recursos deve ser aplicado ao arquivo executvel ou dynalib. Seu programa de instalao pode instalar uma nica verso do aplicativo, com os diversos idiomas que, porventura, o usurio tenha escolhido no momento da instalao. Quando o aplicativo for iniciado, ele decide o idioma a ser utilizado e aplica o arquivo de recursos. Essa deciso pode ser feita tomando-se por base o idioma configurado no Windows, ou at mesmo com a interao do usurio. Para que o prprio aplicativo decida o idioma a ser aplicado, dois procedimentos devem ser tomados:
Pgina PAGE 582

Programando com o Centura Team Developer 2000

o tradutor precisa salvar as tradues em arquivos recursos, um para cada idioma diferente, sem aplic-lo ao executvel. o programador precisa, via programao, detectar o idioma correto e aplicar o arquivo de recursos adequado junto ao aplicativo.

Para aplicar o arquivo de recursos em tempo de execuo junto ao aplicativo, o programador deve utilizar a funo SalResourceSet, na seo do outline chamada On SAM_AppStartup. A sintaxe da funo a seguinte: bOk = SalResourceSet ( sArquivoDeRecursos , nReservado ) Onde : sArquivoDeRecursos o nome do arquivo de recursos que ser lido e aplicado pelo SQLWindows/32. Esse arquivo foi salvo pelo tradutor com as especificaes de um determinado idioma. nReservado um parmetro que ainda no possui utilizao, est sendo reservado para uso futuro. Utilize zero nesse parmetro. bOk TRUE se a funo for executada com sucesso e FALSE se algum erro ocorrer. Quando a funo SalResourceSet executada com sucesso, um arquivo de recursos aplicado ao executvel ou dynalib e armazenado na memria. Os arquivos ( .exe e .apd ) armazenados no disco, e que esto sendo executados, no so modificados.

Observe abaixo um exemplo de cdigo que o programador pode escrever para que a aplicao decida em tempo de execuo o idioma a ser utilizado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc pode distribuir um nico executvel, para uma determinada linguagem, e diversos arquivos de recursos, um para cada idioma. Pode ainda distribuir os executveis de acordo com o idioma correto.

Ateno: importante ter sempre em mente que, quando uma aplicao est sendo executada pelo programador, atravs do Centura SQLWindows/32, e utilizando a funo SalResourceSet, os recursos da aplicao, que no momento esto na memria, so atualizados conforme o idioma especificado no arquivo de recursos. Se a aplicao for salva, os recursos lidos se sobrepem aos recursos originais, modificando a sua aplicao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Utilizando o Object Nationalizer Para utilizar o Object Nationalizer, voc precisar ter instalado o Centura Team Developer, conforme descrito no Apndice F Guia de Instalao do Centura Team Developer 2000. O Object Nationalizer extremamente fcil de ser utilizado, possuindo interface similar ao ambiente de programao do SQLWindows/32. Voc pode iniciar o Object Nationalizer clicando no boto Iniciar do seu Windows, e selecionando os menus Programas | Centura | Team Developer 2000 | Object Nationalizer 2000. Para abrir um arquivo executvel, dynalib ou um arquivo de recursos no Object Nationalizer, selecione os menus File | Open e escolha o arquivo desejado. Lembre-se que, na gerao do arquivo executvel ou dynalib, o programador precisa habilitar o recurso na caixa de dilogo Build Settings, que permite ao Object Nationalizer editar seus recursos. Caso isso no tenha sido feito, o Object Nationalizer no poder abrir o arquivo e uma mensagem de erro ser mostrada.

Configurando a gerao do executvel para habilitar a edio do executvel pelo Object Nationalizer. Voc pode editar os recursos da aplicao de duas formas: traduzindo o texto da aplicao diretamente ou modificando os recursos graficamente. Mostraremos abaixo como utilizar as duas formas.

Traduzindo o texto da aplicao O Object Nationalizer dispe de um editor que voc pode utilizar para editar os elementos da sua aplicao. Dessa forma, o restante da aplicao permanece inalterado. O editor
Pgina PAGE 582

Programando com o Centura Team Developer 2000

permite que rapidamente voc realize as edies dos textos da aplicao traduzindo-os para o idioma desejado.

O Editor do Object Nationalizer 1. Selecione o item Application Text no quadro esquerdo da janela do Object Nationalizer. 2. Selecione um item na coluna Translated Text, que mostrada na metade de baixo do quadro direito da janela do Object Nationalizer. Fazendo isso, o mesmo texto automaticamente colocado no quadro chamado Translated Text, que mostrado na metade superior do quadro direito. A lista de itens da coluna Translated Text mostrada em ordem alfabtica ascendente, pelo texto traduzido. Voc pode alterar essa classificao clicando no ttulo da coluna, a qual voc deseja que seja classificada. Por exemplo, se voc clicar uma vez na coluna Identifier, o Object Nationalizer classifica os textos mostrados, classificados por objeto da aplicao. Se voc clicar no nome da coluna Type, os textos sero classificados pelo tipo do objeto. Experimente as diversas possibilidades, ou, para encontrar um item especfico, selecione os menus Edit | Find. 3. Voc pode clicar tanto na coluna Translated Text como no quadro chamado Translated Text para realizar a traduo do texto. 4. Repita os procedimentos descritos nos itens 2 e 3 at terminar de traduzir toda a aplicao. Observe a figura abaixo onde o texto foi traduzido. Neste caso, "Incluir Imagens" foi traduzido para "Add Images", em ingls. O texto traduzido aparece no quadro e na coluna chamados Translated Text, enquanto que o texto original aparece no quadro Original Text.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A traduo de um texto atravs do Editor do Object Nationalizer Para realizar a mesma traduo vrias vezes, voc pode selecionar os menus Edit | Replace, informar o texto original no campo Find What e sua traduo no campo Change To. Clique no boto Find Next para localizar a prxima ocorrncia do texto original, clique em Change para traduzi-la. Para traduzir todas as ocorrncias do texto original numa nica operao, clique em Change All e no em Change.

Ateno: Aps clicar em Change All, voc no poder desfazer as modificaes aplicadas por essa ao. Portanto, se voc no tiver certeza de que deseja realmente modificar todos os valores, fique alternando entre os botes Change e Find Next, para controlar as operaes de mudana uma de cada vez.

Traduzindo recursos graficamente Voc pode utilizar o Object Nationalizer para visualizar e modificar uma aplicao graficamente. Visualizando o objeto da sua aplicao voc pode traduzir o texto visvel e alterar seus atributos visualmente, como faz no SQLWindows/32. Para modificar os recursos da aplicao graficamente, selecione o objeto top level no quadro esquerdo do Object Nationalizer e clique na Tab chamada Layout ( localizada na parte inferior do quadro direito ). O objeto mostrado no quadro direito e voc pode acionar o customizer ( ou attribute inspector ) do objeto para alterar seus atributos, da mesma forma que voc faz no SQLWindows/32.

Obs : Para escolher entre o customizer e o attribute inspector, selecione os menus Tools | Preferences para acessar a janela Preferences, onde voc pode configurar tambm a grade utilizada na janela layout.

Observe a figura abaixo onde o texto do pushbutton foi traduzido. Neste caso, "Cancelar" foi traduzido para "Cancel", em ingls. A traduo feita utilizando-se o customizer, da mesma forma que voc edita as propriedades do objeto no SQLWindows/32.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A traduo do ttulo de um pushbutton atravs do attribute inspector. Quando voc traduz o texto, o mesmo pode ficar com um tamanho maior do que o disponibilizado anteriormente. A qualquer momento voc pode tambm redimensionar os objetos, exatamente da mesma maneira que faz no SQLWindows/32. Assim que terminar sua traduo, voc deve salvar seu trabalho de uma das seguintes formas: Atualizando o arquivo original. Selecione os menus File | Save. Criando um novo arquivo contendo as edies realizadas. Selecione os menus File | Save As... e selecione no combo box "Salvar como tipo" o tipo do arquivo apropriado ao seu caso, que pode ser um executvel ( .exe ) ou dynalib ( .apd ). Salvando as modificaes num arquivo de recursos. Selecione os menus File | Save As... e selecione no combo box "Salvar como tipo" o tipo do arquivo binrio ( .apr ) ou texto padro ( .txt ). Lembre-se que o arquivo salvo contm as tradues feitas para apenas um idioma. Voc pode utilizar os dois mtodos apresentados para traduzir sua aplicao. Traduzindo graficamente sua aplicao, voc poder tambm alterar as dimenses e posies dos objetos. Quando for necessrio realizar tradues em massa, utilize o Editor do Object Nationalizer para realizar mais rapidamente essa tarefa.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Conforme se pode observar nos exemplos mostrados at ento, apenas objetos visuais foram traduzidos. Voc precisar utilizar o Editor do Object Nationalizer para traduzir as constantes string da aplicao. Esses elementos no podem ser traduzidos graficamente, pois no so elementos visuais como pushbuttons.

Ateno: Atravs do Object Nationalizer voc s pode traduzir as constantes definidas no outline, na seo Constants | User. As constantes presentes na seo Constants | System no podem ser traduzidas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 14
Gerenciamento de equipes com o Team Object Manager
Com o Team Object Manager as equipes de desenvolvimento possuem em suas mos um poderos mecanismo de Controle de Verso e Gerenciamento de Equipes de desenvolvimento dos diversos projetos. Este captulo procura ilustrar os pontos principais da utilizao do Team Object Manager para que o desenvolvedor que est iniciando a utilizao da ferramenta tenha uma idia exata do propsito da ferramenta. No procuraremos nos aprofundar no estudo do Team Object Manager neste momento, mas sim apresentar uma viso geral da ferramenta.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apresentao 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. Antes de utilizar o Team Object Manager voc precisa criar o repositrio onde as informaes sobre os projetos ficaro armazenadas. Voc deve acionar o Repository Setup Wizard para realizar essa tarefa. 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 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. As Equipes 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 projetos, Manuteno dos membros do projeto, Modificar os
Pgina PAGE 582

Programando com o Centura Team Developer 2000

membros do projeto e Modificar as propriedades do repositrio. Isso se faz atravs da tela mostrada na figura abaixo.

Os membros da equipe podem ser 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 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.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

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

Janela onde so cadastradas as informaes sobre o projeto. 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. Check-in / 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
Pgina PAGE 582

Programando com o Centura Team Developer 2000

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

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Relatrios Gerenciais 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.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 15
Desenvolvimento de componentes COM no SQLWindows
Este captulo mostra como desenvolver componentes COM e COM+ que rodam no MTS ( Microsoft Transaction Server). Com estes componentes voc poder desenvolver aplicaes, em SQLWindows, utilizando os conceitos e beneficiando-se do desenvolvimento de aplicaes em trs ou mais camadas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O MTS O Microsoft Transaction Server um ambiente de gerenciamento de objetos COM que oferece uma infraestrutura para manter aplicaes distribudas sendo executadas por toda a rede. O MTS faz parte do MS Windows NT 4.0. Neste captulo todos os exemplos mostrados esto ilustrando o uso num servidor MS Windows 2000 Advanced Server, verso em ingls. Observe que, no Windows 2000, o MTS no encontrado com esta nomenclatura; existe o Component Services, que a evoluo do MTS presente no Windows NT 4.0. Nosso foco mostrar ao leitor como desenvolver componentes com a linguagem SQLWindows, portanto, no nos prenderemos em descrever os conceitos de COM/DCOM, COM+ e as regras do MTS e do Component Services. Existem dezenas de livros publicados a este respeito, alm da prpria internet que uma fonte de informao quase que inesgotvel. Atravs dos recursos disponveis no Centura Team Developer 2000 possvel a construo de componentes COM e COM+ que rodem tanto no MTS como no Component Services. Para acompanhar os exemplos mostrados neste captulo, voc precisar ter instalado o CTD2000 numa mquina com o MS Windows 2000. importante saber que os exemplos utilizados so exclusivos do CTD2000, nenhuma outra verso do Centura Team Developer oferece suporte a componentes COM. O Component Services Faz parte do Windows 2000 o Component Services que permite a voc configurar e administrar componentes COM e aplicaes COM+. Alm de executar tarefas administrativas como configuraes, instalaes de aplicaes no sistema e configurao e monitoramento dos servios usados pelas suas aplicaes. A figura abaixo mostra a janela principal do MS Component Services. Observe no quadro direito as aplicaes que esto instaladas. As aplicaes que esto rodando so identificadas pelo cone em movimento.

Observe o cone da aplicao System Application. Na figura acima a aplicao System Application est em execuo, voc pode perceber isso visualmente, pois o cone movimenta-se. No Component Services temos as aplicaes que servem basicamente para agrupar componentes que fazem parte de uma mesma aplicao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Este captulo mostra como construir uma aplicao com o CTD2000, que ser instalada no Component Services. A construo dos componentes Basicamente construiremos dois componentes neste captulo, os quais ilustram o desenvolvimento de uma aplicao em trs camadas. Objeto-dado A primeira camada chamaremos de objeto-dado. Nela devem estar localizados todos os comandos que realizam algum tipo de acesso aos dados. Essa a nica parte da aplicao que pode ter acesso ao banco de dados, as demais partes devem trabalhar de forma a serem completamente independentes do banco de dados. Outra regra importante a ser lembrada que os objetos-dados jamais devem entrar em algum estado de espera de alguma operao em tela, vinda do usurio. Um objeto-dado deve liberar o banco de dados o mais rpido possvel, aps realizar sua tarefa. O nico local da sua aplicao que dever conter comandos SQL justamente no objeto-dado. No nosso exemplo construiremos um objeto-dado que far uma incluso numa tabela do banco de dados. Isso extremamente simples, propositalmente, pois, ao invs de desviar sua ateno para diversos comandos SQL, mantemos nosso foco na gerao do componente COM. bem provvel que voc jamais tenha uma aplicao dispondo de apenas uma operao de incluso, porm, a arquitetura do COM ficar bem clara neste exemplo de fcil entendimento. Objeto-negcio A camada intermediria, ou a segunda camada, chamaremos de objeto-negcio, pois nela que se concentra toda a lgica e inteligncia da aplicao. Nessa camada no deve, jamais, existir comandos SQL. Deve funcionar de forma independente do banco de dados. Um objeto-negcio pode fazer uso de outros objetosnegcio e de objetos-dado. O acesso aos dados deve ser sempre realizado por meio do objeto-dado. Assim como o objeto-dado, o objeto-negcio jamais deve entrar em estado de espera por alguma ao vinda da tela, nunca deve esperar pelo usurio. Um objeto-negcio deve instanciar um objeto-dado, utiliz-lo e liber-lo logo em seguida. No exemplo deste captulo, construiremos um objeto-negcio que instanciar o objeto-dado para fazer uma incluso numa tabela do banco de dados. A estrutura bsica do objeto-negcio Comearemos ilustrando a criao do objeto-negcio, siga as instrues descritas abaixo: 1 2 Inicie uma nova aplicao no SQLWindows. Ative a janela de assistentes chamada Wizards, pressionando Ctrl+W.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na janela Wizards, selecione o assistente de criao de classes COM, conforme mostrado na figura acima. O assistente de Classes COM ir gui-lo no processo de definio de Interfaces, de CoClasses e de CoClasses feitas para rodar no MTS.

Escolha o check box central, conforme ilustrado na figura abaixo.

Na figura acima voc informa ao Assistente de Classes COM que a classe a ser gerada dever ser executada no MTS. 5 Na prxima janela do Assistente de Classes COM voc precisa digitar o nome da classe a ser gerada e o nome da interface. Informe CEmpresa para o nome da classe e ICEmpresa como o nome da interface.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Se voc selecionar o check box chamado Support IObjectControl, uma classe IObjectControl ser gerada pelo assistente com o nome informado por voc no campo ao lado do check box. A classe ser gerada com os mtodos Activate, CanBePooled e Desactivate. Para esse exemplo no necessrio marcar essa opo. 6 A figura abaixo ilustra a janela onde voc poder montar a estrutura das interfaces, definindo seus mtodos com parmetros e tipos de dados de retorno.

Clique no boto Add para adicionar o mtodo chamado Insere que far a incluso de uma empresa. Esse mtodo ter alguns parmetros, como mostrado na prxima figura. 7 A figura abaixo ilustra a definio do parmetro psNome do tipo de dado String.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para confirmar a incluso de cada parmetro clique no boto OK. Voc deve inserir quantos parmetros forem necessrios para a incluso. 8 Neste exemplo estamos definindo dois parmetros, psCodigo e psNome, mas voc pode definir quantos desejar. Sempre lembrando que os tipos de dados permitidos so os quatro tipos bsicos: Number, Date/Time, String e Boolean.

A janela de configurao dos mtodos com o mtodo Insere() devidamente configurado. 9 A tela final do Assistente de Classes COM mostra um resumo do que ser construdo. Quando voc pressionar o boto Finish, o cdigo fonte referente s definies feitas no Assistente de Classes COM ser gerado, e qualquer alterao que necessite ser feita deve ser realizada no prprio outline do SQLWindows. O Assistente de Classes COM auxilia apenas a criao dos componentes, no Pgina PAGE 582

Programando com o Centura Team Developer 2000

a sua manuteno.

Clique no boto Finish para que o cdigo fonte seja gerado. 10 O cdigo fonte gerado pelo Assistente de Classes COM mostrado na figura abaixo.

A estrutura bsica do objeto-negcio est concluda. Ainda resta programar as aes do componente, mas isso ser feito numa outra etapa. Voc deve salvar o seu programa, pois ser necessrio utiliz-lo posteriormente. Voc pode fazer download dos arquivos fonte presentes no livro diretamente a partir do site http://www.centuraexplorer.com.br/livro_ctd2000/. Este exemplo chama-se exCap23_01.apl.

A estrutura bsica do objeto-dado Para criar o objeto dado siga as instrues abaixo: Pgina PAGE 582

Programando com o Centura Team Developer 2000

1 2 3 4

Inicie uma nova aplicao no SQLWindows. Execute o Assistente de Classes COM a partir da janela de assistentes ( Ctrl+W). Da mesma forma feita no objeto-negcio, voc deve escolher o tipo de classe chamada MTS CoClass. Observe na figura abaixo os nomes que devem ser dados CoClass e Interface:

CoClass: C_odEmpresa Interface: IC_odEmpresa 5 O prximo passo definir o mtodo de incluso na interface IC_odEmpresa().

Clique no boto Add para adicionar um mtodo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Observe na figura abaixo o nome e os parmetros do mtodo:

Quando informar todos os parmetros corretamente, clique no boto OK para continuar. 7 Observe na figura que se segue o mtodo odInsere(), da interface IC_odEmpresa, com seus parmetros definidos.

Numa aplicao real, neste momento que devem ser includos os demais mtodos da interface. Nesse nosso exemplo utilizaremos apenas um mtodo. 8 A janela final do Assistente de Classes COM.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Se estiver tudo correto, clique no boto Finish. Lembre-se de que o Assistente de Classes COM no suporta alteraes numa classe depois que ela j est pronta, devendo ser utilizado apenas para construo de classes novas. 9 A figura abaixo mostra o cdigo fonte gerado pelo Assistente de Classes COM.

A estrutura bsica do objeto-dado est concluda. Ainda resta programar as aes do componente, mas isso ser feito posteriormente. Voc deve salvar o seu programa, pois ser necessrio utiliz-lo posteriormente. Voc pode fazer download dos arquivos fonte presentes no livro diretamente a partir do site http://www.centuraexplorer.com.br/livro_ctd2000/. Este exemplo chama-se exCap23_02.apl. Codificando os componentes A estrutura dos fontes necessrios para que nossa aplicao COM+ funcione est montada. Pgina PAGE 582

Programando com o Centura Team Developer 2000

Precisamos agora incluir o cdigo necessrio para que a aplicao funcione. Primeiramente vamos codificar o objeto-dado, pois ele a base de nossa aplicao. o objeto-dado que far a conexo com o banco de dados. Apenas esse objeto "enxerga" o banco de dados. O cdigo do objeto-dado muito simples e bastante parecido com qualquer outra funo tradicional de acesso a dados. Observe na listagem abaixo o cdigo fonte completo do mtodo odInsere() que deve ser codificado no objeto-dado. Function: odInsere Description: Attributes Returns Boolean: Parameters String: psCodigo String: psNome Static Variables Local variables Session Handle: hSession String: sParametros Sql Handle: hSql Actions ! Set sParametros = 'Provider=SQLBASEOLEDB; ' Set SqlDatabase = "ISLAND" Set SqlUser = 'SYSADM' Set SqlPassword = 'SYSADM' ! If SqlCreateSession( hSession , sParametros ) If SqlCreateStatement( hSession, hSql ) ! Call SqlPrepareAndExecute ( hSql , " INSERT INTO COMPANY ( COMPANY_ID , COMPANY_NAME ) VALUES ( :psCodigo , :psNome ) " ) ! Call SqlDisconnect( hSql ) Call SqlFreeSession( hSession ) ! Return TRUE Else Call SalMessageBox( "No foi possvel criar comando." , "COM Server Objeto-Dado" , MB_Ok ) Else Call SalMessageBox( "No foi possvel conectar." , "COM Server Objeto-Dado" , MB_Ok ) Return FALSE

Como vimos acima, o cdigo fonte bem parecido com um cdigo normal, j conhecido pela maioria dos desenvolvedores que um dia escreveram uma funo para incluir um registro num banco de dados.

Obs: A linha de cdigo que indica qual o fornecedor do banco de dados a ser utilizado a seguinte: Set sParametros = 'Provider=SQLBASEOLEDB; '

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Nesse caso, estamos utilizando o prprio SQLBase que acompanha o produto e que est presente no CD anexo ao livro. Voc pode fazer esse componente funcionar com bancos de dados de outros fornecedores, basta configurar a propriedade Provider adequadamente. Utilize "MSSQLS" para o MS SQLServer e "MSDAORA" para Oracle.

A gerao do componente difere da gerao do executvel basicamente nas etapas a seguir: 1 Voc deve informar ao SQLWndows para que seja gerado um componente do tipo MTS COM Server. Dessa forma ser gerada uma DLL que, posteriormente, ser registrada no servidor. Para fazer isso acione o menu Project | Build Settings. Isso far aparecer a janela mostrada abaixo:

Selecione o radio button MTS COM Server (DLL) para que o componente seja gerado corretamente. 2 Nesta mesma janela de configuraes acione a propriedade COM Server

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Selecione o radio button Single Threaded Apartment e clique uma vez no boto New, para que uma nova chave GUID seja gerada para o componente. Logo aps clique no boto OK. 3 Acione a gerao da DLL a partir do menu Project | Build ... este o momento da gerao do componente. 4 Atravs do menu Project | Register Server o componente registrado no registro do Windows, na chave de registro adequada. Voc no precisa entender disso neste momento, necessita apenas saber que o servidor foi gerado e registrado no seu Windows. Sempre que voc precisar alterar seu componente, ser necessrio retirar o componente do registro (atravs do menu Project | Un-register Server), e ento compilar e registrar novamente o componente. A figura abaixo ilustra o registro do componente.

5 Quando o registro feito com sucesso a seguinte mensagem mostrada:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apenas clique no boto OK. Salve sua aplicao. Conclumos mais uma etapa. O componente objeto-dado est pronto. Tudo o que necessrio fazer no CTD2000 para que um componente seja executado no Component Services foi feito. Precisamos agora criar o componente-negcio. 1 2 Abra a aplicao exCap23_01.apl que foi salva anteriormente. O primeiro passo incluir neste programa as definies do objeto-dado que foram feitas na etapa anterior. Devemos incluir o componente objeto-dado na nossa aplicao. Para fazer isso acione o menu Tools | ActiveX Explorer.

Localize o item chamado exCap23_02 1.0 Type Library. Este o componente que registramos na etapa anterior, o objeto-dado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Os componentes so mostrados em ordem alfabtica, ento basta digitar no interior do list box as letras "ex" (minsculas). Quando encontrar o item clique no boto OK. 5 O ActiveX Explorer l as informaes colhidas da type library que foi registrada na etapa anterior e mostra as classes, interfaces, mtodos, eventos e os enums. Clique com o boto direito do mouse numa rea branca do quadro esquerdo. Aparecer um menu de contexto, assim como mostrado na figura abaixo:

Selecione os itens Show CoClasses e Show Interfaces para que as mesmas sejam mostradas no ActiveX Explorer. 6 Neste menu de contexto, clique no item chamado Generate Options para que a prxima janela seja mostrada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Selecione o terceiro radio button para que o cdigo seja gerado com as funes para todas as referncias a classes utilizadas. 7 Observe que, ao clicar numa interface, seus itens so mostrados no quadro direito do ActiveX Explorer. No caso da nossa interface, apenas o mtodo odInsere() apresentado. Nas suas aplicaes vida real sero mostrados vrios mtodos.

Acione o menu de contexto do ActiveX Explorer, nele ative o menu Generate Deep para que o cdigo seja importado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Essa importao significa que o ActiveX Explorer ir gerar uma biblioteca com o mesmo nome da type library, com extenso .APL. Nesta biblioteca so geradas vrias classes que fazem referencia type library. Uma classe em especial merece nossa ateno, a classe COM Proxy, pois ela que dever ser utilizada pelo nosso componente.

Aguarde a concluso da importao. 10 Aps importado, o cdigo gerado mostrado na seo Classes em letras azuis, conforme ilustrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Uma vez importado o cdigo, podemos codificar nosso mtodo. 11 Localize o mtodo Insere() na interface ICEmpresa.

E digite o cdigo mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O cdigo fonte completo do mtodo Insere() o seguinte: Function: Insere Description: Attributes Returns Boolean: Parameters String: psCodigo String: psNome Static Variables Local variables ComProxyVar: oEmpresa Class: exCap23_02_C_odEmpresa Boolean: bRetorno Actions If SalMTSCreateInstance( oEmpresa ) Call oEmpresa.odInsere( psCodigo, psNome, bRetorno ) Call oEmpresa.Release ( ) Return bRetorno

O componente objeto-negcio est concludo, o prximo passo agora desenvolver a aplicao cliente que o utilizar. A aplicao cliente A aplicao cliente deve ter toda a interface visual, a interao com o usurio final. No momento adequado, as chamadas aos objetos-negcio devem ser feitas. A aplicao cliente jamais deve deixar um componente objeto-negcio aguardando por alguma digitao do usurio final. Neste ponto precisa ser desenvolvida uma aplicao que servir de interface visual para a digitao e incluso da empresa. A figura abaixo ilustra uma janela que permite a digitao do cdigo, do nome da empresa e um boto que ser pressionado para ativar o objeto-negocio, fazendo ento a incluso. 1 Monte uma aplicao parecida com a mostrada na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Ative o ActiveX Explorer, assim como foi feito na confeco do componente anterior.

Selecione no ActiveX Explorer a type library chamada exCap23_01 1.0 Type Library. Clique no boto OK. 3 Marque todos os itens para a gerao do cdigo. Ative o menu de contexto do ActiveX Explorer e selecione o item Generate Deep para que o cdigo da type library referente ao objeto-negcio seja gerado. Esses passos j foram descritos na gerao do componente anterior e so exatamente os mesmos, por isso no os ilustramos. Qualquer dvida consulte os passos 7 e 8 da confeco do componente anterior, pois so idnticos. 4 Uma vez importado o componente objeto-negcio, basta codificar o boto incluir para que o programa funcione. A figura abaixo ilustra a codificao necessria na camada visual do aplicativo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

necessrio instanciar um objeto da classe COM Proxy Class referente ao objeto objeto-negcio. 5 A figura abaixo ilustra todo o cdigo fonte necessrio:

A definio do objeto oNegEmpresa se faz necessria para que possamos ter acesso ao objeto-negcio e aos seus mtodos. Fique atento quando for instanciar o objeto-negcio, ele deve ser uma instncia da COM Proxy Class. Nesse caso, a instncia chama-se exCap23_01_CEmpresa. A varivel bRetorno utilizada para que faamos a verificao do valor retornado pelo mtodo Insere(). 6 O cdigo fonte completo do boto responsvel pela incluso da empresa mostrado e explicado abaixo: Pushbutton: pbInsere Message Actions On SAM_Click Call SalWaitCursor ( TRUE ) If oNegEmpresa.Create ( ) Call oNegEmpresa.Insere( dfCodigo, dfNome, bRetorno ) Call oNegEmpresa.Release ( ) Pgina PAGE 582

Programando com o Centura Team Developer 2000

Call SalWaitCursor ( FALSE ) Lembre-se, antes de poder utilizar algum objeto necessrio iniciar uma instncia deste objeto, isso feito atravs do mtodo Create(). Esse mtodo padro para todos os componentes criados no Centura Team Developer 2000. Voc sempre deve utilizar o mtodo Create() assim como, ao encerra a utilizao do objeto, voc deve liberar o mesmo atravs de uma chamada ao mtodo Release(). O mtodo Insere() j um velho conhecido nosso e sua funo apenas ativar o objeto da camada de dados que far a incluso da empresa. Qualquer crtica necessria a incluso da empresa deve ser codificada no mtodo Insere() do objetonegcio. No devemos realizar crticas na camada visual, pois, dessa forma no estaremos reaproveitando cdigo algum !

Voc pode fazer download dos arquivos fonte presentes no livro diretamente a partir do site http://www.centuraexplorer.com.br/livro_ctd2000/. Este exemplo chama-se exCap23_03.apl.

Agora estamos com toda a parte de codificao dos nossos componentes pronta, resta apenas instalar e configurar os componentes no Component Services (MTS).

Inserindo uma aplicao no Component Services. Mostraremos agora como criar uma aplicao no Component Services e acrescentar os nossos componentes a essa aplicao. Para isso necessrio que voc tenha disponvel no seu Windows o Microsoft Component Services, que faz parte do Windows 2000. No Windows NT 4.0, o MTS faz o papel do Component Services, porm, as instrues descritas a seguir so vlidas apenas para o Component Services. 1 Inicie o Component Services. Ele est presente no menu Programs | Administrative Tools do MS Windows 2000. 2 Conforme mostrado na figura abaixo, clique com o boto direito no item COM+ Applications para ter acesso a um menu de contexto onde voc deve acionar o menu New | Application.

3 Isso dar acesso ao Assistente de Instalao de Aplicaes COM, que mostrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pressione o boto Next para avanar. 4 Clique no boto que indica uma nova aplicao vazia, o segundo boto, conforme ilustrado na figura abaixo:

5 D um nome para a sua aplicao. Neste exemplo utilizaremos o nome "AppCTD2000".

6 Nesta janela voc configura as propriedades de permisses de usurio. Para efeito de exemplo, deixe o item default marcado, assim como ilustrado na figura abaixo:

7 A aplicao est criada, o assistente chegou ao final.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O prximo passo a instalao dos componentes da aplicao "AppCTD2000".

A aplicao "AppCTD2000" devidamente instalada no Component Services. Instalando os componentes da aplicao As instrues abaixo ilustram todo o processo de instalao dos dois componentes que foram criados neste captulo, o objeto-dado e objeto-negcio. 1 Clique com o boto direito do mouse no item Components da aplicao AppCTD2000, no quadro esquerdo do Component Services, conforme ilustrado na figura abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Ative o menu New | Component para ter acesso ao assistente de Instalao de Componentes COM. 2 Uma vez no Assistente de Instalao de Componentes COM, clique no boto referente ao item Install new component(s), conforme exemplificado na figura abaixo:

Nesta janela voc deve escolher as DLLs dos componentes gerados no CTD2000. Navegue at o diretrio onde as DLLs foram geradas e escolha as duas, de uma s vez, seguindo a ilustrao abaixo:

Para prosseguir clique no boto Open. 4 Neste momento o Assistente de Instalao de Componentes COM identificar as interfaces contidas nos componentes selecionados e mostrar a seguinte janela:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Agora, basta clicar no boto Next para que os componentes sejam instalados no Component Services. 5 Clique no boto Finish para encerrar.

Os componentes foram adicionados ao Component Services e isso pode ser confirmado na imagem mostrada abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Observe na figura abaixo a interface Insere() do objeto-negcio.

A prxima e ltima etapa a ser concluda, antes que os componentes estejam finalmente instalados e prontos para utilizao, a configurao das suas propriedades. Configurando as propriedades do componente Um componente possui uma srie de propriedades, mas neste momento configuraremos as propriedades que dizem respeito Transao. Quanto s transaes, voc pode configurar seus componentes das seguintes formas: Disabled Not Supported Supported Desabilita o recurso de transaes para um componente. Este o atributo normal a um componente que ainda no foi configurado. Utilize este atributo para evitar que um componente participe de alguma transao. Utilize este atributo para permitir que um componente participe de alguma transao. Caso no exista nenhuma transao ativada, o componente no far parte de nenhuma transao. Utilize este atributo para informar que o componente deve sempre iniciar em uma nova transao. Utilize este atributo para informar que o componente deve ser iniciado em uma transao j existente. Caso no exista uma transao ativa no objeto chamado, uma nova transao ser criada.

Requires New Required

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Clique com o boto direito do mouse no componente objeto-dado e acione o menu Properties.

Na propriedade Transactions do objeto-negcio selecione o item Requires New. Clique no boto OK para confirmar.

Na propriedade Transactions do objeto-dado selecione o item Suported. Pressione o boto OK para confirmar.

Executando a aplicao cliente Neste momento os objetos esto devidamente configurados, voc pode executar a aplicao cliente SQLWindows e ver o resultado, simplesmente verificando a linha inserida na tabela, conforme o comando insert codificado no mtodo odInsere(). Chegamos ao final deste captulo, onde mostramos como construir componentes COM+ em CTD2000 para serem executados no Component Services do MS Windows 2000. O assunto no foi esgotado com as informaes supridas aqui, pois por enquanto essa no a nossa proposta. Voc precisa aprofundar-se mais Pgina PAGE 582

Programando com o Centura Team Developer 2000

no estudo de construo de aplicaes distribudas, caso isso torne-se uma realidade na sua empresa, o que fatalmente ocorrer. Neste captulo procuramos fornecer as informaes bsicas para que voc consiga iniciar o processo de desenvolvimento de aplicaes distribudas com o CTD2000.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Captulo 16
Desenvolvendo Aplicaes SQLWindows para a Web

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apresentao

O Centura Team Developer 2000 possui algumas extenses para a web que permitem aos desenvolvedores rapidamente fazerem com que suas aplicaes escritas em SQLWindows possam ser executadas no ambiente web, dentro de um browser. Estas extenses so instaladas na forma de alguns componentes que devem ser utilizados no desenvolvimento das aplicaes no prprio ambiente do SQLWindows. Aplicaes Web so construdas no mesmo ambiente das aplicaes tradicionais Windows, o nico diferencial est nos componentes que devem ser utilizados. O executvel de uma aplicao feita para rodar na web tambm funciona, para propsito de testes e depurao, no ambiente windows. Dois mdulos distintos compoem as extenses para web da Centura (CWE), o mdulo servidor e o cliente. O Mdulo cliente, como j citado acima, composto dos componentes para desenvolvimento de aplicaes que rodam na web, os QuickObjects para aplicaes Web. O Mdulo servidor deve ser instalado no servidor web e sua principal funo interceptar as chamadas vindas dos usurios para o servidor web e ativar as respectivas aplicaes escritas em Centura SQLWindows. Estas aplicaes so executadas no servidor de aplicaes Web, onde deve estar instalado o mdulo servidor do CWE. Esta tarefa de identificar a aplicao requisitada feita pelo AppConsole. No AppConsole esto cadastradas todas as aplicaes disponibilizadas no servidor, todas as aplicaes desenvolvidas em SQLWindows fazendo uso dos componentes para Web do Centura Team Developer 2000. No interior de cada executvel esto os forms ou dialogs que devem ser executados conforme solicitao do usurio. A execuo da aplicao em si feita na prpria mquina servidora que, no momento em que desenharia as telas para que o usurio pudesse v-las renderizam esta tela no browser do solicitante em formato html. Ou seja, uma montagem de pgina html feita dinamicamente no momento em que cada tela seria mostrada pela aplicao windows. Isso indica que, alguns recursos comuns em aplicaes tradicionais windows no esto disponveis nas aplicaes web. Por exemplo, uma aplicao web no pode ter barras de ferramentas assim como uma aplicao windows, no pode ter um MDI com menus para ativar cada uma das janelas da aplicao, no pode ter janelas de visualizao de relatrios conforme so disponibilizadas nas aplicaes Windows. Outros artifcios podem ser utilizados para que se consiga construir aplicaes equivalentes s aplicaes Windows, mas alguns recursos simplesmente no podem ser utilizados no aplicativo web por limitao da prpria plataforma web. OBS: O Centura Team Developer 2000 deve ser instalado conforme instrues presentes no Apndice F - Guia de instalao do Centura Team Developer 2000 para que as extenses do Centura para a web sejam instaladas e configuradas corretamente. A configurao do Web App Manager e do APP Console

Pgina PAGE 582

Programando com o Centura Team Developer 2000

No AppConsole onde ficam cadastradas as aplicaes disponibilizadas no servidor web, as aplicaes que estaro acessveis aos usurios atravs de seus navegadores web. A figura abaixo mostra a janela principal do AppConsole:

Obs: O AppConsole precisa sempre estar no ar para que seus clientes web possam acionar as aplicaes automaticamente. uma prtica comun instalar o AppConsole num servidor WindowsNT ou Windows2000 como um servio e configurar sua inicializao para automtica sempre que o servidor foi iniciado. O Desenvolvimento em SQLWindows O desenvolvimento das aplicaes cujo destino rodar na web devem fazer uso dos componentes especficos para web, os QuickObjects para Web. Atravs destes componentes o desenvolvimento de aplicaes para a web extremamente simplificado. Os componentes para Web Existem duas formas bsicas de se desenvolver aplicaes web com o SQLWindows: os QuickObjects DVC para Web oferecem um conjunto de componentes que simplificam o desenvolvimento de aplicaes web. So um conjunto de classes que trabalham em conjunto, atravs de janelas de configurao, tornando o desenvolvimento parecido com a forma demonstrada nos captulos 6 e 7. Vale a pena desenvolver algumas aplicaes utilizando estes componentes para que se tenha uma idia de produtividade no desenvolvimento. Para que os QuickObjects DVC para Web estejam disponveis em sua aplicao voc precisa incluir a biblioteca QCKWEBDS.APL em sua aplicao, na seo Libraries.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

os QuickObjects padro para Web so os componentes que servem de base para qualquer tipo de aplicao desenvolvida em SQLWindows cujo destino seja rodar na web. Estes componentes so a base dos QuickObjects DVC para Web e voc deve derivar suas classes destes componentes para pode adapt-las ao ambiente web. Para que os QuickObjects padro para Web estejam disponveis em sua aplicao voc precisa incluir a biblioteca QCKWEB.APL em sua aplicao, na seo Libraries. Obs: Voc no pode fazer uso das duas bibliotecas de componentes para web simultaneamente na mesma aplicao. A janela home Voc precisa informar o nome do form window ou dialog box inicial da sua aplicao. Esta tarefa muito simples e deve ser realizado da seguinte forma: 1 Aps incluir uma das duas bibliotecas de componentes para web defina um novo form window da classe cWebMgrForm. Atravs do menu de contexto deste form window ative a opo cWebMgrForm Properties. Nesta janela de configurao das propriedades voc deve selecionar o objeto que ser utilizado como objeto inicial do executvel gerado.

bem mais interessante gerar muitos executveis pequenos, cada um contendo apenas algumas poucas janelas, do que trabalhar com poucos executveis grandes.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Objetos Web A partir deste momento, todos os objetos que voc utilizar para montar sua aplicao web devem ser objetos derivados dos Componentes para a Web, so as classes que inicam pelo nome cWeb*. Se algum objeto que no for derivado destes componentes for utilizado na aplicao este objeto no ser mostrado na pgina html que montada para o usurio final. O desenvolvimento Ao desenvolver aplicaes que sero executadas na web devemos ter em mente algumas regras bsicas para que a aplicao funcione corretamente. Alm das regras bsicas de design de telas, que mudam consideravelmente, temos tambm que tomar cuidado no desenvolvimento interno da aplicao, no cdigo fonte, nos recursos utilizados. Obs: O cdigo interno das suas regras de negcio no deve sofrer mudana alguma quando o desenvolvimento para a web. Podendo inclusive ser utilizada a mesma classe de regras de negcio nas aplicaes web e windows. Consulte o Captulo 15 que trata do desenvovimento de componentes para perceber todo o potencial deste recurso que permite que voc desenvolva seus componentes COM para rodar em servidores de aplicaes que so utilizadas tanto por aplicaes windows (como ilustrado no captulo 15) como por aplicaes web. Ou seja, a regra de negcio estando em componentes COM pode ser utilizada por clientes windows, web e outros clientes compatveis com o padro COM. Algumas dicas para o desenvolvimento de aplicaes para a web com o Centura SQLWindows: Voc deve utilizar as classes desenvolvidas para funcionar na web (conforme citado acima). Sua bibliioteca de classes pode continuar sendo utilizada desde que cada classe visual derive da respectiva classe cWeb*. Por exemplo, sua classe de check boxes ccbPadrao precisa derivar da classe cWebCheckBoxBase para que as instncias da classe ccbPadrao sejam mostradas na web quando a pgina for desenhada no navegador do usurio. Voc deve utilizar em suas aplicaes as mensagens WEB_* ao invs de SAM_*. Por exemplo, utilize WEB_Create sempre que for utilizar SAM_Create. Alm disso observe que algumas mensagens que funcionam nas aplicaes Windows simplesmente no so processadas na internet, o caso da mensagem SAM_AnyEdit. Seus MDIs no podero existir nas aplicaes web, pois apenas uma janela de cada vez pode ser mostrada no browser. Estude o caso de utilizar janelas com frames caso seja necessrio trabalhar com mais de um janela simultmeamente. No caso dos menus presentes no mdi das aplicaes windows, estes devem ser reestruturados e distribudos de outra forma nas aplicaes web. Voc pode ainda montar seus menus em Java ou HTML Dinmico. Utilize modal dialog boxes para entrada de dados na web. Dialog Boxes modeless e system modal no so suportados na web.
Pgina PAGE 582

Programando com o Centura Team Developer 2000

Assim como no caso da mensagem SAM_AnyEdit, que no tem efeito quando em aplicaes web, os cliques duplos tambm no podem ser capturados na web. No podem ser visualizados em aplicaes web objetos tipo OLE e custom controls. Podem existir na aplicao mas no podem ser visualizados. Atalhos de teclado e aceleradores no so suportados na web assim como os eventos de mouse tpicos de aplicaes Windows, como por exemplo SAM_DrapAndDrop, WM_MouseMove, SAM_DropDown.

Estes so apenas alguns dos cuidados que devemos tomar no desenvolvimento de aplicaes para web.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice A
Guia de referncia das funes SAL
O Centura SQLWindows/32 dispe de cerca de 850 funes nativas que auxiliam no desenvolvimento das aplicaes, tornando o ambiente extremamente produtivo e bastante poderoso. Essas funes esto classificadas em diversos grupos para facilitar a utilizao. O correto uso das funes do SQLWindows/32 pelo desenvolvedor de suma importncia. Portanto, neste apndice apresentamos detalhadamente todas as suas funes.

Obs Todas as funes para interface com bancos de dados so precedidas pelas letras Sql, e so explicadas detalhadamente no Apndice B Guia de Referncia das Funes SQL.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As funes SAL so agrupadas nas seguintes categorias: Funes ActiveX SalActiveXAutoErrorMode SalActiveXClose SalActiveXCreate SalActiveXCreateFromData SalActiveXCreateFromFile SalActiveXDelete SalActiveXDoVerb SalActiveXGetActiveObject SalActiveXGetData SalActiveXGetObject SalActiveXInsertObjectDialog SalActiveXOLEType

Tratamento de vetores SalArrayAvg SalArrayDimCount SalArrayGetLowerBound SalArrayGetUpperBound SalArrayIsEmpty SalArrayMax SalArrayMin SalArraySetUpperBound SalArraySum Manipulao de cores e fontes SalColorFromRGB SalColorGet SalColorGetSysColor SalColorSet SalColorToRGB SalFontGet SalFontGetNames SalFontGetSizes SalFontSet Funes para realizar converses SalFormUnitsToPixels SalGetDataType SalGetItemName SalGetMaxDataLength SalHStringToNumber SalPixelsToFormUnits SalSetMaxDataLength Tratamento de datas SalDateConstruct
Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalDateCurrent SalDateDay SalDateHour SalDateMinute SalDateMonth SalDateMonthBegin SalDateQuarter SalDateQuarterBegin SalDateSecond SalDateToStr SalDateWeekBegin SalDateWeekday SalDateYear SalDateYearBegin Funes DDE SalDDEAddAtom SalDDEAlloc SalDDEDeleteAtom SalDDEExtract SalDDEExtractCmd SalDDEExtractDataText SalDDEExtractOptions SalDDEFindAtom SalDDEFree SalDDEGetAtomName SalDDEGetExecuteString SalDDEPost SalDDERequest SalDDESend SalDDESendAll SalDDESendExecute SalDDESendToClient SalDDESetCmd SalDDESetDataText SalDDESetOptions SalDDEStartServer SalDDEStartSession SalDDEStopServer SalDDEStopSession Funes de depurao SalCompileAndEvaluate SalContextBreak SalContextCurrent

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Manuseio de dialog box SalDlgChooseColor SalDlgChooseFont SalDlgOpenFile SalDlgSaveFile SalEndDialog SalModalDialog SalModalDialogFromStr Utilizao dos recursos de arrastar e soltar SalDragDropDisableDrop SalDragDropEnableDrop SalDragDropGetSource SalDragDropGetTarget SalDragDropStart SalDragDropStop SalDropFilesAcceptFiles SalDropFilesQueryFiles SalDropFilesQueryPoint Funes de edio SalEditCanCopyTo SalEditCanCut SalEditCanPaste SalEditCanPasteFrom SalEditCanUndo SalEditClear SalEditCopy SalEditCopyString SalEditCopyTo SalEditCut SalEditPaste SalEditPasteFrom SalEditPasteString SalEditUndo Gerenciamento de arquivos SalFileClose SalFileCopy SalFileCreateDirectory SalFileGetC SalFileGetChar SalFileGetCurrentDirectory SalFileGetDateTime SalFileGetDrive SalFileGetStr SalFileOpen SalFileOpenExt

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalFilePutC SalFilePutChar SalFilePutStr SalFileRead SalFileRemoveDirectory SalFileSeek SalFileSetCurrentDirectory SalFileSetDateTime SalFileSetDrive SalFileTell SalFileWrite Formatao e validao SalFmtFieldToStr SalFmtFormatDateTime SalFmtFormatNumber SalFmtGetFormat SalFmtGetInputMask SalFmtGetPicture SalFmtIsValidField SalFmtIsValidInputMask SalFmtIsValidPicture SalFmtKeepMask SalFmtSetFormat SalFmtSetInputMask SalFmtSetPicture SalFmtStrToField SalFmtUnmaskInput SalFmtValidateField SalIsNull SalIsValidDateTime SalIsValidDecimal SalIsValidInteger SalIsValidNumber SalStrIsValidCurrency SalStrIsValidDateTime SalStrIsValidNumber SalValidateSet Tratamento dos objetos list box e combo box SalListAdd SalListClear SalListDelete SalListFiles SalListGetMultiSelect SalListInsert SalListPopulate SalListQueryCount

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalListQueryFile SalListQueryMultiCount SalListQuerySelection SalListQueryState SalListQueryText SalListQueryTextX SalListQueryTextLength SalListRedraw SalListSelectString SalListSetMultiSelect SalListSetSelect SalListSetTabs Gerenciamento dos recursos dos MDI SalMDIArrangeIcons SalMDICascade SalMDITile Suporte ao Microsoft Transaction Server SalMTSCreateInstance SalMTSDisableCommit SalMTSEnableCommit SalMTSGetObjectContext SalMTSIsCallerInRole SalMTSIsInTransaction SalMTSIsSecurityEnabled SalMTSSetAbort SalMTSSetComplete

Funes de tratamento de mensagens SalPostMsg SalSendClassMessage SalSendClassMessageNamed SendSendMsg SalSendMsgToChildren SalSendValidateMsg Funes de uso genrico SalAbort SalClearField SalCursorClear SalCursorSet SalCursorSetFile SalCursorSetString SalDrawMenuBar SalGetProfileInt SalGetProfileString

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalGetVersion SalIdleKick SalIdleRegisterWindow SalIdleUnregisterWindow SalLoadApp SalLoadAppAndWait SalMapEnterToTab SalMessageBeep SalMessageBox SalQuit SalSetProfileString SalTimerKill SalTimerSet SalTrackPopupMenu SalUseRegistry SalWaitCursor SalWinHelp SalYieldEnable SalYieldQueryState SalYieldStartMessages SalYieldStopMessages Manuseio de nmeros SalNumberAbs SalNumberArcCos SalNumberArcSin SalNumberArcTan SalNumberArcTan2 SalNumberCos SalNumberCosH SalNumberExponent SalNumberHigh SalNumberHypot SalNumberLog SalNumberLogBase10 SalNumberLow SalNumberMax SalNumberMin SalNumberMod SalNumberPi SalNumberPower SalNumberRandInit SalNumberRandom SalNumberRound SalNumberSin SalNumberSinH SalNumberSqrt SalNumberTan

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalNumberTanH SalNumberToChar SalNumberToHString SalNumberToStr SalNumberToStrX SalNumberToWindowHandle SalNumberTruncate Tratamento de imagens SalPicClear SalPicGetDescription SalPicGetImage SalPicGetString SalPicSet SalPicSetFile SalPicSetFit SalPicSetImage SalPicSetHandle SalPicSetString Funes de impresso SalPrtExtractRect SalPrtGetDefault SalPrtGetParmNum SalPrtPrintForm SalPrtSetDefault SalPrtSetParmDefaults SalPrtSetParmNum SalPrtSetup Funes para relatrios SalReportClose SalReportCmd SalReportCreate SalReportDlgOptions SalReportGetDateTimeVar SalReportGetNumberVar SalReportGetObjectVar SalReportGetStringVar SalReportPrint SalReportPrintToFile SalReportReset SalReportSetDateTimeVar SalReportSetNumberVar SalReportSetObjectVar SalReportSetStringVar SalReportTableCreate SalReportTablePrint

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalReportTableView SalReportView Tratamento de barras de rolagem SalScrollGetPos SalScrollGetRange SalScrollSetPos SalScrollSetRange Funes SQL SqlClearImmediate SqlClose SqlCommit SqlConnect SqlContextClear SqlContextSet SqlContextSetToForm SqlDirectoryByName SqlDisconnect SqlDropStoredCmd SqlError SqlErrorText SqlExecute SqlExecutionPlan SqlExists SqlExtractArgs SqlFetchNext SqlFetchPrevious SqlFetchRow SqlGetError SqlGetErrorPosition SqlGetErrorText SqlGetErrorTextX SqlGetModifiedRows SqlGetParameter SqlGetParameterAll SqlGetResultSetCount SqlGetRollbackFlag SqlImmediate SqlImmediateContext SqlOpen SqlPLSQLCommand SqlPrepare SqlPrepareAndExecute SqlRetrieve SqlSetInMessage SqlSetIsolationLevel SqlSetLockTimeout

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SqlSetLongBindDatatype SqlSetOutMessage SqlSetParameter SqlSetParameterAll SqlSetResultSet SqlStore SqlVarSetup Tratamento de strings SalStrCompress SalStrFirstC SalStrGetBufferLength SalStrLeft SalStrLeftX SalStrLength SalStrLop SalStrLower SalStrLowerX SalStrMid SalStrMidX SalStrProper SalStrProperX SalStrRepeat SalStrRepeatX SalStrReplace SalStrReplaceX SalStrRight SalStrRightX SalStrScan SalStrSetBufferLength SalStrToDate SalStrTokenize SalStrToNumber SalStrTrim SalStrTrimX SalStrUncompress SalStrUpper SalStrUpperX Tratamento de table window SalTblAnyRows SalTblClearSelection SalTblColumnAverage SalTblColumnSum SalTblCopyRows SalTblCreateColumn SalTblDefineRowHeader SalTblDefineSplitWindow

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalTblDeleteRow SalTblDeleteSelected SalTblDestroyColumns SalTblDoDeletes SalTblDoInserts SalTblDoUpdates SalTblFetchRow SalTblFindNextRow SalTblFindPrevRow SalTblGetColumnText SalTblGetColumnTitle SalTblGetColumnWindow SalTblInsertRow SalTblKillEdit SalTblKillFocus SalObjectsFromPoint SalTblPasteRows SalTblPopulate SalTblQueryColumnFlags SalTblQueryColumnID SalTblQueryColumnPos SalTblQueryColumnWidth SalTblQueryContext SalTblQueryFocus SalTblQueryLockedColumns SalTblQueryRowFlags SalTblQueryRowHeader SalTblQueryScroll SalTblQuerySplitWindow SalTblQueryTableFlags SalTblQueryVisibleRange SalTblReset SalTblScroll SalTblSetCellTextColor SalTblSetColumnFlags SalTblSetColumnPos SalTblSetColumnText SalTblSetColumnTitle SalTblSetColumnWidth SalTblSetContext SalTblSetFlagsAnyRows SalTblSetFocusCell SalTblSetFocusRow SalTblSetLockedColumns SalTblSetRange SalTblSetRow SalTblSetRowFlags SalTblSetTableFlags

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalTblSortRows Gerenciamento de janelas SalAppDisable SalAppEnable SalAppFind SalBringWindowToTop SalCenterWindow SalCreateWindow SalCreateWindowEx SalContextMenuSetPopup SalDestroyWindow SalDisableWindow SalDisableWindowAndLabel SalEnableWindow SalEnableWindowAndLabel SalFindWindow SalFormGetParmNum SalGetDefButton SalGetFirstChild SalGetFocus SalGetNextChild SalGetType SalGetWindowLabelText SalGetWindowLoc SalGetWindowSize SalGetWindowState SalGetWindowText SalHideWindow SalHideWindowAndLabel SalInvalidateWindow SalIsButtonChecked SalIsWindowEnabled SalIsWindowVisible SalMoveWindow SalParentWindow SalQueryFieldEdit SalSetDefButton SalSetFieldEdit SalSetFocus SalSetWindowLabelText SalSetWindowLoc SalSetWindowSize SalSetWindowText SalShowWindow SalShowWindowAndLabel SalStatusGetText SalStatusSetText

Pgina PAGE 582

Programando com o Centura Team Developer 2000

SalStatusSetVisible SalTBarSetVisible SalUpdateWindow SalWindowClassName SalWindowGetProperty SalWindowHandleToNumber SalWindowIsDerivedFromClass

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalAbort Sintaxe : bOk = SalAbort ( nCodigo ) Descrio : Cancela o processamento atual do menu actions, message actions, ou do application actions. Use SalAbort quando voc quiser encerrar a sequncia da chamada atual sem retornar nenhum valor de status. Parmetro : nCodigo Receive Number. O status de sada. O Centura ignora este parmetro para entrada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalActiveXAutoErrorMode Sintaxe : bOk = SalActiveXAutoErrorMode ( bAcao ) Descrio : Liga/Desliga o tratamento automtico de erro. Parmetro : bAcao

Boolean - Se for TRUE o tratamento automtico de erro ativado, se FALSE, desativado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXClose Sintaxe : bOk = SalActiveXClose ( nWndControle , bSalvar ) Descrio : Fecha um objeto e encerra a conexo com a sua aplicao origem. Parmetros : hWndControle bSalvar

Window Handle - O handle do controle ActiveX. Boolean - Se for TRUE, a aplicao origem do objeto ir salvar os dados antes de encerrar a conexo.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXCreate Sintaxe : bOK = SalActiveXCreate ( hWndControle , sID ) Descrio : Cria um objeto de acordo com a descrio da classe ( progID ). Parmetros : hWndControle Window Handle - O handle do controle ActiveX. sID String - Um identificador OLE da classe ( por exemplo Excel.Sheet.8 ). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalActiveXCreateFromData Sintaxe : bOk = SalActiveXCreateFromData ( hWndControle , sDesc ) Descrio : Cria novamente um objeto a partir de dados armazenados em formato binrio. Parmetros : hWndControle sDesc

Window Handle - O handle do controle ActiveX. String - Os dados em formato de bytes.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXCreateFromFile Sintaxe : bOk = SalActiveXCreateFromFile ( objObjeto , sArquivo ) Descrio : Cria uma instncia de um objeto ActiveX. Parmetros : objObjeto Object - Uma referncia do objeto criado. sArquivo String - O nome de um arquivo 'c:\docs\arquivo.doc'.

.doc

vlido.

Por

exemplo

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXDelete Sintaxe : bOk = SalActiveXDelete ( hWndControle ) Descrio : Apaga uma instncia de um objeto ActiveX. Parmetro : hWndControl Window Handle - O handle do objeto que ser apagado. e Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXDoVerb Sintaxe : bOk = SalActiveXDoVerb ( hWndControle , nVerbo , bTam ) Descrio : Abre um objeto para uma operao. Cada objeto possui seu prprio conjunto de verbos. Parmetros : hWndControle nVerbo

Window Handle - O handle do objeto. Number - Uma constante que identifica um verbo. Os verbos padres que devem ser suportados so listados abaixo:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bTam

salOLEPrimary - A ao padro do objeto. salOLEShow - Ativa o objeto para edio. Se a aplicao que criou o objeto suporta ativao 'no local', o objeto ativado dentro do controle ActiveX container. salOLEOpen - Abre um objeto numa janela separada. Se a aplicao que criou o objeto suporta ativao 'no local', o objeto ativado dentro da sua prpria janela. salOLEHide - Esconde a aplicao que criou o objeto, para o caso de objetos embutidos. salOLEUIActivate - Se o objeto suporta ativao 'no local', mostra alguma ferramenta de interface. Se o objeto no suporta ativao 'no local', um erro ocorre. salOLEInPlaceActivate - Abre uma nova janela e prepara o objeto para ser editado. Ocorre um erro se o objeto no suporta ativao atravs de um clique do mouse. Boolean - Se for TRUE redimensiona o objeto para o mesmo tamanho da janela onde foi ativado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXGetActiveObject Sintaxe : bOk = SalActiveXGetActiveObject ( objObjeto , sClasse ) Descrio : Obtm uma instncia de um objeto ActiveX quando a aplicao servidora j estiver sendo executada. Esta funo pesquisa a Tabela de Objetos OLE em Execuo para obter uma instncia da classe. Essa tabela contm a referncia aos objetos em execuo. Parmetros : objObjeto objObjeto - O objeto que foi encontrado. sClasse sClasse - O nome da classe do objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o SQLWindows/32 no conseguir encontrar um processo de automation vlido.

Funo : SalActiveXGetData Sintaxe : bOk = SalActiveXGetData ( hWndControle , sBytes ) Descrio : Obtm o armazenamento associado ao objeto como uma linha de dados binrios. Dessa forma, disponibilizado um mecanismo alternativo de persistncia em tempo de execuo, para os objetos embutidos. Parmetros : hWndControle sBytes

Window Handle - O handle do objeto. Receive String - A linha de dados binrios do objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalActiveXGetObject Sintaxe : bOk = SalActiveXGetObject ( hWndControle , objObjeto ) Descrio : D acesso interface automation do objeto especificado. Parmetro : hWndControle objObjeto

Window Handle - O handle do objeto. Object - O objeto que foi recuperado.

Valor de Retorno : bOk TRUE se a funo conseguir encontrar uma interface automation vlida, e FALSE caso contrrio.

Funo : SalActiveXInsertObjectDialog Sintaxe : bOk = SalActiveXInsertObjectDialog ( hWndControle ) Descrio : Mostra a caixa de dilogo padro chamada Insert Object. Quando um novo objeto criado, o aplicativo associado ao nome da classe precisa estar corretamente registrado no sistema operacional. O programa de instalao do aplicativo precisa ter realizado adequadamente o seu registro. Parmetro : hWndControl Window Handle - O handle do objeto onde o controle ActiveX ser criado. e Valor de Retorno : bOk TRUE se a funo conseguiu incluir o objeto sem erros. FALSE se algum objeto foi selecionado, mas no foi includo corretamente. Quando o usurio, na janela de incluso de objetos ActiveX, clica no boto Cancel, bOk -1.

Funo : SalActiveXOLEType Sintaxe : nRetorno = SalActiveXOLEType ( hWndControle ) Descrio : Obtm o status de um objeto ActiveX. Parmetro : hWndControl Window Handle - O handle do objeto. e Valor de Retorno : nRetorno uma das seguintes constantes : salOLEEmbedded - O objeto hWndControle contm um objeto embutido. salOLENone - O objeto hWndControle no contm um objeto embutido.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalAppDisable Sintaxe : bOk = SalAppDisable ( ) Descrio : Desabilita a entrada de dados de todas as aplicaes que estiverem sendo executadas. Utilize as funes SalAppDisable e SalAppEnable quando voc estiver executando vrias aplicaes e quiser controlar qual delas receber o foco para que o usurio digite os dados. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalAppEnable Sintaxe : bOk = SalAppEnable ( ) Descrio : Habilita a entrada de dados de todas as aplicaes que estiverem sendo executadas e que foram desabilitadas pela funo SalAppDisable. Utilize as funes SalAppDisable e SalAppEnable quando voc estiver executando vrias aplicaes e quiser controlar qual delas receber o foco para que o usurio digite os dados. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalAppFind Sintaxe : hWnd = SalAppFind ( sNomeAplic , bAtiva) Descrio : Encontra a janela top-level da aplicao que voc especificou e retorna o handle da janela. SalAppFind procura primeiro por instncias de aplicaes Centura e depois por instncias de outras aplicaes Windows. Se voc especificar o nome da instncia atual, SalAppFind encontrar apenas outras instncias sendo executadas, caso existam. Voc pode usar este recurso para evitar que a mesma aplicao seja executada duas ou mais vezes. Parmetros : sNomeAplic String - O nome da aplicao sem a extenso. bAtiva Boolean - Se voc setar bAtiva para TRUE, SalAppFind ir tambm ativar a janela encontrada. Valor de Retorno : hWnd contm o handle da janela encontrada.

Funo : SalArrayAvg Sintaxe : nMedia = SalArrayAvg ( nArray ) Descrio : Retorna o valor da mdia de todos os valores do vetor.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : nArray

Vetor de nmeros o nome do vetor de nmeros.

Valor de Retorno : nMedia o valor da mdia de todos os valores do vetor.

Funo : SalArrayDimCount Sintaxe : bOk = SalArrayDimCount ( Array , nDim ) Descrio : Retorna o nmero de dimenses num vetor. Parmetros : Array Vetor o nome do vetor. nDim Receive Number O nmero de dimenses do vetor. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalArrayGetLowerBound Sintaxe : nOk = SalArrayGetLowerBound ( aArray , nDim , nIndice ) Descrio : Retorna o menor ndice de um vetor. Parmetros : aArray Array O nome do vetor nDim Number O nmero da dimenso para pesquisar. A primeira dimenso 1, a segunda 2 e assim por diante. nIndice Receive Number O valor do menor ndice do um vetor. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalArrayGetUpperBound Sintaxe : bOk = SalArrayGetUpperBound ( aArray , nDim , nIndice ) Descrio : Retorna o maior ndice de um vetor. Parmetros : aArray Array O nome do vetor nDim Number O nmero da dimenso para pesquisar. A primeira dimenso 1, a segunda 2 e assim por diante. nIndice Receive Number O valor do maior ndice de um vetor. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalArrayIsEmpty Sintaxe : bOk = SalArrayIsEmpty ( aArray ) Descrio : Determina se um vetor dinmico contm dados. Parmetro : aArray Array O nome do vetor.

Valor de Retorno : bOk TRUE se o vetor no contm dados, ou seja, se estiver vazio, e FALSE se o vetor possuir dados.

Funo : SalArrayMax Sintaxe : nValor = SalArrayMax ( aArray ) Descrio : Retorna o valor do ltimo elemento de um vetor. Parmetro : aArray Array O nome do vetor.

Valor de Retorno : nValor o valor do ltimo elemento do vetor .

Funo : SalArrayMin Sintaxe : nValor = SalArrayMin ( aArray ) Descrio : Retorna o valor do primeiro elemento de um vetor. Parmetro : aArray Array O nome do vetor.

Valor de Retorno : nValor o valor do primeiro elemento do vetor .

Funo : SalArraySetUpperBound Sintaxe : bOk = SalArraySetUpperBound ( aArray, nDimensao, nIndice ) Descrio : Define o ndice para o ltimo elemento do vetor. Use esta funo para resetar um vetor, para informar ao Centura que o vetor no contm nenhum elemento. Parmetros : aArray Array O nome do vetor. nDimensao Number O nmero da dimenso. A primeira dimenso 1, a segunda 2 e assim por diante. nIndice Number O valor do ltimo ndice do vetor. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalArraySum Sintaxe : nSoma = SalArraySum ( aArray ) Descrio : Retorna a soma dos elementos de um vetor numrico. Parmetro : aArray Array O nome do vetor que ter seus elementos somados.

Valor de Retorno : nSoma a soma de todos os elementos do vetor.

Funo : SalBringWindowToTop Sintaxe : bOk = SalBringWindowToTop ( hWndJanela ) Descrio : Traz a janela para a frente de todas as outras janelas. Parmetro : hWndJanela Window Handle O nome ou o handle da janela a ser mostrada na frente das demais.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalCenterWindow Sintaxe : bOk = SalCenterWindow ( hWndJanela ) Descrio : Centraliza uma janela. Se a janela for um top-level, o Centura centraliza baseando-se na rea de trabalho. Parmetro : hWndJanela

Window Handle - O handle ou o nome da janela a ser centralizada.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalClearField Sintaxe : bOk = SalClearField ( hWndCampo ) Descrio : Limpa o valor de um data field, combo box ou column da table window. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto ( data field, combo box ou column ) que ter o seu valor apagado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalColorFromRGB Sintaxe : nCor = SalColorFromRGB ( nVermelho , nVerde , nAzul ) Descrio : Compe uma cor baseado nos valores numricos definidos em nVermelho, nVerde e nAzul. Parmetros : nVermelho Number Um nmero entre 0 e 255. nVerde Number Um nmero entre 0 e 255. nAzul Number Um nmero entre 0 e 255. Valor de Retorno : nCor a nova cor gerada.

Funo : SalColorGet Sintaxe : nCor = SalColorGet ( hWndObj , nIndiceCor ) Descrio : Obtm a cor de uma determinada parte de um objeto. Parmetros : hWndObj Window Handle O handle ou o nome do objeto que voc quer saber a cor. nIndiceCor Number A parte do objeto que voc que saber a cor, representada pelas seguintes constantes : COLOR_IndexCellText, COLOR_IndexTransparent, COLOR_IndexWindow, COLOR_IndexWindowText. Valor de Retorno : nCor a cor retornada, ela pode ser uma cor definida pelo usurio e pode tambm ser uma das cores j pr-definidas pelo Centura, estas cores so definidas nas constantes COLOR_*. Se voc especificar no segundo parmetro COLOR_IndexTransparent e esta cor no tiver sido definida, a funo SalColorGet retornar COLOR_None.

Funo : SalColorGetSysColor Sintaxe : nCor = SalColorGetSysColor ( nIndiceCor ) Descrio : Obtm uma cor do sistema. Parmetro : nIndiceCor Number a cor de uma parte do objeto, representada pelas seguintes constantes do Centura : COLOR_SysWindow, COLOR_SysWindowFrame e COLOR_SysWindowText.

Valor de Retorno : nCor a cor retornada, ela pode ser uma das cores j pr-definidas pelo Centura, estas cores so definidas nas constantes COLOR_*.

Funo : SalColorSet Sintaxe : bOk = SalColorSet ( hWndObj , nIndiceCor , nCor ) Descrio : Define a cor de um objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndObj Window Handle O handle ou o nome do objeto que voc deseja definir a cor. nIndiceCor Number a parte do objeto que voc deseja definir a cor. Voc pode utilizar uma das constantes do Centura para identificar a parte do objeto que ter sua cor alterada. As constantes podem ser: COLOR_IndexCellText, COLOR_IndexTransparent, COLOR_IndexWindow e COLOR_IndexWindowText. nCor Number a cor a ser atribuda ao objeto. Pode ser uma cor definida pelo usurio ou pode ser uma das cores j pr-definidas pelo Centura numa das constantes COLOR_*. Para desligar a cor transparente utilize COLOR_None. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalColorToRGB Sintaxe : bOk = SalColorToRGB ( nCor, nVermelho , nVerde , nAzul ) Descrio : Decompe uma cor em valores vermelho, verde e azul. Parmetros : nCor Number - A cor definida pelo usurio ou uma das cores j pr-definidas pelo Centura, estas cores so expressas nas constantes COLOR_*. Voc no pode utilizar aqui as cores COLOR_Default, COLOR_None, e as constantes COLOR_Sys*. nVermelho Receive Number Um nmero entre 0 e 255 que representa a cor vermelha. nVerde Receive Number - Um nmero entre 0 e 255 que representa a cor verde. nAzul Receive Number - Um nmero entre 0 e 255 que representa a cor azul. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalCompileAndEvaluate Sintaxe : nTipo = SalCompileAndEvaluate( sExp, nErro, nPosErro, nRet, sRet, dtRet, hWndRet, bErro, sContexto ) Descrio : Avalia a expresso e retorna o seu valor um dos tipos de dados que so utilizados como parmetros, de acordo como o tipo de dado apropriado. SalCompileAndEvaluate permite que voc obtenha o contedo de uma varivel, mesmo sem que voc saiba o nome desta. Parmetros : sExp String A expresso a ser avaliada. nErro Receive Number O nmero do erro, se for retornado algum.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nPosErro nRet sRet dtRet hWndRet bErro

sContexto

Receive Number A posio em sExp que ocorreu o erro, se ocorrer algum. Receive Number Este parmetro ter algum valor se sExp retornar um valor numrico. Receive String - Este parmetro ter algum valor se sExp retornar um valor string. Receive Date/Time - Este parmetro ter algum valor se sExp retornar um valor date/time. Receive Window Handle Este parmetro ter algum valor se sExp retornar um handle. Boolean Se este parmetro for TRUE, o Centura no mostrar nenhuma mensagem caso ocorra algum erro. Especifique TRUE caso a aplicao faa o seu prprio tratamento de erro. Especifique FALSE para que o Centura mostre uma caixa de dilogo com a mensagem de erro, quando ocorrer um. String O ponteiro do contexto da execuo, retornado pelas funes SalContextBreak ou SalContextCurrent.

Valor de Retorno : Se a funo for executada com sucesso, nTipo ir conter um valor que pode ser uma das seguintes constantes : EVAL_Date, EVAL_Handle, EVAL_If, EVAL_Number, EVAL_Set, EVAL_String e EVAL_Template.

Funo : SalContextBreak Sintaxe : sContexto = SalContextBreak ( ) Descrio : Recupera o contexto do comando break mais recentemente executado. Utilize esta funo com SalCompileAndEvaluate. Nenhum Parmetro.

Funo : SalContextCurrent Sintaxe : sContexto = SalContextCurrent ( ) Descrio : Recupera o contexto de execuo atual. Utilize esta funo com SalCompileAndEvaluate. Nenhum Parmetro.

Funo : SalContextMenuSetPopup Sintaxe : bOk = SalContextMenuSetPopup ( hWndObj , sNomeMenu , nFlags ) Descrio : Define que um popup menu nomeado na seo Global Declarations | Named Menus ser automaticamente mostrado quando o objeto receber a mensagem SAM_ContextMenu. Parmetros : hWndObj Window Handle O handle do objeto de mais baixo nvel que ir processar as mensagens que o menu enviar. sNomeMenu String O nome de um menu definido numa seo Named Menus do objeto

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nFlags

ou do Global Declarations. Number Utilize CM_TableCell para sobrepor o menu padro mostrado pelo windows quando o mouse apontado para um campo de edio ou uma clula de uma coluna da table window. Utilize Zero para que o menu padro do windows seja mostrado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalCreateWindow Sintaxe : hWndJanelaCriada = SalCreateWindow ( tJanela , hWndPai , Parametro1, Parametro2 , ..... ) Descrio : Cria janelas dialog box, form window, MDI window e table window tipo top level em tempo de execuo, com o comportamento modeless. Se voc especificar um pai ( hWndPai ) , a janela criada ser sempre mostrada por cima da janela pai. Ao minimizar ou fechar a janela pai, a janela filha tambm minimizada ou fechada. Voc pode tambm passar um nmero varivel de parmetros para a janela que est sendo criada com SalCreateWindow. Estes parmetros so definidos na seo Window Parameters da janela que est sendo criada. SalCreateWindow aceita que o primeiro parmetro seja o nome da janela a ser criada ou tambm pode ser uma varivel cujo seu contedo o nome da jenela a ser criada. Neste caso SalCreateWindow no aceita parmetros. Parmetros : tJanela Template ou String O nome da janela a ser criada. Ateno : se voc utilizar uma varivel, no poder passar parmetros. hWndPai Window Handle O handle ou o nome da janela pai. Especifique hWndNULL para criar uma janela sem janela pai. Parametro1 Qualquer tipo de dado Um parmetro opcional. Parametro2 Qualquer tipo de dado Um parmetro opcional. Valor de Retorno : hWndJanelaCriada o window handle da janela criada. Funo : SalCreateWindowEx Sintaxe : hWndJanelaCriada = SalCreateWindowEx ( tJanela , hWndPai , nEsquerda , nAcima , nLargura , nAltura , nFlags , Parametro1 , Parametro2 , ..... ) Descrio : Cria um dialog box, form window ou table window como objeto filho de outro dialog box, form window ou barra de ferramentas, em tempo de execuo. Se voc especificar um pai ( hWndPai ) , a janela criada ser sempre mostrada dentro da janela pai. Ao minimizar ou fechar a janela pai, a janela filha tambm minimizada ou fechada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc pode tambm passar um nmero varivel de parmetros para a janela que est sendo criada com SalCreateWindowEx. Estes parmetros so definidos na seo Window Parameters da janela que est sendo criada. SalCreateWindowEx aceita que o primeiro parmetro seja o nome da janela a ser criada ou tambm pode ser uma varivel cujo seu contedo o nome da jenela a ser criada. Neste caso SalCreateWindowEx no aceita parmetros. Parmetros : tJanela hWndPai
nEsquerda e nAcima nLargura e nAltura

nFlags

Parmetro1 Parmetro2

Template ou String O nome da janela a ser criada. Ateno : se voc utilizar uma varivel, no poder passar parmetros. Window Handle O handle ou o nome da janela pai. Especifique hWndNULL para criar uma janela sem janela pai. Number - Posio da janela em unidades de form. Number Tamanho da janela em unidades de form. Number - Voc pode combinar estes flags com o operador |. CREATE_AsChild Cria a janela como filha da janela hWndPai. CREATE_Border Quando utilizado com CREATE_AsChild a janela possuir uma borda. CREATE_Hidden Cria a janela mas no mostra-a. Qualquer tipo de dado Um parmetro opcional. Qualquer tipo de dado Um parmetro opcional.

Valor de Retorno : hWndJanelaCriada o window handle da janela criada. Funo : SalCursorClear Sintaxe : bOk = SalCursorClear ( hWndObj , nTipo ) Descrio : Limpa o cursor de um objeto. Parmetros : hWndObj Window Handle O nome ou o handle de um objeto. nTipo Number O tipo do cursor, especifique uma destas constantes : CURSOR_DisableDrop, CURSOR_DragDrop, CURSOR_Window. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SalCursorSet Sintaxe : bOk = SalCursorSet ( hWndObj , tResource, nTipo ) Descrio : Define o cursor de um objeto. Parmetros : hWndObj Window Handle O nome ou o handle de um objeto. tResource Template Um cone definido na seo Global Declarations | Resources do

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nTipo

outline, ou um dos tipos de cursores providos pelo sistema operacional. CURSOR_Arrow, CURSOR_Cross, CURSOR_Ibeam, CURSOR_Icon, CURSOR_Size, CURSOR_SizeNESW, CURSOR_SizeNS, CURSOR_SizeNWSE, CURSOR_SizeWE, CURSOR_UpArrow ou CURSOR_Wait. Number O tipo do cursor, especifique uma destas constantes : CURSOR_DisableDrop, CURSOR_DragDrop ou CURSOR_Window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalCursorSetFile Sintaxe : bOk = SalCursorSetFile ( hWndObj , sArquivo , nTipo ) Descrio : Define o cursor para um determinado objeto. Parmetros : hWndObj Window Handle O nome ou o handle de um objeto. sArquivo String O nome de um cursor ou o nome de um arquivo de cone. nTipo Number O tipo do cursor, especifique uma destas constantes : CURSOR_DisableDrop, CURSOR_DragDrop ou CURSOR_Window. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalCursorSetString Sintaxe : bOk = SalCursorSetString ( hWndObj , sBuffer , nTipo ) Descrio : Define o cursor de um objeto baseado numa string. Parmetros : hWndObj Window Handle O handle ou o nome do objeto. sBuffer String A imagem de um cursor ou um arquivo de cone. nTipo Number O tipo do cursor, especifique uma destas constantes : CURSOR_DisableDrop, CURSOR_DragDrop ou CURSOR_Window. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalDateConstruct Sintaxe : dtData = SalDateConstruct ( nAno, nMes, nDia, nHora, nMinuto, nSegundo ) Descrio : Retorna um valor date/time montado atravs dos parmetros nAno, nMes, nDia, nHora, nMinuto e nSegundo. Observe que se um dos parmetros tiver menos algarismos do que o esperado, SalDateConstruct completar com zeros esquerda. Por exemplo, se nAno for 99, dtData comear com o ano 0099. Parmetros : nAno nMes nDia nHora nMinuto nSegundo Number nmero com 4 dgitos representando um ano. Number nmero representando o ms, so vlidos nmeros de 01 at 12. Number nmero representando o dia, so vlidos nmeros de 01 at 31. Number nmero representando a hora, so vlidos nmeros de 00 at 23. Number nmero representando os minutos, so vlidos nmeros de 00 at 59. Number nmero representando os segundos, so vlidos nmeros de 00 at 59.

Valor de Retorno : dtData a nova data construda. Funo : SalDateCurrent Sintaxe : dtDataHora = SalDateCurrent ( ) Descrio : Retorna a data/hora atual do computador. Nenhum Parmetro. Valor de Retorno : dtDataHora a data e a hora atual do computador. Funo : SalDateDay Sintaxe : nDia = SalDateDay ( dtData ) Descrio : Retorna o dia de um valor date/time, retorna 1 se a data for invlida. Parmetro : dtData Date/Time O valor data.

Valor de Retorno : nDia um nmero entre 1 e 31, ou 1 no caso do valor informado no corresponder a uma data vlida. Funo : SalDateHour Sintaxe : nHora = SalDateHour ( dtData ) Descrio : Retorna a hora de um valor date/time, retorna 1 se a data for invlida.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : dtData

Date/Time O valor data.

Valor de Retorno : nHora um nmero entre 0 e 23, ou 1 no caso do valor informado no corresponder a uma data vlida. Funo : SalDateMinute Sintaxe : nMinuto = SalDateMinute ( dtData ) Descrio : Retorna o minuto de um valor date/time, retorna 1 se a data for invlida. Parmetro : dtData Date/Time O valor data.

Valor de Retorno : nMinuto um nmero entre 0 e 59, ou 1 no caso do valor informado no corresponder a uma data vlida. Funo : SalDateMonth Sintaxe : nMes = SalDateMonth ( dtData ) Descrio : Retorna o ms de um valor date/time, retorna 1 se a data for invlida. Parmetro : dtData Date/Time O valor data.

Valor de Retorno : nMes um nmero entre 0 e 12, ou 1 no caso do valor informado no corresponder a uma data vlida. Funo : SalDateMonthBegin Sintaxe : dtDataInicial = SalDateMonthBegin ( dtData ) Descrio : Retorna a data inicial do ms da data passada como parmetro. Por exemplo, se dtData for 25 de janeiro de 1999 Parmetro : dtData Date/Time O valor data.

Valor de Retorno : nHora um nmero entre 0 e 23, ou 1 no caso do valor informado no corresponder a uma data vlida. Funo : SalDateQuarter Sintaxe : nQuarter = SalDateQuarter ( dtData )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Retorna um nmero indicando o quadrimestre do ano ao qual a data passada como parmetro se enquadra. Parmetro : dtData Date/Time A data a ser analisada.

Valor de Retorno : nQuarter poder conter um nmero entre 1 e 4 indicando o quadrimestre do ano. Funo : SalDateQuarterBegin Sintaxe : dtDataInicio = SalDateQuarterBegin ( dtData ) Descrio : Retorna o primeiro dia do quadrimestre a que a data dtData pertence. Parmetro : dtData Date/Time O valor indicando a data.

Valor de Retorno : dtDataInicio o primeiro dia do quadrimestre.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalDateSecond Sintaxe : nSegundos = SalDateSecond ( dtData ) Descrio : Retorna um valor indicando os segundos da hora passada como parmetro. Parmetro : dtData Date/Time O valor data.

Valor de Retorno : sSegundos um nmero entre 0 e 59, ou 1 no caso do valor informado em dtData no corresponder a uma data vlida. Funo : SalDateToStr Sintaxe : nTamanho = SalDateToStr ( dtData , sData) Descrio : Converte um valor tipo date/time em seu correspondente do tipo string. Se o valor em dtData no corresponder a um valor vlido date/time, nTamanho ser 1. Parmetros : dtData Date/Time O valor data a ser convertido para string. sData Receive String A data em formato string. ( AAAA-MM-DDHH:MM:SS.TTTTTT ) Valor de Retorno : nTamanho o tamanho do contedo de sData. Funo : SalDateWeekBegin Sintaxe : dtInicioSemana = SalDateWeekBegin ( dtData ) Descrio : Retorna a data da segunda-feira anterior data especificada em dtData. Parmetro : dtData Date/Time Um valor date/time.

Valor de Retorno : dtInicioSemana a data da segunda-feira anterior data em dtData. Se esta for uma data invlida, dtInicioSemana ser igual a DATETIME_Null. Funo : SalDateWeekday Sintaxe : nDiaSemana = SalDateWeekday ( dtData ) Descrio : Retorna o dia da semana em um valor entre 0 e 6. Retorna 1 se o valor em dtData for invlido ou DATETIME_Null. Parmetro : dtData Date/Time A data a ser analisada.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nDiaSemana um nmero entre 0 e 6. Sendo que 0 (zero) representa sbado, 1 representa domingo e assim por diante. Funo : SalDateYear Sintaxe : nAno = SalDateYear ( dtData ) Descrio : Retorna o ano da data informada. Se a data for um valor invlido, retorna 1. Parmetro : dtData Date/Time Um valor para a data.

Valor de Retorno : nAno o ano da tada informada. Funo : SalDateYearBegin Sintaxe : dtInicioAno = SalDateYearBegin ( dtData ) Descrio : Retorna a data do primeiro dia do ano. Retorna 1 se a data informada for invlida. Parmetro : dtData Date/Time O valor da data.

Valor de Retorno : dtInicioAno corresponde data do primeiro dia do ano. Funo : SalDDEAddAtom Sintaxe : nAtomo = SalDDEAddAtom ( sStr ) Descrio : Adiciona uma string tabela global de tomos, criando um novo tomo para identificar a string. Se a string a ser adicionada tabela j existir, o contador de tomos ser acrescido de um. Parmetro : sStr String A string a ser adicionada tabela global de tomos.

Valor de Retorno : Se a funo for concluda com sucesso, nAtomo o valor do novo tomo global. Se a string em sStr j existir, nAtomo o valor do tomo existente. Em caso de erro, nAtomo zero. Funo : SalDDEAlloc Sintaxe : nMemoria = SalDDEAlloc ( ) Descrio : Aloca um handle de memria para : Informaes nas mensagens EM_DDE_Data ou WM_DDE_Poke. Opes numa mensagem WM_DDE_Advise. Uma string de comando numa mensagem WM_DDE_Execute.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Nenhum Parmetro. Valor de Retorno : nMemoria o handle global de memria, se a funo for executada com sucesso, e zero, se falhar. Funo : SalDDEDeleteAtom Sintaxe : nContador = SalDDEDeleteAtom ( nAtomo ) Descrio : Diminui o contador de tomos. Se o contador atingir zero, o tomo e a string associada sero apagados da tabela global de tomos. Quando sua aplicao for encerrada, utilize esta funo para cada chamada com sucesso funo SalDDEAddAtom que voc tiver feito. Parmetro : nAtomo Number O tomo a ser apagado.

Valor de Retorno : nContador zero se a funo for executada com sucesso e igual a nAtomo se a funo falhar. Funo : SalDDEExtract Sintaxe : bOk = SalDDEExtract ( nwParam , nlParam , hWndRemetente , nllParam , nhlParam ) Descrio : Obtm o window handle do remetente e o valor do parmetro lParam que foi recebido. Parmetros : nwParam nlParam hWndRemete nte nllParam nhlParam Number O parmetro, tipo word, da mensagem DDE. Number O parmetro, tipo long, da mensagem DDE. Receive Window Handle O window handle de quem enviou a mensagem. Receive Number O valor ( low-order ) da varivel lParam. Receive Number O valor ( high-order ) da varivel lParam.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEExtractCmd Sintaxe : bOk = SalDDEExtractCmd ( nComando , sComando , nTamanho ) Descrio : Extrai o comando representado pelo valor da varivel lParam numa mensagem WM_DDE_Execute. Parmetros : nComando Number O handle de memria para o comando. sComando Receive String O comando. nTamanho Number O tamanho mximo do comando.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEExtractDataText Sintaxe : bOk = SalDDEExtractDataText ( nData , nStatus , sDado , nTamanho ) Descrio : Extrai o valor contido na varivel lParam numa mensagem WM_DDE_Data ou WM_DDE_Poke. Parmetros : nDado nStatus sDado nTamanho Number O handle do objeto que contm o dado ou outra informao. Receive Number O status. Receive String O dado. Number O tamanho do buffer de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEExtractOptions Sintaxe : SalDDEExtractOptions ( nwParam , nlParam , hWndRemetente , nllParam , nhlParam ) Descrio : Obtm o window handle do remetente e o valor do parmetro lParam que foi recebido. Parmetros : nwParam nlParam hWndRemete nte nllParam nhlParam Number O parmetro, tipo word, da mensagem DDE. Number O parmetro, tipo long, da mensagem DDE. Receive Window Handle O window handle de quem enviou a mensagem. Receive Number O valor ( low-order ) da varivel lParam. Receive Number O valor ( high-order ) da varivel lParam.

Funo : SalDDEFindAtom Sintaxe : nAtomo = SalDDEFindAtom ( sStr ) Descrio : Procura na tabela global de tomos e retorna o tomo associado a string em sStr. Parmetro : sStr String A string que ser procurada.

Valor de Retorno : nAtomo o tomo global associado string sStr. nAtomo zero se no for encontrado na tabela. Funo : SalDDEFree

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : nHandle = SalDDEFree ( nMemoria ) Descrio : Libera um handle de memria que foi alocado pela funo SalDDEAlloc. Quando sua aplicao for encerrada, utilize esta funo para cada chamada com sucesso funo SalDDEAlloc que voc tiver feito. Parmetro : nMemoria Number O handle de memria a ser liberado.

Valor de Retorno : nHandle zero se a funo for executada com sucesso e igual ao valor em nMemoria se a funo falhar. Funo : SalDDEGetAtomName Sintaxe : nTamAtomo = SalDDEGetAtomName ( nAtomo , sNomeDoAtomo , nTamanho ) Descrio : Obtm a string associada a um tomo. Parmetros : nAtomo sNomeDoAto mo nTamanho Number O nmero do tomo. Receive String A string associada ao tomo. Number Especifica o tamanho mximo de sNomeDoAtomo.

Valor de Retorno : nTamAtomo o tamanho da string retornada se a funo for executada com sucesso e zero se a funo falhar. Funo : SalDDEGetExecuteString Sintaxe : sComando = SalDDEGetExecuteString ( nlParam ) Descrio : Uma aplicao servidora utiliza esta funo para obter o comando enviado pelo cliente. Esta funo converte o valor de lParam na mensagem SAM_DDE_ClientExecute, para um valor string, e retorna o valor da string em sComando. Parmetro : nlParam Number O valor de lParam na mensagem SAM_DDE_ClientExecute.

Valor de Retorno : sComando o comando enviado ao servidor pela aplicao cliente. Funo : SalDDEPost Sintaxe : nRetorno = SalDDEPost ( hWndObj , nMensagem , hWndRemetente , nllParam , nhlParam ) Descrio : Envia todas as mensagens WM_DDE_*, com exceo das mensagens WM_DDE_Initiate e WM_DDE_Ack. A funo SalDDEPost coloca uma mensagem na filha de mensagens do objeto, permitindo que este processe as mensagens que j estiverem na fila. A funo SalDDEPost retorna sem esperar pelo processamento da mensagem no objeto que a recebeu.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndObj nMensagem hWndRemete nte nllParam nhlParam

Window Handle O handle do objeto que recebe a mensagem. Number A mensagem. Window Handle O handle de quem est enviando a mensagem. Receive Number O valor ( low-order ) da varivel lParam enviada com a mensagem. Receive Number O valor ( high-order ) da varivel lParam enviada com a mensagem.

Valor de Retorno : nRetorno um valor diferente de zero se a funo for executada com sucesso e zero se a funo falhar. Funo : SalDDERequest Sintaxe : bOk = SalDDERequest ( hWndCliente, sServio, sTopico, sItem, nTimeout, sDado ) Descrio : Uma aplicao cliente utiliza esta funo para solicitar ao servidor o envio de informao. Parmetros : hWndCliente Window Handle O handle da aplicao cliente, associado a um servio, tpico e item. sServio String O nome do servio DDE. sTopico String O nome do tpico DDE. sItem String O nome do item DDE. nTimeOut Number O valor do tempo limite de espera em milisegundos. sDado Receive String Uma varivel string ou um objeto na aplicao cliente que receber os dados. Se for um objeto, este precisa ter condies de receber informaes ( como por exemplo, um data field, column, multiline text ou combo box ), alm de ter sido definido um tipo de dado compatvel com o tipo de dado da string. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalDDESend Sintaxe : nRetorno = SalDDESend (hWndReceptor, nMsg, hWndRemetente, nllParam, nhlParam ) Descrio : Envia uma mensagem WM_DDE_Ack em resposta mensagem WM_DDE_Initiate. Diferente da funo SalDDEPost, a funo SalDDESend no coloca a mensagem na fila de mensagens do objeto, ou seja, ela faz um envio imediato da mensagem, no retornando at que o processamento da mesma seja encerrado. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndRecept or nMensagem hWndRemete nte nllParam nhlParam

Window Handle O handle do objeto que recebe a mensagem. Number O nmero da mensagem. Window Handle O handle do objeto que est enviando a mensagem. Receive Number - O valor ( low-order ) da varivel lParam enviada com a mensagem. Receive Number - O valor ( high-order ) da varivel lParam enviada com a mensagem.

Valor de Retorno : nRetorno o valor retornado pelo receptor da mensagem. Funo : SalDDESendAll Sintaxe : nRetorno = SalDDESendAll ( nMsg , hWndRemetente , nllParam , nhlParam ) Descrio : Distribui a mensagem WM_DDE_Initiate e no retorna at que todos os receptores a tenham processado. Parmetros : nMsg Number A mensagem. hWndRemete Window Handle O handle do objeto que est enviando a mensagem. nte nllParam Receive Number - O valor ( low-order ) da varivel lParam enviada com a mensagem. nhlParam Receive Number - O valor ( high-order ) da varivel lParam enviada com a mensagem. Valor de Retorno : nRetorno um valor diferente de zero se a funo for executada com sucesso e igual a zero se a funo falhar. Funo : SalDDESendExecute Sintaxe : bOk = SalDDESendExecute ( hWndCliente, sServico, sTopico, sItem, nTimeout, sCmd ) Descrio : A aplicao cliente utiliza esta funo para enviar a mensagem WM_DDE_Execute para o servidor. Parmetros : hWndCliente Window Handle O handle do objeto cliente associado com o servio, tpico e item DDE. sServico String O servio DDE. sTopico String O nome do tpico DDE. sItem String O nome do item DDE. nTimeout Number O valor do tempo limite de espera em milisegundos. sCmd String O comando.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalDDESendToClient Sintaxe : bOk = SalDDESendToClient ( hWndServidor , sDado , nIdCliente , nTimeout ) Descrio : Uma aplicao servidora utiliza esta funo para enviar informaes aplicao cliente. Parmetros : hWndServido r sDado nIdCliente Window Handle O handle do objeto associado ao servio, tpico e item DDE. String A informao a ser enviada ao cliente. Number O handle do cliente convertido para um valor numrico. Para uma conversao tipo hot link, especifique zero. O Centura atualizar todas as aplicaes que tiverem estabelecido uma comunicao tipo hot link. Para uma conversao tipo cold link, o servidor recebe a mensagem SAM_DDE_ClientRequest ( em resposta chamada da funo SalDDERequest pela aplicao cliente ). O valor da varivel lParam, na mensagem SAM_DDE_ClientRequest, identifica o cliente a receber as informaes contidas em sDado. Number O valor do tempo limite de espera em milisegundos.

nTimeout

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalDDESetCmd Sintaxe : bOk = SalDDESetCmd ( nhlParam , sCmd ) Descrio : Associa um comando ao valor referente poro high-order da varivel lParam numa mensagem SAM_DDE_Execute. Parmetros : nhlParam Number O handle para o bloco de comando que contm a string do comando. sCmd String O comando a ser executado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDESetDataText Sintaxe : bOk = SalDDESetDataText ( nData , nStatus , sDado ) Descrio : Associa um comando ao valor referente poro low-order da varivel lParam numa mensagem SAM_DDE_Data ou WM_DDE_Poke. Parmetros : nData Number O handle para o bloco de comando que contm o dado ou outra

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nStatus sDado

informao. Number O cdigo de status. String O valor a ser associado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDESetOptions Sintaxe : bOk = SalDDESetOptions ( nOpcoes , nFlags , nFormato ) Descrio : Associa um comando ao valor referente poro low-order da varivel lParam na mensagem SAM_DDE_Advise. Parmetros : nOpcoes Number O handle para o objeto que especifica como os dados sero enviados. nFlags Number O cdigo de status. nFormato Number O formato do dado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEStartServer Sintaxe : bOk = SalDDEStartServer ( hWndServidor , sServico , sTopico , sItem ) Descrio : Uma aplicao servidora utiliza esta funo para avisar s aplicaes clientes que ela est pronta para receber conexes. A aplicao servidora deve utilizar esta funo, antes que as aplicaes cliente tentem efetuar a conexo. Parmetros : hWndServido r sServico sTopico sItem Window Handle O window handle da aplicao servidora, associada aplicao, ao tpico e ao item DDE. String O servio DDE. String O tpico DDE. String O nome do item DDE.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEStartSession Sintaxe : bOk = SalDDEStartSession ( hWndObj, sServio, sTpico, sItem, nTimeout ) Descrio : Uma aplicao cliente utiliza esta funo para iniciar uma conversao tipo hot link com o servidor. Parmetros : hWndObj Window Handle O handle ( ou o nome ) de um objeto que pode armazenar valores ( como um data field, column, multiline text ou um combo box )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sServio sTpico sItem nTimeOut

Se a funo SalDDEStartSession for bem sucedida, a aplicao servidora atualiza o objeto associado ao handle hWndObj com o valor de sItem. A mensagem SAM_DDE_DataChange enviada ao objeto hWndObj quando o valor do objeto for alterado. String O servio DDE. String O nome do tpico DDE. String O nome do item DDE. Number O valor do tempo limite de espera em milisegundos.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEStopServer Sintaxe : bOk = SalDDEStopServer ( hWndServidor ) Descrio : O servidor utiliza esta funo para encerrar as atividades de um servidor DDE. Esta funo deve ser chamada o mesmo nmero de vezes que a funo SalDDEStartServer foi executada com sucesso. Parmetro : hWndServido Window Handle O handle do servidor associado ao servio, tpico e item r DDE. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDDEStopSession Sintaxe : bOk = SalDDEStopSession ( hWndDest ) Descrio : Uma aplicao cliente utiliza esta funo para encerrar uma conversao tipo hot link com o servidor. Esta funo deve ser chamada o mesmo nmero de vezes que a funo SalDDEStartSection foi executada com sucesso. Parmetro : hWndDest Window Handle O handle ou o nome do objeto na aplicao cliente, que est associado a um servio, tpico e item DDE.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDestroyWindow Sintaxe : bOk = SalDestroyWindow ( hWndObj ) Descrio : Destri um form window, dialog box, top-level table window ou mdi criado com SalCreateWindow. Parmetro : hWndObj Window Handle O handle ou o nome do objeto a ser destrudo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDisableWindow Sintaxe : bOk = SalDisableWindow ( hWndObj ) Descrio : Desabilita o acesso do teclado e do mouse a um objeto. O texto do objeto ficar cinza, e o objeto no poder receber o foco. Parmetro : hWndObj Window Handle O nome ou o handle do objeto a ser desabilitado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDisabelWindowAndLabel Sintaxe : bOk = SalDisableWindowAndLabel ( hWndObj ) Descrio : Desabilita o acesso do teclado e do mouse a um objeto. O texto do objeto e o background text que o preceder no outline ficaro cinza, e o objeto no poder receber o foco. Parmetro : hWndObj

Window Handle - O nome ou o handle do objeto a ser desabilitado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDlgChooseColor Sintaxe : bOk = SalDlgChooseColor ( hWndPai , nCor ) Descrio : Mostra o dilogo de cores do windows para que o usurio escolha ou defina uma nova cor. Parmetros : hWndPai Window Handle O nome ou o handle da janela pai. nCor Number O valor RGB da cor que o usurio escolheu. Valor de Retorno : bOk TRUE se o usurio escolheu uma cor e saiu da janela clicando no boto Ok, e FALSE se o usurio saiu da janela de cores clicando no boto Cancel. Funo : SalDlgChooseFont Sintaxe : bOk = SalDlgChooseFont ( hWndPai , sNomeFonte, nTamanho, nMelhoramento, nCor ) Descrio : Mostra o dilogo de fontes do Windows para que o usurio escolha uma fonte, tamanho, melhoramento de fonte ou cor entre as que esto disponveis.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndPai sNomeFonte nTamanho nMelhoramen to nCor

Window Handle O nome ou o handle da janela pai. Receive String O nome da fonte escolhida pelo usurio. Receive Number O tamanho da fonte escolhido pelo usurio. Receive Number O melhoramento de fonte escolhido pelo usurio (negrito, itlico...). Receive Number A cor escolhida pelo usurio.

Valor de Retorno : bOk TRUE se o usurio saiu da caixa de dilogo clicando no boto Ok, e FALSE se o usurio saiu da janela clicando no boto Cancel. Funo : SalDlgOpenFile Sintaxe : bOk = SalDlgOpenFile ( hWndPai, sTitulo, sFiltro, nFiltro, nIndice, sArquivo, sPath ) Descrio : Mostra a caixa de dilogo do Windows onde o usurio poder escolher um arquivo para ser aberto. Parmetros : hWndPai Window Handle O nome ou o handle do objeto pai. sTitulo String O ttulo que ser mostrado na caixa de dilogo. sFiltro String Um vetor com os filtros e suas descries. Cada filtro precisa ter uma descrio que deve vir no item imediatamente anterior no vetor. Por exemplo, o usurio poder escolher o tipo de arquivo fonte do Centura que ele deseja abrir, carregue o vetor de filtros assim: asFiltro [0] = Fonte Normal asFiltro [1] = *.app asFiltro [2] = Fonte Biblioteca asFiltro [3] = *.apl asFiltro [4] = Fonte Padro Texto asFiltro [5] = *.apt nFiltro Number O nmero de elementos em sFiltro. No exemplo acima o vetor de filtros possui 6 elementos. Para que os trs filtros sejam mostrados especifique o valor 6 em nFiltro. Voc pode limitar o nmero de filtros mostrados. Por exemplo, para mostrar apenas os dois primeiros filtros definidos acima ( *.app e *.apl ) especifique em nFiltro o valor 4. nIndice Number Refere-se ao filtro escolhido pelo usurio. Por exemplo, se o usurio escolheu o segundo tipo de arquivos carregados no filtro, *.apl, nIndice 2. sArquivo Receive String o nome do arquivo que o usurio escolheu. sPath Receive String o nome do arquivo que o usurio escolheu com o path completo. Valor de Retorno : bOk TRUE se o usurio escolher um arquivo e clicar no boto Ok. FALSE se o usurio clicar no boto Cancel, no escolhendo nenhum arquivo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalDlgSaveFile Sintaxe : bOk = SalDlgSaveFile ( hWndPai, sTitulo, sFiltro, nFiltro, nIndice, sFile, sPath ) Descrio : Mostra a caixa de dilogo do Windows onde o usurio poder especificar um nome e path para salvar um arquivo. Parmetros : hWndPai Window Handle O nome ou o handle do objeto pai. sTitulo String O ttulo que ser mostrado na caixa de dilogo. sFiltro String Um vetor com os filtros e suas descries. Cada filtro precisa ter uma descrio que deve vir no item imediatamente anterior no vetor. Por exemplo, o usurio poder escolher o tipo de arquivo fonte do Centura que ele deseja salvar, ento carregue o vetor de filtros assim : asFiltro [0] = Fonte Normal asFiltro [1] = *.app asFiltro [2] = Fonte Biblioteca asFiltro [3] = *.apl asFiltro [4] = Fonte Padro Texto asFiltro [5] = *.apt nFiltro Number O nmero de elementos em sFiltro. No exemplo acima o vetor de filtros possui 6 elementos. Para que os trs filtros sejam mostrados especifique o valor 6 em nFiltro. Voc pode limitar o nmero de filtros mostrados. Por exemplo, para mostrar apenas os dois primeiros filtros definidos acima ( *.app e *.apl ) especifique em nFiltro o valor 4. nIndice Number Refere-se ao filtro escolhido pelo usurio. Por exemplo, se o usurio escolheu o segundo tipo de arquivos carregados no filtro, *.apl, nIndice 2. sArquivo Receive String o nome do arquivo que o usurio escolheu. sPath Receive String o nome do arquivo que o usurio escolheu com o path completo. Valor de Retorno : bOk TRUE se o usurio escolher um arquivo eclicar no boto OK. FALSE se o usurio clicar no boto Cancel, no escolhendo nenhum arquivo. Funo : SalDragDropDisableDrop Sintaxe : bOk = SalDragDropDisableDrop ( ) Descrio : Desabilita o recurso de soltar enquanto estiver em modo de arrastar-e-soltar. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalDragDropEnableDrop Sintaxe : bOk = SalDragDropEnableDrop ( ) Descrio : Habilita o recurso de soltar enquanto estiver em modo de arrastar-e-soltar. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDragDropGetSource Sintaxe : bOk = SalDragDropGetSource ( hWndObj, nX, nY ) Descrio : Obtm o handle do objeto origem e a localizao do mouse no objeto quando iniciou o modo arrastar-e-soltar. Parmetros : hWndObj Receive Window Handle O handle do objeto origem. Os objetos que podem ser objeto origem so : combo box, multiline text, data field, picture, list box e table window. nX Receive Number A posio do mouse no eixo X. nY Receive Number - A posio do mouse no eixo Y. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDragDropGetTarget Sintaxe : bOk = SalDragDropGetTarget ( hWndObj, nX, nY ) Descrio : Obtm o handle do objeto destino e a localizao do mouse no objeto. Parmetros : hWndObj Receive Window Handle O handle do objeto destino. nX Receive Number A posio do mouse no eixo X. nY Receive Number - A posio do mouse no eixo Y. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDragDropStart Sintaxe : bOk = SalDragDropStart ( hWndOrigem ) Descrio : Inicia o modo arrastar-e-soltar. Parmetro : hWndOrigem Window Handle O handle ou o nome do objeto origem. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalDragDropStop Sintaxe : bOk = SalDragDropStop ( ) Descrio : Finaliza o modo arrastar-e-soltar. Nenhum Parmetro : Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDrawMenuBar Sintaxe : bOk = SalDrawMenuBar ( hWndJanela ) Descrio : Redesenha o menu de um form window, top-level table window ou mdi window. Utilize esta funo quando voc quiser que as condies especificadas na seo Enable When sejam reavaliadas, habilitando ou desabilitando o menu. Parmetro : hWndJanela Window Handle O nome ou o handle da janela que ter redesenhado.

o menu

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDropFilesAcceptFiles Sintaxe : bOk = SalDropFilesAcceptFiles ( hWndObj , bAceita ) Descrio : Indica quando um objeto poder receber arquivos vindos do Gerenciador de Arquivos ou Windows Explorer. Parmetros : hWndObj Window Handle O nome ou o handle do objeto. bAceita Boolean Especifica quando o objeto hWndObj pode receber arquivos do Gerenciador de Arquivos ou Windows Explorer. O comportamento padro para pictures editveis TRUE, para os demais objetos o padro FALSE. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalDropFilesQueryFiles Sintaxe : nArquivos = SalDropFilesQueryFiles ( hWndOrigem , sArquivos ) Descrio : Obtm os nomes dos arquivos que esto sendo arrastados do Gerenciador de Arquivos ou do Windows Explorer para o objeto hWndOrigem. O recebimento da mensagem SAM_DropFiles indica que o usurio arrastou arquivos para o objeto hWndOrigem. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndOrigem Window Handle O nome ou o handle do objeto. sArquivos Array String Um vetor com os nomes dos arquivos Valor de Retorno : nArquivos a quantidade de arquivos que est sendo arrastada para o objeto. Funo : SalDropFilesQueryPoint Sintaxe : bOk = SalDropFilesQueryPoint ( hWndObjeto , nX, nY ) Descrio : Encontra a posio do mouse no objeto no momento em que o usurio arrastou arquivos para o objeto. O recebimento da mensagem SAM_DropFiles indica que o usurio arrastou arquivos para o objeto hWndOrigem. Parmetros : hWndObjeto Receive Window Handle O handle do objeto. nX Receive Number A posio do mouse no eixo X. nY Receive Number - A posio do mouse no eixo Y. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditCanCopyTo Sintaxe : bOk = SalEditCanCopyTo ( ) Descrio : Esta funo retorna TRUE se a picture editvel est com o foco e possui um arquivo que pode ser copiado para um arquivo. Voc pode usar esta funo na seo Enable When do item de menu Copiar Para.... Nenhum Parmetro. Valor de Retorno : bOk TRUE se a picture editvel est com o foco e possui um objeto, caso contrrio, bOk FALSE. Funo : SalEditCanCut Sintaxe : bOk = SalEditCanCut ( ) Descrio : Esta funo retorna TRUE se uma picture editvel, o texto num data field, multiline text ou coluna da table window estiver com seu contedo selecionado. Nenhum Parmetro. Valor de Retorno : bOk TRUE se os dados estiverem selecionados. FALSE se a nada estiver selecionado. Funo : SalEditCanPaste Sintaxe : bOk = SalEditCanPaste ( )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Esta funo retorna TRUE se os dados na rea de transferncia puderem ser copiados para o objeto com o foco. Voc pode usar esta funo na seo Enable When do item de menu Colar. Nenhum Parmetro. Valor de Retorno : bOk TRUE se os dados na rea de transferncia puderem ser copiados para o objeto com o foco e FALSE se no puder. Funo : SalEditCanPasteFrom Sintaxe : bOk = SalEditCanPasteFrom ( ) Descrio : Esta funo retorna TRUE se uma picture editvel estiver com o foco. Nenhum Parmetro. Valor de Retorno : bOk TRUE se uma picture editvel estiver com o foco, e FALSE em caso contrrio. Funo : SalEditCanUndo Sintaxe : bOk = SalEditCanUndo ( ) Descrio : Esta funo retorna TRUE se a edio feita num data field, multiline text ou coluna da table window pode ser desfeita. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a edio feita pode ser desfeita, bOk FALSE quando a edio no pode ser desfeita. Funo : SalEditClear Sintaxe : bOk = SalEditClear ( ) Descrio : Apaga o texto selecionado num data field, multiline text ou coluna de uma table window com o foco. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditCopy Sintaxe : bOk = SalEditCopy ( ) Descrio : Copia o texto selecionado para a rea de transferncia. Nenhum Parmetro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditCopyString Sintaxe : bOk = SalEditCopyString ( sTexto ) Descrio : Copia uma string como texto para a rea de transferncia . Parmetro : sTexto String A string a ser copiada para a rea de transferncia.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditCopyTo Sintaxe : bOk = SalEditCopyTo ( ) Descrio : Copia um objeto de um arquivo para um objeto picture. O foco precisa estar no objeto picture. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditCut Sintaxe : bOk = SalEditCut ( ) Descrio : Recorta o texto selecionado no data field, multiline text, coluna da table window ou contedo de um objeto picture, colocando-o na rea de transferncia. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditPaste Sintaxe : bOk = SalEditPaste ( ) Descrio : Cola o contedo da rea de transferncia no data field, multiline text, coluna da table window ou picture com o foco. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalEditPasteFrom Sintaxe : bOk = SalEditPasteFrom ( ) Descrio : Copia um arquivo para um objeto picture editvel. Esta funo mostra a caixa de dilogo Paste From onde o usurio pode escolher um arquivo para ser colado na picture. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditPasteString Sintaxe : bOk = SalEditPasteString ( sTexto ) Descrio : Cola o contedo da rea de transferncia no formato texto. Parmetro : sTexto Receive String A varivel que ir receber o contedo da rea de transferncia.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEditUndo Sintaxe : bOk = SalEditUndo ( ) Descrio : Desfaz a ltima edio realizada no objeto data field, multiline text, coluna da table window ou picture. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEnableWindow Sintaxe : bOk = SalEnableWindow ( hWndObj ) Descrio : Habilita o mouse e o teclado para entrada de dados no objeto. Parmetro : hWndObj Window Handle O nome ou o handle do objeto que ser habilitado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalEnableWindowAndLabel Sintaxe : bOk = SalEnableWindowAndLabel ( hWndObj ) Descrio : Habilita o mouse e o teclado para entrada de dados no objeto, habilita tambm o background text referente a este objeto. Parmetro : hWndObj Window Handle O nome ou o handle do objeto que ser habilitado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalEndDialog Sintaxe : bOk = SalEndDialog ( hWndDlg , nRetorno ) Descrio : Destri o dialog box e retorna a execuo para a linha de cdigo imediatamente posterior chamada de SalModalDialog. Parmetros : hWndDlg Window Handle o nome ou o handle do dialog box a ser destrudo. nRetorno Number o valor de retorno da funo SalModalDialog. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileClose Sintaxe : bOk = SalFileClose ( hArquivo ) Descrio : Fecha um arquivo. Parmetro : hArquivo Receive File Handle O handle do arquivo que ser fechado. Quando a funo executada o valor deste handle passa a ser nulo.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileCopy Sintaxe : nStatus = SalFileCopy ( sPathOrigem , sPathDestino, bOperacao ) Descrio : Copia o contedo de um arquivo para outro. Parmetros : sPathOrigem String O path completo do arquivo origem. sPathDestino String O path completo do arquivo destino. bOperao Boolean Quando especificado TRUE, o arquivo origem gravado por cima do arquivo destino, caso este j exista. Quando o arquivo j existe e bOperacao especificado FALSE, a funo SalFileCopy no realiza a cpia, retornando a constante FILE_CopyExist.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : Dependendo do sucesso ou no da cpia, nStatus assume um dos seguintes valores : FILE_CopyDest, FILE_CopyExist, FILE_CopyOK, FILE_CopyRead, FILE_CopySrc ou FILE_CopyWrite. Funo : SalFileCreateDirectory Sintaxe : bOk = SalFileCreateDirectory ( sDiretorio ) Descrio : Cria um diretrio. Parmetro : sDiretorio String O nome completo do diretrio a ser criado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileGetC Sintaxe : bOk = SalFileGetC ( hArquivo , nCarac ) Descrio : Retorna o prximo caractere de um arquivo aberto ( hArquivo ). Voc precisa utilizar a funo SalFileGetChar caso o arquivo contenha caracteres no ASCII, ou caracteres 16-bits. Parmetros : hArquivo File Handle O handle de um arquivo aberto. nCarac Receive Number o prximo caracter do arquivo. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo no conseguir ler o prximo caractere do arquivo, ou se o handle informado em hArquivo for invlido. Funo : SalFileGetChar Sintaxe : nCaractere = SalFileGetChar ( hArquivo ) Descrio : Retorna o prximo caractere de um arquivo aberto ( hArquivo ). Parmetro : hArquivo File Handle O handle de um arquivo aberto,.

Valor de Retorno : nCaractere um nmero que representa um caractere ASCII. Quando SalFileGetChar encontra o final do arquivo, nCaractere 1. Funo : SalFileGetCurrentDirectory Sintaxe : bOk = SalFileGetCurrentDirectory ( sPath ) Descrio : Obtm o path completo do diretrio de trabalho atual.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : sPath

Receive String O path completo, incluindo a letra do drive, do diretrio de trabalho atual.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileGetDateTime Sintaxe : bOk = SalFileGetDateTime ( sArquivo , dtDataHora ) Descrio : Obtm a data e hora em que o arquivo foi modificado pela ltima vez. Parmetros : sArquivo String O nome do arquivo que voc deseja. dtDataHora Receive Date/Time A data e hora em que o arquivo foi modificado pela ltima vez. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileGetDrive Sintaxe : sLetra = SalFileGetDrive ( ) Descrio : Obtm a letra do disco rgido padro. Nenhum Parmetro. Valor de Retorno : sLetra a letra entre A e Z (os : so includos tambm) que representa a unidade de disco rgido padro no momento de execuo da funo. Funo : SalFileGetStr Sintaxe : bOk = SalFileGetStr ( hArquivo , sLinha , nTamanho ) Descrio : Obtm a prxima linha de um arquivo aberto. Parmetros : hArquivo File Handle O handle do arquivo aberto. sLinha Receive String A linha retornada. nTamanho Number O nmero mximo de bytes que podero ser lidos. Valor de Retorno : bOk TRUE se a funo obter sucesso na leitura e FALSE se falhar ou se o final do arquivo for encontrado. Funo : SalFileOpen Sintaxe : bOk = SalFileOpen ( hArquivo , sArquivo , nEstilo ) Descrio : Abre , cria ou apaga um arquivo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hArquivo Receive File Handle O handle do arquivo que ser aberto. sArquivo String - O nome do arquivo que ser aberto, criado ou apagado. nEstilo Number Uma constante que especifica o estilo em que o arquivo dever ser aberto. nEstilo pode ser uma das constantes OF_* definidas no Centura. Voc pode utilizar mais de uma constante dispondo do operador bitwise |. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileOpenExt Sintaxe : bOk = SalFileOpenExt ( hArquivo , sArquivo , nEstilo , sAbrir ) Descrio : Abre, cria ou apaga um arquivo. Arquivos com nomes longos (at 260 caracteres) so suportados. Parmetros : hArquivo Receive File Handle O handle do arquivo que ser aberto. sArquivo String - O nome do arquivo que ser aberto, criado ou apagado. nEstilo Number Uma constante que especifica o estilo em que o arquivo dever ser aberto. nEstilo pode ser uma das constantes OF_* definidas no Centura. Voc pode utilizar mais de uma constante dispondo do operador bitwise |. sAbrir Receive String informao utilizada para abrir novamente o arquivo. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFilePutC Sintaxe : bOk = SalFilePutC ( hArquivo , nCaractere ) Descrio : Grava um caractere num arquivo aberto. Parmetros : hArquivo File Handle O handle do arquivo. nCaractere Number O valor numrico do caractere que ser gravado no arquivo. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo no conseguir gravar no arquivo. Funo : SalFilePutChar Sintaxe : bOk = SalFilePutChar ( hArquivo , nCaractere ) Descrio : Grava um caractere num arquivo aberto. Parmetros : hArquivo File Handle O handle do arquivo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nCaractere

Number O valor numrico do caractere que ser gravado no arquivo.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo no conseguir gravar no arquivo. Funo : SalFilePutStr Sintaxe : bOk = SalFilePutStr ( hArquivo , sString ) Descrio : Grava uma string num arquivo aberto. O Centura acrescenta string gravada os caracteres return/line feed. Parmetros : hArquivo File Handle O handle do arquivo aberto. sString String A string a ser gravada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileRead Sintaxe : nResultado = SalFileRead ( hArquivo , sBuffer , nTamBuffer ) Descrio : L uma srie de carateres de um arquivo aberto. Parmetros : hArquivo File Handle O handle do arquivo aberto. sBuffer Receive String A string para onde os dados sero carregados. nTamBuffer Number O nmero de bytes a ser lido. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileRemoveDirectory Sintaxe : bOk = SalFileRemoveDirectory ( sDiretorio ) Descrio : Apaga um diretrio. Parmetros : sDiretorio String O nome completo do diretrio a ser apagado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. SalFileRemoveDirectory tambm retorna FALSE se o diretrio conter algum arquivo ou subdiretrio. Funo : SalFileSeek Sintaxe : bOk = SalFileSeek ( hArquivo , nBytes, nPosicao )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Posiciona o ponteiro do arquivo. A prxima operao no arquivo ( por exemplo leitura ou gravao ) ser a partir desta posio. Parmetros : hArquivo File Handle O handle do arquivo aberto. nBytes Number A posio especfica do ponteiro do arquivo. nPosicao Number A posio genrica do ponteiro do arquivo, um dos seguintes valores : FILE_SeekBegin, FILE_SeekCurrent ou FILE_SeekEnd. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileSetCurrentDirectory Sintaxe : bOk = SalFileSetCurrentDirectory ( sPath ) Descrio : Muda o diretrio de trabalho atual. Parmetro : sPath String O path do novo diretrio de trabalho.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileSetDateTime Sintaxe : bOk = SalFileSetDateTime ( sArquivo , dtData ) Descrio : Altera o atributo data e hora da ltima atualizao do arquivo. Parmetros : sArquivo String o nome do arquivo. dtData Date/Time O novo valor para a data e hora da ltima modificao do arquivo. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFileSetDrive Sintaxe : bOk = SalFileSetDrive ( sLetraDrive ) Descrio : Define o drive padro. Parmetro : sLetraDrive String A nova letra de unidade de disco. O Centura considera apenas o primeiro caracter deste parmetro, o restante ignorado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalFileTell Sintaxe : nPosicao = SalFileTell ( hArquivo ) Descrio : Obtm a posio atual do ponteiro do arquivo. Parmetro : hArquivo File Handle o handle do arquivo aberto.

Valor de Retorno : nPosicao a posio atual do ponteiro do arquivo. Se algum erro ocorrer, nPosicao 1. Funo : SalFileWrite Sintaxe : nOk = SalFileWrite ( hArquivo , sBuffer , nTamBuffer ) Descrio : Grava uma cadeia de caracteres num arquivo aberto. Parmetros : hArquivo File Handle O handle do arquivo. sBuffer String A cadeia de caracteres que ser gravada no arquivo. nTamBuffer Number O nmero de bytes a ser gravado. Valor de Retorno : nOk contm o nmero de bytes escrito. Funo : SalFindWindow Sintaxe : hWndEncontrado = SalFindWindow ( hWndJanela , sNome ) Descrio : Esta funo procura por um objeto child window e retorna o seu handle. Parmetros : hWndJanela Window Handle o nome ou o handle do objeto pai para a pesquisa. sNome String O nome do objeto a ser encontrado. Valor de Retorno : hWndEncontrado o handle do objeto encontrado. Se a funo no encontrar um objeto com o nome sNome, hWndEncontrado igual a hWndNULL.

Funo : SalFmtFieldToStr Sintaxe : bOk = SalFmtFieldToStr ( hWndCampo, sValor , bFormato ) Descrio : Copia o contedo de um data field ou coluna de uma table window para uma varivel. Esta funo tambm permite copiar a formatao do campo. Parmetros : hWndCampo Window Handle O handle ou o nome do campo que voc quer copiar seu contedo, e, opcionalmente, sua formatao. sValor Receive String A varivel string que receber o valor do objeto. bFormato Boolean Especifica quando voc deseja copiar o contedo formatado do objeto. Se voc especificar TRUE, o Centura copia o contedo e sua

Pgina PAGE 582

Programando com o Centura Team Developer 2000

formatao. Se voc especificar FALSE, o Centura copia apenas o contedo do objeto, sem a formatao. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFmtFormatDateTime Sintaxe : sData = SalFmtFormatDateTime ( dtData , sFormatacao ) Descrio : Formata um valor data e hora usando uma determinada formatao. Se voc especificar uma formatao invlida ou se no especificar nehuma formatao, o Centura utilizar a configurao padro da seo [INTL] e a configurao definida pelo usurio [GTITOOLS] do WIN.INI. Parmetros : dtData Date/Time O valor data e hora para ser formatado. sFormatacao String A formatao a ser aplicada no valor data e hora. Valor de Retorno : sData a string formatada com o valor data e hora. Funo : SalFmtFormatNumber Sintaxe : sNumero = SalFmtFormatNumber ( nNumero , sFormatacao ) Descrio : Formata um valor numrico usando uma determinada formatao. Se voc especificar uma formatao invlida ou se no especificar nehuma formatao, o Centura utilizar a configurao padro da seo [INTL] e a configurao definida pelo usurio [GTITOOLS] do WIN.INI. Parmetros : nNumero Number O valor numrico a ser formatado. sFormatacao String A formatao a ser aplicada no valor numrico. Valor de Retorno : sNumero a string formatada com o valor numrico. Funo : SalFmtGetFormat Sintaxe : nFormato = SalFmtGetFormat ( hWndCampo ) Descrio : Retorna a formatao que est sendo utilizada no momento pelo data field ou coluna da table window. Parmetro : hWndCampo Window Handle O nome ou o handle do data field ou da coluna da table window. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nFormato um nmero que indica o formato do objeto. O Valor de retorno uma das seguintes constantes : Campos tipo de dado Data/Hora (Date/Time) podem ser formatados como : FMT_Format_Date, FMT_Format_DateTime, FMT_Format_Picture, FMT_Format_Time ou FMT_Format_Unformatted. Campos do tipo de dado Nmero (Number) podem ser formatados como : FMT_Format_Currency, FMT_Format_Decimal, FMT_Format_Percentage, FMT_Format_Picture ou FMT_Format_Unformatted. Campos tipo de dado String podem ser formatados como : FMT_Format_Invisible, FMT_Format_LowerCase, FMT_Format_UpperCase ou FMT_Format_Unformatted. Funo : SalFmtGetInputMask Sintaxe : bOk = SalFmtGetInputMask ( hWndCampo , sMascara ) Descrio : Obtm a input mask de um data field, combo box e coluna da table window. Parmetros : hWndCampo Window Handle O handle ou o nome do objeto. sMascara Receive String A input mask recuperada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o handle do objeto for invlido, ou se o objeto no possuir uma input mask. Funo : SalFmtGetPicture Sintaxe : bOk = SalFmtGetPicture ( hWndCampo , sFormatacao ) Descrio : Obtm a formatao de um data field e coluna da table window. Parmetros : hWndCampo Window Handle O handle ou nome do objeto. sFormatacao Receive String A formatao recuperada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a o handle do objeto for invlido, ou se o objeto no possuir uma formatao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalFmtIsValidField Sintaxe : bOk = SalFmtIsValidField ( hWndCampo ) Descrio : Valida o contedo de um data field ou coluna de uma table window usando as definies ativas. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto que ter seu contedo validado. Valor de Retorno : bOk TRUE se o contedo do campo vlido, e FALSE se o contedo do campo invlido. Funo : SalFmtIsValidInputMask Sintaxe : bOk = SalFmtIsValidInputMask ( sMascara ) Descrio : Valida a input mask de um data field e coluna da table window. Parmetro : sMascara String Uma input mask.

Valor de Retorno : bOk TRUE se a input mask for vlida e FALSE se for invlida. Funo : SalFmtIsValidPicture Sintaxe : bOk = SalFmtIsValidPicture ( sPicture, nTipo ) Descrio : Valida um formato. Parmetros : sPicture String A picture. nTipo Number Especifica se o formato refere-se a um tipo de dado numrico ou data/hora. Use uma das constantes : FMT_Pic_DateTime ou FMT_Pic_Number. Valor de Retorno : bOk TRUE se o formato for vlido e FALSE se no for vlido. Funo : SalFmtKeepMask Sintaxe : bOk = SalFmtKeepMask ( bManter ) Descrio : O Centura, por padro, retira a formatao de input mask quando voc copia o valor de um objeto ( tipo data field, combo box e coluna da table window ) para outro objeto. Por exemplo, se voc definiu a input mask de um data field assim AAA-AAAA e copia seu contedo para outro data field, o Centura no copia o hfen. Parmetro : bManter Boolean Se voc especificar FALSE ( o padro), o Centura remove os

Pgina PAGE 582

Programando com o Centura Team Developer 2000

caracteres da input mask quando copia o contedo do objeto. Se especificar TRUE, o Centura mantm os caracteres de formatao quando copia o contedo do objeto. Valor de Retorno : Retorna o mesmo valor que voc especificou em bManter. Funo : SalFmtSetFormat Sintaxe : bOk = SalFmtSetFormat ( hWndCampo, nFormato ) Descrio : Define o formato de um data field e de colunas da table window. O formato do campo precisa estar de acordo com o tipo de dado do campo, por exemplo, a formatao para campos tipo number pode ser decimal, percentage, ou currency values. Parmetros : hWndCampo Window Handle O handle ( ou o nome ) do data field ou coluna da table window que voc deseja formatar. nFormato Number O formato do objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o formato no puder ser aplicado para o campo especificado. Funo : SalFmtSetInputMask Sintaxe : bOk = SalFmtSetInputMask ( hWndObjeto , sMascara ) Descrio : Define a input mask de um data field ou coluna da table window. Parmetros : hWndObjeto Window Handle O nome ou o handle do objeto a ser formatado sMascara String A string contendo a formatao a ser aplicada ao objeto. Se voc especificar uma string vazia , o Centura retira a formatao existente no objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFmtSetPicture Sintaxe : bOk = SalFmtSetPicture ( hWndObjeto , sPicture ) Descrio : Define a picture de um data field ou coluna da table window. Parmetros : hWndObjeto Window Handle O nome ou o handle do objeto a ser formatado. sPicture String - A string contendo a formatao a ser aplicada ao objeto. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. A funo pode falhar se um dos seguintes eventos ocorrer : handle do objeto for nulo. tipo de dado do campo no for date/time ou number. formato da picture informada no corresponde a um formato vlido. Funo : SalFmtStrToField Sintaxe : bOk = SalFmtStrToField ( hWndCampo, sValor, bFormato ) Descrio : Copia uma string para um data field ou para uma coluna da table window. Aps copiar a string para o objeto, o Centura formata a string. Parmetros : hWndCampo Window Handle O nome ou o handle do objeto que ter a string associada. sValor String A string a ser copiada. bFormato Boolean Especifica se a string ter (TRUE) ou no (FALSE) o mesmo formato do campo. Valor de Retorno : bOk TRUE se o valor da string possuir o mesmo formato do campo. bOk FALSE se o valor da string no estiver formatado. Funo : SalFmtUnmaskInput Sintaxe : bOk = SalFmtUnmaskInput ( hWndObj , sConteudo ) Descrio : Tira a mscara do contedo de um data field ou coluna da table window e coloca o resultado numa string. Tirar a mscara significa tirar os caracteres de controle de uma string, mas isso no inclui converter os caracteres de letras minsculas para maisculas e vice-versa. Parmetros : hWndObj Window Handle O handle ou o nome do objeto. sConteudo Receive String O contedo ( sem a mscara ) do objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o handle hWndObj for invlido ou se este no possuir uma mscara. Funo : SalFmtValidateField Sintaxe : bOk = SalFmtValidateField ( hWndCampo , nFlag ) Descrio : Valida e formata o contedo de um data field ou de uma coluna da table window. Parmetros : hWndCampo Window Handle O nome ou o handle do data field ou da coluna da table window. nFlag Number Um valor que indicar se o Centura ir mostrar uma caixa de dilogo caso ocorra algum erro. Utilize FMT_Validate_Dialog ou

Pgina PAGE 582

Programando com o Centura Team Developer 2000

FMT_Validate_None. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFontGet Sintaxe : bOk = SalFontGet ( hWndObj, sNomeFonte, nTamFonte, nMelhoramentos ) Descrio : Obtm o nome da fonte, tamanho e melhoramentos de fonte do objeto hWndObj. Parmetros : hWndObj sNomeFonte nTamFonte nMelhorament os Window Handle O handle ou o nome do objeto. Receive String O nome da fonte do objeto. Receive Number O tamanho da fonte do objeto. Receive Number O melhoramento da fonte.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFontGetNames Sintaxe : nQtd = SalFontGetNames ( nQtdFontes , sVetorFontes ) Descrio : Obtm os nomes das fontes de tela e de impresso. Parmetros : nTipoFonte Number Uma constante que especifica se voc quer obter as fontes de tela ou de impressora. Use as constantes FONT_GetPrinter ou FONT_GetScreen. sVetorFontes Receive String Array O nome de um vetor tipo string que ter os nomes das fontes. Valor de Retorno : nQtd a quantidade de fontes carregadas no vetor. Funo : SalFontGetSizes Sintaxe : nQtd = SalFontGetSizes ( nTipoFonte , sNomeFonte , nVetorTamanhos ) Descrio : Obtm os tamanhos da fonte especificada. Parmetros : nTipoFonte Number Uma constante que especifica se voc quer obter os tamanhos das fontes de tela ou de impressora. Use as constantes FONT_GetPrinter ou FONT_GetScreen. sNomeFonte String O nome da fonte. nVetorTamanh Receive Numeric Array O nome de um vetor numrico que ir conter os os tamanhos retornados da fonte especificada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nQtd a quantidade de tamanhos de fontes carregadas no vetor. Funo : SalFontSet Sintaxe : bOk = SalFontSet ( hWndObjt , sNomeFonte , nTamanho, nMelhoramento ) Descrio : Define a fonte , o tamanho e os melhoramentos de fonte para um objeto. Parmetros : hWndObj Window Handle O handle ou o nome do objeto que voc quer definir a fonte. sNomeFonte String O nome da fonte. nTamanho Number O tamanho da fonte. nMelhoramen Number O melhoramento da fonte. Para especificar duas ou mais to contantes FONT_Enh*, utilize o operador OR (|). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFormGetParmNum Sintaxe : bOk = SalFormGetParmNum ( hWndForm, nParametro, nValor ) Descrio : Retorna o valor de um dos trs parmetros do form window: altura ( height), largura ( width), ou o nmero de pginas ( number of pages ). Parmetros : hWndForm Window Handle O nome ou o handle do form window que voc deseja obter os valores dos parmetros. nParametro Number especifique aqui o parmetro desejado. Utilize as constantes FORM_nFormHeight , FORM_nFormPages ou FORM_nFormWidth . nValor Receive Number O valor do parmetro requisitado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalFormUnitsToPixels Sintaxe : nNumPixels = SalFormUnitsToPixels ( hWndObj , nUnidades, bVertical ) Descrio : Converte de form units para pixels. Form units a unidade utilizada pelas funes do Centura para mover e posicionar objetos. Parmetros : hWndObj Window Handle O handle ou o nome do objeto. nUnidades Number O nmero de unidades de form (form units). bVertical Boolean Se as unidades de form se referirem ao eixo X, utilize neste parmetro o valor FALSE. Se as unidades de form se referem ao eixo Y, utilize TRUE.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nNumPixels o nmero de pixels retornado caso a funo obtenha sucesso. Caso o handle ( hWndObj ) for nulo, nNumPixels zero (0). Funo : SalGetDataType Sintaxe : nTipoDado = SalGetDataType ( hWnd ) Descrio : Retorna o tipo de dado de um data field ou de uma coluna da table window. Parmetro : hWnd Window Handle O nome ou o handle do data field ou da coluna da table window.

Valor de Retorno : nTipoDado um nmero que indica o tipo de dado do data field ou da coluna da table window. Este valor uma das constantes pr-definidas DT_DateTime, DT_LongString, DT_Number ou DT_String. Funo : SalGetDefButton Sintaxe : hWnd = SalGetDefButton ( hWndPai ) Descrio : Retorna o handle do pushbutton default em um form window ou dialog box. O pushbutton que estiver com o foco o pushbutton default. Parmetro : hWndPai Window Handle O nome ou o handle do form window ou do dialog box.

Valor de Retorno : hWnd o handle do pushbutton default. hWnd igual a hWndNULL se hWndPai no for um handle vlido ou se o objeto associado ao hWndPai no possuir nenhum pushbutton default. Funo : SalGetFirstChild Sintaxe : hWndFilho = SalGetFirstChild ( hWndPai, nTipo ) Descrio : Obtm o handle do primeiro objeto child do tipo especificado em nTipo. Parmetros : hWndPai Window Handle O handle ou o nome do objeto top level que voc deseja procurar pelos seus objetos child. nTipo Number O tipo do objeto que voc deseja procurar. Voc pode combinar as constantes TYPE_* usando o operador OR (|) Os objetos tipo TYPE_Line, TYPE_Frame e TYPE_BkgrdText so objetos estticos e no implementados como um objeto child normal, no possuem handles. Para mudar este comportamento defina bStaticsAsWindows como TRUE. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndFilho o handle do primeiro objeto child , do tipo especificado, encontrado em hWndPai. Ser igual a hWndNULL quando hWndPai for invlido, ou quando no houver objetos child do tipo especificado. Funo : SalGetFocus Sintaxe : hWndFoco = SalGetFocus ( ) Descrio : Obtm o handle do objeto que est com o foco. Nenhum Parmetro. Valor de Retorno : hWndFoco contm o handle do objeto que est com o foco no momento. Funo : SalGetItemName Sintaxe : bOk = SalGetItemName ( hWndObj, sNome ) Descrio : Obtm o nome de um objeto. Parmetros : hWndObj Window Handle O handle de um objeto. sNome Receive String O nome do objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalGetMaxDataLength Sintaxe : nTam = SalGetMaxDataLength ( hWndObj ) Descrio : Obtm o tamanho mximo de um data field, multiline text ou coluna da table window. Utilize esta funo antes de associar algum valor ao objeto, para ter certeza que o valor caber no objeto. Parmetro : hWndObj Window Handle O handle de um data field, multiline text, ou coluna de table window.

Valor de Retorno :
nTam o tamanho mximo do contedo do objeto. Se nTam for igual a -1, significa que o objeto foi definido como tamanho Default.

Funo : SalGetNextChild Sintaxe : hWndProximoFilho = SalGetNextChild ( hWndFilho , nTipo ) Descrio : Retorna o handle do prximo objeto child que combina com a especificao feita em nTipo. Utilize essa funo aps ter usado SalGetFirstChild para obter o primeiro objeto filho. Voc pode usar esta funo para obter os objetos filhos do mdi tambm.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Se voc quiser que esta funo trabalhe tambm com background text, lines e frames, atribua TRUE varivel do sistema bStaticsAsWindows. Parmetros : hWndFilho Window Handle O handle de um objeto filho. nTipo Number O tipo do objeto que voc deseja procurar. Voc pode combinar as constantes TYPE_* usando o operador OR (|) Os objetos tipo TYPE_Line, TYPE_Frame, and TYPE_BkgrdText so objetos estticos e no implementados como um objeto child normal, no possuem handles. Para mudar este comportamento, defina bStaticsAsWindows como TRUE. Valor de Retorno : hWndProximoFilho o handle do prximo objeto filho do tipo que voc especificou em nTipo. SalGetNextChild procura a partir do objeto hWndFilho. Funo : SalGetProfileInt Sintaxe : nValor = SalGetProfileInt ( sSeo, sEntrada, nDefault, sNome ) Descrio : Recupera um valor inteiro de uma entrada de seo do registro ou de um arquivo de inicializao. Parmetros : sSeo String O cabealho da seo. sEntrada String A entrada que ter o valor recuperado. nDefault Number Especifique um valor de retorno (entre 0 e 32.767 ) para o caso de a funo no encontrar a entrada. sNome String O nome do arquivo de inicializao ou o nome da empresa dependendo das configuraes feitas utilizando-se a funo SalUseRegistry. Se voc estiver utilizando um arquivo *.INI e no especificar o path completo, o Centura procura pelo arquivo no subdiretrio do Windows. Valor de Retorno : Se a funo for executada com sucesso, nValor o valor inteiro de uma entrada na seo especificada de um arquivo ou do registro. Se o valor encontrado no for um inteiro, nValue zero. Se SalGetProfileInt no conseguir encontrar a entrada especificada, nValue o valor nDefault. Funo : SalGetProfileString Sintaxe : nBytes = SalGetProfileString ( sSeo, sEntrada, sDefault, sValor, sName ) Descrio : Recupera um valor string de uma entrada de seo do registro ou de um arquivo de inicializao. Parmetros : sSeo String O cabealho da seo. sEntrada String A entrada que ter o valor recuperado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sDefault sValor sNome

String Especifique um valor de retorno para o caso de a funo no encontrar a entrada. Receive String Um valor para sEntrada. No mximo 1024 bytes. String O nome do arquivo de inicializao ou o nome da empresa, dependendo das configuraes feitas utilizando-se a funo SalUseRegistry. Se voc estiver utilizando um arquivo *.INI e no especificar o path completo, o Centura procura pelo arquivo no subdiretrio do Windows.

Valor de Retorno : nBytes o nmero de bytes copiados para sValor. Funo : SalGetType Sintaxe : nTipo = SalGetType ( hWnd ) Descrio : Retorna o tipo do objeto. Para alguns objetos ( como table windows e scroll bar ), SalGetType retorna zero. No use SalQueryFieldEdit para um objeto onde SalGetType retorne zero. Parmetro : hWnd Window Handle O handle de um objeto.

Valor de Retorno : nTipo um nmero que indica o tipo do objeto. O valor retornado uma das constantes prdefinidas TYPE_* Funo : SalGetVersion Sintaxe : nVersao = SalGetVersion ( ) Descrio : Retorna o nmero da verso atual do Centura. Nenhum Parmetro. Valor de Retorno : nVersao o nmero da verso do Centura. Por exemplo 150 para Centura 1.5.0. Funo : SalGetWindowLabelText Sintaxe : nTam = SalGetWindowLabelText ( hWnd , sTexto , nTamMax) Descrio : Obtm o background text de um objeto. Parmetros : hWnd Window Handle O nome do objeto. sTexto Receive String O texto recuperado. nTamMax Number O tamanho mximo que o texto poder ter para ser recuperado. Valor de Retorno : nTam um nmero que indica o tamanho do texto recuperado ( sTexto ). nTam zero se o background text no tiver texto algum.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalGetWindowLoc Sintaxe : bOk = SalGetWindowLoc ( hWnd, nX, nY ) Descrio : Retorna as coordenadas da posio do objeto atual. Parmetros : hWnd Window Handle O handle ou o nome do objeto. nX Receive Number A posio da janela no eixo X, em form units. nY Receive Number - A posio da janela no eixo Y, em form units. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalGetWindowSize Sintaxe : bOk = SalGetWindowSize ( hWnd , nLargura , nAltura ) Descrio : Retorna o tamanho do objeto. Parmetros : hWnd Window Handle O handle ou o nome do objeto. nLargura Receive Number A largura do objeto, especificado em form units. nAltura Receive Number A altura do objeto, especificado em form units. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalGetWindowState Sintaxe : nEstado = SalGetWindowState ( hWnd ) Descrio : Retorna o estado atual do objeto top level. Parmetro : hWnd Window Handle O nome ou o handle de um objeto top level. Esta funo retornar um erro se voc especificar o nome de uma janela que ainda no foi criada em tempo de execuo.

Valor de Retorno : nEstado um valor que indica o estado atual de um objeto. nEstado um dos seguintes valores : Window_Invalid, Window_Maximized, Window_Minimized, Window_Normal e Window_NotVisible. Funo : SalGetWindowText Sintaxe : nTam = SalGetWindowText ( hWnd, sText, nTamMax ) Descrio : Obtm o texto de um objeto. O texto de um objeto o ttulo de um form window, dialog box, top level table window, radio button, check box, background text ou pushbutton. Para um data field, multiline text ou coluna de uma table window, o texto o contedo do campo em formato string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Obs: Para obter o ttulo de uma coluna de uma table window use a funo SalTblGetColumnTitle. Parmetros : hWnd Window Handle O nome ou o handle do objeto. sText Receive String O texto do objeto. nTamMax Number O tamanho mximo do texto a ser recuperado. Valor de Retorno : nTam o tamanho do texto recuperado. Quando o objeto no possui texto, nTam zero. Funo : SalHideWindow Sintaxe : bOk = SalHideWindow ( hWnd ) Descrio : Esconde um objeto. Esta funo no destri o objeto, apenas torna o objeto invisvel. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalHideWindowAndLabel Sintaxe : bOk = SalHideWindowAndLabel ( hWnd ) Descrio : Esconde um objeto e o background text correspondente. Esta funo no destri o objeto, apenas torna o objeto invisvel. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalHStringToNumber Sintaxe : nHString = SalHStringToNumber ( sString ) Descrio : Converte um ponteiro string para um nmero possvel de ser utilizado como parmetro numa mensagem. Obs : Use esta funo apenas para strings que sero passadas por parmetro nas mensagens enviadas usando SalSendMsg. No use esta funo para strings passadas como parmetros em mensagens enviadas usando SalPostMsg. Observe tambm que voc deve passar um ponteiro string atravs do parmetro lParam, uma vez que o valor excede o limite do parmetro wParam.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : sString

String A string cujo ponteiro voc quer converter para nmero.

Valor de Retorno : nHString um nmero cujo valor representa o ponteiro string. Funo : SalIdleKick Sintaxe : bOk = SalIdleKick ( ) Descrio : Fora o processamento de inatividade, normalmente quando um outro programa envia uma mensagem de aviso. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalIdleRegisterWindow Sintaxe : bOk = SalIdleRegisterWindow( hWndObj , nMsg , nwParam , nlParam ) Descrio : Use esta funo para avisar ao Centura que envie uma mensagem ao objeto especificado quando for detectado um estado de inatividade. Isto ocorre aps um objeto processar todas as mensagens da sua fila de mensagens. Parmetros : hWndObj Window Handle O handle do objeto ao qual voc deseja enviar a mensagem. nMsg Number A mensagem a ser enviada. nwParam Number Voc pode utilizar este parmetro para enviar algum valor ao objeto. nlParam Number Voc pode utilizar este parmetro para enviar algum valor ao objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalIdleUnregisterWindow Sintaxe : bOk = SalIdleUnregisterWindow( hWndObj ) Descrio : Use esta funo para avisar ao Centura que pare de enviar mensagens ao objeto especificado. Parmetro : hWndObj Window Handle O handle do objeto que voc, previamente, utilizou como parmetro na funo SalIdleRegisterWindow.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalInvalidateWindow Sintaxe : bOk = SalInvalidateWindow ( hWnd ) Descrio : Faz com que o objeto seja redesenhado. Parmetro : hWnd Window Handle o handle do objeto a ser redesenhado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalIsButtonChecked Sintaxe : bLigado = SalIsButtonChecked ( hWnd ) Descrio : Determina se um radio button est ligado ou se um check box est selecionado. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bLigado TRUE se hWnd estiver checado e FALSE em caso contrrio. Funo : SalIsNull Sintaxe : bNulo = SalIsNull ( hWnd ) Descrio : Verifica quando um data field, multiline text, ou coluna de uma table window est nulo ou vazia. Parmetro : hWnd Window Handle O nome ou handle do objeto.

Valor de Retorno : bNulo TRUE se o objeto hWnd estiver nulo ou vazio e FALSE se tiver algum valor. Funo : SalStrIsValidCurrency Sintaxe : bOk = SalStrIsValidCurrency ( sValor , nPrecisao , nEscala ) Descrio : Verifica se a string representa um valor Currency vlido. Parmetros : sValor String - Uma string que contm um valor tipo currency. nPrecisao Number - O nmero de dgitos a serem mostrados. nEscala Number - O nmero de dgitos direita do ponto decimal. Valor de Retorno : bOk TRUE se o valor contido em sValor corresponder a um valor tipo currency vlido.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalIsValidDateTime Sintaxe : bOk = SalIsValidDateTime ( hWndCampo ) Descrio : Verifica se o objeto hWndCampo possui um valor vlido para o tipo de dado Date/Time. Para objetos tipo multiline text o valor data deve ser o nico contedo do objeto. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto. Valor de Retorno : bOk TRUE se o contedo do objeto hWndCampo for uma data vlida e FALSE se o valor no for uma data vlida. Funo : SalIsValidDecimal Sintaxe : bOk = SalIsValidDecimal ( hWndCampo, nPrecisao, nEscala ) Descrio : Verifica se o objeto hWndCampo possui um valor vlido para o tipo de dado numrico decimal. Para objetos tipo multiline text, o valor numrico decimal deve ser o nico contedo do objeto. Parmetros : hWndCampo Window Handle O handle ou o nome do objeto. nPrecisao Number O nmero de dgitos a serem mostrados. nEscala Number O nmero de dgitos direita do ponto decimal. Valor de Retorno : bOk TRUE se o contedo do objeto hWndCampo for um decimal vlido e FALSE se o valor no for um decimal vlido. Funo : SalIsValidInteger Sintaxe : bOk = SalIsValidInteger ( hWndCampo ) Descrio : Verifica se o objeto hWndCampo possui um valor vlido para o tipo de dado numrico inteiro. Para objetos tipo multiline text, o valor numrico inteiro deve ser o nico contedo do objeto. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto. Valor de Retorno : bOk TRUE se o contedo do objeto hWndCampo for um nmero inteiro vlido e FALSE se o valor no for um nmero inteiro vlido. Funo : SalIsValidNumber Sintaxe : bOk = SalIsValidNumber ( hWndCampo )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Verifica se o objeto hWndCampo possui um valor numrico vlido. Nmeros vlidos so nmeros inteiros ou ponto flutuante, negativos e positivos. Para objetos tipo multiline text, o valor numrico deve ser o nico contedo do objeto. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto. Valor de Retorno : bOk TRUE se o contedo do objeto hWndCampo for um nmero vlido e FALSE se o valor no for um nmero vlido. Funo : SalIsWindowEnabled Sintaxe : bHabilitado = SalIsWindowEnabled ( hWnd ) Descrio : Verifica se um objeto est habilitado para a utilizao do mouse e teclado. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bHabilitado TRUE se o objeto estiver habilitado e FALSE em caso contrrio. Funo : SalIsWindowVisible Sintaxe : bOk = SalIsWindowVisible ( hWnd ) Descrio : Verifica se um objeto est visvel. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bHabilitado TRUE se o objeto estiver visvel e FALSE em caso contrrio. Funo : SalListAdd Sintaxe : nNum = SalListAdd ( hWndLista , sTexto ) Descrio : Insere um texto num list box ou combo box. Se a lista estiver ordenada (o seu estado padro), o Centura insere o texto de acordo com a ordenao, no local apropriado. Se a lista no estiver ordenada, o texto inserido no final da mesma. Para a ordenao dos elementos, o Centura utiliza o padro ANSI. Parmetros : hWndLista Window Handle O handle ou o nome da lista. sTexto String O texto que ser inserido na lista. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nNum o ndice onde foi inserido o texto. SalListAdd retorna LB_Err quando um erro ocorrer, e retorna LB_ErrSpace quando no houver mais memria para armazenar a nova string.

Funo : SalListClear Sintaxe : bOk = SalListClear ( hWndLista ) Descrio : Apaga todos os elementos presentes numa lista ( list box ou combo box ). Parmetro : hWndLista Window Handle O handle ou o nome da lista.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalListDelete Sintaxe : nRestante = SalListDelete ( hWndLista , nIndice ) Descrio : Apaga um elemento de uma lista. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nIndice Number o nmero do elemento a ser apagado. Valor de Retorno : nRestante o nmero de linhas que restam na lista. SalListDelete retorna LB_Err se algum erro ocorrer. Funo : SalListFiles Sintaxe : bOk = SalListFiles ( hWndLista, hWndPath, sPath, nFlags ) Descrio : Carrega num list box ou combo box os nomes dos arquivos de um diretrio. Parmetros : hWndLista Window Handle O handle ou o nome da lista, do combo box ou list box. hWndPath Window Handle O handle ou o nome de um data field que mostra o path dos arquivos carregados na lista. sPath Receive String - O path dos arquivos carregados na lista. nFlags Number O tipo de arquivos a serem carregados. Voc pode combinar as constantes FA_* utilizando o operador OR (|). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar. Funo : SalListGetMultiSelect Sintaxe : bOk = SalListGetMultiSelect ( hWndListBox , nSelecionados )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Retorna um vetor de nmeros que indexam os elemenetos selecionados na lista. Use a funo SalListQueryMultiCount para obter o nmero de elementos marcado num list box. Parmetros : hWndListBo Window Handle O handle ou o nome de um list box. x nSelecionado Receive Numeric Array O nome de um vetor de nmeros que ter os s ndices dos elementos selecionados num list box. Valor de Retorno : bOk TRUE se a funo for executada com sucesso, e FALSE se hWndListBox ou nSelecionados forem invlidos, ou se no ouver nenhum elemento selecionado no list box. Funo : SalListInsert Sintaxe : nNum = SalListInsert ( hWndLista, nIndice, sTexto ) Descrio : Inclui um determinado texto numa posio especfica de uma lista. Parmetros : hWndLista Window Handle O handle ou o nome de um list box ou combo box. nIndice Number A posio onde voc quer incluir o texto. Se voc especificar o valor 1, o Centura inclui o texto na ltima posio da lista. sTexto String O texto que voc deseja incluir. Valor de Retorno : nNum o ndice onde foi inserido o texto. SalListInsert retorna LB_Err quando um erro ocorrer, e retorna LB_ErrSpace quando no houver mais memria para armazenar a nova string. Funo : SalListPopulate Sintaxe : bOk = SalListPopulate ( hWndLista, hSql, sSelect ) Descrio : Carrega um list box ou um combo box com o contedo de um result set. Parmetros : hWndLista Window Handle O handle ou o nome de um list box ou combo box. hSql Sql Handle O handle de um comando SELECT. sSelect String O comando SELECT. O comando SELECT pode conter variveis BIND, mas no pode conter variveis INTO. Se o comando sSelect for nulo, o Centura utiliza o comando preparado anteriormente no handle hSql, evitando que o comando seja preparado novamente. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se algum parmetro for invlido, ou se o comando sSelect conter variveis INTO.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalListQueryCount Sintaxe : nNumItens = SalListQueryCount ( hWndLista ) Descrio : Retorna o nmero de itens presentes na lista. Parmetro : hWndLista Window Handle O handle ou o nome do list box ou combo box.

Valor de Retorno : nNumItens o nmero de itens presentes na lista hWndLista. SalListQueryCount retorna LB_Err se algum erro ocorrer. Funo : SalListQueryFile Sintaxe : bDiretorio = SalListQueryFile ( hWndLista, sTexto ) Descrio : Obtm o texto selecionado no list box ou combo box. Parmetros : hWndLista Window Handle O handle ou o nome do list box ou combo box. sTexto String O texto selecionado. Valor de Retorno : bDiretorio TRUE se sTexto for o nome de um diretrio e FALSE se for um nome de arquivo. Funo : SalListQueryMultiCount Sintaxe : nNum = SalListQueryMultiCount ( hWndLista ) Descrio : Retorna o nmero de elementos selecionados num list box configurvel para permitir seleo mltipla. Parmetro : hWndLista Window Handle O handle ou o nome do list box.

Valor de Retorno : nNum o nmero de elementos selecionados no list box hWndLista. Funo : SalListQuerySelection Sintaxe : nInd = SalListQuerySelection ( hWndLista ) Descrio : Retorna o ndice do item selecionado num list box. Parmetro : hWndLista Window Handle O handle ou o nome do list box single-selection

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nInd o ndice do item selecionado no list box. SalListQuerySelection retorna LB_Err se no ouver nenhum item selecionado no list box, ou se o list box estiver configurado como multiple-selection. Funo : SalListQueryState Sintaxe : bSelecionado = SalListQueryState ( hWndLista, nItem ) Descrio : Determina quando um item especfico de um list box ou combo box est ou no selecionado. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nItem Number O ndice de um item da lista. Valor de Retorno : bSelecionado TRUE se o item nItem estiver selecionado e FALSE se nItem no estiver selecionado. Funo : SalListQueryText Sintaxe : nTam = SalListQueryText ( hWndLista, nItem, sTexto ) Descrio : Obtm o texto de um determinado item da lista. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nItem Number O ndice do item que vc quer obter o texto. sTexto Receive String O texto do item desejado. Valor de Retorno : nTam o tamanho do texto recuperado. Funo : SalListQueryTextLength Sintaxe : nTamanho = SalListQueryTextLength ( hWndLista, nIndice ) Descrio : Obtm o tamanho de um determinado item de uma lista. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nIndice Number O ndice do item que voc deseja saber o tamanho. Valor de Retorno : nTamanho o tamanho do texto do item indexado por nIndice. Funo : SalListQueryTextX Sintaxe : sTexto = SalListQueryTextX ( hWndLista, nIndice ) Descrio : Obtm o texto de um determinado item de uma lista. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndLista nIndice

Window Handle O handle ou o nome da lista. Number O ndice de um item da lista.

Valor de Retorno : sTexto o texto referente ao item indexado por nIndice. Funo : SalListRedraw Sintaxe : bOk = SalListRedraw ( hWndLista, bRedraw ) Descrio : Redesenha itens numa lista, ou evita que seja redesenhado. Com SalListDraw voc pode controlar quando os itens da lista sero mostrados na tela. Parmetros : hWndLista Window Handle O handle ou o nome da lista. bRedraw Boolean Se TRUE o Centura redesenha os itens do list box ou combo box, se for FALSE os itens no so redesenhados. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se hWndLista for um handle nulo. Funo : SalListSelectString Sintaxe : nInd = SalListSelectString ( hWndLista, nInicio, sTexto ) Descrio : Procura por um texto numa lista e seleciona o item, caso o encontre. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nInicio Number O ndice a partir de onde voc quer comear a pesquisa. sTexto String O texto que vc deseja encontrar. Valor de Retorno : nInd o ndice do item da lista que contm o texto sTexto. Funo : SalListSetMultiSelect Sintaxe : bOk = SalListSetMultiSelect ( hWndLista, nItem, bSelecao ) Descrio : Ativa/Desativa a seleo de um determinado item num list box configurado como multiple-selection Parmetros : hWndLista Window Handle O handle ou o nome da lista. nItem Number O ndice do item que voc deseja ativar/desativar a seleo. bSelecao Boolean Especifique TRUE para ativar a seleo e FALSE para desativar. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalListSetSelect Sintaxe : bOk = SalListSetSelect ( hWndLista, nIndice ) Descrio : Ativa/desativa a seleo de um determinado item de um combo box ou de um list box configurado como single-selection. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nIndice Number O ndice do item que voc deseja ativar ou desativar a seleo. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalListSetTabs Sintaxe : bOk = SalListSetTabs ( hWndLista, nTabs ) Descrio : Define a tabulao num list box para o alinhamento das colunas. Obs : SalListPopulate sobrepe as configuraes feitas com SalListSetTabs. Parmetros : hWndLista Window Handle O handle ou o nome da lista. nTabs Numeric Array O nome de um vetor de nmeros que representa as tabulaes. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalLoadApp Sintaxe : bOk = SalLoadApp ( sAplicacao , sParametros ) Descrio : Inicia uma aplicao. Parmetros : sAplicacao String O nome da aplicao a ser executada. sParametros String Os argumentos da linha de comando. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalLoadAppAndWait Sintaxe : bOk = SalLoadAppAndWait ( sAplicacao , nModo , nRetorno ) Descrio : Inicia uma aplicao e espera que essa aplicao termine sua execuo, antes de retornar o controle para a aplicao original. Parmetros : sAplicacao String O nome da aplicao a ser executada. nModo Number O modo de visualizao da aplicao. Especifique uma das constantes abaixo: Window_Maximixed, Window_Minimized, Window_Normal ou Window_NotVisible. nRetorno Receive Number Um status retornado pela aplicao que foi invocada, ou um cdigo de erro do Windows. Observe abaixo a relao dos cdigos de erros do Windows: 0 2 3 5 6 No tem memria. Arquivo executvel est corrompido. Arquivo no encontrado. Caminho no encontrado. Violao de compartilhamento. Biblioteca requer segmentos de dados separados para cada tarefa.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

8 10 11 12 13 14 15 16 19 20 21

Memria insuficiente para iniciar a aplicao. Verso incorreta do Windows. Arquivo .EXE invlido. Aplicao desenvolvida para um sistema operacional diferente. Aplicao DOS 4.0. Tipo de .EXE desconhecido. Tentativa de carregar uma aplicao desenvolvida para uma verso antiga do Windows em modo-real. Tentativa de carregar uma segunda instncia de um arquivo .EXE contendo mltiplos segmentos de dados atualizveis. Tentativa de carregar um arquivo executvel compactado. O arquivo precisa ser descompactado para que possa ser carregado. Uma DLL necessria para executar esta aplicao est corrompida. Aplicao requer extenses do Microsoft Windows 32-bit.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a aplicao no pde ser encontrada ou iniciada. Funo : SalMapEnterToTab Sintaxe : bOk = SalMapEnterToTab ( bModo ) Descrio : Esta funo muda o comportamento padro da tecla Enter. O comportamento padro selecionar o boto default numa tela. Esse comportamento alterado para mover para o prximo objeto child. Parmetro : bModo Boolean Se voc usar TRUE, a tecla Enter move o foco para o prximo objeto child da janela. Se voc usar FALSE, a tecla Enter assume o seu comportamento normal, ou seja, selecionar o boto default numa tela.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalMDIArrangeIcons Sintaxe : bOk = SalMDIArrangeIcons ( hWndMDI ) Descrio : Organiza os cones do mdi que estiverem minimizados. Parmetro : hWndMDI Window Handle O handle da janela mdi.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalMDICascade Sintaxe : bOk = SalMDICascade ( hWndMDI ) Descrio : Organiza em cascata todas as janelas filhas do mdi que no estiverem minimizadas. Parmetro : hWndMDI Window Handle O handle ou o nome do mdi.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalMDITile Sintaxe : bOk = SalMDITile ( hWndMDI, bPosicao ) Descrio : Ajusta lado-a-lado todas as janelas filhas do mdi que no estiverem minimizadas. Janelas que no podem ter seu tamanho alterado no sero ajustadas. Parmetros : hWndMDI Window Handle O handle ou o nome do mdi. bPosicao Boolean O modo como as janelas sero ajustadas. Se TRUE, ajusta as janelas verticalmente, se FALSE, ajusta as janelas horizontalmente. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalMessageBeep Sintaxe : bOk = SalMessageBeep ( nNivelAlerta ) Descrio : Emite um som padro wave, que corresponde a uma mensagem do ambiente Windows. O usurio pode definir o som, para cada um dos nveis de alerta, no Painel de Controle. Parmetro : nNivelAlerta Number O nvel do alerta. 0xFFFFFFFF (-1) Beep padro usando o auto-falante interno do computador. Voc pode tambm utilizar as constantes pr-definidas para tal:

Pgina PAGE 582

Programando com o Centura Team Developer 2000

MB_IconAsterisk, MB_IconExclamation, MB_IconStop, MB_IconQuestion ou MB_Ok. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalMessageBox Sintaxe : nResultado = SalMessageBox ( sTexto, sTitulo, nFlags ) Descrio : Mostra uma caixa de dilogo e retorna um nmero indicando a resposta do usurio. Voc pode personalizar a mensagem, os botes e os cones. Parmetros : sTexto String O texto da mensagem. Voc pode utilizar mltiplas linhas, basta utilizar um CONTROL+ENTER para iniciar uma nova linha. sTitulo String O ttulo da caixa de dilogo. nFlags Number O estilo da caixa de dilogo. Defina um estilo, combinando as constantes de estilo usando o operador OR (|). Voc pode combinar apenas uma constante para cada componente do estilo. Um estilo possui quatro componentes : 1. Os botes 2. O cone da mensagem (opcional) 3. Um boto default (opcional) 4. Informar se a caixa de dilogo ser system modal. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalModalDialog Sintaxe : nRetorno = SalModalDialog ( tNomeDlg , hWndPai , Param1 , Param2 ) Descrio : Cria uma janela tipo dialog box ( caixa de dilogo). Esta funo aceita um template ou uma varivel string no primeiro parmetro. Se voc usar uma varivel no poder passar parmetros na criao do dialog box. Um dialog box desabilita a sua janela pai. Os dialog boxes do tipo system modal desabilitam todo o sistema Windows. A funo SalEndDialog destri um dialog box e habilita todas as janelas que estavam desabilitadas. A funo SalModalDialog pode passar um nmero varivel de parmetros para o dialog box. Os tipos de dados desses parmetros precisam ser os mesmos definidos na seo Parameters do outline. Voc pode utilizar os parmetros do dialog box para retornar informaes para o objeto pai do mesmo. No entanto, voc pode inicializar parmetros tipo receive apenas com variveis. Isso significa que voc no pode passar como parmetro um data field, ou outro objeto, para um parmetro tipo receive de uma janela. Parmetros : tNomeDlg Template ou String O nome do dialog box a ser criado. hWndPai Window Handle O handle ou o nome da janela pai. Utilize hWndNULL para criar um dialog box que no possui janela pai. Param1 Parmetros opcionais, podem ser de qualquer tipo de dados do Centura. Param2

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nRetorno o valor especificado na funo SalEndDialog.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalModalDialogFromStr Sintaxe : nRetorno = SalModalDialogFromStr ( tNomeDlg , hWndPai ) Descrio : Cria uma janela tipo dialog box ( caixa de dilogo). Esta funo til em funes internas que recebem o nome da caixa de dilogo numa varivel. Um dialog box desabilita a sua janela pai. Os dialog boxes do tipo system modal desabilitam todo o sistema Windows. A funo SalEndDialog destri um dialog box e habilita todas as janelas que estavam desabilitadas. Parmetros : tNomeDlg Template ou String O nome do dialog box a ser criado. hWndPai Window Handle O handle ou o nome da janela pai. Utilize hWndNULL para criar um dialog box que no possui janela pai. Valor de Retorno : nRetorno o valor especificado na funo SalEndDialog. Funo : SalMoveWindow Sintaxe : bOk = SalMoveWindow ( hWndObj, nX, nY ) Descrio : Movimenta um objeto para uma nova posio X e Y especificada em form units. Parmetros : hWndObj Window Handle O handle ou o nome do objeto. nX Number O nmero de form units para movimentar o objeto no eixo X. nY Number O nmero de form units para movimentar o objeto no eixo Y. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se hWndObj for um handle nulo. Funo : SalMTSCreateInstance Sintaxe : bOk = SalMTSCreateInstance ( oObjeto ) Descrio : Cria um novo componente. Dependendo das configuraes da transao, o novo componente poder participar da transao atual, iniciar uma nova transao ou no suportar a transao. A funo SalMTSCreateInstance ( ) tem o mesmo efeito da funo Create( ) quando for utilizada para objetos que no esto registrados no MTS. Parmetro: oObjeto

Objeto ou Interface - O objeto ou interface que ser instanciado.

Valor de Retorno : bOk TRUE se o objeto for instanciado com sucesso e FALSE caso contrrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo: SalMTSDisableCommit Sintaxe: bOk = SalMTSDisableCommit ( ) Descrio: Indica que as atualizaes transacionais do objeto atual no podem ser efetuadas no presente momento, at que seja feita uma chamada funo SalMTSEnableCommit( ) ou SalMTSSetComplete( ). Para componentes no registrados no MTS esta funo sempre retorna FALSE. Nenhum Parmetro:

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE caso contrrio.

Funo: SalMTSEnableCommit Sintaxe: bOk = SalMTSEnableCommit ( ) Descrio: Indica que as atividades do objeto ainda no terminaram, mas que as atualizaes transacionais podem ser efetuadas no objeto pai, objeto que iniciou a transao. O estado default quando um objeto ativado EnableCommit. Para componentes no registrados no MTS esta funo sempre retorna FALSE. Nenhum Parmetro:

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE caso contrrio. Funo: SalMTSGetObjectContext Sintaxe: bOk = SalMTSGetObjectContext ( Contexto ) Descrio: Obtm o contexto do objeto atual. Para componentes no registrados no MTS esta funo sempre retorna FALSE. Nenhum Parmetro: Contexto Number - O contexto do objeto atual. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE caso contrrio. Funo: SalMTSIsCallerInRole

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe: bOk = SalMTSIsCallerInRole ( sRegra , bEsta ) Descrio: Verifica se o ativador do objeto atual est listado na regra indicada em sRegra. Parmetros: sRegra Number - O contexto do objeto atual. bEsta Receive Boolean - Ser TRUE caso o ativador do objeto seja membro da regra especificada. Valor de Retorno : bOk TRUE se a regra especificada em sRegra for identificada como uma regra registrada e FALSE caso contrrio. Funo: SalMTSIsInTransaction Sintaxe: bOk = SalMTSIsInTransaction ( bEsta ) Descrio: Verifica se o objeto est sendo executado no contexto da transao. Para componentes no registrados no MTS esta funo sempre retorna FALSE. Parmetro: bEsta

Receive Boolean - Ser TRUE se o objeto estiver sendo executado no contexto da transao.

Valor de Retorno : bOk TRUE se o objeto estiver em uma transaoa e FALSE caso contrrio.

Funo: SalMTSIsSecurityEnabled Sintaxe: bOk = SalMTSIsSecurityEnabled ( bSegHabilitada ) Descrio: Verifica o status da segurana. Se o objeto estiver sendo executado no processo do cliente, no h verificao de segurana, nesse caso SalMTSIsSecurityEnabled sempre retorna FALSE. Para componentes no registrados no MTS esta funo sempre retorna FALSE. Parmetro: bSegHabilita Receive Boolean - Ser TRUE se a segurana estiver habilitada. da Valor de Retorno: bOk TRUE se o a segurana estiver habilitada para o componente e FALSE caso contrrio. Funo: SalMTSSetAbort Sintaxe: bOk = SalMTSSetAbort ( ) Descrio: Use esta funo para informar que a transao no pode ser aplicada (rollback). A transao inteira cancelada. O objeto desativado retornando para o mtodo que o chamou.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para componentes no registrados no MTS esta funo sempre retorna FALSE. Nenhum Parmetro:

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE caso contrrio. Funo: SalMTSSetComplete Sintaxe: bOk = SalMTSSetComplete ( ) Descrio: Use esta funo para informar que a transao pode ser aplicada (commit). O objeto desativado retornando para o mtodo que o chamou. Para componentes no registrados no MTS esta funo sempre retorna FALSE. Nenhum Parmetro:

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE caso contrrio. Funo : SalNumberAbs Sintaxe : nNum = SalNumberAbs ( nValor ) Descrio : Calcula o valor absoluto de um nmero. Parmetro : nValor Number O nmero que voc deseja obter o seu valor absoluto.

Valor de Retorno : nNum o valor absoluto do nmero. Funo : SalNumberArcCos Sintaxe : nCos = SalNumberArcCos ( nValor ) Descrio : Calcula o coseno de um valor entre o intervalo de 0 a 1. Parmetro : nValor Number O nmero cujo arco coseno voc deseja.

Valor de Retorno : nCos o arco coseno de nValor. Funo : SalNumberArcSin Sintaxe : nSeno = SalNumberArcSin ( nValor ) Descrio : Calcula o seno de um valor entre o intervalo de 0 a 1.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : nValor

Number - O nmero cujo arco seno voc deseja.

Valor de Retorno : nCos o arco seno de nValor. Funo : SalNumberArcTan Sintaxe : nArcoTan = SalNumberArcTan ( nValor ) Descrio : Calcula o valor do arco tangente. Parmetro : nValor

Number - O nmero cujo arco tangente voc deseja obter.

Valor de Retorno : nArcoTan o arco tangente do valor nValor.

Funo : SalNumberArcTan2 Sintaxe : nArcoTan = SalNumberArcTan2 ( nValor1 , nValor2 ) Descrio : Calcula o arco tangente de dois valores. Esta funo utiliza os sinais dos dois parmetros para determinar o quadrante do valor retornado. Parmetros : nValor1 Number - Um dos dois valores cujo arco tangente voc deseja obter. nValor2 Number - O outro dos dois valores cujo arco tangente voc deseja obter. Valor de Retorno : nArcoTan o arco tangente dos valores nValor1 e nValor2. Funo : SalNumberCos Sintaxe : nValor = SalNumberCos ( nAngulo ) Descrio : Calcula o coseno de um ngulo. Voc deve especificar o ngulo em radianos. Parmetro : nAngulo

Number - O valor do ngulo cujo coseno voc deseja obter.

Valor de Retorno : nValor o coseno do valor especificado em nAngulo.

Funo : SalNumberCosH Sintaxe : nValor = SalNumberCosH ( nAngulo ) Descrio : Calcula o coseno hiperblico de um ngulo. Voc deve especificar o ngulo em radianos.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : nAngulo

Number - O valor do ngulo cujo coseno hiperblico voc deseja obter.

Valor de Retorno : nValor o coseno hiperblico do valor especificado em nAngulo. Funo : SalNumberExponent Sintaxe : nNum = SalNumberExponent ( nValor ) Descrio : Calcula a potncia de um nmero. Parmetro : nValor

Number - O valor cuja potncia voc deseja obter.

Valor de Retorno : nNum a potncia de nValor. Funo : SalNumberHigh Sintaxe : nHigh = SalNumberHigh ( nValor ) Descrio : Obtm os 16bits mais significantes de um nmero ( high-order ). Parmetro : nValor

Number - O nmero cujo valor high-order voc deseja obter. SQLWindows/32 trata nValor como um nmero de 32bits sem sinal.

Valor de Retorno : nHigh o valor high-order. Funo : SalNumberHypot Sintaxe : nHypotenuse = SalNumberHypot ( nX, nY ) Descrio : Computes the length of the hypotenuse of a right triangle, given the lengths of the other two sides. Parmetros : nX Number. The length of one side of a right triangle. nY Number. The length of another side of a right triangle. Valor de Retorno : nHypotenuse is the length of the hypotenuse of a right triangle. If the computation of the hypotenuse results in an overflow, nHypotenuse is equal to zero (0). Funo : SalNumberLog Sintaxe : nLog = SalNumberLog ( nValor ) Descrio : Calcula o logartimo natural de um nmero.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : nValor Number. O nmero cujo logartimo natural voc deseja obter. Valor de Retorno : nLog o logartimo natural de nValor. Se nValor for um nmero negativo ou for zero, nLog igual a zero. Funo : SalNumberLogBase10 Sintaxe : nLog = SalNumberLogBase10 ( nValor ) Descrio : Calcula o logartimo de base 10 de um nmero. Parmetro : nValor Number O nmero cujo logartimo de base 10 voc deseja obter.

Valor de Retorno : nLog o logartimo de base de nValor. Se nValor for igual a 0 (zero) ou for um nmero negativo, nValor igual a 0 (zero).

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalNumberLow Sintaxe : nNum = SalNumberLow ( nValor ) Descrio : Obtm o valor low-order de um nmero ( os 16-bits menos significativos ). Parmetro : nValor Number O nmero cujo valor low-order voc deseja obter. O Centura trata nValor como um nmero de 32-bits sem sinal.

Valor de Retorno : nNum o valor low-order obtido. Funo : SalNumberMax Sintaxe : nNum = SalNumberMax ( nValor1, nValor2 ) Descrio : Retorna o maior valor entre dois nmeros. Parmetros : nValor1 Number O primeiro dos dois valores. nValor2 Number O segundo dos dois valores. Valor de Retorno : nNum o maior valor entre nValor1 e nValor2. Funo : SalNumberMin Sintaxe : nNum = SalNumberMin ( nValor1, nValor2 ) Descrio : Retorna o menor valor entre dois nmeros. Parmetros : nValor1 Number O primeiro dos dois valores. nValor2 Number O segundo dos dois valores. Valor de Retorno : nNum o menor valor entre nValor1 e nValor2. Funo : SalNumberMod Sintaxe : nResto = SalNumberMod ( nNum, nDivisor ) Descrio : Retorna o resto entre a diviso de dois nmeros. Parmetros : nNum Number o nmero que ser dividido. nDivisor Number o divisor de nNum. Valor de Retorno : nResto o que restar da diviso entre nNum e nDivisor. Funo : SalNumberPi

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : nNumPi = SalNumberPi ( nValor ) Descrio : Multiplica um nmero por Pi. Pi igual a 3.1415926535979323. Parmetros : nValor Number o nmero que ser multiplicado por Pi. Valor de Retorno : nNumPi nValor multiplicado por Pi.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalNumberPower Sintaxe : nNum = SalNumberPower ( nX, nY ) Descrio : Calcula nX elevado potncia de nY. Parmetros : nX Number o nmero para se elevar a potncia. nY Number o expoente. Valor de Retorno : nNum igual a nX elevado a potncia de nY, com as seguintes condies: 1. Se nX no for igual a 0 e nY for igual a 0, nNum igual a 1. 2. Se nX for igual a 0 e nY for um nmero negativo, nNum igual a zero (0). Funo : SalNumberRandInit Sintaxe : bOk = SalNumberRandInit ( nInicial ) Descrio : Define o ponto inicial para a gerao de uma srie de nmeros aleatrios usando SalNumberRandom. Use SalNumberRandInit quando voc quiser gerar o mesmo conjunto de nmeros aleatrios vrias vezes. Parmetro : nInicial Number O ponto de partida. Um nmero qualquer no intervalo entre 0 e 32767.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalNumberRandom Sintaxe : nNum = SalNumberRandom ( ) Descrio : Gera um nmero aleatrio. Os nmeros gerados pela funo SalNumberRandom so inteiros no intervalo de 0 at 32767 ( 0 at 0x7FFF ). Nenhum Parmetro. Valor de Retorno : nNum um nmero aleatrio. Funo : SalNumberRound Sintaxe : nResultado = SalNumberRound ( nNum ) Descrio : Retorna um nmero arredondado. Se a parte decimal de um nmero for maior ou igual a 0,5, o Centura arredonda o nmero acima. Por exemplo, o nmero 124,33 retorna 124 ; o nmero 124,56 retorna 125. Parmetro : nNum Number Um nmero para ser arredondado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nResultado o nNum arredondado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalNumberSin Sintaxe : nSeno = SalNumberSin ( nAngulo ) Descrio : Calcula o seno de um ngulo. Voc deve especificar o ngulo em radianos. Parmetro : nAngulo

Number - O valor do ngulo cujo seno voc deseja obter.

Valor de Retorno : nSeno o seno do ngulo nAngulo.

Funo : SalNumberSinH Sintaxe : nSeno = SalNumberSinH ( nAngulo ) Descrio : Calcula o seno hiperblico de um ngulo. Voc deve especificar o ngulo em radianos. Parmetro : nAngulo

Number - O valor do ngulo cujo seno hiperblico voc deseja obter.

Valor de Retorno : nSeno o valor do seno hiperblico do ngulo nAngulo. Funo : SalNumberSqrt Sintaxe : nRaiz = SalNumberSqrt ( nValor ) Descrio : Calcula a raiz quadrada de um nmero. Parmetro : nValor Number O nmero cuja raiz quadrada voc deseja obter.

Valor de Retorno : nRaiz o valor da raiz quadrada de nValor. Se nValor for um nmero negativo, ele est fora do domnio de nmeros vlidos e nRaiz igual a zero (0). Funo : SalNumberTan Sintaxe : nTan = SalNumberTan ( nAngulo ) Descrio : Calcula a tangente de um ngulo. Parmetro : Number

Number - O valor do ngulo cuja tangente voc deseja obter.

Valor de Retorno : nTan a tangente de um ngulo. Funo : SalNumberTanH Sintaxe : nTan = SalNumberTanH ( nAngulo )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Calcula a tangente de um ngulo hiperblico. Parmetro : Number

Number - O valor do ngulo cuja tangente hiperblica voc deseja obter.

Valor de Retorno : nTan a tangente hiperblica do ngulo em nAngulo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalNumberToChar Sintaxe : sCararctere = SalNumberToChar ( nNum ) Descrio : Converte um caractere ASCII em seu valor decimal. Parmetro : nNum Number O nmero para ser convertido.

Valor de Retorno : sCaractere o valor de nNum convertido. Funo : SalNumberToHString Sintaxe : sString = SalNumberToHString ( nHString ) Descrio : Converte um nmero para um handle string. Parmetro : nHString Number Um valor numrico para ser convertido.

Valor de Retorno : sString um ponteiro string que representa um nmero convertido. Funo : SalNumberToStr Sintaxe : nTam = SalNumberToStr ( nNum, nDecimais, sString ) Descrio : Converte um nmero em string. Parmetros : nNum Number O valor numrico que ser transformado em string. nDecimais Number O nmero de casas decimais. sString Receive String Uma varivel string que receber o valor convertido. Valor de Retorno : nTam o tamanho da string retornada. Funo : SalNumberToStrX Sintaxe : sStr = SalNumberToStrX ( nNum, nDecimais ) Descrio : Converte um nmero em string. Parmetros : nNum Number O valor numrico que ser transformado em string. nDecimais Number O nmero de casas decimais. Valor de Retorno : sStr o valor convertido. Funo : SalNumberToWindowHandle Sintaxe : hWndConv = SalNumberToWindowHandle ( nWnd )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Converte um valor numrico em um valor tipo window handle. Parmetro : nWnd Number O nmero que ser convertido.

Valor de Retorno : hWndConv o window handle convertido de nWnd.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalNumberTruncate Sintaxe : nResultado = SalNumberTruncate ( nNum, nPreciso, nEscala ) Descrio : Trunca um nmero Parmetros : nNum Number O nmero que ser truncado, a partir da sua posio mais esquerda. nPrecisao Number o nmero de caracteres a serem mostrados. nEscala Number o nmero de digitos decimais. nPrecisao deve ser maior do que nEscala. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalParentWindow Sintaxe : hWndPai = SalParentWindow ( hWnd ) Descrio : Retorna o handle do objeto pai do objeto especificado em hWnd. Parmetro : hWnd Window Handle O handle ou o nome cujo o handle do pai voc deseja

Valor de Retorno : hWndPai o handle do objeto pai. Funo : SalPicClear Sintaxe : bOk = SalPicClear ( hWndPic ) Descrio : Apaga o contedo de uma picture. Parmetro : hWndPic Window Handle O handle ou nome de uma picture.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPicGetDescription Sintaxe : nTamanho = SalpicGetDescription ( hWndPic , sDesc , nTamMax ) Descrio : Obtm a descrio do contedo de uma picture. Parmetros : hWndPic Window Handle O handle ou o nome de uma picture. sDesc Receive String A descrio do contedo de hWndPic. nTamMax Number O tamanho mximo do texto que ser recuperado. Valor de Retorno : nTamanho o tamanho (em bytes) da descrio em sDesc.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalPicGetImage Sintaxe : nTam = SalPicGetImage ( hWndPicture , sPicture , nTipo ) Descrio : Obtm a imagem contida num objeto tipo picture. Parmetros : hWndPicture Window Handle - O handle ou o nome do objeto picture. sPicture Receive String - O contedo do objeto picture. nTipo Number - O formato do contedo do objeto picture. Pode ser uma das seguintes constantes: PIC_ImageTypeNone, PIC_ImageTypeBMP, PIC_ImageTypeICON, PIC_ImageTypeWMF, PIC_ImageTypeTIFF, PIC_ImageTypePCX, PIC_ImageTypeGIF, PIC_ImageTypeJPEG ou PIC_ImageTypeNuVEQ. Valor de Retorno : nTam o tamanho em bytes da imagem em sPicture. Se o formato no estiver disponvel, nTam zero.

Funo : SalPicGetString Sintaxe : nTamanho = SalPicGetString ( hWndPic , nFormato , sPicture ) Descrio : Copia o contedo de uma picture para uma varivel string. Parmetros : hWndPic Window Handle O handle ou o nome da picture. nFormato Number O formato do contedo da picture. sPicture Receive String O contedo da picture em hWndPic. Valor de Retorno : nTamanho tamanho (em bytes) da varivel sPicture. Se o formato no estiver disponvel, nTamanho zero. Funo : SalPicSet Sintaxe : bOk = SalPicSet ( hWndPic, tResource, nFormato ) Descrio : Insere um resource numa picture Parmetros : hWndPic Windows Handle O handle ou o nome da picture. tResource Template Um cone ou um bitmap na seo do Outline chamada Resources. nFormato Number O tipo do resource. Se voc especificar zero o Centura

Pgina PAGE 582

Programando com o Centura Team Developer 2000

determinar o tipo do resource. Se no, especifique um dos tipos PIC_Formatbitmap ou PIC_FormatIcon. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPicSetFile Sintaxe : bOk = SalPicSetFile ( hWndPic , sNomeArquivo ) Descrio : insere o contedo de um arquivo numa picture. Parmetros : hWndPic Window Handle O handle ou o nome da picture. sNomeArqui String O nome do arquivo cujo contedo ser inserido na picture vo hWndPic. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPicSetFit Sintaxe : bOk = SalPicSetFit ( hWndPic, nAjuste , nLargura , nAltura ) Descrio : Define o ajuste visual de uma picture. Parmetros : hWndPic Windows Handle o handle ou o nome da picture. nAjuste Number O tipo de ajuste. Voc pode utilizar uma das eguintes constantes : PIC_FitBestFit , PIC_FitScale ou PIC_FitSizeToFit. nLargura Number O percentual da escala de largura, no caso de nAjuste = PIC_FitScale. nAltura Number O percentual da escala de altura, no caso de nAjuste = PIC_FitScale. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalPicSetImage Sintaxe : nTam = SalPicSetImage ( hWndPicture , sPicture , nTipo ) Descrio : Insere o contedo de uma picture numa imagem, sem o cabealho padro de imagens do CTD. Parmetros : hWndPicture Window Handle - O handle ou o nome do objeto picture. sPicture Receive String - O contedo do objeto picture. nTipo Number - O formato do contedo do objeto picture. Pode ser uma das seguintes constantes: PIC_ImageTypeNone, PIC_ImageTypeBMP,

Pgina PAGE 582

Programando com o Centura Team Developer 2000

PIC_ImageTypeICON, PIC_ImageTypeWMF, PIC_ImageTypeTIFF, PIC_ImageTypePCX, PIC_ImageTypeGIF, PIC_ImageTypeJPEG ou PIC_ImageTypeNuVEQ. Valor de Retorno : nTam o tamanho em bytes da imagem em sPicture. Se o formato no estiver disponvel, nTam zero.

Funo : SalPicSetHandle Sintaxe : bOk = SalPicSetHandle( hWndPic , nTipo , nHandle ) Descrio : Define o handle de uma imagem de um objeto picture como handle de bitmap (HBITMAP) ou de cone (HICON). Normalmente, HBITMAPs e HICONs so lidos a partir de DLLs. Parmetros : hWndPic Window Handle O handle ou o nome de um objeto picture. nTipo Number Atribua PIC_FormatIcon a nTipo se nHandle for um HICON, ou PIC_FormatBitmap se nHandle for um HBITMAP. nHandle Number um HBITMAP ou HICON. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo: SalPicSetImage Sintaxe: bOk = SalPicSetImage ( hWndPicture , sImagem, nTipo ) Descrio: Insere o contedo de uma string num objeto tipo picture sem o header de imagens do Centura Team Developer. Parmetros : hWndPicture Window Handle O handle ou o nome de um objeto tipo picture. sImagem String A imagem. nTipo Number - O tipo da imagem. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalPicSetString Sintaxe : bOk = SalPicSetString ( hWndPic , nFormato , sPicture ) Descrio : Insere o contedo de uma string numa picture. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndPic nFormato sPicture

Window Handle O handle ou o nome de um objeto tipo picture. Number O formato do contedo da picture. PIC_FormatBitmap , PIC_FormatIcon , PIC_FormatObject. String A imagem. Voc pode utilizar SalFileRead para ler um arquivo bitmap para uma string. Voc tambm pode carregar (atravs do comando SELECT) uma imagem gravada numa coluna do banco de dados para uma varivel string.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPixelsToFormUnits Sintaxe : nUnForm = SalPixelsToFormUnits ( hWnd , nPixels, bVertical ) Descrio : Calcula o nmero de unidades de form do Centura, baseado no nmero de pixels. Parmetros : hWnd Window Handle O handle ou o nome do objeto cujo nmero de unidades de form voc deseja calcular. nNumPixels Number O nmero de pixels. bVertical Boolean Atribua FALSE a este parmetro se o nmero de pixels corresponder ao eixo X, e TRUE se corresponder ao eixo Y. Valor de Retorno : nUnForm o nmero de unidades de form se a funo for executada com sucesso, e zero se algum erro ocorrer. Funo : SalPostMsg Sintaxe : bOk = SalPostMsg ( hWndObj , nMensagem , nwParam , nlParam ) Descrio : Envia uma mensagem para um determinado objeto, e coloca nMensagem na lista de mensagens pendentes do objeto. Parmetros : hWndObj Window Handle O handle ou o nome do objeto que ir receber a mensagem. nMensagem Number A mensagem. nwParam Number O valor de wParam para a mensagem. nlParam Number - Ovalor de lParam para a mensagem. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtExtractRect Sintaxe : bOk = SalPrtExtractRect ( nlParam, nEsquerda, nCima, nDireita, nBaixo ) Descrio : Obtm do parmetro lParam, da mensagem SAM_Print, o retngulo que est sendo impresso no momento.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : nlParam nEsquerda nCima nDireita nBaixo

Number O valor do parmetro lParam na mensagem SAM_Print. Receive Number A posio no eixo X do lado esquerdo do retngulo. Receive Number A posio no eixo Y do lado de cima do retngulo. Receive Number A posio no eixo X do lado direito do retngulo. Receive Number A posio no eixo Y do lado de baixo do retngulo.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtGetDefault Sintaxe : bOk = SalPrtGetDefault ( sDispositivo , sDriver , sPorta ) Descrio : Obtm as configuraes do dispositivo de impresso , driver e porta padres. Parmetros : sDispositivo Receive String O dispositivo padro. sDriver Receive String O driver padro. sPorta Receive String A porta padro. Valor de Retorno : bOk TRUE se a funo obter os valores padres com sucesso e FALSE se falhar. Funo : SalPrtGetParmNum Sintaxe : bOk = SalPrtGetParmNum ( nParametro, nValor ) Descrio : Obtm o valor de um parmetro de impresso. Os parmetros de impresso so um conjunto de variveis globais, inicializadas com valores padronizados. Podem ser alterados utilizando-se a funo SalPrtSetParmNum, recuperados com a funo SalPrtGetParmNum ou reinicializados atravs da funo SalPrtSetParmDefaults. Parmetros : nParametro Number O parmetro de impresso cujo valor voc deseja obter. Use uma das constantes PRT_nCopyCount , PRT_nDraftMode, PRT_nFromPage, PRT_nMarginLeft , PRT_nMarginTop, PRT_nPrintAll, PRT_nShowFormPageRect ou PRT_nToPage. nValor Receive Number o valor do parmetro de impresso. Para valores lgicos este parmetro TRUE ou FALSE. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalPrtPrintForm Sintaxe : bOk = SalPrtPrintForm ( hWndObj ) Descrio : Imprime um form window, table window ou dialog box e todo o seu contedo e flags das linhas (para o caso das tabelas). Quando hWndObj for um handle de um form window ou um dialog box, todo o seu contedo visvel em tela impresso. O Centura tenta imprimir o objeto com a mesma fonte mostrada na tela. Para melhores resultados, utilize as fontes suportadas pela sua impressora. Se o objeto for maior do que o tamanho do papel, ser impresso em tantas pginas quanto forem necessrias. Parmetro : hWndObj Window Handle O handle ou o nome do objeto a ser impresso.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtSetDefault Sintaxe : bOk = SalPrtSetDefault ( sDispositivo , sDriver, sPorta ) Descrio : Define as configuraes padres do dispositivo de impresso , driver e porta. Parmetros : sDispositivo String O dispositivo padro. sDriver String O driver padro. sPorta String A porta padro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtSetParmDefaults Sintaxe : bOk = SalPrtSetParmDefaults ( ) Descrio : Reinicia os parmetros de impresso para os seus valores default. Nmero de cpias : 1 Imprime em modo rascunho : FALSE Imprime todas as pginas : TRUE Pgina inicial : 1 Pgina final : 1 Margem esquerda : 0 Margem direita : 0 Desenha um retngulo ao redor do form impresso : FALSE Nenhum Parmetro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtSetParmNum Sintaxe : bOk = SalPrtSetParmNum ( nParametro , nValor ) Descrio : Define o valor de um parmetro de impresso. Os parmetros de impresso so um conjunto de variveis globais, inicializadas com valores padronizados. Podem ser alterados utilizando-se a funo SalPrtSetParmNum, recuperados com a funo SalPrtGetParmNum ou reinicializados atravs da funo SalPrtSetParmDefaults. Parmetros : nParametro Number Uma constante que representa o parmetro de impresso. Use uma das constantes : PRT_nCopyCount , PRT_nDraftMode, PRT_nFromPage, PRT_nMarginLeft , PRT_nMarginTop, PRT_nPrintAll, PRT_nShowFormPageRect ou PRT_nToPage. nValor Number o valor do parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalPrtSetup Sintaxe : bOk = SalPrtSetup ( sDispositivo , sDriver , sPorta, bMostrar ) Descrio : Mostra na tela o dialog box de configurao de impresso. Inicialmente, a impressora padro mostrada, permitindo ao usurio alter-la. SalPrtSetup retorna as opes selecionadas pelo usurio nas variveis receive. Parmetros : sDispositivo sDriver sPorta bMostrar Receive String O dispositivo ( a impressora ). Receive String O driver. Receive String A porta. Boolean Indica se para mostrar as impressoras inativas, ou apenas a impressora ativa. Se TRUE todas as impressoras so mostradas, se FALSE, apenas a impressora default mostrada.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalQueryFieldEdit

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : bLigado = SalQueryFieldEdit ( hWndCampo ) Descrio : Retorna o estado do flag de edio de um data field, multiline text, combo box, picture ou clula de uma table window. O flag de edio est ligado quando o usurio modifica o valor de um data field, multiline text ou coluna de uma table window. No caso do objeto picture, o flag de edio ligado quando a aplicao servidora est aberta para edio deste objeto. O flag de edio no ligado quando voc recupera as informaes a partir de um banco de dados. Esta funo apenas consulta o valor do flag de edio do objeto hWndCampo, no o altera. Importante : No caso de alguns objetos ( por exemplo, o scroll bars de uma table window ) a funo SalGetType retorna zero. No utilize SalQueryFieldEdit com objetos onde SalGetType retorne zero. Parmetro : hWndCampo Window Handle O handle ou o nome do objeto. Valor de Retorno : bLigado TRUE se o flag de edio do objeto estiver ligado e FALSE se estiver desligado. Funo : SalQuit Sintaxe : bOk = SalQuit ( ) Descrio : Encerra a aplicao. Se voc estiver executando a aplicao atravs do Centura SQLWindows32, a sua aplicao encerrada e o SQLWindows32 retorna ao modo de design. Nenhum Parmetro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportClose Sintaxe : bOk = SalReportClose ( hWndRelatorio ) Descrio : Encerra o relatrio. Utilize esta funo quando voc quiser fechar uma janela de visualizao de relatrio. Parmetro : hWndRelator Window Handle O handle ou o nome de uma janela de visualizao de io relatrio. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportCmd

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : bOk = SalReportCmd ( hWndRelatorio, nComando ) Descrio : Envia um comando para uma janela que permite a visualizao de um relatrio. Utilize SalReportCmd para control-la. Quando voc utiliza a funo SalReportView, o segundo parmetro o handle da janela onde o relatrio ser mostrado. Use a funo SalReportCmd para enviar comandos para esta janela que controla o Report Builder. Parmetros : hWndRelator Window Handle O handle ou o nome da janela do relatrio. io nComando Number O comando que ser enviado para o relatrio. Os comandos disponveis so: RPT_CmdFirstPage, RPT_CmdGotoPage, RPT_CmdLastPage, RPT_CmdNextPage, RPT_CmdPrevPage, RPT_CmdPrint, RPT_CmdPrinterSetup, RPT_CmdSizeAtual e RPT_CmdSizeFit. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportCreate Sintaxe : bOk = SalReportCreate ( sQrp, sVariaveis, sInputs, bGerar, nErro ) Descrio : Cria um template de relatrio. Parmetros : sQrp String O nome do modelo do relatrio a ser criado. sVariaveis String A relao das variveis do Centura que sero utilizadas para transportar os dados do banco de dados para o relatrio. Os nomes das variveis devem estar separados por vrgulas. Os tipos de dados das variveis devem ser os mesmos das variveis de entrada do relatrio, declaradas em sInputs. sInputs String A relao de nomes das variveis de entrada do relatrio. bGerar Boolean Se TRUE, o Centura gera um relatrio padro e coloca em nErro os erros que ocorrerem . nErro Receive Number Se algum erro ocorrer este parmetro uma das constantes de erro do relatrio, uma das constantes RPT_Err*. Quando o programa executado atravs do Centura SQLWindows32 (run mode), sempre mostrado um dialog box com a explicao do erro que ocorrer. No caso de estar executando a aplicao atravs do executvel, o dialog box de erros mostrado apenas se este parmetro for igual a 1. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso, e FALSE se falhar. Funo : SalReportDlgOptins Sintaxe : bOk = SalReportDlgOptions ( hWndRelatorio, sTitulo, sLinha1, sLinha2, sNome ) Descrio : Configura o dialog box que ser mostrado quando o relatrio estiver sendo impresso. Use esta funo aps criar o relatrio, mas antes de comear a imprimir. Parmetros : hWndRelator io sTitulo sLinha1 sLinha2 sNome Window Handle O handle do relatrio. String O texto que mostrado no ttulo do dialog box. String O texto que mostrado na primeira linha centralizada de texto. String O texto que mostrado na segunda linha centralizada de texto. String O nome do documento que mostrado no gerenciador de impresso.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportGetDateTimeVar Sintaxe : bOk = SalReportGetDateTimeVar ( hWndRelatorio , sVariavel , dtValor ) Descrio : Obtm o valor de uma varivel do relatrio, tipo date/time. Parmetros : hWndRelator io sVariavel dtValor Window Handle O handle ou o nome de uma janela de impresso de relatrio. String O nome da varivel do relatrio. Receive Date/Time O valor obtido do relatrio.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportGetNumberVar Sintaxe : bOk = SalReportGetNumberVar ( hWndRelatorio, sVariavel, nValor ) Descrio : Obtm o valor de uma varivel do relatrio, tipo number. Parmetros : hWndRelator io sVariavel nValor Window Handle O handle ou o nome de uma janela de impresso de relatrio. String O nome da varivel do relatrio. Receive Number O valor obtido do relatrio.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalReportGetObjectVar Sintaxe : bOk = SalReportGetObjectVar ( hWndRelatorio , sVariavel, sValor ) Descrio : Obtm o valor de uma varivel do relatrio, tipo objeto. Parmetros : hWndRelator io sVariavel sValor Window Handle O handle ou o nome de uma janela de impresso de relatrio. String O nome da varivel do relatrio. Receive String O valor da varivel sVariavel.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportGetStringVar Sintaxe : bOk = SalReportGetStringVar ( hWndRelatorio , sVariavel, sValor ) Descrio : Obtm o valor de uma varivel do relatrio, tipo string. Parmetros : hWndRelator io sVariavel sValor Window Handle O handle ou o nome de uma janela de impresso de relatrio. String O nome da varivel do relatrio. Receive String O valor da varivel sVariavel.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportPrint Sintaxe : SalReportPrint( hWndObj, sQrp, sVariaveis, sInputs, nCopias, nOpcoes, nPPag, nUPag, nErro ) Descrio : Imprime um relatrio. A funo SalReportPrint cria uma janela minimizada do Report Builder. Um dialog box mostrado enquanto o relatrio impresso. Quando esta funo encerra, o Report Builder automaticamente fechado. Obs : Esta funo estabiliza um dilogo entre o Report Builder e a aplicao. O processamento de impresso em si est no tratamento das mensagens SAM_Report*, que so enviadas pelo Report Builder para a aplicao. O Centura envia as informaes da aplicao para o ReportBuilder, quando a aplicao retorna TRUE no processamento da mensagem SAM_ReportFetchNext. O Report Builder continua a enviar mensagens SAM_ReportFetchNext, at que a aplicao retorne FALSE, quando ento o relatrio encerrado. Parmetros : hWndObj Window Handle O handle do objeto da aplicao que ir receber as mensagens SAM_Report* , e que far todo o processamento do relatrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sQrp sVariaveis

sInputs nCopias nOpcoes

nPPag nUPag nErro

String O nome de um arquivo de layout de relatrio. String A relao das variveis do Centura que sero utilizadas para transportar os dados do banco de dados para o relatrio. Os nomes das variveis devem estar separados por vrgulas. Os tipos de dados das variveis devem ser os mesmos das variveis de entrada do relatrio, declaradas em sInputs. String A relao de nomes das variveis de entrada do relatrio. Number O nmero de cpias a ser impresso. Se voc especificar zero ou um nmero negativo, o Centura imprime apenas uma cpia. Number Voc pode combinar duas ou mais dessas constantes separandoas com o operador OR (|) : RPT_PrintAll, RPT_PrintDraft, RPT_PrintNoAbort, RPT_PrintNoErrors, RPT_PrintNoWarn ou RPT_PrintRange. Number O nmero da primeira pgina do relatrio a ser impressa ( se nOpcoes incluir RPT_PrintRange). Number O nmero da ltima pgina do relatrio a ser impressa ( se nOpcoes incluir RPT_PrintRange). Receive Number Se a funo for executada com sucesso, este parmetro zero. Se ocorrer algum erro, este parmetro um dos valores das constantes RPT_Err*. Em modo de execuo no tempo de design, o Centura sempre mostra um dialog box com uma explicao caso ocorra algum erro. No aplicativo final, *.EXE, o Centura mostra este dialog box, apenas se voc atribuir 1 a este parmetro, antes de chamar a funo SalReportPrint.

Valor de Retorno : Nada retornado, para obter informaes sobre o sucesso ou no da execuo do relatrio, verifique o ltimo parmetro, nErro. Funo : SalReportPrintToFile Sintaxe : SalReportPrintToFile ( hWndObj, sQrp, sArquivo, sVariaveis, sInput, nCopias, nOpcoes, nPPag, nUPag, bFormato, nErro ) Descrio : Imprime um relatrio em arquivo no formato RTF ou ASCII. Parmetros : hWndObj Window Handle O handle do objeto da aplicao que ir receber as mensagens SAM_Report* , e que far todo o processamento do relatrio. sQrp String O nome de um arquivo de layout de relatrio. sArquivo String O nome do arquivo. sVariaveis String A relao das variveis do Centura que sero utilizadas para transportar os dados do banco de dados para o relatrio. Os nomes das variveis devem estar separados por vrgulas. Os tipos de dados das

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sInputs nCopias nOpcoes

nPPag nUPag nErro

variveis devem ser os mesmos das variveis de entrada do relatrio, declaradas em sInputs. String A relao de nomes das variveis de entrada do relatrio. Number O nmero de cpias a ser impresso. Se voc especificar zero ou um nmero negativo, o Centura imprime apenas uma cpia. Number Voc pode combinar duas ou mais dessas constantes separandoas com o operador OR (|): RPT_PrintAll, RPT_PrintDraft, RPT_PrintNoAbort, RPT_PrintNoErrors, RPT_PrintNoWarn e RPT_PrintRange. Number O nmero da primeira pgina do relatrio a ser impressa ( se nOpcoes incluir RPT_PrintRange). Number O nmero da ltima pgina do relatrio a ser impressa ( se nOpcoes incluir RPT_PrintRange). Receive Number Se a funo for executada com sucesso, este parmetro zero. Se ocorrer algum erro, este parmetro um dos valores das constantes RPT_Err*. Em modo de execuo no tempo de design, o Centura sempre mostra um dialog box com uma explicao caso ocorra algum erro. No aplicativo final, *.EXE, o Centura mostra este dialog box apenas se voc atribuir 1 a este parmetro, antes de chamar a funo SalReportPrint.

Valor de Retorno : Nada retornado. Para obter informaes sobre o sucesso ou no da execuo do relatrio, verifique o ltimo parmetro, nErro. Funo : SalReportReset Sintaxe : bOk = SalReportReset ( hWndRelatorio ) Descrio : Recarrega uma janela de relatrio. Esta funo envia novamente a mensagem SAM_ReportFetchInit, e uma ou mais mensagens SAM_ReportFetchNext para que o relatrio seja re-processado com novas informaes. Parmetro : hWndRelator Window Handle O handle do relatrio. io Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportSetDateTimeVar Sintaxe : bOk = SalReportSetDateTimeVar ( hWndRelatorio, sVariavel, dtValor ) Descrio : Atribui um valor a uma varivel tipo date/time, definida no layout de relatrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndRelator Window Handle O handle do relatrio. io sVariavel String O nome da varivel. dtValor Date/Time O valor que ser atribudo a varivel sVariavel. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportSetNumberVar Sintaxe : bOk = SalReportSetNumberVar ( hWndRelatorio, sVariavel, nValor ) Descrio : Atribui um valor a uma varivel tipo number, definida no layout de relatrio. Parmetros : hWndRelator Window Handle O handle do relatrio. io sVariavel String O nome da varivel. nValor Number O valor que ser atribudo a varivel sVariavel. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportSetObjectVar Sintaxe : bOk = SalReportSetObjectVar ( hWndRelatorio, sVariavel, sValor ) Descrio : Atribui um valor a uma varivel tipo object definida no layout de relatrio. Parmetros : hWndRelator Window Handle O handle do relatrio. io sVariavel String O nome da varivel. sValor String O valor que ser atribudo a varivel sVariavel. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportSetStringVar Sintaxe : bOk = SalReportSetStringVar ( hWndRelatorio, sVariavel, sValor ) Descrio : Atribui um valor a uma varivel tipo string, definida no layout de relatrio. Parmetros : hWndRelator Window Handle O handle do relatrio. io sVariavel String O nome da varivel. sValor String O valor que ser atribudo a varivel sVariavel.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso, e FALSE se falhar. Funo : SalReportTableCreate Sintaxe : bOk = SalReportTableCreate ( sQrp, hWndTabela, nErro ) Descrio : Cria um arquivo de formato de relatrio, baseado numa table window. Os nomes das colunas da tabela sero os nomes dos itens de entrada (input itens) do relatrio e os ttulos das colunas sero os mesmos das colunas do relatrio. Para table window do tipo top level, o ttulo do relatrio ser o ttulo do formulrio. Para table window do tipo child, o relatrio ser gerado sem ttulo. Parmetros : sQrp String O nome do arquivo de formato de relatrio que ser gerado. hWndTabela Window Handle O handle ou o nome do objeto table window. nErro Receive Number Se algum erro ocorrer, este parmetro ser igual a uma das constantes de erro de relatrio, RPT_Err*. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalReportTablePrint Sintaxe : hWndRelatorio = SalReportTablePrint ( hWndTable , sQrp , nParametros , nErro ) Descrio : Imprime um relatrio criado a partir de uma determinada table window. Parmetros : hWndTable Window Handle O handle ou o nome de uma table window. sQrp String O nome do layout do relatrio. nParametros Number Um vetor que voc define, contendo as informaes sobre a fila de impresso. Os valores configurados no vetor so : RPT_PrintParamCopies , RPT_PrintParamFirstPage , RPT_PrintParamLastPage e RPT_PrintParamOptions. nErro Receive Number Se algum erro ocorrer, este parmetro ser igual a uma das constantes de erro de relatrio, RPT_Err*. Valor de Retorno : hWndRelatorio o handle do relatrio gerado. Funo : SalReportTableView Sintaxe : hWndRelatorio = SalReportTableView ( hWndTable , hWnd , sQrp , nErro ) Descrio : Mostra, em modo de preview, o relatrio gerado a partir de uma table window. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndTable hWnd sQrp nErro

Window Handle O nome ou handle da table window. Window Handle O nome ou handle da janela que ser utilizada para mostrar o preview do relatrio. String O nome do layout do relatrio. Receive Number Se algum erro ocorrer, este parmetro ser igual a uma das constantes de erro de relatrio, RPT_Err*.

Valor de Retorno : hWndRelatorio o handle do relatrio gerado. Funo : SalReportView Sintaxe : hWndRelatorio = SalReportView ( hWndFrm, hWnd, sQrp, sVariaveis, sInputs, nFlags ) Descrio : Mostra um relatrio em modo de preview. Obs : Esta funo estabiliza um dilogo entre o Report Builder e a aplicao. O processamento de impresso est no tratamento das mensagens SAM_Report*, que so enviadas pelo Report Builder para a aplicao. O Centura envia as informaes da aplicao para o ReportBuilder, quando a aplicao retorna TRUE no processamento da mensagem SAM_ReportFetchNext. O Report Builder continua a enviar mensagens SAM_ReportFetchNext, at que a aplicao retorne FALSE, quando ento o relatrio encerrado. Parmetros : hWndFrm Window Handle O handle do objeto da aplicao que ir receber as mensagens SAM_Report* , e que far todo o processamento do relatrio. hWnd Window Handle - O handle da janela onde o preview dor relatrio ser mostrado. sQrp String O nome de um arquivo de layout de relatrio. sVariaveis String A relao das variveis do Centura, que sero utilizadas para transportar os dados do banco de dados para o relatrio. Os nomes das variveis devem estar separados por vrgulas. Os tipos de dados das variveis devem ser os mesmos das variveis de entrada do relatrio, declaradas em sInputs. sInputs String A relao de nomes das variveis de entrada do relatrio. nFlags Receive Number Antes de chamar esta funo, voc pode atribuir a este parmetro uma das constantes abaixo, para configurar algumas caracteristicas da barra de ferramentas da janela de preview : RPT_NoPrint No mostra o boto para imprimir. RPT_NoToolbar No mostra a barra de ferramentas. Se ocorrer algum erro, este parmetro uma das constantes RPT_Err*. Valor de Retorno : hWndRelatorio o handle do relatrio gerado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalScrollGetPos Sintaxe : bOk = SalScrollGetPos ( hWnd, nPosicao ) Descrio : Obtm o valor atual de uma scroll bar. Parmetros : hWnd Window Handle O nome ou o handle da scroll bar. nPosicao Receive Number O valor da posio da scroll bar. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalScrollGetRange Sintaxe : bOk = SalScrollGetRange ( hWnd, nMin, nMax, nLinha, nPag ) Descrio : Obtm as configuraes da scroll bar, o intervalo, o incremento de linha e o incremento de pgina. Parmetros : hWnd nMin nMax nLinha nPag Window Handle O nome ou o handle da scroll bar. Receive Number O valor da posio mnima. Receive Number O valor da posio mxima. Receive Number O valor do incremento de linha. o valor de incremento quando o usurio clica na seta da barra de rolagem. Receive Number O valor do incremento de pgina. o valor de incremento quando o usurio clica na barra lateral da barra de rolagem.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalScrollSetPos Sintaxe : bOk = SalScrollSetPos ( hWnd, nPosicao ) Descrio : Define a posio da barra de scroll. Esta funo equivalente a atribuir um determinado valor bassra de rolagem. Parmetros : hWnd Window Handle O handle ou o nome da scroll bar. nPosicao Number A posio da scroll bar. Se este nmero for um nmero fora do intervalo configurado para a scroll bar, o Centura posiciona a barra na primeira posio, ou na ltima, se ele ficar abaixo do menor valor ou acima do maior valor, respectivamente. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalScrollSetRange Sintaxe : bOk = SalScrollSetRange ( hWnd, nMin, nMax, nLinha, nPag )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Define o intervalo ( posio inicial e final) , o incremento de linha e de pgina de uma scroll bar. Quando uma scroll bar criada, o Centura associa os seguintes valores : Posio inicial :0 Posio final : 100 Incremento de linha : 1 Incremento de pgina : 10 Parmetros : hWnd Window Handle O handle ou o nome da scroll bar. nMin Number A posio inicial. nMax Number A posio final. nLinha Number - O valor do incremento de linha. nPag Number - O valor do incremento de pgina. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSendClassMessage Sintaxe : nRetorno = SalSendClassMessage ( nMensagem, wParam, lParam ) Descrio : Ativa o cdigo que foi implementado, ou herdado, no message actions de um objeto da classe. Parmetros : nMensagem Number O nmero da mensagem. wParam Number O wParam. lParam Number o lParam. Valor de Retorno : nRetorno o valor retornado pela mensagem. Se a mensagem no retornar nenhum valor, nRetorno zero. Funo : SalSendClassMessageNamed Sintaxe : nRetorno = SalSendClassMessageNamed ( NomeClasse, nMensagem, wParam, lParam ) Descrio : Ativa o cdigo que foi implementado, ou herdado, no message actions de um objeto da classe. Utilize esta funo quando uma classe for o resultado de uma herana mltipla e voc quiser especificar a classe base que possui o message actions a ser executado. A classe informada em NomeClasse deve ser uma classe base da classe de onde a chamada est sendo feita. Parmetros : NomeClasse nMensagem wParam lParam Template O nome da classe base. Number O nmero da mensagem. Number O wParam. Number O lParam.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nRetorno o valor retornado pela mensagem. Se a mensagem no retornar nenhum valor nRetorno zero. Funo : SalSendMsg Sintaxe : nRetorno = SalSendMsg ( hWnd, nMensagem, wParam, lParam ) Descrio : Envia uma determinada mensagem para um objeto. O processamento desviado para a mensagem enviada, s retornando quando os procedimentos codificados na mensagem terminarem. Parmetros : hWnd nMensagem wParam lParam Window Handle O handle ou o nome do objeto que receber a mensagem. Number O nmero da mensagem. Number O wParam. Number o lParam.

Valor de Retorno : nRetorno o valor retornado pela mensagem. Se a mensagem no retornar nenhum valor, nRetorno zero. Funo : SalSendMsgToChildren Sintaxe : bOk = SalSendMsgToChildren ( hWndPai , nMensagem, wParam, lParam ) Descrio : Envia uma mensagem todos os objetos filhos de um form window, dialog box, table window ou mdi. Parmetros : HWndPai Window Handle O handle ou nome de um form window, dialog box, table window ou mdi. nMensagem Number O nmero da mensagem. wParam Number O wParam. lParam Number o lParam. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSendValidateMsg Sintaxe : nStatus = SalSendValidateMsg ( ) Descrio : Envia uma mensagem SAM_Validate para o objeto com o foco. Utilize esta funo para forar a validao de um campo, antes de processar a ao de um menu. O Centura no envia automaticamente aos objetos a mensagem SAM_Validate quando um menu acionado. Nenhum Parmetro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nStatus pode ser um VALIDATE_OkClearFlag.

dos

valores

VALIDATE_Cancel,

VALIDATE_Ok

ou

Funo : SalSetDefButton Sintaxe : bOk = SalSetDefButton ( hWndBotao ) Descrio : Determina qual o boto default de um form window ou dialog box. Parmetro : hWndBotao Window Handle O handle ou o nome de um pushbutton.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetFieldEdit Sintaxe : bOk = SalSetFieldEdit ( hWndCampo , bFlag ) Descrio : Liga ou desliga o flag de edio de um data field, combo box, multiline text, coluna da table window ou picture. O flag de edio ligado sempre que o usurio altera o contedo de um data field, combo box, multiline text, ou coluna da table window. O flag de edio no ligado quando o contedo do objeto alterado atravs de um comando de banco de dados ou do comando Set. Parmetros : hWndCampo Window Handle O handle ou nome do objeto. bFlag Boolean Se TRUE, liga o flag. Se FALSE, desliga. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetFocus Sintaxe : hWndFoco = SalSetFocus ( hWnd ) Descrio : Coloca o foco num determinado objeto. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : hWndFoco o handle do objeto que possua o foco antes desta funo ser executada. Funo : SalSetMaxDataLength Sintaxe : bOk = SalSetMaxDataLength ( hWndCampo , nTamanho ) Descrio : Configura a quantidade limite de caracteres que podem ser armazenados num data field, multiline text ou coluna da table window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndCampo Window Handle O handle ou o nome do objeto. nTamanho Number O nmero mximo de caracteres. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetProfileString Sintaxe : bOk = SalSetProfileString ( sSeo, sEntrada, sValor, sArquivo) Descrio : Define o valor de uma entrada de uma seo especfica num arquivo de inicializao ou no registro do windows. Todos os valores armazenados devem estar em formato string. Estes valores podem ser recuperados, utilizando-se a funo SalGetProfileInt. Parmetros : sSeo sEntrada sValor sArquivo String A identificao da seo. String A entrada onde o valor ser armazenado. String O valor a ser armazenado. String - O nome do arquivo de inicializao ou o nome da empresa, dependendo da configurao feita, atravs da funo SalUseRegistry. Caso voc esteja utilizando um arquivo de inicializao e no tenha especificado o path completo, o Centura pesquisa pelo arquivo no subdiretrio do Windows.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetWindowLabelText Sintaxe : bOk = SalSetWindowLabelText ( hWnd, sTexto ) Descrio : Define um background text de um objeto. Para ser associado a um objeto, o background text precisa vir imediatamente anterior ao objeto no outline. Parmetros : hWnd Window Handle O handle ou o nome do objeto. sTexto String O texto do background text associado ao objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetWindowLoc Sintaxe : bOk = SalSetWindowLoc ( hWnd, nX, nY ) Descrio : Move um objeto para uma nova posio. Parmetros : hWnd Window Handle O handle ou nome do objeto. nX Number A posio do eixo X ( em unidades de form ).

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nY

Number A posio do eixo Y ( em unidades de form ).

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetWindowSize Sintaxe : bOk = SalSetWindowSize ( hWnd , nLargura , nAltura ) Descrio : Redimensiona um objeto. Parmetros : hWnd Window Handle O handle ou o nome de um objeto. nLargura Number A nova largura do objeto ( em unidades de form ). nAltura Number A nova altura do objeto ( em unidades de form ). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalSetWindowText Sintaxe : bOk = SalSetWindowText ( hWnd, sTexto ) Descrio : Especifica o texto de um objeto. O texto de um objeto o ttulo de um form window, dialog box, table window, radio button, check box ou pushbutton. No caso de data field e coluna da table window, o texto o valor do objeto em formato string. Considerando-se o tipo de dado do objeto. Para um combo box, o texto o valor da sua parte editvel. Se o combo box estiver configurado para no permitir edies, o Centura procura na lista de valores um valor que corresponda ao texto, selecionando-o, caso encontre. Este mesmo comportamento se aplica aos objetos do tipo list box. A funo SalSetWindowText desliga o flag de edio do campo. Parmetros : hWnd Window Handle O handle ou nome do objeto. sTexto String O texto do objeto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalShowWindow Sintaxe : bOk = SalShowWindow ( hWnd ) Descrio : Torna um objeto visvel. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se o estado do objeto, anterior a chamada da funo, era visvel, e bOk FALSE se o estado era invisvel. Funo : SalShowWindowAndLabel Sintaxe : bOk = SalShowWindowAndLabel ( hWnd ) Descrio : Torna um objeto e o seu background text visveis. Parmetro : hWnd Window Handle O handle ou o nome do objeto.

Valor de Retorno : bOk TRUE se o estado do objeto, anterior a chamada da funo, era visvel, e bOk FALSE se o estado era invisvel. Funo : SalStatusGetText Sintaxe : nTamanho = SalStatusGetText ( hWnd, sText, nTamanho ) Descrio : Obtm o texto mostrado na barra de status de um form window ou mdi. Parmetros : hWnd Window Handle O handle ou nome do objeto. sTexto Receive String O texto mostrado na barra de status. nTamanho Number O tamanho mximo do texto do objeto. Valor de Retorno : nTamanho o tamanho do texto recuperado. Se nTamanho for zero, significa que o objeto no possui texto algum. Funo : SalStatusSetText Sintaxe : bOk = SalStatusSetText ( hWnd, sTexto ) Descrio : Apresenta um determinado texto na barra de status de um form window ou de um mdi. Parmetros : hWnd Window Handle O handle ou o nome de um form window ou mdi. sTexto String O texto que ser mostrado na barra de status. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalStatusSetVisible Sintaxe : bOk = SalStatusSetVisible ( hWnd, bMostra ) Descrio : Mostra e esconde a barra de status de um form window ou de um mdi. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWnd bMostra

Window Handle O handle ou o nome de um form window ou mdi. Boolean Se TRUE, a barra de status apresentada, se FALSE, escondida.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalStrCompress Sintaxe : bOk = SalStrCompress ( sString ) Descrio : Comprime uma determinada string. Use esta funo para comprimir strings para armazenamento em disco ou em bancos de dados. Use, tambm, para armazenamento de imagens. Parmetro : sString Receive String A string a ser comprimida.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalStrFirstC Sintaxe : bOk = SalStrFirstC ( sString, nChar ) Descrio : Extrai o primeiro caractere de uma string e retorna o seu valor decimal. Parmetros : sString Receive String A string que ter o seu primeiro caractere retirado. nChar Receive Number O valor decimal do primeiro caractere em sString. Valor de Retorno : bOk sempre TRUE, a menos que sString seja uma string invlida ou nula. Funo : SalStrGetBufferLength Sintaxe : nTamanho = SalStrGetBufferLength ( sString ) Descrio : Retorna o tamanho do buffer de uma string. O Centura armazena as variveis string em buffers o tamanho do buffer inclui o caractere nulo de terminao. Parmetro : sString String A string cujo tamanho voc deseja obter.

Valor de Retorno : nTamanho o tamanho do buffer da varivel. Funo : SalStrIsValidDateTime Sintaxe : bOk = SalStrIsValidDateTime ( sDataHora ) Descrio : Verifica se a string representa um valor date/time vlido.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : sDataHora

String Uma string contendo um valor data/hora.

Valor de Retorno : bOk TRUE se sDataHora contm um valor date/time vlido. bOk FALSE se no for um valor vlido do tipo date/time. Funo : SalStrIsValidNumber Sintaxe : bOk = SalStrIsValidNumber ( sNumero ) Descrio : Verifica se o contedo de uma varivel string representa um valor numrico vlido. Parmetro : sNumero String A string que contm um valor numrico.

Valor de Retorno : bOk TRUE se sNumero for um nmero vlido e FALSE se no for um valor vlido. Funo : SalStrLeft Sintaxe : nTamanho = SalStrLeft ( sOrigem, nExtrair, sDestino ) Descrio : Extrai o nmero de caracteres especificado em nExtrair da string em sOrigem, armazenando o resultado em sDestino. tomado como base o primeiro caractere mais esquerda. Parmetros : sOrigem String A string origem. nExtrair Number O nmero de caracteres a serem extrados de sOrigem. sDestino Receive String A string retirada de sOrigem. Valor de Retorno : nTamanho o tamanho da nova string em sDestino. Funo : SalStrLeftX Sintaxe : sDestino = SalStrLeftX ( sOrigem, nExtrair ) Descrio : Extrai o nmero de caracteres especificado em nExtrair da string em sOrigem. tomado como base o primeiro caractere mais esquerda. Parmetros : sOrigem String A string origem. nExtrair Number O nmero de caracteres a ser extrado de sOrigem. Valor de Retorno : sDestino a nova string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrLength Sintaxe : nTamanho = SalStrLength ( sString ) Descrio : Retorna o tamanho de uma string. O Centura, ao armazenar uma string, coloca um caractere nulo indicando o final da string. Este caractere no est includo no seu tamanho. Parmetro : sString String A string cujo tamanho voc quer obter.

Valor de Retorno : nTamanho o tamanho da string. Funo : SalStrLop Sintaxe : nCaractere = SalStrLop ( sString ) Descrio : Retorna o valor numrico decimal, padro ASCII, do primeiro caractere de uma string, removendo-o. Parmetro : sString Receive String A varivel string.

Valor de Retorno : nCaractere o valor ASCII do primeiro caractere da string. Quando a string nula, nCaractere igual a zero. Funo : SalStrLower Sintaxe : nTamanho = SalStrLower ( sOrigem, sDestino ) Descrio : Converte uma string para letras minsculas. Parmetros : sOrigem String A string a ser convertida. sDestino String A string j convertida. Valor de Retorno : nTamanho o tamanho da varivel sDestino. Funo : SalStrLowerX Sintaxe : sDestino = SalStrLowerX ( sOrigem ) Descrio : Converte uma string para letras minsculas. Parmetro : sOrigem String A string a ser convertida.

Valor de Retorno : sDestino a string sOrigem convertida.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrMid Sintaxe : nTamanho = SalStrMid ( sOrigem , nPosInicial, nQtdCarac, sDestino ) Descrio : Retorna uma parte da string original, iniciando na posio nPosInicial, contendo o nmero de caracteres especificado em nQtdCarac. Parmetros : sOrigem String a string original. nPosInicial Number a posio inicial da string que voc deseja obter. nQtdCarac Number a quantidade de caracteres que voc deseja obter, a partir da posio inicial. Observe que a posio mais esquerda da string a posio zero. sDestino Receive String a poro que foi retirada da string original. Valor de Retorno : nTamanho o tamanho da string obtida. Funo : SalStrMidX Sintaxe : sDestino = SalStrMidX ( sOrigem , nPosInicial, nQtdCarac ) Descrio : Retorna uma parte da string original, iniciando na posio nPosInicial, contendo o nmero de caracteres especificado em nQtdCarac. Parmetros : sOrigem String a string original. nPosInicial Number a posio inicial da string que voc deseja obter. nQtdCarac Number a quantidade de caracteres que voc deseja obter, a partir da posio inicial. Observe que a posio mais esquerda da string a posio zero. Valor de Retorno : sDestino a poro que foi retirada da string original. Funo : SalStrProper Sintaxe : nTamanho = SalStrProper ( sOrigem, sDestino ) Descrio : Converte uma string, de modo que todas as palavras iniciem por letras maisculas. Parmetros : sOrigem String A string a ser convertida. sDestino String A string j convertida. Valor de Retorno : nTamanho o tamanho da varivel sDestino. Funo : SalStrProperX Sintaxe : sDestino = SalStrProperX ( sOrigem )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Converte uma string, de modo que todas as palavras iniciem por letras maisculas. Parmetro : sOrigem String A string a ser convertida.

Valor de Retorno : sDestino a string j convertida.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrRepeat Sintaxe : nTamanho = SalStrRepeat ( sOrigem, nQtd, sDestino ) Descrio : Concatena uma string com ela mesma, um determinado nmero de vezes. Parmetros : sOrigem String A string origem. nQtd Number o nmero de vezes que a string ser concatenada. sDestino Receive String a nova string gerada. Valor de Retorno : nTamanho o tamanho da nova string obtida. Funo : SalStrRepeatX Sintaxe : sDestino = SalStrRepeatX ( sOrigem, nQtd ) Descrio : Concatena uma string com ela mesma, um determinado nmero de vezes. Parmetros : sOrigem String A string origem. nQtd Number o nmero de vezes que a string ser concatenada. Valor de Retorno : sDestino a nova string gerada. Funo : SalStrReplace Sintaxe : nTamanho = SalStrReplace ( sOrigem, nPosInicial, nTamanho, sTroca, sDestino ) Descrio : Substitui caracteres de uma string por caracteres de outra string. Parmetros : sOrigem nPosInicial nTamanho sTroca sDestino String A string origem, que contm os caracteres que sero substitudos. Number A posio inicial, onde a busca ter incio. Number O nmero de caracteres a serem substitudos. String A string nova, que ser inserida a partir da posio em nPosInicial. Receive String A nova string.

Valor de Retorno : nTamanho o tamanho da nova string. Funo : SalStrReplaceX Sintaxe : sDestino = SalStrReplaceX ( sOrigem, nPosInicial, nTamanho, sTroca ) Descrio : Substitui caracteres de uma string por caracteres de outra string. Parmetros : sOrigem String A string origem, que contm os caracteres que sero substitudos. nPosInicial Number A posio inicial, onde a busca ter incio. nTamanho Number O nmero de caracteres a serem substitudos.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sTroca

String A string nova, que ser inserida a partir da posio em nPosInicial.

Valor de Retorno : sDestino a nova string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrRight Sintaxe : nTamanho = SalStrRight ( sOrigem , nNumCarac, sDestino ) Descrio : Obtm uma string de um determinado tamanho, comeando com o ltimo caractere de sOrigem. Parmetros : sOrigem String A string origem. nNumCarac Number O nmero de caracteres a ser extrado da varivel sOrigem. sDestino Receive String A nova string. Valor de Retorno : nTamanho o tamanho da nova string. Funo : SalStrRightX Sintaxe : sDestino = SalStrRightX ( sOrigem , nNumCarac ) Descrio : Obtm uma string de um determinado tamanho, comeando com o ltimo caractere de sOrigem. Parmetros : sOrigem String A string origem. nNumCarac Number O nmero de caracteres a ser extrado da varivel sOrigem. Valor de Retorno : sDestino a nova string. Funo : SalStrScan Sintaxe : nPosInicial = SalStrScan ( sOrigem, sBuscar ) Descrio : Pesquisa por sBuscar em sOrigem e retorna a primeira posio onde sBuscar foi encontrada. Parmetros : sOrigem String A string origem, cujo caractere inicial zero.. sBuscar String a string que voc deseja encontrar em sOrigem. Valor de Retorno : nPosInicial a posico onde a string sBuscar foi encontrada em sOrigem. Se o Centura no encontr-la, nPosInicial ser 1. Funo : SalStrSetBufferLength Sintaxe : bOk = SalStrSetBufferLength ( sString, nTamanho ) Descrio : Define o tamanho do buffer de uma varivel string. Este procedimento s se faz necessrio quando precisamos utilizar uma varivel tipo Receive String junto com uma funo externa. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sString nTamanho

String A varivel string cujo tamanho do buffer voc deseja definir. Number O tamanho da varivel sString.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrToDate Sintaxe : dtData = SalStrToDate ( sValorData ) Descrio : Converte uma string em um valor tipo Date/Time. Esta funo utiliza o formato de data do sistema operacional. Para utilizar um formato independente, utilize a funo SalDateConstruct. Parmetro : sValorData String O valor a ser convertido para o tipo de dado Date/Time.

Valor de Retorno : dtData a data convertida. Funo : SalStrTokenize Sintaxe : nQtd = SalStrTokenize ( sOrigem , sInicial , sFinal, sVetor ) Descrio : Divide uma string em partes, baseado nos caracteres delimitadores inicial e final. O Centura usa os delimitadores para reconhecer o incio e fim de cada parte da string. Parmetros : sOrigem sInicial sFinal sVetor String A string a ser dividida. String A string que contm o delimitador inicial. String A string que contm o delimitador final. String Array Um vetor que ser criado com as partes divididas da string sOrigem.

Valor de Retorno : nQtd a quantidade de partes em que a string original foi dividida. Funo : SalStrToNumber Sintaxe : nNumero = SalStrToNumber ( sString ) Descrio : Converte uma string em um nmero. Parmetro : sString String A string a ser convertida.

Valor de Retorno : nNumero o nmero resultado da converso. Funo : SalStrTrim Sintaxe : nNovoTamanho = SalStrTrim ( sOrigem, sDestino ) Descrio : Elimina os espaos encontrados no incio e no final da varivel string. Os espaos duplos e os tabs encontrados no meio da string so convertidos em um espao simples. Parmetros : sOrigem String A string original. sDestino Receive String A nova string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nNovoTamanho o tamanho da string sDestino.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalStrTrimX Sintaxe : sDestino = SalStrTrimX ( sOrigem ) Descrio : Elimina os espaos encontrados no incio e no final da varivel string. Os espaos duplos e os tabs encontrados no meio da string so convertidos em um espao simples. Parmetro : sOrigem String A string original.

Valor de Retorno : sDestino a nova string. Funo : SalStrUncompress Sintaxe : bOk = SalStrUncompress ( sString ) Descrio : Descomprime uma determinada string. Use esta funo para descomprimir strings que foram comprimidas, utilizando-se a funo SalStrCompress. Parmetro : sString Receive String A string a ser descomprimida.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalStrUpper Sintaxe : nTamanho = SalStrUpper( sOrigem, sDestino ) Descrio : Converte todas as letras de uma varivel em suas respectivas letras maisculas. Parmetros : sOrigem String A string a ser convertida. sDestino Receive String A string j convertida em letras maisculas. Valor de Retorno : nTamanho o tamanho da string sDestino. Funo : SalStrUpperX Sintaxe : sDestino = SalStrUpperX( sOrigem ) Descrio : Converte todas as letras de uma varivel em suas respectivas letras maisculas. Parmetro : sOrigem String A string a ser convertida.

Valor de Retorno : sDestino a string convertida. Funo : SalTBarSetVisible Sintaxe : bOk = SalTBarSetVisible ( hWnd, bVisivel )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Mostra ou esconde a barra de ferramentas de um top level ou de um mdi. Parmetros : hWnd Window Handle O handle ou o nome do top level ou do mdi. bVisivel Boolean Use TRUE para mostrar a barra de ferramentas e FALSE para esconder. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblAnyRows Sintaxe : bOk = SalTblAnyRows ( hWndTabela, nFlagsOn, nFlagsOff ) Descrio : Verifica se alguma linha de uma table window possui os flags indicados. Se voc especificar zero nos parmetros nFlagsOn e nFlagsOff, a funo SalTblAnyRows retornar TRUE se a table window tiver alguma linha, independente do seu flag. Parmetros : hWndTabela Window Handle O handle da tabela. nFlagsOn Number Os flags que a linha dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* nFlagsOff Number Os flags que a linha no dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* Valor de Retorno : bOk TRUE, se a table window tiver alguma linha com os flags indicados em nFlagsOn e se no tiver nenhuma linha com os flags em nFlagsOff. Funo : SalTblClearSelection Sintaxe : bOk = SalTblClearSelection ( hWndTabela ) Descrio : Desmarca todas as linhas de uma table window. Parmetro : hWndTabela Window Handle O handle ou o nome da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblColumnAverage Sintaxe : nMedia = SalTblColumnAverage ( hWndTabela , nNumColuna, nFlagsOn, nFlagsOff ) Descrio : Calcula a mdia dos valores de todas as colunas ou apenas da coluna especificada. O Centura utiliza os flags de linha para identificar as linhas que voc deseja calcular a mdia. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nNumColuna Number O identificador da coluna. nFlagsOn Number Os flags que a linha dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* nFlagsOff Number Os flags que a linha no dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_*

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nMedia a mdia de todos os valores das colunas de uma table window ou apenas da coluna especificada. Se algum erro ocorrer, nMedia ser igual a zero.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblColumnSum Sintaxe : nSoma = SalTblColumnSum ( hWndTabela , nNumColuna, nFlagsOn, nFlagsOff ) Descrio : Calcula a soma dos valores de todas as colunas ou apenas da coluna especificada. O Centura utiliza os flags de linha para identificar as linhas que voc deseja calcular a soma. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nNumColuna Number O identificador da coluna. nFlagsOn Number Os flags que a linha dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* nFlagsOff Number Os flags que a linha no dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* Valor de Retorno : nSoma a soma de todos os valores das colunas de uma table window ou apenas da coluna especificada. Se algum erro ocorrer, nSoma ser igual a zero. Funo : SalTblCopyRows Sintaxe : bOk = SalTblCopyRows ( hWndTabela , nFlagsOn, nFlagsOff ) Descrio : Copia o contedo das linhas de uma table window para a rea de transferncia, em formato texto. Na rea de transferncia as colunas so separadas pelo caractere TAB, e as linhas pelo caractere de fim de linha. Especifique zero em nFlagsOn e zero em nFlagsOff para copiar a tabela inteira. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nFlagsOn Number Os flags que a linha dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* nFlagsOff Number Os flags que a linha no dever ter. Voc pode combinar mais de um flag usando o operador OR (|) para concaten-los. Os flags que podem ser utilizados so representados pelas constantes ROW_* Valor de Retorno : bOk TRUE se alguma linha da table window foi copiada para a rea de transferncia e FALSE se nenhuma linha foi copiada, ou se alguma linha no pde ser copiada para a rea de transferncia. Funo : SalTblCreateColumn Sintaxe : nColuna = SalTblCreateColumn ( hWndTabela, nPosicao, nLargura, nTamMax, sTitulo ) Descrio : Cria uma coluna numa table window em tempo de execuo. A coluna criada do tipo string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nPosicao Number A posio visual da coluna na table window. Especifique 1 para que a coluna seja criada na posio mais esquerda da tabela. Especifique 2 para que a coluna seja a segunda, e assim por diante. nLargura Number a largura da coluna em polegadas. nTamMax Number o maior nmero de caracteres que a coluna pode armazenar. sTitulo String O ttulo da coluna. Valor de Retorno : nColuna o identificador da coluna. Se algum erro ocorrer, nColuna igual a zero. Funo : SalTblDefineRowHeader Sintaxe : bOk = SalTblDefineRowHeader ( hWndTabela, sTitulo, nLargura, nFlag, hWndColuna ) Descrio : Define a aparncia e o comportamento do cabealho da linha ( row header ). O cabealho da linha a rea no editvel situada esquerda da table window, que usada normalmente para mostrar informaes sobre o estado da linha. Pode ser tambm usado para mostrar o nmero da linha. Parmetros : hWndTabela sTitulo nLargura nFlag Window Handle O handle (ou o nome) da table window. String O ttulo da coluna do cabealho da linha (row header). Number A largura do cabealho da linha (row header). Number Os atributos do cabealho da linha. Voc pode combinar estes flags utilizando o operador OR ( | ). Entre os possveis valores para o flag esto : TBL_RowHdr_MarkEdits, TBL_RowHdr_ShareColor, TBL_RowHdr_Sizable ou TBL_RowHdr_Visible. hWndColuna Window Handle Opcionalmente, o cabealho da linha pode mostrar informaes de alguma coluna da table window, ento, voc pode informar neste parmetro o handle da coluna. Caso informe hWndNULL, a coluna do cabealho da linha ficar vazia. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblDefineSplitWindow Sintaxe : bOk = SalTblDefineSplitWindow ( hWndTabela , nLinhas, bDimensionavel ) Descrio : Divide uma table window horizontalmente em duas partes. Voc pode inserir linhas numa metade menor da table window. Isto conveniente quando no se tem conhecimento do nmero total de linhas de uma table window. Esta rea da table window tambm pode ser usada para mostrar um resumo de informaes, totais etc. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Number O nmero de linhas que a nova rea dividida da table window ter. bDimensiona Boolean Se voc informar TRUE, o usurio poder redimensionar o vel tamanho desta nova rea criada. Se informar FALSE, o usurio no podera alterar o tamanho. nLinhas Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblDeleteRow Sintaxe : bOk = SalTblDeleteRow ( hWndTabela , nLinha , nAjustar ) Descrio : Apaga uma linha da table window, mas no apaga a linha correspondente no banco de dados. Parmetros : hWndTabela Window Handle O handle (ou o nome) da tabela. nLinha Number O nmero da linha que voc deseja apagar. nAjustar Boolean Se voc especificar TBL_Adjust, o Centura apaga a linha da table window e do result set do SQLBase. Se voc especificar TBL_NoAdjust, a sincronizao entre a table window e o result set no feita. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblDeleteSelected Sintaxe : bOk = SalTblDeleteSelected ( hWndTabela , hSql ) Descrio : Aplica um comando SQL DELETE para todas as linhas da table window marcadas com o flag ROW_Selected. Antes de ser utilizado nesta funo, o comando DELETE precisa ser preparado. Assim que a linha for apagada do banco de dados, o Centura apaga tambm da table window. Como esta funo no executa um comando COMMIT, voc dever execut-lo para garantir que a operao de DELETE no ser perdida, no caso de um ROLLBACK. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. hSql Sql Handle O handle com o comando DELETE previamente preparado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblDestroyColumns Sintaxe : bOk = SalTblDestroyColumns ( hWndTabela ) Descrio : Esta funo destri todas as colunas que foram criadas automaticamente, atravs da funo SalTblCreateColumn, e as colunas criadas em tempo de execuo pela funo SalTblPopulate. Funciona apenas nas table window que possuem apenas colunas criadas dinamicamente. Parmetro : hWndTabela Window Handle O handle (ou o nome) da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a tabela possuir colunas criadas em tempo de design, ou se o handle informado for invlido. Funo : SalTblDoDeletes Sintaxe : bOk = SalTblDoDeletes ( hWndTabela , hSql , nFlagsOn ) Descrio : Aplica um comando SQL DELETE para todas as linhas da table window marcadas com o flag especificado em nFlagsOn. Antes de ser utilizado nesta funo, o comando DELETE precisa ser preparado. Assim que a linha for apagada do banco de dados, o Centura apaga tambm da table window. Como esta funo no executa um comando COMMIT, voc deve execut-lo para garantir que a operao de DELETE no ser perdida no caso de um ROLLBACK. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. hSql Sql Handle O handle sql com o comando DELETE previamente preparado. nFlagsOn Number O Centura usa este flag para determinar quais linhas da table window sero apagadas. Voc pode especificar um dos seguintes flags : ROW_MarkDeleted e

Pgina PAGE 582

Programando com o Centura Team Developer 2000

ROW_Selected. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o handle da tabela, ou o handle sql, forem invlidos.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblDoInserts Sintaxe : bOk = SalTblDoInserts ( hWndTabela , hSql , bLimparFlags ) Descrio : Executa um comando SQL INSERT para todas as linhas da table window que tiverem o flag ROW_New ligados. O comando INSERT precisa ser preparado antes de utilizar esta funo. Como esta funo no executa o comando COMMIT, voc precisa execut-lo para garantir que a operao de INSERT no ser perdida no caso de um ROLLBACK. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. hSql Sql Handle O handle com o comando INSERT preparado. bLimparFlags Boolean Se voc especificar TRUE, o Centura limpa o flag ROW_New de cada linha inserida no banco de dados. Se voc especificar FALSE o Centura no limpa o flag. Valor de Retorno : bOk TRUE se a funo for executada com sucesso, e FALSE se o handle da tabela ou o handle sql forem invlidos. Funo : SalTblDoUpdates Sintaxe : bOk = SalTblDoUpdates ( hWndTabela , hSql , bLimparFlags ) Descrio : Executa um comando SQL UPDATE para todas as linhas da table window que tiverem o flag ROW_Edited ligados. O comando UPDATE dever ser preparado antes de utilizar esta funo. Como esta funo no executa um comando COMMIT, voc precisa execut-lo para garantir que a operao de UPDATE no ser perdida, no caso de um ROLLBACK. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. hSql Sql Handle O handle com o comando UPDATE preparado. bLimparFlags Boolean Se voc especificar TRUE, o Centura limpa o flag ROW_Edited de cada linha inserida no banco de dados. Se voc especificar FALSE, o Centura no limpa o flag. Valor de Retorno : bOk TRUE se a funo for executada com sucesso, e FALSE se falhar. Funo : SalTblFetchRow Sintaxe : nResultado = SalTblFetchRow ( hWndTabela , nLinha ) Descrio : Se a linha especificada em nLinha no estiver no cache da table window, o Centura envia uma mensagem SAM_FetchRow para a table window, permitindo que a linha seja recuperada do banco de dados ou de alguma outra fonte de dados. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. nLinha Number O nmero da linha.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : nResultado um dos seguintes valores: TBL_RowDeleted Se a linha especificada no pde ser recuperada porque foi apagada por outra transao; TBL_RowFetched Se a linha foi recuperada com sucesso ; TBL_NoMoreRows - Se a linha especificada no pde ser recuperada porque no foi encontrada, e quando no existem mais linhas alm da linha informada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblFindNextRow Sintaxe : bOk = SalTblFindNextRow ( hWndTabela , nLinha , nFlagsOn , nFlagsOff ) Descrio : A partir da linha especificada, pesquisa por uma linha que atenda as configuraes dos flags informados. A pesquisa pra na primeira linha encontrada que contenha um dos flags especificados em nFlagsOn, e no contenha nenhum dos flags em nFlagsOff. Utilize esta funo num loop ( comandos While e Loop... ) para encontrar todas as linhas que satisfaam uma condio. Voc no precisa incrementar o nmero da linha, o Centura continua a pesquisa iniciando na prxima linha. Para iniciar a pesquisa na primeira linha, especifique TBL_MinRow em nLinha. Ateno : Voc no pode utilizar TBL_MinRow, se antes associar este valor a uma varivel. Isto porque TBL_MinRow uma constante do Centura, e o parmetro nLinha um parmetro tipo receive, assim, seu valor poder ser alterado na funo. Parmetros : hWndTabela Window Handle O handle (ou o nome) da tabela. nLinha Receive Number A linha onde o Centura ir iniciar a pesquisa. A busca inicia no valor informado em nLinha + 1. Quando o Centura encontra uma linha, ele retorna o nmero desta neste parmetro. nFlagsOn Number O flag que a linha dever ter. nFlagsOff Number O flag que a linha no pode ter. Voc pode especificar os flags ROW_* em ambos os parmetros ( nFlagsOn e nFlagsOff ). Se quiser, pode especificar mais de um flag, separando-os com o operador OR ( | ). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se nenhuma linha for encontrada. Funo : SalTblFindPrevRow Sintaxe : bOk = SalTblFindPrevRow ( hWndTabela , nLinha , nFlagsOn , nFlagsOff ) Descrio : A partir da linha especificada, pesquisa em ordem decrescente, por uma linha que atenda as configuraes dos flags informados. A pesquisa pra na primeira linha encontrada que contenha um dos flags especificados em nFlagsOn, e no contenha nenhum dos flags em nFlagsOff. Utilize esta funo num loop (comandos While , Loop... ) para encontrar todas as linhas que satisfaam a condio especificada. Voc no precisa decrementar o nmero da linha, o Centura continua a pesquisa iniciando na linha anterior. Para iniciar a pesquisa na ltima linha, especifique TBL_MaxRow em nLinha. Ateno : Voc no pode utilizar TBL_MaxRow se antes associar este valor a uma varivel. Isto porque TBL_MaxRow uma constante do Centura, e o parmetro nLinha um parmetro tipo receive, assim, seu valor poder ser alterado na funo. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndTabela nLinha

nFlagsOn nFlagsOff

Window Handle O handle (ou o nome) da tabela. Receive Number A linha onde o Centura ir iniciar a pesquisa. A busca inicia no valor informado em nLinha - 1. Quando o Centura encontra uma linha, ele retorna o nmero desta neste parmetro. Number O flag que a linha dever ter. Number O flag que a linha no pode ter. Voc pode especificar os flags ROW_* em ambos os parmetros ( nFlagsOn e nFlagsOff ). Se quiser, pode especificar mais de um flag, separando-os com o operador OR ( | ).

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se nenhuma linha for encontrada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblGetColumnText Sintaxe : bOk = SalTblGetColumnText ( hWndTabela , nColuna , sTexto ) Descrio : Recupera os dados contidos numa coluna da table window. Ser recuperado o valor da linha que estiver com o contexto. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. nColuna Number O identificador da coluna. a ordem da coluna no outline. sTexto Receive String Os dados da coluna. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblGetColumnTitle Sintaxe : nTamanho = SalTblGetColumnTitle ( hWndColuna , sTexto , nTamanho ) Descrio : Obtm o ttulo de uma table window. Parmetros : hWndColuna Window Handle O handle (ou o nome) de uma coluna da table window. sTexto Receive String O ttulo da coluna. nTamanho Number O tamanho mximo do ttulo a ser recuperado. Valor de Retorno : nTamanho o tamanho do ttulo recuperado em sTexto. Funo : SalTblGetColumnWindow Sintaxe : hWndColuna = SalTblGetColumnWindow ( hWndTabela , nColuna , nFlags ) Descrio : Obtm o handle de uma coluna da table window. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. nColuna Number - O identificador da coluna. a ordem da coluna no outline. nFlags Number Uma constante que mostra quando o valor em nColuna identifica a posio da coluna no outline, ou a posio visual da coluna. Os possveis valores so COL_GetID e COL_GetPos. Valor de Retorno : hWndColuna o handle da coluna recuperada. hWndColuna hWndNULL, se o Centura no conseguir encontrar a coluna.

Funo : SalTblInsertRow Sintaxe : nNovaLinha = SalTblInsertRow ( hWndTabela , nLinha ) Descrio : Inclui uma linha em branco numa table window. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndTabela nLinha

Window Handle O handle (ou o nome) da table window. Number O nmero da nova linha. Se este valor for um valor vlido de uma linha existente na table window, o Centura insere a linha na localizao exata. Se voc especificar TBL_MaxRow, o Centura inclui a linha no final da table window. Se a table window estiver dividida, ou seja, se a split window estiver ativa, e voc especificar TBL_MinSplitRow, o Centura adiciona a linha na primeira linha da split window.

Valor de Retorno : nNovaLinha o nmero da nova linha, se a funo for executada com sucesso. Ser igual a TBL_Error, se ocorrer algum erro. Funo : SalTblKillEdit Sintaxe : bOk = SalTblKillEdit ( hWndTabela ) Descrio : Tira a linha do modo de edio, selecionando-a. Isto faz com que a linha receba as mensagens SAM_Validate e SAM_KillFocus. Parmetro : hWndTabela Window Handle O handle (ou o nome) da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblKillFocus Sintaxe : bOk = SalTblKillFocus ( hWndTabela ) Descrio : Desliga o focus frame de uma table window, ou seja, tira o foco da table window. Parmetro : hWndTabela Window Handle O handle (ou o nome) de uma table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblObjectsFromPoint Sintaxe : bOk = SalTblObjectsFromPoint ( hWndTabela, nX, nY, nLinha, hWndColuna, nFlags ) Descrio : Obtm a parte da table window localizada numa determinada coordenada. Parmetros : hWndTabela Window Handle O handle da table window. nX Number As coordenadas referentes ao lado esquerdo superior da table window. nY Number As coordenadas referentes ao lado esquerdo superior da table window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Receive Number Se nY estiver por cima de uma linha da tabela, nLinha o nmero dessa linha. hWndColuna Receive Window Handle - Se nY estiver por cima de uma coluna da tabela, hWndColuna o handle dessa coluna. hFlags Receive Number A parte da table window. Mostra a posio em que a coordenada X est localizada. Pode ser uma das seguintes constantes : TBL_XOverLockedColumns TBL_XOverLockedColumnsBorder TBL_XOverRowHeader TBL_XOverUnlockedColumns nLinha No caso da coordenada Y, pode ser uma das seguintes constantes : TBL_YOverColumnHeader TBL_YOverNormalRows TBL_YOverSplitBar TBL_YOverSplitRows Valor de Retorno : bOk TRUE se a funo for executada com sucesso, e FALSE se falhar. Funo : SalTblPasteRows Sintaxe : bOk = SalTblPasteRows ( hWndTabela ) Descrio : Cola o contedo da rea de transferncia na table window especificada. O Centura assume que as informaes contidas na rea de transferncia esto separadas por tabulaes, e em formato texto. O Centura inclui as novas linhas na table window, sem sobrepor as linhas j existentes, e converte aos tipos de dados correspondentes s colunas da table window. Parmetro : hWndTabela Window Handle O handle (ou nome) da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblPopulate Sintaxe : bOk = SalTblPopulate ( hWndTabela , hSql, sSelect, nMetodo ) Descrio : Compila e executa um comando SELECT, recupera as linhas do result set e carrega-as na table window. Alm de gerenciar a navegao na tabela. Esta funo tambm trabalha com table windows que no possuem colunas. O Centura cria as colunas em tempo de execuo, baseado na lista de colunas do comando SELECT, utilizando os tipos de dados e os nomes das colunas, como ttulos das colunas. Se voc chamar a funo SalTblPopulate novamente, durante a mesma seo, o Centura destruir as colunas criadas automaticamente pelo ltimo comando SELECT executado e criar novas colunas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A funo SalTblPopulate tambm trabalha com comandos SELECT que no possuem a clusula INTO. A table window precisa ter o mesmo nmero de colunas do comando SELECT, e seus tipos de dados precisam ser correspondentes. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. hSql Sql Handle O handle sql que ser utilizado para executar o comando SELECT informado em sSelect. sSelect String O comando SELECT. Se voc passar como parmetro uma string nula (STRING_Null) o Centura utiliza o ltimo comando preparado em hSql. Com isto, evita-se a necessidade de reprocessar o mesmo comando SELECT a cada chamada desta funo. nMetodo Number O modo como a table window ser populada. Especifique um dos valores: TBL_FillAll Carrega todos os dados retornados no comando SELECT, de uma s vez. S libera o acesso ao usurio quando todas as linhas do result set forem carregadas na table window. TBL_FillAllBackground Carrega os dados necessrios para ocuparem a parte visvel da table window. Passa ento o controle para a aplicao, enquanto continua a trazer as linhas restantes em segundo plano ( background ). TBL_FillNormal - Carrega os dados necessrios para ocuparem a parte visvel da table window. O restante s carregado quando o usurio solicitar, clicando na barra de rolagem. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o handle da tabela, ou o handle sql, forem invlidos. Funo : SalTblQueryColumnFlags Sintaxe : bLigado = SalTblQueryColumnFlags ( hWndColuna , nFlags ) Descrio : Testa o estado dos flags de uma coluna de uma table window. Parmetros : hWndColuna Window Handle O handle (ou o nome) da table window. nFlags Number os flags da coluna para serem testados. Voc pode combinar os flags de coluna ( COL_* ) utilizando o operador OR ( | ). Valor de Retorno : bLigado TRUE, se um dos flags indicados em nFlags estiver ativo, e FALSE, se nenhum dos flags indicados em nFlags estiver ativo. Funo : SalTblQueryColumnID Sintaxe : nColID = SalTblQueryColumnID ( hWndColuna ) Descrio : Obtm o identificador de uma coluna de uma table window. A posio da coluna no outline.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : hWndColuna Window Handle O handle ou o nome da table window. Valor de Retorno : nColID o identificador da coluna, ser 1 se o handle em hWndColuna for invlido. Funo : SalTblQueryColumnPos Sintaxe : nPosicao = SalTblQueryColumnPos ( hWndColuna ) Descrio : Obtm a posio relativa da coluna na table window. A posio visual. Parmetro : hWndColuna Window Handle O handle da table window. Valor de Retorno : nPosicao a posio visual da coluna na table window. Funo : SalTblQueryColumnWidth Sintaxe : bOk = SalTblQueryColumnWidth ( hWndColuna , nFormUnits ) Descrio : Obtm a largura ( em form units) de uma coluna da table window. Parmetros : hWndColuna Window Handle O handle da coluna. nFormUnits Receive Number A largura da coluna. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQueryContext Sintaxe : nLinha = SalTblQueryContext ( hWndTabela ) Descrio : Retorna a linha com o contexto numa table window. Esta, normalmente, a linha que est com o foco. Parmetro : hWndTabela Window Handle O handle ou o nome da table window.

Valor de Retorno : nLinha o nmero da linha que est com o contexto. Funo : SalTblQueryFocus Sintaxe : bOk = SalTblQueryFocus ( hWndTabela , nLinha , hWndColuna ) Descrio : Identifica a clula que est com o foco, numa table window. Parmetros : hWndTabela Window Handle O handle ou o nome da tabela.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nLinha Receive Number O nmero da linha que est com o foco. hWndColuna Receive Window Handle O handle da coluna que est com o foco. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQueryLinesPerRow Sintaxe : bOk = SalTblQueryLinesPerRow ( hWndTabela , nLinhas ) Descrio : Obtm a altura em linhas das linhas da table window. Com a funo SalTblSetLinesPerRow voc pode definir a altura das linhas da table window, essa altura a expressa em nmero de linhas. Parmetro : hWndTabela nLinhas Window Handle O handle (ou o nome) da table window. Receive Number - Um nmero que equivale a altura das linhas da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQueryLockedColumns Sintaxe : nNum = SalTblQueryLockedColumns ( hWndTabela ) Descrio : Obtm o nmero de colunas travadas de uma table window. As colunas travadas no so roladas horizontalmente numa table window, quando o usurio aciona as setas da barra horizontal. Parmetro : hWndTabela Window Handle O handle (ou o nome) da table window.

Valor de Retorno : nNum o nmero de colunas travadas da table window especificada. Funo : SalTblQueryRowFlags Sintaxe : bOk = SalTblQueryRowFlags ( hWndTabela , nLinha , nFlags ) Descrio : Consulta os flags da linha. Parmetros : hWndTabela Window Handle O handle (ou o nome) da table window. nLinha Number O nmero da linha, cujo o flag voc deseja consultar. nFlags Number Os flags de linha que se quer cosultar. Voc pode combinar os flags ROW_* com o operador OR ( | ) . Valor de Retorno : bOk TRUE se a linha possuir um dos flags citados em nFlags.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblQueryRowHeader Sintaxe : bOk = SalTblQueryRowHeader( hWndTabela, sTitulo, nMax, nLargura, nFlags, hWndColuna ) Descrio : Obtm as definies do header da linha. Parmetros : hWndTabela sTitulo nMax nLargura nFlags Window Handle O handle ou o nome da table window. Receive String O ttulo do cabealho da linha. Number O tamanho mximo do ttulo. Receive Number A largura do cabealho em pixels. Receive Number Os atributos do cabealho da linha. Especifique um desses atributos: TBL_RowHdr_MarkEdits, TBL_RowHdr_ShareColor, TBL_RowHdr_Sizable ou TBL_RowHdr_Visible. hWndColuna Receive Window Handle A coluna a que o cabealho da linha est associada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQueryScroll Sintaxe : bOk = SalTblQueryScroll ( hWndTabela , nPosicao, nMin, nMax ) Descrio : Retorna a posio atual do scroll da table window e os limites da table window. O scroll da table window o nmero da linha superior da janela. Voc pode definir os limites da table window com a funo SalTblSetRange, e o Centura muda estes valores quando linhas so includas ou excludas na table window. Parmetros : hWndTabela nPosicao nMin nMax Window Handle O handle ou o nome da table window. Receive Number A posio de scroll. Receive Number O limite inicial da table window. Receive Number O limite final da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQuerySplitWindow Sintaxe : bOk = SalTblQuerySplitWindow ( hWndTabela , nNumLinhas , bAjuste ) Descrio : Obtm as especificaes de como a table window est dividida horizontalmente. So as configuraes da split window. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nNumLinhas Receive Number O nmero de linhas visveis na split window. Retorna zero quando a split window no estiver ativa.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bAjuste

Receive Boolean Indica se o usurio pode ajustar o tamanho da split window, acionando o mouse numa das suas laterais.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblQueryTableFlags Sintaxe : bOk = SalTblQueryTableFlags ( hWndTabela, nFlags ) Descrio : Testa o status dos flags da table window. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nFlags Number O flag a ser testado na table window. Voc pode combinar os flags TBL_* utilizando o operador OR ( | ) . Valor de Retorno : bOk TRUE se a tabela possuir um dos flags informados em nFlags. Funo : SalTblQueryVisibleRange Sintaxe : bOk = SalTblQueryVisibleRange ( hWndTabela , nMin, nMax ) Descrio : Recupera o intervalo atual de linhas visveis na table window. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nMin Receive Number A primeira linha visvel. nMax Receive Number A ltima linha visvel. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblReset Sintaxe : bOk = SalTblReset ( hWndTabela ) Descrio : Limpa uma table window, descartando todas as linhas contidas no seu cache, e redefinindo seus limites para 0 e 1. Parmetro : hWndTabela Window Handle O handle ou o nome da table window.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblScroll Sintaxe : bOk = SalTblScroll ( hWndTabela, nLinha, hWndColuna, nTBLScroll ) Descrio : Posiciona a table window numa determinada coluna e linha. Parmetros : hWndTabela Window Handle O handle da table window. nLinha Number - O nmero da linha para posicionar. Se voc especificar 1, apenas a coluna posicionada. hWndColuna Window Handle O handle da coluna que ser posicionada. Se voc especificar hWndNull, apenas a linha posicionada. nTBLScroll Number O indicador para posicionar. Especifique uma das constantes: TBL_AutoScroll, TBL_ScrollBottom ou TBL_ScrollTop. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se o nmero da linha, ou o handle da coluna, forem invlidos. Funo : SalTblSetCellTextColor Sintaxe : bOk = SalTblSetCellTextColor ( hWndColuna , nCor, bDescatavel ) Descrio : Muda a cor do texto de uma clula da table window. Obs : Para obter a cor da clula de uma table window, utilize a funo SalColorGet, tomando como parmetro o handle da coluna e a cor COLOR_IndexCellText. Parmetros : hWndColuna Window Handle O handle ou o nome da coluna. nCor Number A cor do texto da clula. bDescartavel Boolean Determina se o Centura ir manter esta cor, mesmo aps os dados serem lidos novamente para a table window. Se voc usar TRUE, o Centura descarta as configuraes de cor, aps uma nova carga dos dados. Se voc especificar FALSE, o Centura mantm as definies de cor. Observe que isso requer recursos adicionais do sistema que permitam ao Centura manter as configuraes na memria. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetColumnFlags Sintaxe : bOk = SalTblSetColumnFlags ( hWndColuna , nFlags , bAcao ) Descrio : Ativa ou desativa os flags de uma coluna da table window. Parmetros : hWndColuna Window Handle O handle ou o nome da coluna da table window. nFlags Number O flag da coluna.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bAcao

Voc pode combinar os flags COL_* usando o operador OR ( | ). Boolean Se TRUE, o Centura liga o flag. Se FALSE desliga-o.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Para definir uma coluna como multiline text, use o flag COL_MultilineCell ( 0x008000000 ).

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblSetColumnPos Sintaxe : bOk = SalTblSetColumnPos ( hWndColuna , nPosicao ) Descrio : Move uma coluna da table window para uma nova posio. Parmetros : hWndColuna Window Handle O handle ou o nome da coluna a ser movida. nPosicao Number A nova posio da coluna da table window. Especifique 1 para a primeira posio, 2 para a Segunda e assim por diante. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetColumnText Sintaxe : bOk = SalTblSetColumnText ( hWndTabela , nColuna , sTexto ) Descrio : Associa um determinado valor a uma coluna da table window, a linha com o foco. Parmetros : hWndTabela Window Handle O handle ou o nome da table window nColuna Number A posio da coluna no outline. sTexto String A informao a ser associada coluna. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetColumnTitle Sintaxe : bOk = SalTblSetColumnTitle ( hWndColuna , sTitulo ) Descrio : Define o ttulo de uma determinada coluna da table window. Parmetros : hWndColuna Window Handle O handle ou onome de uma coluna da table window. sTitulo String O ttulo da coluna. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetColumnWidth Sintaxe : bOk = SalTblSetColumnWidth ( hWndColuna , nFormUnits ) Descrio : Define a largura visual da coluna. Parmetros : hWndColuna Window Handle O handle da coluna. nFormUnits Number A largura visual da coluna em form units. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblSetContext Sintaxe : bOk = SalTblSetContext ( hWndTabela , nLinha ) Descrio : Define a linha de contexto de uma table window. Parmetros : hWndTabela Window Handle O handle ou onome da table window. nLinha Number O nmero da linha que ser a nova linha de contexto. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetFlagsAnyRows Sintaxe : bLinha = SalTblSetFlagsAnyRows ( hWndTabela , nFlags , bAcao , nFlagsOn , nFlagsOff ) Descrio : Liga ou desliga os flags de uma linha. Parmetros : hWndTabela nFlags bAcao nFalgsOn Window Handle O handle ou o nome da table window. Number Os flags. Boolean Se voc usar TRUE, liga os flags, e FALSE desliga-os. Number Os flags que a linha dever ter. Pode-se combinar os valores dos flags utilizando o operador OR ( | ). Atribua zero para nFlagsOn e nFlagsOff, especificando todas as linhas. Number Os flags que a linha no dever ter. Seus valores podero ser combinados, utilizando o operador OR ( | ). Atribua zero para nFlagsOn e nFlagsOff, especificando todas as linhas.

nFlagsOff

Valor de Retorno : bLinha TRUE se alguma linha da table window tem algum dos flags especificados em nFlagsOn, e se se no tiver nenhum dos flags em nFlagsOff. Funo : SalTblSetFocusCell Sintaxe : bOk = SalTblSetFocusCell ( hWndTabela , nLinha , hWndColuna , nEditarMin , nEditarMax ) Descrio : Move o foco para uma clula ( coluna e linha ) especfica da table window. O Centura coloca a table window em modo de edio e permite ao usurio selecionar uma parte da informao na clula. Parmetros : hWndTabela nLinha hWndColuna nEditarMin Window Handle O handle ou o nome da tabela. Number O nmero da linha. Window Handle O handle da coluna para onde voc quer mover o foco. Number A posio do caractere mais esquerda da clula. Quando usado com nEditarMax, este parmetro permite ao usurio selecionar uma parte do texto de uma clula de uma table window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nEditarMax

Para selecionar todos os caracteres numa clula, especifique zero para este parmetro, e 1 para nEditarMax. Number A posio do caractere mais direita da clula. Quando usado com nEditarMin, este parmetro permite ao usurio selecionar uma parte do texto de uma clula de uma table window. Para selecionar todos os caracteres numa clula, especifique -1 para este parmetro, e zero para nEditarMin.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SalTblSetFocusRow Sintaxe : bOk = SalTblSetFocusRow ( hWndTabela, nLinha ) Descrio : Move o foco para uma determinada linha da tabela. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nLinha Number O nmero da linha que voc deseja que receba o foco. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetLinesPerRow Sintaxe : bOk = SalTblSetLinesPerRow ( hWndTabela, nLinhas ) Descrio : Define a altura das linhas da table window. Alterar a autura das linhas bastante til quando uma coluna definida como sendo do tipo multiline. O texto em cada clula dividido automaticamente. Voc pode definir que uma coluna ser do tipo multiline utilizando a funo SalTblSetColumnFlags com o flag COL_MultilineCell. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nLinhas Number O nmero de linhas que uma linha da table window ter. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetLockedColumns Sintaxe : bOk = SalTblSetLockedColumns ( hWndTabela , nNumColunas ) Descrio : Define o nmero de colunas travadas de uma tabela. As colunas que voc travar no sero afetadas pelas barras de rolagem horizontal da table window, ou seja, no sero roladas para a esquerda assim como as demais colunas. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nNumColuna Number O nmero de colunas a travar. Se voc especificar zero, as s colunas que por acaso estejam travadas, so destravadas. Especifique 1 para travar a primeira coluna mais esquerda da table window, e 2 para as duas primeiras colunas, 3 para as trs primeiras colunas e assim por diante. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetRange Sintaxe : bOk = SalTblSetRange ( hWndTabela , nMin , nMax )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Define a primeira e a ltima linha (o intervalo) de uma table window. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nMin Number O limite inicial de uma table window. Indica a primeira linha. nMax Number O limite final de uma table window. Indica a ltima linha. Para especificar uma table window vazia, utilize 0 e 1, para nMin e nMax, respectivamente. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetRow Sintaxe : nLinha = SalTblSetRow ( hWndTabela , nLinha ) Descrio : Posiciona o foco na primeira, anterior, prxima ou na ltima linha de uma table window. Parmetros : hWndTabela Window Handle O handle da table window. nLinha Number A posio do foco. Especifique um dos seguintes valores: TBL_SetFirstRow, TBL_SetLastRow, TBL_SetNextRow ou TBL_SetPrevRow. Valor de Retorno : nLinha o nmero da linha onde o foco foi posicionado. Funo : SalTblSetRowFlags Sintaxe : bOk = SalTblSetRowFlags ( hWndTabela , nLinha , nFlags , bLigar ) Descrio : Liga ou desliga o flag de uma linha da table window. Parmetros : hWndTabela Window Handle O handle da table window. nLinha Number O nmero da linha, cujo flag voc deseja ligar ou desligar. nFlags Number O flag da linha. Voc pode combinar qualquer um dos flags ROW_* usando o operador OR ( | ). bLigar Boolean Se voc especificar TRUE, o flag ser ligado, se especificar FALSE, o flag ser desligado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSetTableFlags Sintaxe : bOk = SalTblSetTableFlags ( hWndTabela , nFlags , bLigar )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Liga ou desliga um flag para a table window. Parmetros : hWndTabela Window Handle O handle ou o nome da table window. nFlags Number O flag da tabela. Voc pode combinar qualquer um dos flags TBL_* usando o operador OR ( | ). bLigar Boolean Se voc especificar TRUE, o flag ser ligado, se especificar FALSE, o flag ser desligado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTblSortRows Sintaxe : bOk = SalTblSortRows ( hWndTabela , nColuna , nOrdem ) Descrio : Classifica as linhas de uma table window, baseado nos valores de uma de suas colunas. Voc precisa criar esta coluna em tempo de design, desde que no seja atravs das funes SalTblPopulate ou SalTblCreateColumn. Importante: O cache da table window no pode ser descartvel, e a configurao do nmero mximo de linhas na memria deve ser grande o suficiente para suportar as linhas, enquanto so ordenadas. Parmetros : hWndTabela Window Handle O handle ou o nome da tabela. nColuna Number O nmero de ordem (no outline) da coluna que ser ordenada. nOrdem Number A direo da classificao. Utilize: TBL_SortDecreasing ou TBL_SortIncreasing. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTimerKill Sintaxe : bOk = SalTimerKill ( hWnd , nEvento ) Descrio : Destri um timer de um objeto. O Centura remove as mensagens SAM_Timer pendentes para o objeto hWnd. Defina um timer do sistema com a funo SalTimerSet. Observe que timers esto limitados aos recursos globais. Sua aplicao precisa checar o valor retornado pela funo SalTimerSet para verificar qual o timer que foi criado. Parmetros : hWnd Window Handle O handle ou o nome de um objeto. nEvento Number O identificador do timer a ser destrudo. Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso e FALSE se o timer no pode ser encontrado. Funo : SalTimerSet Sintaxe : bOk = SalTimerSet ( hWnd , nEvento, nMilesimosSeg ) Descrio : Cria um timer para um determinado objeto. Quando um evento temporrio ocorre, o Centura envia ao objeto uma mensagem SAM_Timer. Observe que timers esto limitados aos recursos globais. Sua aplicao precisa checar o valor retornado pela funo SalTimerSet para verificar qual o timer que foi criado. Parmetros : hWnd nEvento nMilesimosS eg Window Handle O handle ou o nome de um objeto. Number O identificador do evento temporrio a ser criado. Number O intervalo de tempo entre as mensagens SAM_Timer. O valor mximo para este parmetro 65535 (aproximadamente 65 segundos).

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalTrackPopupMenu Sintaxe : bOk = SalTrackPopupMenu ( hWndObj , sNomeMenu , nFlags , nX , nY ) Descrio : Cria um menu popup em tempo de execuo. Parmetros : hWndObj Window Handle O handle ou o nome do objeto top level que ir processar as mensagens geradas pelo menu. sNomeMen String O nome de um named menu que precisa estar definido em um destes u trs locais: na seo Named Menus do objeto informado em hWndObj na seo Named Menus do objeto pai do objeto hWndObj seo Named Menus do Global Declarations nFlags Number - Especifica como o popup menu ser mostrado. Voc pode combinar os valores dos flags com o operador OR ( | ) . Os flags disponveis so: TPM_LeftButton - O usurio pode clicar nos itens do menu com o boto esquerdo. TPM_RightButton - O usurio pode clicar nos itens do menu com o boto direito. TPM_CenterAlign - Centraliza o menu horizontalmente na janela. TPM_CursorX - Mostra o menu na posio do mouse, ao invs de usar a posio nX. TPM_CursorY - Mostra o menu na posio do mouse, ao invs de usar a posio nY. TPM_LeftAlign - Alinha o menu horizontalmente esquerda na janela.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nX nY

TPM_RightAlign - Alinha o menu horizontalmente direita na janela. Number A posio do popup menu no eixo X. Este valor ignorado caso voc utilize TPM_CursorX em nFlags. Number A posio do popup menu no eixo Y. Este valor ignorado caso voc utilize TPM_CursorY em nFlags.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalUpdateWindow Sintaxe : bOk = SalUpdateWindow ( hWndObj ) Descrio : Fora o Centura a atualizar um objeto. Pintar um objeto uma atividade de prioridade baixa no Windows. O Windows envia a mensagem WM_Paint para o final da fila de eventos de um objeto e processa antes todas as outras mensagens da lista. Se, durante a fase de desenvolvimento de sua aplicao, voc achar que o objeto est demorando muito para ser desenhado pelo Windows, voc pode forar o Centura a atualizar o objeto. Parmetro : hWndObj Window Handle O handle ou onome do objeto a ser atualizado.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalUseRegistry Sintaxe : bOk = SalUseRegistry ( bUsarRegistro , sNomeEmpresa ) Descrio : Esta funo utilizada para redirecionar todas as funes SalProfile* para o registro do Windows. Todos os valores utilizados nas funes SalProfile* so convertidos para strings. O nome do arquivo INI usado como ltimo parmetro nas funes SalProfile*, usado como nome da aplicao. Observe o caminho formado : \\HKEY_CURRENT_USER\Software\<nomeEmpresa>\<nomeAplicao>\<seo>\<configu rao>\ Parmetros : bUsarRegistr Boolean Se TRUE o registro ser utilizado. Se FALSE, arquivos INI sero o usados. sNomeEmpre String O nome da empresa a ser usado no registro. sa Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalValidateSet

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : bOk = SalValidateSet ( hWndCC, bValState, lParam ) Descrio : Voc utiliza SalValidateSet quando o usurio tenta mover o foco para um objeto Custom Control. No Centura, mudana de foco dispara uma validao. SalValidateSet diz ao Centura que o foco est sendo mudado para um objeto custom control, ento, o Centura executar a validao, caso seja necessrio. Parmetros : hWndCC Window Handle O handle de um objeto custom control. bValida Boolean Se TRUE, indica que o Centura deve validar este objeto quando ele perder o foco. lParam Number O Centura passa o valor que voc especificar na varivel lParam da mensagem SAM_Validate. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalWaitCursor Sintaxe : bOk = SalWaitCursor ( bLiga ) Descrio : Liga ou desliga a ampulheta, a qual o indicador visual de que a aplicao est ocupada. Voc precisa utilizar esta funo sempre que for necessrio informar ao usurio quando a aplicao est ocupada, e, tambm , ao ser liberada. Parmetro : bLiga Boolean Quando o Centura deve ligar ( TRUE ), ou desligar ( FALSE ) a ampulheta.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalWindowClassName Sintaxe : sClasse = SalWindowClassName( hWnd ) Descrio : Obtm o nome da classe de um objeto. Parmetro : hWnd Window Handle O handle de uma instncia de um determinado objeto.

Valor de Retorno : sClasse o nome da classe do objeto. Funo : SalWindowGetProperty Sintaxe : bOk = SalWindowGetProperty( hWndQO , sNomeProp , sValorProp ) Descrio : Obtm o valor da propriedade de uma instncia de determinado QuickObject.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hWndQO Window Handle O handle ou o nome do QuickObject. sNomeProp String O nome da propriedade. sValorProp Receive String O valor da propriedade recuperada. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalWindowHandleToNumber Sintaxe : nWnd = SalWindowHandleToNumber ( hWnd ) Descrio : Converte um window handle em um nmero. Por exemplo, voc pode passar um window handle como parmetro em wParam, atravs da funo SalSendMsg. Assim : Call SalSendMsg( hWndDestino , nMensagem , SalWindowHandleToNumber ( hWndItem ) , 0) Parmetro : hWnd Window Handle O handle a ser convertido.

Valor de Retorno : nWnd o nmero convertido. Funo : SalWindowIsDerivedFromClass Sintaxe : bOk = SalWindowIsDerivedFromClass ( hWnd , NomeClasse ) Descrio : Verifica se o objeto instncia de uma classe, ou seja, se o objeto pertence a uma classe que derivada da classe especificada. Parmetros : hWnd Window Handle O handle ou o nome do objeto. NomeClasse String O nome da classe. Valor de Retorno : bOk TRUE se o objeto uma instncia da classe informada, ou se o objeto deriva de uma classe que derivada da classe informada.

Funo : SalWinHelp Sintaxe : bOk = SalWinHelp( hWnd, sArquivo, nComando, nDado, sDado ) Descrio : Inicia o sistema de Help do Windows. Parmetros : hWnd Window Handle O handle ou o nome do objeto que est solicitando o help. sArquivo String O nome do arquivo de help.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nComando nDado sDado

Number o tipo de help solicitado. Voc pode usar uma das constantes HELP_*. Number Especifique zero a menos que : nComando seja igual a HELP_Context ou HELP_SetIndex. String O contexto, ou a palavra chave do tpico solicitado. Este parmetro deve ser sempre nulo, a menos que nComando seja igual a HELP_Key.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar. Funo : SalYieldEnable Sintaxe : bOk = SalYieldEnable ( bAcao ) Descrio : Configura se a aplicao poder cancelar processamentos demorados. Parmetro : bAcao

Boolean - Se TRUE, o cancelamento poder ser realizado. Especifique FALSE para desligar esse comportamento.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SalYieldQueryState Sintaxe : bOk = SalYieldQueryState ( ) Descrio : Verifica se a aplicao poder cancelar processamento demorado. Nenhum Parmetro. Valor de Retorno : bOk TRUE se o cancelamento de processamento demorado pode ser realizado e FALSE em caso contrrio. Esse comportamento configurado atravs da funo SalYieldEnable.

Funo : SalYieldStartMessages Sintaxe : bOk = SalYieldStartMessages ( hWndObj ) Descrio : Habilita o cancelamento de processamentos demorados e o envio de mensagens a um determinado objeto. Habilite ao usurio o cancelamento de processamentos demorados para que, por exemplo, o usurio possa cancelar uma operao de carga de dados numa table window que esteja demorando demais. Parmetro : hWndObjeto

Window Handle - O handle do objeto que poder receber mensagens enquanto a aplicao estiver num processamento.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo: SalYieldStopMessages Sintaxe: bOk = SalYieldStopMessages ( ) Descrio: Desabilita o cancelamento de processamentos demorados. Nenhum Parmetro. Valor de Retorno: bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice B
Guia de referncia das Funes SQL
Dando prosseguimento ao guia de referencia das funes este apndice apresenta detalhadamente as funes de acesso a bandos de dados. O correto uso das funes do SQLWindows/32 pelo desenvolvedor de suma importncia. Portanto, neste apndice apresentamos detalhadamente todas as suas funes.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SqlClearImmediate Sintaxe : bOk = SqlClearImmediate ( ) Descrio : Desconecta do banco de dados o handle sql interno. Voc conecta um handle sql interno utilizando a funo SqlImmediate, e este permanece conectado at que a aplicao encerre, ou quando voc, explicitamente, desconect-lo com a funo SqlClearImmediate. A funo SqlClearImmediate gera um commit implcito quando este o ltimo cursor conectado ao banco de dados. Nenhum Parmetro . Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlClose Sintaxe : bOk = SqlClose ( hSql ) Descrio : Libera o cursor associado ao handle sql hSql, permitindo a sua reutilizao. Parmetro: hSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlCloseAllSPResultSets Sintaxe : bOk = SqlCloseAllSPResultSets ( hSql ) Descrio : Fecha todos os result sets gerados por alguma stored procedure. Esta funo til quando voc deseja fechar todos os result sets abertos por uma stored procedure sem precisar fech-los um de cada vez. Caso no exista nenhuma stored procedure executada no handle hSql esta funo retorna FALSE. Parmetro: hSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlCommit Sintaxe : bOk = SqlCommit ( hSql ) Descrio : Encerra todas as transaes sql conectadas ao banco de dados, efetivando as alteraes realizadas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para evitar que o result set de um cursor seja destrudo, quando um comando commit executado, ligue a preservao de contexto atravs da funo SqlSetParameter, configurando DBP_PRESERVE como TRUE. Parmetro: hSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo: SqlCommitSession Sintaxe: bOk = SqlCommitSession ( hSessao ) Descrio: Esta funo aplica (commit) as transaes associadas sesso especificada. Todas as operaes SQL que estiverem ativas no momento da execuo desta funo sero efetivadas junto ao banco de dados. Parmetro: hSessao Session Handle Um handle que identifica uma sesso com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlConnect Sintaxe : bOk = SqlConnect ( hSql ) Descrio : Efetua a conexo a um banco de dados. O Centura utiliza os valores das variveis SqlDatabase, SqlUser e SqlPassword. Os valores padres para estas variveis so DEMO, SYSADM e SYSADM, respectivamente. Observe que, os valores de algumas variveis, como por exemplo SqlNoRecovery e SqlOutMessage tm efeito na execuo desta funo. Parmetro: hSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlCreateSession Sintaxe : bOk = SqlCreateSession ( hSessao , sParametros ) Descrio : Cria uma nova sesso de acordo com os parmetros especificados em sParametros. Quando voc fizer uma chamada funo SqlCommitSession ( ) sero comitados apenas os handles Sql que estiverem associados a uma determinada transao.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hSessao Session Handle O handle da sesso a ser criada. Aps a execuo desta funo voc deve utilizar este handle de sesso para fazer referncia sesso criada. sParametros String - Os parmetros da sesso. Cada provedor OLE DB possui seu conjunto de propriedades prprios, porm, normalmente alguns parmetros so comuns entre eles, tais como: Provider, Initial Catalog, User Name, User Id, Password entre outros. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlCreateStatement Sintaxe : bOk = SqlCreateStatement ( hSessao , hSql ) Descrio : Conecta um handle sql dentro de uma determinada sesso. Todos os parmetros especificados no momento da conexo da sesso so aplicados conexo do handle sql. Quando voc fizer uma chamada funo SqlCommitSession ( ) sero comitados apenas os handles Sql que estiverem associados a uma determinada transao. Com a funo SqlCreateStatement voc associa um handle sql a uma transao. O valor de retorno o mesmo que a funo SqlConnect. Para desconectar um handle sql criado com a funo SqlCreateStatement utilize normalmente a funo SqlDisconnet. Voc pode associar a uma sesso quantos handles sql voc desejar, no h limites. Parmetros : hSessao Session Handle - O handle da sesso. hSql SqlHandleString - O handle sql que ser conectado como parte da sesso. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlDirectoryByName Sintaxe : bOk = SqlDirectoryByName ( sServidor , sNomes ) Descrio : Obtm os nomes das bases de dados de um determinado servidor. Parmetros : sServidor String O nome do servidor. sNomes String Array O nome de um vetor contendo os nomes das bases de dados. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SqlDisconnect Sintaxe : bOk = SqlDisconnect ( hSql ) Descrio : Desconecta um determinado handle sql. Quando voc desconectar o ltimo handle sql da sua aplicao, de uma determinada base de dados, o comando commit automaticamente executado.
Desconecte todos os handles sql da aplicao, antes de encerr-la. Voc pode utilizar SqlDisconnect para desconectar um handle sql associado a uma sesso.

Parmetro: hSql

Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlDropStoredCmd Sintaxe : bOk = SqlDropStoredCmd ( hSql , sNome ) Descrio : Apaga um determinado stored command de um banco de dados. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sNome String O nome do stored command a ser apagado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlError Sintaxe : nErro = SqlError ( hSql ) Descrio : Obtm o cdigo do erro mais recente, num determinado handle sql. Esta funo no pode ser utilizada aps uma chamada funo SqlImmediate, pois, esta no retorna um handle que possa ser utilizado como parmetro na funo SqlError. Parmetro : HSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : nErro o cdigo do erro retornado. Quando igual a zero, indica que no houve erros sql.

Funo : SqlErrorText Sintaxe : bOk = SqlErrorText ( nErro, nTipo, sErro, nTamanho, nTamanhoReal )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Obtm o texto, explicando o motivo e a sugesto de correo do cdigo do erro armazenado em nErro. Utilize a funo SqlError para obter o cdigo do erro mais recente ocorrido. Parmetros : Nerro Number O cdigo de erro, obtido atravs da funo SqlError. Ntipo Number Especifique as constantes abaixo : SQLERROR_Reason para obter o texto do motivo do erro. SQLERROR_Remedy para obter o texto com a sugesto de correo. Voc pode utilizar o operador OR ( | ) para combinar as duas constantes. Serro Receive String A explicao do motivo ou da sugesto de correo do erro. Ntamanho Number O tamanho mximo de sErro. NtamanhoRe Receive Number O tamanho atual de sErro. al Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlExecute Sintaxe : bOk = SqlExecute ( hSql ) Descrio : Executa um comando SQL preparado com a funo SqlPrepare, ou recuperado atravs da funo SqlRetrieve. A funo SqlExecute no obtm os dados, para isso, utilize as funes SqlFetchNext, SqlFetchPrevious ou SqlFetchRow. Parmetro: hSql Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlExecutionPlan Sintaxe : bOk = SqlExecutionPlan ( hSql , sTexto , nTamanho ) Descrio : Obtm o plano de execuo de um determinado comando sql. O plano de execuo mostra as tabelas, vises, ndices e as otimizaes para o comando sql. Os nomes das tabelas e vises so mostrados na ordem em que so processados. Parmetro: hSql sTexto nTamanho Sql Handle Um handle que identifica a conexo com o banco de dados. Receive String O plano de execuo. Number O tamanho mximo do texto em sTexto.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlExists Sintaxe : bOk = SqlExists ( sSelect , bExiste ) Descrio : Verifica a existncia de uma linha. A funo SqlExists utiliza os valores das variveis SqlDatabase, SqlUser e SqlPassword para efetuar a conexo ao banco de dados, e usa o handle interno para executar o comando especificado. Parmetros : sSelect String O comando select que verificar a existncia da linha. bExiste Receive Boolean TRUE caso a linha exista e FALSE caso contrrio. Valor de Retorno : bOk TRUE se o comando sSelect estiver correto e executvel, e FALSE se falhar.

Funo : SqlExtractArgs Sintaxe : bOk = SqlExtractArgs ( wParam , lParam , hSql , nErro , nPosicao ) Descrio : Obtm informaes dos argumentos wParam e lParam num evento SAM_SqlError. Utilize esta funo apenas para processar a mensagem SAM_SqlError, que acionada quando ocorre algum erro sql. Parmetros : wParam lParam hSql nErro nPosicao Number O valor do argumento wParam, na mensagem SAM_SqlError. Number O valor do argumento lParam, na mensagem SAM_SqlError. Sql Handle Um handle que identifica a conexo com o banco de dados. Receive Number O cdigo do erro. Receive Number A posio do erro.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se a funo falhar.

Funo : SqlFetchNext Sintaxe : bOk = SqlFetchNext ( hSql , nInd ) Descrio : Recupera a prxima linha do result set. Antes disso, voc precisa ter preparado um comando SELECT, com a funo SqlPrepare, e ter executado este comando com a funo SqlExecute. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados, e um comando select previamente preparado. nInd Receive Number O cdigo de retorno da operao de fetch. Um dos seguintes valores : FETCH_Delete, FETCH_Eof, FETCH_Ok ou FETCH_Update.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo trouxer alguma linha do result set, e FALSE se nenhuma linha for encontrada. A funo SqlFetchNext s ir retornar FALSE, e o indicador do cdigo da operao de fetch s ser igual a FETCH_Eof, quando voc tentar carregar mais uma linha, aps a ltima linha do result set.

Funo : SqlFetchPrevious Sintaxe : bOk = SqlFetchPrevious ( hSql , nInd ) Descrio : Recupera a linha anterior do result set. Antes disso, voc precisa ter preparado um comando select, com a funo SqlPrepare, e ter executado este comando com a funo SqlExecute. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados, e um comando select previamente preparado. nInd Receive Number O cdigo de retorno da operao de fetch. Um dos seguintes valores : FETCH_Delete, FETCH_Eof, FETCH_Ok ou FETCH_Update. Valor de Retorno : bOk TRUE se a funo trouxer alguma linha do result set, e FALSE se nenhuma linha for encontrada.

Funo : SqlFetchRow Sintaxe : bOk = SqlFetchRow ( hSql , nLinha , nInd ) Descrio : Recupera uma determinada linha do result set. Antes disso, voc precisa ter preparado um comando select, com a funo SqlPrepare, e ter executado este comando com a funo SqlExecute. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados, e um comando select previamente preparado. nLinha Number O nmero da linha a ser recuperada do result set. nInd Receive Number O cdigo de retorno da operao de fetch. Um dos seguintes valores : FETCH_Delete, FETCH_Eof, FETCH_Ok ou FETCH_Update. Valor de Retorno : bOk TRUE se a funo trouxer a linha do result set, e FALSE se no conseguir trazer.

Funo : SqlFreeSession Sintaxe : bOk = SqlFreeSession ( hSessao ) Descrio : Desconecta uma sesso.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Todos os handles sql subordinados a sesso e que ainda estiverem ativos sero desconectados antes que a sesso seja liberada. Parmetro: hSessao

Session Handle : O handle da sesso.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetError Sintaxe : bOk = SqlGetError ( hSql , nErro , sMsgErro ) Descrio : Desliga o mapeamento de erros e mostra o erro real do servidor. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nErro Number O nmero do erro. sMsgErro Receive String A mensagem de erro. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetErrorPosition Sintaxe : bOk = SqlGetErrorPosition ( hSql , nPosicao ) Descrio : Obtm a posio do erro num comando sql. Aps a execuo da funo SqlPrepare, a posio do erro aponta para o local, no comando sql preparado, onde o Centura detectou algum erro de sintaxe. Observe que a posio do primeiro caractere num comando sql a zero (0). Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados, e um comando sql previamente preparado. nPosicao Receive Number A posio, no comando sql, onde o erro foi encontrado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetErrorText Sintaxe : bOk = SqlGetErrorText ( nErro , sTexto ) Descrio : Obtm a mensagem de erro equivalente ao nmero do erro informado. Esta informao ser pesquisada no arquivo ERROR.SQL. Parmetros : nErro Number O nmero do erro. sTexto Receive String A mensagem de erro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetErrorTextX Sintaxe : sTexto = SqlGetErrorText ( nErro ) Descrio : Obtm a mensagem de erro equivalente ao nmero do erro informado. Esta informao ser pesquisada no arquivo ERROR.SQL. Parmetro: nErro Number O nmero do erro.

Valor de Retorno : sTexto a mensagem de erro recuperada.

Funo : SqlGetLastStatement Sintaxe : sCmdSql = SqlGetLastStatement ( ) Descrio : Obtm o ltimo comando sql utilizado em qualquer uma das funes SqlXxxx. O comando retornado o mesmo mostrado na janela padro de erros do Centura. Nenhum Parmetro. Valor de Retorno : sCmdSql contm o ltimo comando sql executado.

Funo : SqlGetModifiedRows Sintaxe : bOk = SqlGetModifiedRows ( hSql , nNum ) Descrio : Retorna o nmero de linhas afetadas pelo ltimo comando insert, update ou delete executado. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nNum Receive Number O nmero de linhas afetadas. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetParameter Sintaxe : bOk = SqlGetParameter ( hSql , nParametro , nNum , sStr ) Descrio : Obtm o valor de um parmetro do banco de dados. Esta funo retorna o valor do parmetro em nNum ou sStr, de acordo com o tipo de dado do parmetro. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nParametro Number O parmetro do banco de dados. Utilize uma das constantes

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nNum sStr

DBP_*. Receive Number O valor do parmetro, se este for do tipo nmero. Receive String - O valor do parmetro, se este for do tipo string.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetParameterAll Sintaxe : bOk = SqlGetParameterAll ( hSql , nParametro , nNum , sStr , bNum ) Descrio : Obtm o valor de um parmetro do banco de dados. Esta funo retorna o valor do parmetro em nNum ou sStr, de acordo com o tipo de dado do parmetro. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nParametro Number O parmetro do banco de dados. Utilize uma das constantes SQLP* definidas no arquivo SQL.H. nNum Receive Number O valor do parmetro, se este for do tipo numrico. sStr Receive String - O valor do parmetro, se este for do tipo string. bNum Boolean Se for TRUE, o valor do parmetro retornado em nNum. Se FALSE, o valor do parmetro retornado em sStr. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetResultSetCount Sintaxe : bOk = SqlGetResultSetCount ( hSql , nNumLinhas ) Descrio : Conta o nmero de linhas do result set. O Centura obtm cada linha do result set, retorna o nmero de linhas e coloca o cursor na posio original. Ateno : esta tarefa pode consumir muito tempo. Voc precisa ativar o modo result set com a funo SqlSetResultSet. Voc precisa utilizar a funo SqlExecute antes da funo SqlGetResultSetCount. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nNumLinhas Receive Number O nmero de linhas no result set. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlGetRollbackFlag Sintaxe : bOk = SqlGetRollbackFlag ( hSql , bFlag ) Descrio : Obtm o flag indicador de rollback da base de dados. Utilize esta funo aps um erro na aplicao, para saber se a transao foi desfeita atravs do comando rollback.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. bFlag Receive Boolean TRUE se um rollback ocorreu, e FALSE caso contrrio. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlImmediate Sintaxe : bOk = SqlImmediate ( sCmd ) Descrio : Prepara e executa um comando sql. Na primeira vez que a funo SqlImmediate executada, as funes SqlConnect, SqlPrepare, SqlExecute so tambm executadas. No caso dos comandos select, executa tambm a funo SqlFetchNext. A funo SqlConnect executada apenas quando necessrio. Parmetro: sCmd String O comando sql a ser preparado e executado. O comando no pode ter mais do que 255 variveis tipo BIND e mais de 255 variveis tipo INTO.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SqlOpen Sintaxe : bOk = SqlOpen ( hSql , sNomeCursor ) Descrio : Nomeia um cursor e executa um comando sql. Utilize esta funo para executar um comando INSERT, UPDATE e DELETE na linha atual. A funo SqlOpen deve ser utilizada aps a funo SqlPrepare e antes de alguma das funes SqlFetch*. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sNomeCursor String O nome do cursor. Especifique este nome nas clusulas CURRENT OF <nome_do_cursor> ou ADJUSTING <nome_do_cursor> nos comandos insert, update ou delete. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlPrepare Sintaxe : bOk = SqlPrepare ( hSql , sCmd ) Descrio : Compila um comando sql para ser executado. A compilao inclui : Verificao da sintaxe do comando. Verificao do catlogo do sistema. Processamento da clusula INTO.
Os dados, quando trazidos do banco de dados, so colocados nos nomes citados na clusula INTO. Estas variveis so, comumente, chamadas de variveis INTO. Voc pode especificar no mximo 255 variveis INTO.

Identificao das variveis BINDs no comando sql.


As variveis BINDs possuem informaes que so necessrias para o funcionamento correto do comando sql. Voc pode especificar at 255 variveis binds num comando sql.

Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sCmd String O comando sql para ser compilado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlPrepareAndExecute Sintaxe : bOk = SqlPrepareAndExecute ( hSql , sCmd ) Descrio : Compila e executa um comando sql. A compilao inclui : Verificao da sintaxe do comando. Verificao do catlogo do sistema. Processamento da clusula INTO.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Os dados, quando trazidos do banco de dados, so colocados nos nomes citados na clusula INTO. Estas variveis so, comumente, chamadas de variveis INTO. Voc pode especificar no mximo 255 variveis INTO.

Identificao das variveis BINDs no comando sql.


As variveis BINDs possuem informaes que so necessrias para o funcionamento correto do comando sql. Voc pode especificar at 255 variveis binds num comando sql.

Parmetros: hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sCmd String O comando sql para ser compilado e executado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlRetrieve Sintaxe : bOk = SqlRetrieve ( hSql , sNome , sBinds , sIntos ) Descrio : Obtm um comando SQLBase compilado. Para executar o comando, voc precisa utilizar a funo SqlExecute. Voc no precisa compilar o comando, pois, o mesmo j foi compilado atravs da funo SqlStore. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sNome String O nome de um comando compilado. sBinds String Uma lista com os nomes, separados por vrgulas, de at 255 variveis BINDs. Esta lista deve conter o mesmo nmero de variveis do comando compilado. Este parmetro pode ser nulo. sIntos String - Uma lista com os nomes, separados por vrgulas, de at 255 variveis INTOs. Este parmetro pode ser nulo, e dever ser nulo caso o prximo comando a ser executado for a funo SalListPopulate. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlRollbackSession Sintaxe : bOk = SqlRollbackSession ( hSessao ) Descrio : Esta funo desfaz as transaes associadas sesso especificada. Todas as operaes SQL que estiverem ativas no momento da execuo desta funo sero desfeitas junto ao banco de dados. Parmetro: hSessao Session Handle Um handle que identifica uma sesso com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : SqlSetInMessage Sintaxe : bOk = SqlSetInMessage ( hSql , nTamanho ) Descrio : Define o tamanho (em bytes) do buffer de mensagem de entrada para um determinado sql handle. O buffer de entrada contm os dados de uma aplicao, resultantes de uma consulta. Existe um buffer para cada handle sql conectado. O servidor de bancos de dados mantm um buffer de mensagem de entrada do tamanho do maior buffer configurado na estao. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nTamanho Number O tamanho (em bytes) do buffer que voc deseja configurar. O tamanho padro 1K, e o mximo 32K. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetIsolationLevel Sintaxe : bOk = SqlSetIsolationLevel ( hSql , sNivel ) Descrio : Define o nvel de isolamento. No SQLBase, o nvel de isolamento padro o Read Repeatability (RR). Qualquer mudana no nvel de isolamento causa um commit implcito. O nvel de isolamento se aplica a todos os handles sql conectados a base de dados, para o mesmo usurio. Para obter informaes mais detalhadas sobre nveis de isolamento, consulte o manual Connecting Centura Objects to Databases. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sNivel String O nvel de isolamento a ser definido. Especifique um destes valores : CS - Cursor Stability RL Release Locks RO Read Only RR Read Repeatability Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetLockTimeout Sintaxe : bOk = SqlSetLockTimeout ( hSql , nTimeOut ) Descrio : Especifica o tempo mximo de espera para ativar um lock. Aps o tempo especificado, ocorre um timeout, e, automaticamente, um rollback executado na transao. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nTimeOut Number O valor do timeout, em segundos. Valores vlidos incluem 1 (

Pgina PAGE 582

Programando com o Centura Team Developer 2000

espera para sempre), 0 (nunca espera) e valores acima disso incluindo 1800 (equivalente 30 minutos). O valor padro 300. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetLongBindDatatype Sintaxe : bOk = SqlSetLongBindDatatype ( nNumVarBind , nTipoDeDado ) Descrio : Especifica o tipo de dado da coluna quando a mesma receber um valor do tipo Long String. Parmetros : nNumVarBin d nTipoDeDad o Number Indica qual a varivel bind a ser configurada. Use 1 para indicar a primeira varivel no comando sql, 2 para a segunda e assim por diante. Number O tipo de dado a ser definido. Use os seguintes tipos de dados : 22 - Tipo Text 23 Tipo Long Binary 24 Char > 254 bytes, ou long varchar > 254 bytes. ( Apenas para Informix )

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetOutMessage Sintaxe : bOk = SqlSetOutMessage ( hSql , nTamanho ) Descrio : Define o tamanho (em bytes) do buffer de mensagem de sada para um determinado sql handle. O buffer de sada contm os dados de uma aplicao, como os dados a serem includos no banco de dados. Existe um buffer para cada handle sql conectado. O servidor do bancos de dados mantm um buffer de mensagem de sada do tamanho do maior buffer configurado na estao. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nTamanho Number O tamanho (em bytes) do buffer que voc deseja configurar. O tamanho padro 1K, e o mximo 32K. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetParameter Sintaxe : bOk = SqlSetParameter ( hSql , nParametro , nNum , sStr ) Descrio : Atribui um valor a um determinado parmetro do banco de dados. Utilize os parmetros nNum ou sStr de acordo com o seu tipo de dado. Parmetros :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hSql nParametro nNum sStr

Sql Handle Um handle que identifica a conexo com o banco de dados. Number O parmetro do banco de dados. Utilize uma das constantes DBP_*. Number O valor do parmetro. String - O valor do parmetro.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetParameterAll Sintaxe : bOk = SqlSetParameterAll ( hSql , nParametro , nNum , sStr , bNum ) Descrio : Atribui um valor a um determinado parmetro do banco de dados. Utilize os parmetros nNum ou sStr de acordo com o seu tipo de dado. Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. nParametro Number O parmetro do banco de dados. Utilize uma das constantes SQLP* definidas no arquivo SQL.H. nNum Number O valor do parmetro, se este for do tipo numrico. sStr String - O valor do parmetro, se este for do tipo string. bNum Boolean Se for TRUE, o valor do parmetro est em nNum. Se FALSE, o valor do parmetro est em sStr. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlSetResultSet Sintaxe : bOk = SqlSetResultSet ( hSql , bSet ) Descrio : Liga/desliga o modo result set, para todos os handles sql associados ao mesmo handle hSql Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. bSet Boolean Alterna entre o modo de result set ligado (TRUE) e desligado (FALSE). Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlStore Sintaxe : bOk = SqlStore ( hSql , sNome , sComando ) Descrio : Armazena e nomeia um comando compilado num banco de dados SQLBase. A funo SqlStore compila o comando sql, portanto, voc no precisa executar a funo SqlPrepare antes de utilizar SqlStore.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : hSql Sql Handle Um handle que identifica a conexo com o banco de dados. sNome String O nome do comando a ser armazenado. sComando String O comando sql a ser compilado e armazenado. Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Funo : SqlVarSetup Sintaxe : bOk = SqlVarSetup ( hSql ) Descrio : Antes que o Centura execute um comando sql, ou obtenha uma linha do banco de dados (fetch), o Centura compila as variveis bind e into e gera os respectivos cdigos para obteno dos valores ( variveis bind ) ou para a recuperao de linhas do banco de dados ( variveis into ). O padro do Centura compilar : variveis bind em tempo de execuo. variveis into em tempo de fetch.
Voc pode modificar este comportamento padro executando a funo SqlVarSetup, que salva o contexto de execuo atual. Quando voc, posteriormente, executar ou recuperar informaes, o Centura utiliza o contexto para resolver referncias s variveis bind e into. Isto significa que voc pode utilizar variveis bind e into num contexto diferente do local onde a funo Sql* est sendo chamada. Voc precisa executar a funo SqlPrepare antes de utilizar a funo SqlVarSetup.

Parmetro: hSql

Sql Handle Um handle que identifica a conexo com o banco de dados.

Valor de Retorno : bOk TRUE se a funo for executada com sucesso e FALSE se falhar.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice C
Guia de referncia das Mensagens SAM
Sendo o ambiente Windows um ambiente orientado a eventos, torna-se de extrema importncia para o desenvolvedor neste ambiente, o pleno conhecimento dos eventos que podem ocorrer na sua aplicao. Para um estudo aprofundado dos eventos do ambiente Windows, recomendamos que seja estudado o SDK, que acompanha alguns produtos de desenvolvimento da Microsoft, como por exemplo o C++. Estes eventos do Windows tambm so capturados pelas aplicaes Centura, porm, neste apndice, so explicados detalhadamente os eventos especficos do Centura Team Developer. Eventos estes, que so listados neste apndice, em ordem alfabtica.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Mensagem : SAM_Activate
Descrio : A mensagem SAM_Activate enviada aos objetos top-level ( form window e mdi window ) quando estes so ativados ou desativados. A varivel wParam indica quando o objeto est sendo ativado ou desativado.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto ativo. Indica se o objeto est sendo ativado ( TRUE ) ou desativado ( FALSE ). No utilizada.

Mensagem : SAM_AnyEdit
Descrio : A mensagem SAM_AnyEdit enviada aos objetos tipo data field, combo box, table window columns e multiline field quando o usurio modifica o valor do mesmo. O objeto processa a mensagem SAM_AnyEdit a cada tecla pressionada. Ao processar a mensagem SAM_AnyEdit, a aplicao pode verificar o valor do objeto.

Variveis : Para objetos do tipo data field, combo box ou multiline field, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do objeto pai. O handle do objeto ativo. No utilizada. No utilizada.

Para objetos do tipo table window column, os valores das variveis so : hWndForm hWndItem wParam lParam O handle da table window. O handle da coluna. No utilizada. O nmero da linha da table window.

Mensagem : SAM_AppExit
Descrio : A mensagem SAM_AppExit enviada aplicao depois que todas as janelas forem fechadas. Quando o usurio encerra a execuo da aplicao, todos os objetos so fechados e a mensagem SAM_AppExit enviada para a aplicao. Esta a ltima mensagem processada pela aplicao, e enviada apenas para o Application Actions. Voc no pode fazer referncia a nenhum objeto da aplicao neste momento.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. No utilizada. No utilizada.

Mensagem : SAM_AppStartup

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : A mensagem SAM_AppStartup enviada para a aplicao antes que qualquer janela seja criada, mesmo as que estiverem com o atributo de criao automtica ligado. Esta a primeira mensagem que a aplicao recebe, e enviada apenas para o Application Actions da aplicao.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. No utilizada. No utilizada.

Mensagem : SAM_CacheFull
Descrio : A mensagem SAM_CacheFull enviada a uma table window quando o Centura precisa trazer mais uma linha para a tabela, mas o cache da tabela encontra-se cheio e nehuma de suas linhas encontram-se qualificadas como descartvel. Se o cache da table window estiver configurado como no-descartvel (non-discardable), a mensagem SAM_CacheFull indica que no mais possvel preencher o cache com dados. Se o cache da table window estiver configurado como descartvel (discardable), a mensagem SAM_CacheFull indica que o cache est cheio de informaes que precisam ser atualizadas. Quando voc salva as linhas modificadas, estas passam a ser qualificadas como descartveis.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. No utilizada. No utilizada. No utilizada.

Mensagem : SAM_CaptionDoubleClick
Descrio : A mensagem SAM_CaptionDoubleClick enviada a uma table window e a uma coluna da table window quando o usurio d um clique-duplo no ttulo de uma coluna. Para obter o handle da coluna da table window armazenado na varivel wParam, utilize a funo SalNumberToWindowHandle.

Variveis : hWndForm O handle da table window. hWndItem O handle do objeto que capturou a mensagem, table window ou column, dependendo do caso. wParam O handle da coluna. lParam No utilizada.

Mensagem : SAM_Click
Descrio : A mensagem SAM_Click enviada para avisar que o usurio pressionou o boto esquerdo do mouse uma vez. enviada a um check box ou push button quando voc clica em um desses objetos, ou executa alguma atividade com o teclado, simulando um click com o mouse. enviada a um radio button que ainda no est selecionado quando voc clica nele, ou executa alguma atividade com o teclado, simulando um click com o mouse. Se voc clicar num radio button que j est selecionado, a mensagem SAM_Click no enviada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

enviada a um list box quando voc clica num dos seus elementos, ou executa alguma atividade com o teclado, simulando um click com o mouse. Se voc clicar num list box vazio ou numa rea do objeto que no possua nenhum item, a mensagem SAM_Click no enviada. enviada a um combo box quando voc clica num dos seus elementos mostrados na sua lista, ou executa alguma atividade com o teclado, simulando um click com o mouse . Se voc clicar na parte data field do combo box ou clicar no boto que ativa a lista, a mensagem SAM_Click no enviada. enviada a uma table window e para a coluna com o foco quando voc clica na clula da table window, ou executa alguma atividade com o teclado, simulando um click com o mouse.

Variveis : Para objetos do tipo combo box, list box, push button, option button ou radio button, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do form window ou do dialog box. O handle do objeto que capturou a mensagem. No utilizada. No utilizada.

Para objetos do tipo picture, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do form window ou do dialog box. O handle do objeto que capturou a mensagem. A coordenada X na imagem onde o usurio clicou com o mouse. A coordenada Y na imagem onde o usurio clicou com o mouse.

Para objetos do table window e column, os valores das variveis so : hWndForm hWndItem wParam lParam O handle da table window. O handle do objeto que capturou a mensagem. No utilizada. O nmero da linha da table window.

Mensagem : SAM_Close
Descrio : A mensagem SAM_Close enviada aos objetos do tipo dialog box, form window, mdi window e table window, 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. A mensagem SAM_Close enviada para avisar que ovoc est tentando fechar uma janela. Processando a mensagem SAM_Close, uma aplicao pode verificar a necessidade de salvar alguma informao, avisando isso ao usurio. Se voc utilizar a funo SalQuit, SalEndDialog ou SalDestroyWindow, a mensagem SAM_Close no enviada.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. No utilizada. No utilizada. No utilizada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Mensagem : SAM_ColumnSelectClick
Descrio : A mensagem SAM_ColumnSelectClick enviada para table window e column, quando o usurio seleciona ou desfaz a seleo de uma coluna, clicando no seu ttulo. Voc ativa este recurso com a funo SalTblSetTableFlags, atribuindo TRUE constante do Centura chamada TBL_Flag_SelectableCols, pois, este valor inicialmente FALSE. Para obter o handle da coluna da table window armazenado na varivel wParam, utilize a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle do objeto que capturou a mensagem, table window ou column, dependendo do caso. O handle da coluna. No utilizada.

Mensagem : SAM_ContextMenu
Descrio : A mensagem SAM_ContextMenu enviada quando o usurio clica com o boto direito do mouse, ou quando pressiona as teclas Shift+F10. Na maioria dos casos voc no precisar processar esta mensagem, no entanto, utilize a funo SalContextMenuSetPopup para definir um menu popup, que ser mostrado automaticamente, quando um objeto receber a mensagem SAM_ContextMenu.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto ativo. A coordenada X, em pixels, relativa ao lado esquerdo superior da tela. A coordenada Y, em pixels, relativa ao lado esquerdo superior da tela.

Mensagem : SAM_CornerClick
Descrio : A mensagem SAM_CornerClick enviada a uma table window e column, quando o usurio clica no ttulo do header de uma linha. O header de uma linha a coluna no-editvel, localizada esquerda da table window. A varivel wParam indica quando o objeto est sendo ativado ou desativado. Para obter o handle da coluna da table window armazenado na varivel wParam, utilize a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da coluna. Um valor numrico que indica o handle da coluna. A linha da table window que est com o contexto.

Mensagem : SAM_CornerDoubleClick
Descrio : A mensagem SAM_CornerDoubleClick enviada a uma table window e column, quando o usurio efetua um clique duplo no ttulo do header de uma linha. O header de uma linha a coluna no-editvel,

Pgina PAGE 582

Programando com o Centura Team Developer 2000

localizada esquerda da table window. A varivel wParam indica quando o objeto est sendo ativado ou desativado. Para obter o handle da coluna da table window armazenado na varivel wParam, utilize a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. Um valor numrico que indica o handle da coluna. A linha da table window que est com o contexto.

Mensagem : SAM_CountRows
Descrio : A mensagem SAM_Activate enviada table window que possui o limite de linhas dinmico (range). Utilize-a para saber o nmero de linhas de uma table window. A aplicao processa a mensagem SAM_CountRows, retornando o nmero de linhas na table window. Normalmente, isto significa contar o nmero de linhas do result set.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. No utilizada.

Esta mensagem retorna o nmero de linhas da table window.

Mensagem : SAM_Create
Descrio : A mensagem SAM_Create enviada aos objetos top level ( mdi window, dialog box, form window ou table window ) e depois para todos os objetos subordinados criados, antes de estarem visveis. O Centura cria o objeto top level e todos os seus objetos filhos. Antes que esses objetos estejam visveis ao usurio, o Centura envia a mensagem SAM_Create para cada um deles, iniciando pelo top level, e depois a cada um dos objetos fiolhos, para, s ento, torn-los visveis.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est sendo criado. No utilizada. No utilizada.

Mensagem : SAM_CreateComplete
Descrio : A mensagem SAM_CreateComplete enviada aos objetos top level ( mdi window, dialog box, form window e table window ), logo aps tornar visveis o top level e seus filhos. O Centura cria o objeto top level e todos os seus objetos filhos. Antes que esses objetos estejam visveis ao usurio, o Centura envia a mensagem SAM_Create para cada um deles, iniciando pelo top level e depois a cada um dos objetos filhos, neste momento, todos os objetos tornam-se visveis. S ento a mensagem SAM_CreateComplete enviada ao objeto top level.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do que est sendo criado. No utilizada. No utilizada.

Mensagem : SAM_CustControlCmd
Descrio : A mensagem SAM_CustControlCmd enviada a um objeto do tipo custom control, quando o objeto pai recebe alguma notificao ( WM_COMMAND ) vinda do objeto custom control. O Centura ignora qualquer valor que voc retornar ao processar esta mensagem.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto custom control ativo. O nmero da mensagem notificada. No utilizada.

Mensagem : SAM_DDE_ClientExecute
Descrio : A mensagem SAM_DDE_ClientExecute enviada para todos os objetos na aplicao servidora. O evento que dispara esta mensagem um comando DDE qualquer enviado a partir de uma aplicao cliente. Um servidor aguarda por uma requisio de um comando vinda das aplicaes clientes. O servidor obtm o comando enviado pelo cliente atravs da funo SalDDEGetExecuteString. O parmetro para a funo SalDDEGetExecuteString o valor de lParam obtido na mensagem SAM_DDE_ClientExecute, o qual aponta para uma string que o comando solicitado. Aps a execuo da funo SalDDEGetExecuteString, o servidor pode ento analisar a string do comando e determinar a ao a ser executada. O servidor pode enviar dados ou alguma outra resposta para o cliente, fazendo-se uso da funo SalDDESendToClient. Na mensagem SAM_DDE_ClientExecute, o valor de wParam corresponde ao window handle do cliente. O servidor utiliza o valor de wParam no terceiroparmetro da funo SalDDESendToClient, para enviar os dados ou a resposta de volta ao mesmo cliente.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto. O handle do remetente da mensagem. O comando.

Mensagem : SAM_DDE_ClientRequest
Descrio : A mensagem SAM_DDE_ClientRequest enviada aplicao servidora como o resultado de uma requisio da aplicao cliente para os dados que foram atualizados. O servidor pode enviar dados ou alguma outra resposta para o cliente, fazendo-se uso da funo SalDDESendToClient. Na mensagem SAM_DDE_ClientExecute, o valor de wParam corresponde ao window handle do cliente. O servidor utiliza o valor de wParam no terceiroparmetro da funo SalDDESendToClient, para enviar os dados ou a resposta de volta ao mesmo cliente.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto. O handle do remetente da mensagem. No utilizada.

Mensagem : SAM_DDE_DataChange
Descrio : A mensagem SAM_DDE_DataChange enviadapara todos os objetos numa aplicao cliente DDE. Ela enviada quando o servidor DDE envia dados para o cliente. Quando um servidor DDE envia um item para o cliente, os dados aparecem automaticamente no objeto especificado na aplicao cliente ( atravs da funo SalDDEStartSession). A aplicao cliente no precisa executar qualquer ao para receber os dados. No entanto, se a aplicao cliente quiser saber quando o os dados foram enviados pelo servidor, pode faz-lo processando a mensagem SAM_DDE_DataChange.

Observe que a mensagem SAM_DDE_DataChange enviada depois que os dados so enviados ao cliente. Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto. No utilizada. No utilizada.

Mensagem : SAM_Destroy
Descrio : A mensagem SAM_Destroy enviada aos objetos top level (dialog box, form window ou table window) e depois para todos os seus objetos filho antes que oobjeto seja destrudo. As mensagens SAM_Destroy so enviadas aps a mensagem SAM_Close ser enviada ao objeto top level. Por exemplo, num form window com data fields, o Centura envia as mensagens aos objetos na seguinte ordem : 1. envia SAM_Close ao form window. 2. envia SAM_Destroy ao form window. 3. envia SAM_Destroy a cada um dos objetos filho do form window. Depois que todas as mensagens SAM_Destroy so enviadas, os objetos so destrudos.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est sendo destrudo. No utilizada. No utilizada.

Mensagem : SAM_DoubleClick
Descrio : A mensagem SAM_DoubleClick enviada aos objetos do tipo combo box, list box, picture, table window e column quando voc d um double-click num desses objetos.

Variveis :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para objetos do tipo combo box ou list box, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do objeto top level. O handle da picture. No utilizada. No utilizada.

Para objetos do tipo picture, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do objeto top level. O handle do combo box ou list box. A coordenada X na imagem onde o usurio clicou com o mouse. A coordenada Y na imagem onde o usurio clicou com o mouse.

Para objetos do tipo table window e column, os valores das variveis so : hWndForm hWndItem wParam lParam O handle da table window. O handle da coluna. No utilizada. O nmero da linha clicada.

Mensagem : SAM_DragCanAutoStart
Descrio : A mensagem SAM_DragCanAutoStart enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box, e picture para saber se o objeto pode entrar em modo automtico de arrastar-e-soltar. Retorne TRUE para habilitar o modo automtico de arrastar-e-soltar. Se voc retornar FALSE ou se no processar esta mensagem, o Centura no habilitar o modo automtico de arrastar-e-soltar. O Centura inicia o modo de arrastar-e-soltar automaticamente, quando a aplicao retorna TRUE mensagem SAM_DragCanAutoStart. Isto o mnimo que a aplicao deve fazer para permitir que o usurio arraste o contedo de um objeto.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto origem. A posio do mouse no eixo X. A posio do mouse no eixo Y.

Mensagem : SAM_DragDrop
Descrio : A mensagem SAM_DragDrop enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture quando o usurio soltar o mouse por cima do objeto destino. Para obter o handle do objeto armazenado na varivel wParam, use a funo SalNumberToWindowHandle.

Variveis : hWndForm O handle do objeto top level. hWndItem O handle do objeto que est recebendo a mensagem. wParam O handle do objeto origem.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

lParam

No utilizada.

Mensagem : SAM_DragEnd
Descrio : A mensagem SAM_DragEnd enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que o modo arrastar-e-soltar foi encerrado.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. No utilizada. No utilizada.

Mensagem : SAM_DragEnter
Descrio : A mensagem SAM_DragEnter enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que o mouse foi movimentado para dentro de um objeto, enquanto o modo arrastar-e-soltar estava ligado. Para obter o handle do objeto armazenado na varivel wParam, use a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. O handle do objeto origem. No utilizada.

Mensagem : SAM_DragExit
Descrio : A mensagem SAM_DragExit enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que o mouse foi movimentado para fora de um objeto, enquanto o modo arrastar-e-soltar estava ligado. Para obter o handle do objeto armazenado na varivel wParam, use a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. O handle do objeto origem. No utilizada.

Mensagem : SAM_DragMove
Descrio : A mensagem SAM_DragMove enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que o mouse foi movimentado por cima de um objeto, enquanto o modo arrastar-e-soltar estava ligado. Para obter o handle do objeto armazenado na varivel wParam, use a funo SalNumberToWindowHandle.

Variveis : hWndForm O handle do objeto top level. hWndItem O handle do objeto que est recebendo a mensagem.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

wParam lParam

O handle do objeto origem. No utilizada.

Mensagem : SAM_DragNotify
Descrio : A mensagem SAM_DragNotify enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que uma ao com o mouse, enquanto o modo arrastare-soltar estava ligado. Para obter o handle do objeto armazenado na varivel wParam, use a funo SalNumberToWindowHandle.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. O handle do objeto destino. Uma das seguintes mensagens : SAM_DragDrop O usurio moveu o mouse para dentro do objeto destino SAM_DragEnter O usurio soltou o mouse no objeto destino. SAM_DragExit O usurio movimentou o mouse para fora do objeto destino. SAM_DragMove O usurio moveu o mouse por cima do objeto destino.

Mensagem : SAM_DragStart
Descrio : A mensagem SAM_DragStart enviada para os objetos do tipo top level, child table, data field, multiline field, list box, combo box e picture, indicando que o modo arrastar-e-soltar teve incio.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. A posio do mouse no eixo X. A posio do mouse no eixo Y.

Mensagem : SAM_DropDown
Descrio : A mensagem SAM_DropDown enviada ao combo box antes que a sua lista seja mostrada.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do combo box. No utilizada. No utilizada.

Mensagem : SAM_DropFiles
Descrio : A mensagem SAM_DropFiles enviada ao objetos do tipo column, data field, multiline field, list box, combo box, picture e custom control, quando o usurio solta um arquivo, ou um cojunto de arquivos, a partir do Gerenciador de arquivos ou do Windows Explorer. Apenas os objetos que estiverem com o modo arrastar-e-soltar ligado recebem esta mensagem.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Utilize a funo SalDropQueryFiles para obter os nomes dos arquivos que foram soltos no objeto. Esta funo s deve ser utilizada durante o processamento da mensagem SAM_DropFiles. Atravs da funo SalDropQueryPoint voc obtm a localizao do mouse no objeto onde os arquivos foram soltos.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. No utilizada. No utilizada.

Mensagem : SAM_EndCellTab
Descrio : A mensagem SAM_EndCellTab enviada table window quando o usurio tenta avanar, utilizando a tecla TAB, alm da ltima coluna editvel da table window. Voc pode usar esta mensagem para adicionar, automaticamente, uma nova linha na table window, ou para posicionar o cursor na primeira coluna da prxima linha. O comportamento padro do Centura selecionar a linha atual. Para mudar este comportamento, retorne TRUE no final do Message Actions desta mensagem.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha atual, a linha que est com o contexto. Observe que a primeira linha 0 (zero), a segunda 1, e assim por diante.

Mensagem : SAM_FetchDone
Descrio : A mensagem SAM_FetchDone enviada table window quando a funo SalTblPopulate, utilizando o valor TBL_FillAllBackground no seu ltimo parmetro, concluu a carga dos dados na table window.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. No utilizada.

Mensagem : SAM_FetchRow
Descrio : A mensagem SAM_FetchRow enviada table window sempre que o Centura precisar copiar uma linha para o cache da table window. Quando voc carrega os dados numa table window o Centura envia uma mensagem SAM_FetchRow para linha mostrada na table window. Quando o usurio solicita que sejam mostradas mais linhas, o Centura envia mais mensagens SAM_FetchRow para as linhas que ainda no esto no cache e que precisam ser mostradas. Normalmente, voc utiliza a funo SqlFetchRow para trazer uma linha para a table window, baseado no nmero da linha ( valor este contido em lParam ) .

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha que est sendo carregada.

Esta mensagem pode retornar um dos seguintes valores : TBL_NoMoreRows - Quando no existe mais linhas na posio especificada, nem alm dela. TBL_RowDeleted - A linha foi apagada. TBL_RowFetched - A linha solicitada foi carregada com sucesso.

Mensagem : SAM_FetchRowDone
Descrio : A mensagem SAM_FetchRowDone enviada uma table window depois que o Centura carrega uma linha.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha que foi carregada.

Mensagem : SAM_FieldEdit
Descrio : A mensagem SAM_FieldEdit enviada aos objetos do tipo combo box, data field, multiline text, table window ou column quando o usurio modifica o valor do um objeto e move o foco para fora do objeto. Por exemplo : Se voc digitar um valor num data field, e pressionar a tecla TAB ou clicar com o mouse fora deste objeto, uma mensagem SAM_FieldEdit enviada ao data field. Observe que a SAM_AnyEdit enviada a cada tecla pressionada, enquanto que SAM_FieldEdit enviada apenas quando o usurio tenta tirar o foco de um objeto que teve seu contedo alterado. Para realizar validaes nos objetos, utilize a mensagem SAM_Validate. A mensagem SAM_FieldEdit mantida pela Centura Software Corporation apenas para manter a compatibilidade com as verses mais antigas do Centura.

Variveis : Para objetos do tipo data field, combo box ou multiline field, os valores das variveis so : hWndForm hWndItem wParam lParam O handle do objeto top level. O handle do data field, combo box ou multiline field. No utilizada. No utilizada.

No caso do objeto column, os valores das variveis so : hWndForm O handle da table window. hWndItem O handle da coluna.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

wParam lParam

No utilizada. O nmero da linha da table window.

Mensagem : SAM_Help
Descrio : A mensagem SAM_Help enviada ao objeto do tipo top level quando o usurio pressiona a tecla de funo F1. A varivel wParam contm o handle do objeto filho que est com o foco. Utilize esta informao para disponibilizar a ajuda sensitiva ao contexto.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto top level. O handle do objeto filho que est com o foco. No utilizada.

Mensagem : SAM_KillFocus
Descrio : A mensagem SAM_ KillFocus enviada aos objetos do tipo table window, data field, multiline field, pushbutton, radio button, option button, combo box, list box, column e barras de scroll quando o usurio est tirando o foco do objeto, ou seja, quando o usurio est saindo do objeto. Esta mensagem sempre enviada, mesmo quando o valor do objeto no alterado. Ateno : Voc no pode utilizar a funo SalSetFocus enquanto processa a mensagem SAM_KillFocus, devido a uma limitao do Windows.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto. O handle do objeto que est obtendo o foco. No utilizada.

Mensagem : SAM_Print
Descrio : A mensagem SAM_Print enviada aos objetos do tipo form window, data field, multiline text, combo box ou pushbutton, quando este estiver sendo impresso.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est sendo impresso no momento. O valor do HDC ( Display Context Handle ) O retngulo que est sendo impresso.

Mensagem : SAM_TblDoDetails
Descrio : A mensagem SAM_TblDoDetails enviada table window quando o foco alterado, seja via programa ou pelo usurio. Se voc processar esta mensagem, mas no executar o comando Return, o Centura executa o seu procedimento padro para este evento.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto No utilizada. No utilizada.

Mensagem : SAM_ReportFetchInit
Descrio : A mensagem SAM_ReportFetchInit enviada ao objeto top level que iniciou o relatrio. este evento acontece quando o Report Builder est pronto para formatar a primeira pgina de um relatrio. O Report Builer envia esta mensagem aplicao, aps ter enviado a mensagem SAM_ReportStart. A mensagem SAM_ReportFetchInit significa que o Report Builder est apto a receber dados vindos da aplicao. Se a origem dos dados do relatrio for um banco de dados, execute a funo SqlExecute. Se voc retornar FALSE, o relatrio finalizado. Se voc no retonar valor algum, ou retornar TRUE, o relatrio continua.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. O handle do objeto Report Builder. No utilizada.

Mensagem : SAM_ReportFetchNext
Descrio : A mensagem SAM_ReportFetchNext enviada enviada ao objeto top level que iniciou o relatrio. O Report Builer envia esta mensagem aplicao, aps ter enviado a mensagem SAM_ReportFetchInit. A mensagem SAM_ReportFetchNext significa que o Report Builder est apto a receber a prxima linha de daodos vindos da aplicao. Se a origem dos dados do relatrio for um banco de dados, normalmente deve ser feita uma chamada funo SqlFetchNext, para se obter os dados. Se estes forem obtidos com sucesso, a aplicao deve retornar TRUE para a mensagem SAM_ReportFetchNext. O Centura no envia os dados da aplicao para o relatrio at que a aplicao retorne TRUE no processamento desta mensagem. Se no existe mais linhas de dados para serem obtidas, a aplicao deve retornar FALSE.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. O handle do objeto que iniciou o relatrio. No utilizada.

Mensagem : SAM_ReportFinish
Descrio : A mensagem SAM_ ReportFetchNext enviada ao objeto top level que iniciou o relatrio. O Report Builer envia esta mensagem aplicao quando o relatrio encerrado.

Variveis : hWndForm No utilizada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

hWndItem wParam lParam

No utilizada. O handle do objeto que iniciou o relatrio. TRUE, se o usurio cancelou a impresso do relatrio.

Mensagem : SAM_ReportNotify
Descrio : O Report Builder recebe os dados vindos da aplicao e formata os blocos do relatrio. Quando um bloco formatado ultrapassa os limites da pgina, o bloco de cabealho/rodap da pgina includo na pgina. Esta pgina ento, enviada impressora ou mostrada na tela, quando em modo de visualizar impresso. A mensagem SAM_ReportNotify enviada pelo Report Builder aplicao quando um bloco do relatrio esta formatado, e foi enviado ao buffer da pgina. As notificaes Before so enviadas antes que qualquer formatao ocorra. As notificaes Output so enviadas quando a primeira linha do relatrio enviada ao buffer, e, as notificaes Done, so enviadas quando o bloco inteiro enviado ao buffer da pgina. As notificaes so enviadas ao objeto top level que iniciou o relatrio. O Report Builder envia dois conjuntos de notificaes para cada bloco : Quando ao menos uma linha do boco formatado foi enviada ao buffer da pgina. Quando o bloco acabou de ser enviado ao buffer da pgina. Verifique o valor da varivel lParam para saber qual a parte do relatrio que o Report Builder est pronto para formatar. O valor em lParam uma das constantes RPT_Before*. O Report Builder ignora qualquer valor que voc retornar durante o processamento da mensagem SAM_ReportNotify.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. O handle do relatrio. Um dos cdigos de notificaes RPT_Before*.

Mensagem : SAM_ReportStart
Descrio : A mensagem SAM_ReportStart enviada ao objeto top level que iniciou o relatrio. O Report Builer envia esta mensagem aplicao quando est pronto para formatar uma parte do relatrio. A mensagem SAM_ReportStart enviada depois que a aplicao invoca o relatrio ( com a funo SalReportView ou SalReportPrint ) indicando que o relatrio est sendo iniciado. Esta mensagem mostrada antes que o relatrio seja mostrado ou impresso. O Centura ignora qualquer valor de retorno neste evento.

Variveis : hWndForm hWndItem wParam lParam

No utilizada. No utilizada. O handle do objeto que iniciou o relatrio. No utilizada.

Mensagem : SAM_RowHeaderClick
Descrio : A mensagem SAM_RowHeaderClick enviada table window quando voc clica no cabealho de uma linha.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha com o contexto.

Mensagem : SAM_RowHeaderDoubleClick
Descrio : A mensagem SAM_RowHeaderDoubleClick enviada table window quando voc d um doubleclick no cabealho de uma linha.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha com o contexto.

Mensagem : SAM_RowSetContext
Descrio : A mensagem SAM_RowSetContext enviada table window quando o usurio muda o foco da linha. Se voc processar esta mensagem, mas no retornar algum valor ( atravs do comando Return ), o Centura executa o seu processamento padro.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handl edo objeto. No utilizada. No utilizada.

Mensagem : SAM_RowValidate
Descrio : A mensagem SAM_RowValidate enviada table window antes que o foco mude de linha, permitindo que a aplicao valide o a linha com o contexto, ou seja, a linha que foi editada. Esta mensagem enviada apenas quando voc muda o foco de uma linha para outra, e no quando voc muda o foco da table window para algum outro objeto. Se a aplicao retornar VALIDATE_Cancel, o foco permanece na linha atual. Se a aplicao retornar VALIDATE_Ok, o comportamento da table window permanece o mesmo, mudando o foco da linha. A mensagem SAM_RowValidate enviada respeitando as configuraes dos flags da linha atual e da clula editada.

Variveis : hWndForm hWndItem wParam lParam

O handle da table window. O handle da table window. No utilizada. O nmero da linha com o contexto ( a primeira linha 0, a segunda 1, e assim por diante).

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Mensagem : SAM_ScrollBar
Descrio : A mensagem SAM_ScrollBar enviada barra de scroll horizontal e vertical, quando voc movimenta a barra utilizando o mouse ou o teclado. A aplicao deve verificar o valor da varivel wParam para determinar quais dos seguintes movimentos pode ter ocorrido: SB_Bottom, SB_LineDown, SB_LineUp, SB_PageDown, SB_PageUp, SB_ThumbPosition, SB_ThumbTrack e SB_Top.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle da scroll bar. Um dos valores SB_* citados acima. O valor numrico da scroll bar.

Mensagem : SAM_SetFocus
Descrio : A mensagem SAM_SetFocus enviada aos objetos do tipo check box, combo box, data field, list box, multiline text, push button, radio button, scroll bar ou column quando o objeto recebe o foco.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. O handle do objeto que est perdendo o foco. No utilizada.

Mensagem : SAM_SqlError
Descrio : A mensagem SAM_SqlError enviada seo Application Actions do outline quando ocorrer um erro na execuo de alguma funo SQL. Se voc processar esta mensagem, voc poder controlar como a aplicao responder aos erros SQL, num nvel global, processando os erros de maneira padronizada atravs de uma caixa de dilogo mostrando o nmero do erro e a mensagem de texto. Voc tambm pode usar o comando When SqlError em qualquer seo Message Actions do outline, para um processamento de erros mais especfico.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level que invocou a funo Sql* que provocou o erro. No utilizada. O handle Sql O nmero e a posio do erro.

Mensagem : SAM_Timer
Descrio : A mensagem SAM_Timer enviada seo Application Actions, aos objetos top level e aos seus objetos filhos de acordo com o intervalo de tempo configurado com a funo SalTimerSet. Verifique o contedo da varivel wParam para obter o identificador do timer. Desta forma, um objeto pode processar vrias mensagens SAM_Timer, de mais de um timer.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Ateno : Timers so limitados aos recursos do Windows.

Variveis : hWndForm hWndItem wParam lParam

O handle do objeto top level. O handle do objeto que est recebendo a mensagem. O identificador do timer.
No utilizada.

Mensagem : SAM_Validate
Descrio : A mensagem SAM_Validate enviada ao objetos do tipo data field, multiline field, combo box e column quando o usurio modifica o valor do objeto e tenta mover o foco para fora do objeto, ou seja, quando o usurio tenta mudar de objeto. Quando o usurio muda o valor de um destes objetos, o flag de edio do objeto modificado para TRUE. Voc pode obter o valor do flag de edio atravs da funo SalQueryFieldEdit e pode atribuir um valor ao flag de edio utilizando a funo SalSetFieldEdit. A mensagem SAM_Validate valida os valores que o usurio digitou. Sempre que o usurio modifica o valor de um objeto o Centura envia a mensagem SAM_Validate para o objeto. Se o valor do objeto estiver vlido, retorne VALIDATE_Ok mensagem SAM_Validate. Isto far com que o valor do flag de edio torne-se FALSE. O valor que voc retonar a partir da mensagem SAM_Validate controlar a mudana de foco entre os objetos. O Centura no envia a mensagem SAM_Validate quando o usurio seleciona um item de menu, pois o acesso ao menu no tira o foco do objeto. Voc pode forar a validao do objeto utilizando a funo SalSendValidateMsg no Menu Actions do menu item. Isto for a validao do campo antes de processar a escolha do menu ( sem mudar o foco ). A funo SalSendValidateMsg retorna o valor que for retornado no processamento da mensagem SAM_Validate. Os possiveis valores que devem ser retornados mensagem SAM_Validate, so : VALIDATE_Cancel No permite que o foco seja retirado do objeto, retornando o foco ao objeto editado. VALIDATE_Ok Permite a mudana do foco. Este o comportamento padro do Centura, caso voc no retorne nenhum valor na mensagem SAM_Validate. VALIDATE_OkClearFlag Permite a mudana do foco e atribui FALSE ao flag de edio do objeto. Obs : O Centura enviar a mensagem SAM_FieldEdit ao objeto, a menos que voc retorne VALIDATE_Cancel.

Para colunas da table window, os valores das variveis so : hWndForm O handle do objeto top level. hWndItem O handle do objeto que est recebendo a mensagem. wParam O handle do objeto que est recebendo o foco. Ser zero quando no existir mudana de foco, no caso de uma chamada atravs da funo SalSendValidateMsg. O ndice da linha. Se o foco est na primeira linha, este valor zero. Se o foco est na lParam
segunda linha, este valor 1, e assim por diante.

Para os outros objetos, os valores das variveis so : hWndForm O handle do objeto top level. hWndItem O handle do objeto que est recebendo a mensagem.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

wParam lParam

No utilizada.
No utilizada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice D
Guia de referncia das funes do Report Builder
Este guia serve de referncia s funes encontradas do Report Builder.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funes agregadas Average Count Maximum Minimum ReportAverage ReportCount ReportMaximum ReportMinimum ReportSum Sum Funes no agregadas CurrentDate CurrentTime DateAddDay DateConstruct DateDay DateHour DateIFF DateMinute DateMonth DateMonthBegin DateMonthEnd DateSecond DateToStr DateToStrPicture DateToStrPicture DateYear NumberAbsolute NumberCountryFmt NumberIFF NumberMod NumberRound NumberToCurrency NumberToStr NumberToStrPicture NumberTruncate PageNumber Power ReportDevice ReportDriver ReportFileName ReportPort StrCase StrCompare

Pgina PAGE 582

Programando com o Centura Team Developer 2000

StrlFF StrLeft StrLength StrLower StrLTrim StrMid StrPad StrProper StrRepeat StrReplace StrRight StrRTrim StrScan StrSpaces StrTabColSuppress StrTabRowSuppress StrTabSeparate StrToDate StrToNumber StrTranslate StrTrim StrUpper WeekDay XTabGetColCount XTabGetColHeadings XTabGetRowCount XTabGetRowHeadings

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : Average Sintaxe : nMedia = Average ( input item ) Descrio : Retorna a mdia de uma coluna dentro de um break group. Parmetro : input item

Number - A coluna que voc quer obter a mdia.

Valor de Retorno : nMedia a mdia calculada.

Funo : Count Sintaxe : nLinhas = Count ( ) Descrio : Retorna o nmero de linhas processadas dentro de um break group. Nenhum Parmetro . Valor de Retorno : nLinhas a quantidade de linhas processadas.

Funo : Maximum Sintaxe : nValor = Maximum ( input item ) Descrio : Retorna o valor mximo de uma coluna de valores. Voc pode obter o valor mximo de uma coluna de um determinado break group ou do relatrio todo. Parmetro : input item

Number - A coluna cujo valor mximo voc quer obter.

Valor de Retorno : nValor o valor mximo obtido.

Funo : Minimum Sintaxe : nValor = Minimum ( ) Descrio : Retorna o menor valor de uma coluna de valores numricos. Voc pode obter o menor valor de uma coluna de um determinado break group ou do relatrio todo. Parmetro : input_item

Number - O nome da coluna da qual voc deseja obter o menor valor.

Valor de Retorno : nValor o menor valor obtido.

Funo : ReportAverage Sintaxe : nValor = ReportAverage ( input_item )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Retorna a mdia de uma determinada coluna. Diferentemente da funo Average, ReportAverage calcula a mdia considerando o relatrio todo. Nenhum Parmetro . Valor de Retorno : nValor a mdia calculada.

Funo : ReportCount Sintaxe : nLinhas = ReportCount ( ) Descrio : Retorna o nmero de linhas processadas num relatrio. Se voc utilizar esta funo no Report Footer, nLinhas ser a quantidade total de linhas processadas no relatrio. Se voc utiliz-la no Footer de um bloco, nLinhas ser a quantidade total de linhas processadas at esse ponto do relatrio. Nenhum Parmetro . Valor de Retorno : nLinhas a quantidade total de linhas processadas at o ponto onde a funo foi processada.

Funo : ReportMaximum Sintaxe : nValor = ReportMaximum ( input_item ) Descrio : Retorna o valor mximo de uma coluna de valores no relatrio todo. Parmetro : input_item

Number - O nome da coluna da qual voc deseja obter o valor mximo.

Valor de Retorno : nValor o valor mximo obtido.

Funo : ReportMinimum Sintaxe : nValor = ReportMinimum ( input_item ) Descrio : Retorna o menor valor de uma coluna de valores numricos no relatrio todo. Parmetro : input_item

Number - O nome da coluna cujo valor mnimo voc deseja obter.

Valor de Retorno : nValor o menor valor obtido.

Funo : ReportSum Sintaxe : nValor = ReportSum ( input_item ) Descrio : Retorna a soma de uma coluna de valores numricos no relatrio todo.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : input_item

Number - O nome da coluna cuja soma de valores no relatrio todo voc deseja obter.

Valor de Retorno : O valor retornado depende do local onde voc utilizar o campo associado funo ReportSum no seu template. Se for utilizada no Report Footer, nValor a soma do input_item especificado, considerando o relatrio todo. Se for utilizada no Page Footer, nValor a soma do input_item especificado, considerando os valores at a pgina atual. Se for utilizada no Break Group Footer, nValor a soma do input_item especificado, considerando os valores at a quebra de grupo atual. Se for utilizada no Detail Block, nValor a soma do input_item especificado, considerando os valores at a linha de detalhe atual.

Funo : Sum Sintaxe : nValor = Sum ( input_item ) Descrio : Retorna a soma de uma coluna de valores numricos num determinado grupo. Parmetro : input_item

Number - O nome da coluna da qual voc deseja obter a soma dos valores de um determinado grupo.

Valor de Retorno : nValor a soma do input_item especificado num determinado Break Group.

Funo : CurrentDate Sintaxe : dtData = CurrentDate ( ) Descrio : Retorna a data atual. Esta funo baseia-se no relgio interno do seu computador, por isso, certifique-se de que a data do seu computador esteja correta. Nenhum Parmetro . Valor de Retorno : dtData a data atual.

Funo : CurrentTime Sintaxe : dtHora = CurrentTime ( ) Descrio : Retorna a hora atual. Esta funo baseia-se no relgio interno do seu computador, por isso, certifique-se de que a hora do seu computador esteja correta. Nenhum Parmetro .

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : dtHora a hora atual.

Funo : DateAddDay Sintaxe : dtData = DateAddDay ( dtDataRef , nNumDias ) Descrio : Adiciona ou subtrai um nmero de dias de uma determinada data. Parmetro : dtDataRef nNumDias

Date - Data de referncia que servir de base para o clculo. Number - Nmero de dias. Se for informado um nmero positivo, dtDataRef ser acrescida de nNumDias, se for um nmero negativo, dtDataRef ser subtraida de nNumDias.

Valor de Retorno : dtData a nova data calculada.

Funo : DateConstruct Sintaxe : dtDataHora = DateConstruct ( nAno , nMes , nDia , nHora , nMinuto , nSegundo ) Descrio : Retorna um valor tipo date/time que construdo a partir dos valores informados por voc. Parmetros : nAno nMes nDia nHora nMinuto nSegundo

Number - Um valor indicando o ano. Number - Um valor indicando o ms. Number - Um valor indicando o dia. Number - Um valor indicando a hora. Number - Um valor indicando o minuto. Number - Um valor indicando os segundos.

Valor de Retorno : dtDataHora o valor data e hora construdo.

Funo : DateDay Sintaxe : nDia = DateDay ( dtData ) Descrio : Extrai o dia de uma data informada. Parmetro : dtData

Date - O valor tipo date cujo dia voc deseja obter.

Valor de Retorno : nDia o dia extrado da data dtData.

Funo : DateHour Sintaxe : nHora = DateHour ( dtData )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Extrai a hora de uma data informada. Parmetro : dtData

Date - Um valor tipo date cuja hora voc deseja obter.

Valor de Retorno : nHora a hora extrada da data dtData.

Funo : DateIFF Sintaxe : dtData = DateIIF ( nValor , dtData1 , dtData2 , dtData3 ) Descrio : Dependendo do valor em nValor, retorna uma das trs datas informadas. Parmetros : nValor Number - Um valor numrico. dtData1 Date - A data que ser retornada, no caso do valor em nValor ser menor do que 0. dtData2 Date - A data que ser retornada, no caso do valor em nValor ser igual a 0. dtData3 Date - A data que ser retornada, no caso do valor em nValor ser maior do que 0. Valor de Retorno : dtData a data obtida.

Funo : DateMinute Sintaxe : nMinuto = DateMinute ( dtData ) Descrio : Extrai o valor dos minutos de uma data informada. Parmetro : dtData

Date - Um valor tipo date cujos minutos voc deseja obter.

Valor de Retorno : nMinuto o minuto extrado da data dtData.

Funo : DateMonth Sintaxe : nMes = DateMonth ( dtData ) Descrio : Extrai o ms de uma data informada. Parmetro : dtData

Date - Um valor tipo date do qual voc deseja obter o ms.

Valor de Retorno : nMes o ms extrado da data dtData.

Funo : DateMonthBegin

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : dtDataInicial = DateMonthBegin ( dtData ) Descrio : Retorna o primeiro dia do ms e ano especificados em dtData. Parmetro : dtData

Date - Um valor tipo date cujo primeiro dia do ms voc deseja obter.

Valor de Retorno : dtDataInicial uma data que corresponde ao primeiro dia do ms e ano informados em dtData.

Funo : DateMonthEnd Sintaxe : dtDataFinal = DateMonthEnd ( dtData ) Descrio : Retorna o ltimo dia do ms e ano especificados em dtData. Parmetro : dtData

Date - Um valor tipo date cujo ltimo dia do ms voc deseja obter.

Valor de Retorno : dtDataFinal uma data que corresponde ao ltimo dia do ms e ano informados em dtData.

Funo : DateSecond Sintaxe : nSegundos = DateSecond ( dtData ) Descrio : Extrai o valor dos segundos de uma data informada. Parmetro : dtData

Date - Um valor tipo date cujo valor dos segundos voc deseja obter.

Valor de Retorno : nSegundos o valor dos segundos extrado da data dtData.

Funo : DateToStr Sintaxe : sData = DateToStr ( dtData ) Descrio : Converte um valor de uma data para sua representao tipo string. Parmetro : dtData

Date - Um valor tipo date cujo valor string voc deseja obter.

Valor de Retorno : sData a data convertida.

Funo : DateToStrPicture Sintaxe : sData = DateToStrPicture ( dtData , sFormato ) Descrio : Converte um valor de uma data para sua representao tipo string, formatando conforme a formatao indicada em sFormato.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetro : dtData sFormato

Date - Um valor tipo date cujo valor em formato string voc deseja obter. String - A formatao que ser aplicada ao valor da data.

Valor de Retorno : sData a data convertida no formato especificado em sFormato. Por exemplo: DateToStrPicture( 12/31/56 , 'MMM d-yyyy' ) retornar a string Dec-31-1956. DateToStrPicture( 12/31/56 , 'dd-MM-yyyy' ) retornar a string 31-12-1956.

Funo : DateYear Sintaxe : nAno = DateYear ( dtData ) Descrio : Extrai o valor do ano de uma data informada. Parmetro : dtData

Date - Um valor tipo date cujo ano voc deseja obter.

Valor de Retorno : nAno o valor do ano extrado da data dtData.

Funo : NumberAbsolute Sintaxe : nValorAbsoluto = NumberAbsolute ( nValor ) Descrio : Retorna o valor absoluto de um nmero. Parmetro : nValor

Number - O valor numrico cujo valor absoluto voc deseja obter.

Valor de Retorno : nValorAbsoluto o valor absoluto do nmero nValor.

Funo : NumberCountryFmt Sintaxe : sValor = NumberCountryFmt ( nValor ) Descrio : Retorna uma string formatada, representando o valor nmero em nValor. A formatao utilizada depende das configuraes internacionais do Windows. Parmetro : nValor

Number - O valor numrico cujo valor em formato string voc deseja obter.

Valor de Retorno : sValor valor string formatado.

Funo : NumberIFF Sintaxe : nValor = NumberIIF ( nNumero , nValor1 , nValor2 , nValor3 ) Descrio : Dependendo do valor em nNumero, retorna um dos trs valores informados.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : nNumero Number - Um valor numrico. nValor1 Number - O valor que ser retornado, no caso de nNumero ser menor do que 0. nValor2 Number - O valor que ser retornado, no caso de nNumero ser igual a 0. nValor3 Number - O valor que ser retornado, no caso de nNumero ser maior do que 0. Valor de Retorno : nValor o valor obtido.

Funo : NumberMod Sintaxe : nResto = NumberMod ( nNumero1 , nNumero2 ) Descrio : Obtm o resto da diviso entre nNumero1 e nNumero2. Parmetros : nNumero1 Number - O valor numrico que ser dividido por nNumero2. nNumero2 Number - O valor numrico que ser o divisor de nNumero1. Valor de Retorno : nResto o resto da diviso de nNumero1 por nNumero2.

Funo : NumberRound Sintaxe : nNovoNumero = NumberRound ( nNumero, nPreciso ) Descrio : Retorna um valor numrico arredondado, de acordo com o nmero de casas decimais informado em nPreciso. Parmetros : nNumero Number - O valor numrico que ser arredondado. nPreciso Number - O nmero de casas decimais, direita do ponto decimal. Valor de Retorno : nNovoNumero o novo nmero gerado, devidamente arredondado, de acordo com o nmero de casas decimais informado em nPreciso.

Funo : NumberToCurrency Sintaxe : sNumeroFormatado = NumberToCurrency ( nNumero ) Descrio : Converte o nmero informado para um valor string, formatado de acordo com as configuraes padres do Windows. Parmetro : nNumero

Number - O valor numrico que ser convertido.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

sNumeroFormatado um valor string que representa o valor numrico nNumero formatado.

Funo : NumberToStr Sintaxe : sNumero = NumberToStr ( nNumero ) Descrio : Converte o nmero informado para um valor string. Parmetro : nNumero

Number - O valor numrico que ser convertido.

Valor de Retorno : sNumero um valor string que representa o valor numrico nNumero.

Funo : NumberToStrPicture Sintaxe : sNumero = NumberToStrPicture ( nNumero , sFormato) Descrio : Converte o nmero informado em nNumero para um valor string, aplicando a formatao informada em sFormato. Parmetros : nNumero Number - O valor numrico que ser convertido e formatado. sFormato String - A formatao que ser aplicada ao nmero informado em sFormato. Valor de Retorno : sNumero um valor string que representa o valor numrico nNumero formatado.

Funo : NumberTruncate Sintaxe : nNumTruncado = NumberTruncate ( nNumero , nPrecisao) Descrio : Trunca o nmero, obedecendo o nmero de casas decimais especificado em nPrecisao. Parmetros : nNumero Number - O valor numrico que ser truncado. nPrecisao Number - O nmero de casas decimais. Valor de Retorno : nNumTruncado o valor truncado.

Funo : PageNumber Sintaxe : nNumPagina = PageNumber ( ) Descrio : Retorna o nmero da pgina atual. Nenhum Parmetro. Valor de Retorno : nNumPagina o nmero da pgina atual.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : Power Sintaxe : nNovoNumero = Power ( nNumero , nPotencia ) Descrio : Retorna o valor em nNumero elevado a potncia do nmero informado em nPotencia. Parmetros : nNumero Number - O nmero que voc deseja elevar a uma determinada potncia. nPotencia Number - O valor da potncia. Valor de Retorno : nNovoNumero o resultado da exponenciao.

Funo : ReportDevice Sintaxe : sNomeImpr = ReportDevice ( ) Descrio : Retorna o nome da impressora conectada ao relatrio. Nenhum Parmetro. Valor de Retorno : sNomeImpr o nome da impressora conectada ao relatrio.

Funo : ReportDriver Sintaxe : sNomeDriver = ReportDriver ( ) Descrio : Retorna o nome do driver de impresso. Nenhum Parmetro. Valor de Retorno : sNomeDriver o nome do driver de impresso.

Funo : ReportFileName Sintaxe : sNomeQRP = ReportFileName ( ) Descrio : Retorna o nome do arquivo do relatrio atual. Nenhum Parmetro. Valor de Retorno : sNomeQRP o nome do arquivo do relatrio atual.

Funo : ReportPort Sintaxe : sPorta = ReportPort ( ) Descrio : Retorna a porta fsica conectada a sua impressora.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Nenhum Parmetro. Valor de Retorno : sPorta o identificador da porta conectada a sua impressora.

Funo : StrCase Sintaxe : sSubStr = StrCase ( nNum , sLista ) Descrio : Extrai e retorna uma string de uma lista de valores delimitados por vrgulas. Parmetros : nNum Number - Um valor numrico positivo incluindo o zero. sLista String - Uma lista de valores string delimitados por vrgulas. Valor de Retorno : sSubStr a string retirada da lista de valores delimitados por vrgulas.

Funo : StrCompare Sintaxe : nRetorno = StrCompare ( sStr1, sStr2 ) Descrio : Compara o contedo de duas strings e retorna um valor numrico. A comparao feita baseando-se nos caracteres ASCII dos contedos dos parmetros. Parmetros : sStr1 String - Um valor string para ser comparado. sStr2 String - Um valor string para ser comparado. Valor de Retorno : nRetorno um valor numrico que indica: se sStr1 < sStr2, nRetorno um valor menor do que zero. se sStr1 = sStr2, nRetorno zero. se sStr1 > sStr2, nRetorno um valor maior do que zero.

Funo : StrIFF Sintaxe : nRetorno = StrIFF ( nNumero, sValor1, sValor2, sValor3 ) Descrio : Dependendo do valor em nNumero, retorna um dos trs valores informados. Parmetro : nNumero sValor1 sValor2 sValor3

Number - Um valor numrico. Number - O valor que ser retornado, no caso de nNumero ser menor do que 0. Number - O valor que ser retornado, no caso de nNumero ser igual a 0. Number - O valor que ser retornado, no caso de nNumero ser maior do que 0.

Valor de Retorno :

Pgina PAGE 582

Programando com o Centura Team Developer 2000

nRetorno o valor obtido.

Funo : StrLeft Sintaxe : sRetorno = StrLeft ( sValor, nTamanho ) Descrio : Extrai e retorna o nmero de caracteres informado em nTamanho, de acordo com o valor indicado em sValor. O ponto inicial para a extrao a posio mais esquerda da string. Parmetros : sValor String - O valor string. nTamanho Number - O nmero de caracteres a serem extrados da string em sValor. Valor de Retorno : sRetorno a parte extrada da string.

Funo : StrLength Sintaxe : nTamanho = StrLength ( sValor ) Descrio : Retorna o tamanho de uma string. Parmetro : sValor

String - O valor string.

Valor de Retorno : nTamanho o tamanho da string informada em sValor.

Funo : StrLower Sintaxe : sNovoValor = StrLower ( sValor ) Descrio : Retorna a string informada em sValor, tendo todas as suas letras substitudas por suas equivalentes minsculas. Parmetro : sValor

String - O valor string.

Valor de Retorno : sNovoValor a string contida em sValor, toda em letras minsculas.

Funo : StrLTrim Sintaxe : sNovoValor = StrLTrim ( sValor ) Descrio : Retira os espaos em branco e os tabs que existirem entre a posio inicial mais esquerda da string e a primeira letra ou caractere. Parmetro : sValor

String - O valor string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : sNovoValor a string contida em sValor, sem os caracteres tab e espaos localizados esquerda.

Funo : StrMid Sintaxe : sNovoValor = StrMid ( sValor , nInicio , nTamanho ) Descrio : Extrai um pedao de uma string, baseando-se na posio inicial informada em nInicio e no tamanho da nova string indicado em nTamanho. Parmetros : sValor String - O valor string. nInicio Number - A posio inicial da nova string. nTamanho Number - O nmero de caracteres a serem extrados. Valor de Retorno : sNovoValor a nova string extrada.

Funo : StrPad Sintaxe : sNovoValor = StrPad ( sValor , nComprimento ) Descrio : Redimensiona a string informada em sValor, para que esta fique do tamanho indicado em nComprimento. Se o tamanho original da string for menor do que nComprimento, caracteres brancos sero adicionados string. No caso oposto, ou seja, se o tamanho original da string for maior do que o informado em nComprimento, a string original ser truncada. Parmetro : sValor String - O valor string. nComprimento Number - O novo tamanho da string. Valor de Retorno : sNovoValor a nova string redimensionada.

Funo : StrProper Sintaxe : sNovoValor = StrProper ( sValor ) Descrio : Retorna a string informada em sValor, tendo todas as suas letras substitudas por suas equivalentes minsculas, porm, a letra inicial de cada palavra colocada em maiscula. Parmetros : sValor String - O valor string. Valor de Retorno : sNovoValor a nova string gerada.

Funo : StrRepeat

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Sintaxe : sNovoValor = StrRepeat ( sValor , nNum ) Descrio : Esta funo pega a string que voc informou em sValor e a repete um determinado nmero de vezes em nNum. Parmetros : sValor String - O valor string. nNum Number - O nmero de vezes que a string ser repetida. Valor de Retorno : sNovoValor a nova string gerada.

Funo : StrReplace Sintaxe : sNovaString = StrReplace ( sOriginal , nInicio , nTamanho , sTrocar ) Descrio : Esta funo retorna o valor de sOriginal substitudo por sTrocar a partir da posio informada em nInicio, obedecendo o nmero de caracteres em nTamanho. Parmetros : sOriginal nInicio nTamanho sTrocar

String - A string original. Number - A posio inicial onde a string sTrocar ser inserida. Number - O nmero de caracteres que ser substitudo na string original. String - A string a ser inserida.

Valor de Retorno : sNovaString a nova string gerada.

Funo : StrRight Sintaxe : sRetorno = StrRight ( sValor , nTamanho ) Descrio : Extrai e retorna o nmero de caracteres informado em nTamanho do valor contido em sValor. O ponto inicial para a extrao a posio mais direita da string. Parmetros : sValor String - O valor string. nTamanho Number - O nmero de caracteres a serem extrados da string em sValor. Valor de Retorno : sRetorno a parte extrada da string.

Funo : StrRTrim Sintaxe : sNovoValor = StrRTrim ( sValor ) Descrio : Retira os espaos em branco e os tabs que existirem entre a posio final mais direita da string e o ltimo caractere do contedo da varivel. Parmetro : sValor

String - O valor string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Valor de Retorno : sNovoValor a string contida em sValor, sem os caracteres tab e espaos localizados direita.

Funo : StrScan Sintaxe : nPosicao = StrScan ( sString , sLocalizar ) Descrio : Esta funo procura pela string sLocalizar em sString, e retorna a posio inicial onde esta foi encontrada. Parmetros : sString String - O valor string. sLocalizar String - A string que ser procurada em sString. Valor de Retorno : nPosicao a posio onde sLocalizar foi encontrada em sString. Se no for encontrada, nPosicao -1.

Funo : StrSpaces Sintaxe : sString = StrSpaces ( nTamanho ) Descrio : Esta funo retorna uma string repleta de espaos em branco, do tamanho especificado em nTamanho. Parmetros : nTamanho Number - O tamanho da string retornada. Valor de Retorno : sString a string gerada.

Funo : StrTabColSuppress Sintaxe : sRetorno = StrTabColSuppress ( sOrigem ) Descrio : Retorna a string sOrigem, excluindo os valores repetidos das colunas. Esta funo no apaga os caracteres tab separadores entre cada coluna, nem os caracteres CRLF separando as linhas. Parmetro : sOrigem

String - A string com mltiplas linhas separadas pelo caractere CRLF, e mltiplas colunas separadas pelo caractere tab.

Valor de Retorno : sRetorno a string gerada, sem os valores repetidos nas colunas.

Funo : StrTabRowSuppress Sintaxe : sRetorno = StrTabRowSuppress ( sOrigem ) Descrio : Retorna a string sOrigem, excluindo os valores repetidos das linhas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Esta funo no apaga os caracteres tab separadores entre cada coluna, nem os caracteres CRLF separando as linhas. Parmetro : sOrigem

String - A string com mltiplas linhas separadas pelo caractere CRLF, e mltiplas colunas separadas pelo caractere tab.

Valor de Retorno : sRetorno a string gerada sem os valores repetidos nas linhas.

Funo : StrTabSeparate Sintaxe : sRetorno = StrTabSeparate ( sOrigem ) Descrio : Retorna a string em sOrigem, colocando um caractere tab entre cada palavra da string. Parmetro : sOrigem

String - A string com vrias palavras separadas por espaos em branco.

Valor de Retorno : sRetorno a string gerada com um caractere tab entre cada palavra.

Funo : StrToDate Sintaxe : dtData = StrToDate ( sStrData ) Descrio : Esta funo converte a string em sStrData para uma data. Parmetro : sStrData

String - A data em formato string que ser convertida.

Valor de Retorno : dtDate a data gerada a partir da string em sStrData.

Funo : StrToNumber Sintaxe : nNum = StrToNumber ( sStrNum ) Descrio : Esta funo converte a string em sStrNum para um valor tipo Number. Parmetro : sStrNum

String - O nmero em formato string que ser convertido.

Valor de Retorno : nNum o nmero gerado a partir da string em sStrNum.

Funo : StrTranslate Sintaxe : sRetorno = StrTranslate ( sValor , sIds , sString )

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Descrio : Esta funo avalia o valor em sValor e, baseado nos identificadores em sIds, retorna a string apropriada presente em sString. Parmetros : sValor String - O valor que ser procurado em sIds. sIds String - Os identificadores. sString String - Os valores separados por vrgulas que sero retornados em sRetorno. Valor de Retorno : sRetorno o valor retornado.

Funo : StrTrim Sintaxe : sRetorno = StrTrim ( sValor ) Descrio : Esta funo retira os espaos em branco do incio e do final da string informada em sValor. Parmetro : sValor

String - O valor string que ter os espaos em branco do incio e do final retirados.

Valor de Retorno : sRetorno o valor em sValor sem os espaos.

Funo : StrUpper Sintaxe : sRetorno = StrUpper ( sValor ) Descrio : Esta funo converte a string informada em sValor para letras maisculas. Parmetro : sValor

String - O valor string que ser convertido em letras maisculas.

Valor de Retorno : sRetorno o valor em sValor em letras maisculas.

Funo : StrWeekDay Sintaxe : nDia = StrWeekDay ( dtData ) Descrio : Esta funo retorna o dia da semana correspondente data informada. Parmetro : dtData

Date - A data que ser analisada.

Valor de Retorno : nDia o dia da semana.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funo : XTabGetColCount Sintaxe : nRetorno = XTabGetColCount ( sCrossTab ) Descrio : Esta funo retorna o nmero de colunas existentes no cross tab sCrossTab. Parmetro : sCrossTab

String - O nome do cross tab cujo nmero de colunas voc deseja contar.

Valor de Retorno : nRetorno o nmero de colunas.

Funo : XTabGetColHeadings Sintaxe : sRetorno = XTabGetColHeadings ( sCrossTab , nFormula , sFormato ) Descrio : Retorna os cabealhos das colunas do seu cross tab, baseado no item selecionado em nFormula. Esta funo obtm uma string contendo a lista de valores, separada por tabs, que o resultado da formula nFormula. A linha obtida utilizada para gerar o ndice das colunas presentes no cross tab identificado em sCrossTab. Parmetros : sCrossTab String - O nome do cross tab ao qual voc deseja aplicar a frmula nFormula. nFormula Number - a categoria das colunas cujos cabealhos voc deseja obter. Especifique o nmero da referida categoria. sFormato String - O formato a ser aplicado ao valor numrico. Valor de Retorno : sRetorno o cabealho das colunas obtidas.

Funo : XTabGetRowCount Sintaxe : nRetorno = XTabGetRowCount ( sCrossTab ) Descrio : Esta funo retorna o nmero total de linhas presentes no cross tab indicado em sCrossTab. Parmetro : sCrossTab

String - O nome do cross tab do qual voc deseja contar o nmero de linhas.

Valor de Retorno : nRetorno o nmero de linhas do cross tab.

Funo : XTabGetRowHeadings Sintaxe : sRetorno = XTabGetRowHeadings ( sCrossTab , nFormula , sFormato ) Descrio : Retorna os cabealhos das linhas do seu cross tab baseado no item selecionado em nFormula. Esta funo obtm uma string contendo a lista de valores, separada por tabs, que o resultado da formula nFormula. A linha obtida utilizada para gerar o ndice das linhas presentes no cross tab identificado em sCrossTab.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Parmetros : sCrossTab String - O nome do cross tab ao qual voc deseja aplicar a frmula nFormula. nFormula Number - a categoria das linhas cujos cabealhos voc deseja obter. Especifique o nmero da referida categoria. sFormato String - O formato a ser aplicado ao valor numrico. Valor de Retorno : sRetorno o cabealho das linhas obtidas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice E
Guia de referncia das classes e funes da Biblioteca Visual Toolchest
Alm das funes que o Centura SQLWindows/32 disponibiliza para o desenvolvedor de forma nativa, existem ainda cerca de 200 funes que voc pode acessar atravs da biblioteca Visual Toolchest. Essas funes esto agrupadas em categorias para facilitar a consulta. Uma srie de classes tambm adicionada ao ambiente do SQLWindows/32 atravs da Visual Toolchest. Essas classes e alguns exemplos so mostrados neste apndice.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Classes disponveis na Biblioteca Visual Toolchest As classes da biblioteca Visual Toolchest expandem as funcionalidades das aplicaes SQLWindows/32. Diversos avanos visuais so disponibilizados nessas classes. A seguir so mostradas as classes da Biblioteca Visual Toolchest:

cColorComboBox

cColorListBox

As classes cColorComboBox e cColorListBox permitem que cada elemento de um combo box ou list box seja mostrado em cores diferentes.

cDirListBox

cDirTreeListBox

As classes cDirListBox e cDirTreeListBox permitem a navegao atravs da rvore dos diretrios, utilizando a interface padro do Windows.

cDriveComboBox

cDriveListBox

As classes cDriveComboBox e cDriveListBox mostram todos os drives do sistema, indicando o tipo do drive com uma figura. Esse objeto funciona de forma similar ao combo box utilizado na caixa de dilogo padro do windows para "Abrir Arquivo".

cFontComboBox

cFontListBox

Pgina PAGE 582

Programando com o Centura Team Developer 2000

As classes cFontComboBox e cfontListBox permitem que cada elemento de um combo box ou list box seja mostrado numa configurao de fonte ( tipo, tamanho e melhoramento de fonte ) diferente.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

cFontNameComboBox

cFontNameListBox

As classes cFontNameComboBox e cFontNameListBox mostram num combo box ou list box os nomes e tipos das fontes instaladas. As fontes True Type so identificadas pelo seu prprio smbolo padro. As fontes padro da impressora so mostradas com o cone da impressora. As demais fontes no possuem identificadores.

cMeter

A classe cMeter serve para mostrar ao usurio o percentual de concluso em tarefas longas, deixando-o informado quanto ao estado atual de concluso de uma determinada tarefa.

cOutlineComboBox

cOutlineListBox

As classes cOutlineComboBox e cOutlineListBox provm funcionalidade de outline aos objetos combo box e list box, respectivamente.

cPictureComboBox

cPictureListBox

As classes cPictureComboBox e cPictureListBox permitem ter uma imagem associada a cada item de um combo box ou list box. Essas imagens podem ser posicionadas na mesma linha do texto, ou em linhas separadas.

cRadioListBox

Pgina PAGE 582

Programando com o Centura Team Developer 2000

A classe cRadioListBox permite que os elementos de um list box tenham aparncia e comportamento similar aos objetos check box e radio button.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

cDesktopListBox

A classe cDesktopListBox permite a navegao atravs da rvore dos diretrios, utilizando a interface padro do Windows a partir da rea de Trabalho.

cSpinField

A classe cSpinField bastante similar ao comportamento do objeto data field, porm, possui duas setas que permitem que os valores sejam acrescentados ou diminudos.

cSplitterWindow e cListView

Na figura acima podem ser visualizados objetos das classes cDirTreeListBox, cSplitterWindow e cListView. A classe cSplitterWindow representada visualmente pela barra que separa os dois quadros mostrados acima, da mesma forma como feito no ambiente do SQLWindows/32. A classe cListView, mostrada no quadro direito do exemplo acima, possui todas as funcionalidades presentes no Windows Explorer. No s nomes de arquivos e diretrios podem ser mostrados, mas informaes presentes em tabelas de bancos de dados SQL tambm podem ser lidas e visualizados numa instncia da classe cListView.

cCalendar e cDropDownCalendar

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na figura acima podem ser visualizados objetos das classes cCalendar e cDropDownCalendar, que oferecem uma interface amigvel para o usurio informar uma data.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Funes Visual Toolchest Para que estas funes possam ser utilizadas na sua aplicao voc precisa declarar na seo Libraries do outline do SQLWindows/32 a utilizao da biblioteca chamada VT.APL. Abaixo esto relacionadas as funes da Biblioteca Visual Toolchest agrupadas em categorias: Tratamento de Vetores Nome da funo VisArrayAppend VisArrayCopy VisArrayDeleteItem VisArrayFillDateTime VisArrayFillNumber VisArrayFillString VisArrayFindDateTime VisArrayFindNumber VisArrayFindString VisArrayInsertItem VisArraySort Descrio resumida Adiciona um vetor no final de um outro vetor. Copia um vetor para dentro de outro vetor. Apaga um item de um vetor. Preenche um vetor tipo Date/Time com um valor especificado. Preenche um vetor tipo Number com um valor especificado. Preenche um vetor tipo String com um valor especificado. Localiza um valor Date/Time num vetor. Localiza um valor Number num vetor. Localiza um valor String num vetor. Inclui um item num vetor. Classifica um vetor tanto em ordem ascendente como decrescente.

Cores e Fontes Nome da funo VisFontEnum VisFontFree VisFontGet VisFontLoad VisTblSetRowColor VisMenuInsertFont VisMenuSetFont Funes de Depurao Nome da funo VisDebugAssert VisDebugBeginTime VisDebugEndTime VisDebugGetFlags VisDebugSetFlags Descrio resumida Certifica-se de que uma condio verdadeira. Comea a gravar uma operao. Interrompe a gravao do tempo e mostra todos os tempos, inclusive o tempo total. Obtm os flags de depurao. Define os flags de depurao. Descrio resumida Obtm os nomes e tipos das fontes. Libera uma fonte que tenha sido carregada na memria atravs da funo VisFontLoad. Obtm as especificaes de uma determinada fonte. Carrega na memria uma determinada fonte. Determina a cor do texto de todas as colunas de uma determinada linha de uma table window. Inclui um item de menu num menu e o mostra numa determinada fonte. Mostra um menu item na fonte especificada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisDebugSetLevel VisDebugSetTime VisDebugString Recursos DOS Nome da funo VisDosBuildFullName VisDosEnumDirInfo VisDosEnumDirs

Determina o nvel de depurao atual. Grava o tempo desde a ltima chamada das funes VisDebugSetTime ou VisDebugBeginTime Grava uma string na janela de depurao.

Descrio resumida Constri o nome com o drive e o path completo, baseado na localizao do executvel que est sendo executado. Carrega num vetor as informaes de todos os subdiretrios de um determinado diretrio. Carrega num vetor os nomes de todos os subdiretrios de um determinado diretrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisDosEnumDrives

Carrega num vetor todos os drives, incluindo os drives tipo floppy, winchesters, CD-ROM, rede e RAM. VisDosEnumFileInfo Carrega num vetor os nomes, tamanhos, datas e atributos de todos os arquivos de um determinado diretrio. VisDosEnumFiles Carrega num vetor os nomes de todos os arquivos de um diretrio. VisDosEnumNetConnection Obtm todas as conexes de rede ativas. s VisDosEnumPath Obtm todos os diretrios da varivel de ambiente PATH do DOS. VisDosEnumsShortDirInfo Carrega num vetor as informaes de todos os subdiretrios de um determinado diretrio. VisDosEnumsShortDirs Carrega num vetor todos os nomes longos/curtos dos subdiretrios de um determinado diretrio. VisDosEnumsShortFileInfo Carrega num vetor todos os nomes e demais informaes dos arquivos de um determinado diretrio. VisDosEnumsShortFiles Carrega num vetor todos os nomes longos/curtos dos arquivos de um determinado diretrio. VisDosExist Verifica a existncia de um arquivo, drive ou diretrio. VisDosGetCurDir Obtm o diretrio atual de um determinado drive. VisDosGetDriveSize Obtm o espao disponvel num drive. VisDosGetDriveType Obtm o tipo do drive especificado. VisDosGetEnvString Obtm uma varivel do ambiente baseado numa palavra chave. VisDosGetFlags Obtm os status dos flags do DOS. VisDosGetNetName Obtm o nome da rede de um determinado dispositivo. VisDosGetVersion Obtm a verso do MS-DOS. VisDosGetVolumeLabel Obtm o nome do volume de um determinado drive. VisDosIsParent Obtm o indicador que determina se um diretrio contm subdiretrios. VisDosMakeAllDir Cria todos os diretrios de um path especificado. VisDosMakePath Constri o path completo dado um drive, um diretrio ou nome de arquivo. VisDosNetConnect Conecta a um dispositivo de rede. VisDosNetDisconnect Cancela uma conexo a um dispositivo de rede. VisDosSetFlags Configura os flags verify, break ou error mode. VisDosSetVolumeLabel Configura o nome do volume de um dispositivo de disco. VisDosSplitPath Divide a especificao de drive, nome de diretrio e nome de arquivo. Gerenciamento de arquivos Nome da funo VisFileAppend VisFileClose VisFileCopy VisFileCreateTemp Descrio resumida Acrescenta um ou mais arquivos a outro. Fecha um arquivo que foi aberto com a funo VisFileOpen. Copia um ou mais arquivos. Cria um arquivo temporrio.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisFileDelete VisFileExpand VisFileFind

Apaga um ou mais arquivos. Copia um arquivo origem para um arquivo destino. Procura por um determinado arquivo e, se encontr-lo, retorna o path completo do mesmo. VisFileGetAttribute Obtm os valores dos atributos de um determinado arquivo. VisFileGetSize Obtm o tamanho de um determinado arquivo (em bytes). VisFileGetType Obtm o tipo do arquivo. VisFileOpen Cria ou abre um arquivo. VisFileRead L um bloco de dados de um arquivo. VisFileReadString Carrega numa string uma linha de texto de um arquivo. VisFileRename Renomeia um ou mais arquivos. VisFileSeek Posiciona, numa determinada posio, dentro de um arquivo. VisFileSetAttribute Configura os atributos de um ou mais arquivos. VisFileSetDateTime Configura os valores data/hora de um ou mais arquivos. VisFileTell Obtm a posio do ponteiro de um arquivo. VisFileWrite Escreve um bloco de informaes num arquivo. VisFileWriteString Escreve uma string num arquivo. Tratamento de List box e combo box Nome da funo VisListAddValue VisListArrayPopulate VisListArrayPopulateValue VisListClearSelection VisListDeleteSelected VisListFindString VisListFindValue VisListGetDropdownState VisListGetFocusIndex Descrio resumida Adiciona um item num list box ou combo box ordenado, e associa o valor especificado ao item. Carrega os elementos de um vetor num list box. Carrega os elementos de um vetor string e um vetor de valores num list box. Desmarca todos os itens marcados num list box ou combo box. Apaga todos os itens marcados num list box ou combo box. Encontra num list box ou combo box, a primeira ocorrncia de um elemento igual string especificada. Localiza o valor associado a um item, baseado num ndice. Obtm a informao se a poro list box de um combo box est visvel. Obtm o ndice do item que est com o foco ou, no caso de list box que permite mltipla escolha, o ndice do ltimo item que recebeu o foco. Obtm os ndices do primeiro e do ltimo elemento visvel num list box. Inclui um item num list box ou combo box no ordenado, e associa o valor especificado ao item. Testa um list box para verificar se est configurado para aceitar mltiplos itens selecionados ao mesmo tempo. Torna visvel um determinado item de um list box ou combo box. Mostra ou esconde a poro list box de um combo box. Move o foco para um determinado item num list box que permite mltipla escolha.

VisListGetVisibleRange VisListInsertValue VisListIsMultiSelect VisListScroll VisListSetDropdownState VisListSetFocusIndex

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisListSetScrollWidth

Determina a largura que o list box poder ser rolado horizontalmente.

Funes de uso genrico Nome da funo VisMenuSetText VisWinGetText VisErrorRecovery Descrio resumida Modifica o texto de um item de menu. Obtm o texto de um objeto. Mostra uma mensagem de erro e permite que o usurio libere recursos e tente novamente a operao que causou o erro. Obtm a string de direitos autorais para mostrar numa aplicao que utilize a biblioteca Visual Toolchest. Obtm o estado de uma determinada tecla. Obtm a largura e altura de diversos elementos mostrados pelo Windows. Obtm o nmero da verso da biblioteca Visual Toolchest. Obtm a configurao atual de memria do windows. Obtm o nmero da verso do Windows. Carrega um outline a partir de um objeto blob (binary large object) na memria. Carrega um outline a partir de um arquivo ASCII identado por Tabs. Compacta e salva num objeto blob, um outline contido num list box ou combo box. Obtm o handle de um menu popup. Obtm o handle do menu do sistema de uma janela. Obtm o texto de um menu item. Insere um menu item num menu. Verifica se um menu item est marcado. Verifica se um menu item est habilitado. Desmarca um menu item. Avalia uma expresso numrica. Avalia uma expresso string. Localiza uma string numa tabela. Libera toda a memria associada a uma tabela string. Retira os brancos de uma string. Carrega na memria uma tabela gravada em disco. Liga/desliga a ampulheta do cursor. Limpa o flag de edio de cada data field ou multiline field de um determinado objeto top level. Obtm a lista de propriedades de um determinado objeto. Limpa o atalho de um objeto, liberando a memria associada ao atalho. Obtm os flags de um determinado objeto. Obtm o valor de uma lista de propriedades de um objeto. Obtm o estilo de um determinado objeto.

VisGetCopyright VisGetKeyState VisGetSystemMetrics VisGetVersion VisGetWinFlags VisGetWinVersion VisListLoadOutline VisListLoadOutlineFile VisListSaveOutline VisMenuGetPopupHandle VisMenuGetSystemHandle VisMenuGetText VisMenuInsert VisMenuIsChecked VisMenuIsEnabled VisMenuUncheck VisNumberChoose VisStrChoose VisStrFind VisStrFreeTable VisStrLeftTrim VisStrLoadTable VisWaitCursor VisWinClearAllEditFlags VisWinEnumProps VisWinFreeAccelerator VisWinGetFlags VisWinGetProp VisWinGetStyle

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisWinIsRequiredFieldNull Testa e verifica se um determinado objeto obrigatrio est nulo. VisWinSetMeter Mostra o complemento da medida num data field. Utilizado para medir percentual de concluso de uma determinada tarefa. Funes de mensagens Nome da funo VisMessageBox Descrio resumida Mostra uma caixa de mensagem com os botes e cone determinados pelo programador. VisMessageFreeButton Libera a memria alocada pela funo VisMessageLoadButton. VisMessageLoadButton Torna um boto disponvel para ser utilizado numa caixa de dilogo definida pelo programador. VisMessageSetBkgdColor Determina a cor do background de uma caixa de dilogo definida pelo programador. VisSendMsgString Envia uma mensagem e passa uma string no parmetro lParam. Funes numricas Nome da funo VisNumberHighByte VisNumberLowByte VisNumberMakeLong Descrio resumida Converte um determinado nmero em um valor tipo WORD e retorna o valor 8 bits high-order. Converte um determinado nmero em um valor tipo WORD e retorna o valor 8 bits low-order. Cria um valor tipo word duplo ( DWORD ) a partir de dois valores tipo word.

Tratamento de imagens Nome da funo VisMenuInsertPicture VisMenuSetPicture VisPicFree VisPicLoad VisTblSetRowPicture Tratamento de strings Nome da funo VisStrExpand VisStrPad VisStrProper Descrio resumida Expande uma string modelo, inserindo um ou mais elementos de um vetor. Completa uma string com brancos e retorna o resultado. Converte uma string, fazendo com que cada palavra inicie com Descrio resumida Insere um menu item num menu e mostra a imagem nele especificada. Mostra uma imagem num menu item. Descarrega uma imagem ( bitmap ou cone ) da memria. Carrega uma imagem ( bitmap ou cone ) para a memria. Atribui uma imagem a um flag de uma table window.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

VisStrRightTrim VisStrScanReverse VisStrSubstitute VisStrTrim

letras maisculas. Tira os branco direita de uma string. Pesquisa uma string por uma cadeia de caracteres. A pesquisa realizada a partir do ltimo caractere para o primeiro. Substitui todas as ocorrncias de uma string numa outra string. Tira os brancos iniciais e finais de uma string.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Recursos para table window Nome da funo VisTblAllRows Descrio resumida Determina se alguma linha na table window possui determinados flags. VisTblAutoSizeColumn Ajusta a largura de uma coluna da table window para o melhor tamanho, de acordo com o seu contedo. VisTblClearColumnSelec Limpa a seleo para todas as colunas de uma table window. tion VisTblFindDateTime Localiza um valor data/hora numa coluna.. VisTblFindNumber Localiza um valor number numa coluna. VisTblFindString Localiza um valor string numa coluna. VisTblGetCell Obtm o contedo de uma clula numa table window. VisTblGetColumnTitle Obtm o contedo do ttulo de uma coluna. Gerenciamento de objetos Nome da funo VisWinIsChild VisWinIsMaximized VisWinIsMinimized VisWinIsRestored VisWinIsWindow VisWinLoadAccelerator VisWinMove VisWinRemoveProp VisWinSetFlags VisWinSetProp VisWinSetStyle VisWinSetTabOrder VisWinShow Descrio resumida Testa se um determinado objeto filho direto ou indireto de outro objeto. Testa se uma determinada janela est maximizada. Testa se uma determinada janela est minimizada. Testa se uma determinada janela no est maximizada nem minimizada. Testa se um determinado objeto um objeto vlido. Obtm a tecla de atalho de um determinado objeto. Move e redimensiona um objeto, baseado nas coordenadas ( em pixels ). Remove a lista de propriedades de um objeto. Define os flags de um determinado objeto. Adiciona uma nova entrada na lista de propriedades de um objeto, ou modifica o valor de uma das suas propriedades. Define o estilo de um objeto. Modifica a ordem de tabulao de um objeto. Define o estado de visibilidade de um objeto.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Apndice F
Guia de Instalao do Centura Team Developer verso 2000
O Centura Team Developer pode ser instalado de diversas maneiras. Neste apndice, apresentamos a maneira correta de se efetuar esse procedimento, utilizando o CD de instalao do produto. Direcionamos todas as instrues de modo a atender os pr-requisitos necessrios aos exemplos de aplicaes aqui contidos. Por esse motivo, recomendamos que as instrues a seguir sejam seguidas fielmente, dessa forma, garantimos que voc ter instalado todos os componentes necessrios para o adequado acompanhamento dos exemplos do livro.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Para instalar o Centura Team Developer 2000 no seu computador siga as instrues descritas a seguir : Inicie o Microsoft Windows. Coloque o CD de instalao do Centura Team Developer 2000 no seu dispositivo de CD-ROM. O Programa de instalao ser executado e a janela abaixo ser mostrada.

A janela abaixo mostrada solicitando as suas informaes de registro do produto. Preencha os campos com o seu nome, o nome da empresa, e o cdigo de autorizao da sua cpia do Centura Team Developer 2000.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Informe o local onde voc deseja instalar o Centura Team Developer 2000.

Informe o grupo de programas onde o Centura Team Developer 2000 ser instalado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Na janela abaixo voc deve escolher os componentes selecionados conforme ilustrado na figura abaixo. Ao selecionar cada um dos itens voc deve clicar no boto Options para especificar os detalhes de cada componente instalado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Aps selecionar o item Development e clicar no boto Options a janela abaixo ser mostrada. Nela voc seleciona se deseja instalar o Centura SQLWindows, o gerador de relatrios Report Builder e os Objetos Pre-construdos, os QuickObjects. Todos estes itens devem ser selecionados.

Nesta janela voc deve selecionar todos os itens se desejar desenvolver aplicaes para serem executadas na Web. Para seguir os exemplos do livro voc deve selecionar todos estes itens.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Embutido ao Centura Team Developer 2000 est a verso mais atualizada do banco de dados relacional da Centura o SQLBase. Voc deve selecionar o primeiro e o ltimo elementos para que sejam instalados o servidor SQLBase e o SQLTalk, uma ferramenta cliente para acesso a qualquer banco de dados.

Quanto conectividade voc deve instalar os dois primeiros itens. Os demais dizem respeito ao acesso a bancos de dados de outros fornecedores e aos provedores OLE DB.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc deve selecionar todos os componentes da janela Enterprise Components. Object Compiler o responsvel pela gerao de dlls a partir do Centura SQLWindows. Voc s deve instalar este componente caso possua o MS Visual C++ 5.0 ou superior. O Team Object Manager um gerenciador de projetos e equipes de desenvolvimento. O CDK utilizado para auxiliar na confeco de componentes personalisados e de assistentes para auxiliar o desenvolvimento. O Object Nationalizer fornece uma insterface onde rapidamente uma aplicao feita em SQLWindows possa ser traduzida para outros idiomas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Nesta janela voc configura a instalao dos exemplos, uma tima fonte de conhecimento com diversos exemplos explorando os mais diversos recursos disponveis no Centura Team Developer 2000.

Caso seja do seu interesse voc pode configurar a instalao da instalao da documentao online do Centura Team Developer 2000. A documentao toda fornecida em formato PDF.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Configure o tipo de servidor web disponivel em seu ambiente, para que voc possa colocar suas aplicaes rodando num browser.

Na janela abaixo informe onde ficam os executveis no seu servidor web. Este diretrio deve ser configurado de modo a permitir que as aplicaes nele presentes possam ser executadas.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Informe onde ficam as pginas html no seu servidor.

Caso voc tenha alguma verso do Centura Team Developer instalada no seu computador a janela abaixo ser mostrada.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Quando o Centura Team Developer 2000 for instalado as associaes aos arquivos fonte do CTD podem ser feitas de modo que, o CTD2000 seja o aplicativo padro para a edio destes arquivos.

O Centura Team Developer 2000 est pronto para ser instalado. Clique no boto Install now para que o processo de instalao seja iniciado.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

Voc pode configurar o seu SQLBase neste momento ou utiliz-lo com as configuraes default.

A instalao est encerrada e concluda com sucesso.

Pgina PAGE 582

Programando com o Centura Team Developer 2000

O Centura Team Developer 2000 est pronto para ser utilizado.

Pgina PAGE 582