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

PowerBuilder 8.

0 Noes Bsicas

PowerBuilder 8 Noes Bsicas

1 de 43

PowerBuilder 8.0 Noes Bsicas

Orientao a Objetos.................................................................................................................. 3 Orientao a Eventos ................................................................................................................. 4 Componentes de uma aplicao ................................................................................................. 4 Componentes de uma janela ...................................................................................................... 5 Bibliotecas .................................................................................................................................. 5 Workspaces e Targets ................................................................................................................ 6 Painters ...................................................................................................................................... 9 Construindo uma aplicao PowerBuilder ................................................................................... 9 Criando uma Janela ..................................................................................................................11 Controlando a aplicao ............................................................................................................20 Criando um Menu ......................................................................................................................28 Funes ....................................................................................................................................29 Depurando a aplicao ..............................................................................................................32 Acessando o banco de dados ....................................................................................................34 Criando um Objeto Data Window ...............................................................................................36

2 de 43

PowerBuilder 8.0 Noes Bsicas

Introduo
O PowerBuilder um aplicativo grfico para desenvolvimento de aplicaes Cliente/Servidor a serem executadas em ambiente Windows ou WEB. Assim como o Delphi e o VB, possui uma interface amigvel de desenvolvimento. Dentre as ferramentas grficas de construo (painters) disponveis podemos destacar: - Janelas - Menus - Objetos - Data Windows - Acesso e administrao de Banco de Dados O PowerBuilder implementa de forma efetiva o conceito de orientao a objetos, permitindo herana, encapsulamento e polimorfismo. Utiliza a linguagem PowerScript, semelhante ao VB e muito simples de ser aprendida. orientado a eventos. Possui suporte para todos os objetos Microsoft Windows, e tambm interface com objetos em Java.

Arquitetura Cliente/Servidor
uma arquitetura de rede, onde existem dois mdulos bsicos: o Servidor e os Clientes. O Servidor responsvel por responder as solicitaes dos clientes, seja recuperando uma informao do banco de dados, seja imprimindo um relatrio. Em uma arquitetura de duas camadas, normalmente temos programas servidores de banco de dados. Em arquiteturas de trs camadas, temos um programa servidor com as regras de negcio e outro servidor de banco de dados. Os Clientes so programas mais leves, destinados a atender um usurio de cada vez. Normalmente so apenas interfaces de entrada e exibio de dados.

Orientao a Objetos
Poderamos dizer muito a respeito da programao baseada em objetos, mas isto est fora de nosso escopo. Para simplificar, as linguagens OO so baseadas em trs paradigmas: 1. Toda funo e grupo de funes inter-relacionadas (chamadas classes) no devem afetar os valores de dados em outras funes. encapsulamento 2. A linguagem deve permitir que voc reutilize grande parte do seu cdigo em funes semelhantes, em lugar da velha maneira de copiar seu cdigo antigo e efetuar alteraes. Herana

3 de 43

PowerBuilder 8.0 Noes Bsicas

3. As funes que herdam caractersticas de cada uma das outras devem ter a possibilidade de se personalizarem, caso seja necessrio. polimorfismo

Orientao a Eventos
Em uma aplicao PowerBuilder, o usurio o responsvel pela sequncia do processamento e no o programador, ou seja, o processamento dependente da ao tomada pelo usurio (conduo por eventos). Por exemplo, o usurio pode resolver clicar sobre o boto #2 primeiro e depois pressionar o boto #1. O processamento relacionado com o boto #2 ser executado antes do processamento relacionado ao boto #1. Vrios eventos podem ter processamentos associados. Por exemplo: - Iniciar em uma Aplicao - Abrir em uma Janela - Fechar em uma Janela - Receber o Foco em um Controle de Texto - Ser Clicado em um Boto - Ser Clicado em um Menu - ... Para programadores acostumados com linguagens procedurais, a orientao a objetos e eventos pode parecer um pouco estranha, mas depois de um pouco de prtica percebemos que os sistemas criados so muito mais fceis de manter e at mesmo expandir.

Componentes de uma aplicao


Uma aplicao PowerBuilder composta por objetos, eventos e scripts. Objetos so os elementos de interface com o usurio, por exemplo, uma janela, um boto, um menu, ... Ao utilizar o mouse e o teclado para interagir com os objetos o usurio dispara os eventos, que vo ento causar a execuo de um script. possvel disparar novos eventos de dentro de um script e tambm existem eventos ditos automticos, disparados pelo sistema operacional. Ao disparar eventos de um script necessrio ter cuidado para no gerar loops infinitos. Por exemplo: chamar uma funo para recuperar o foco em um evento de perda de foco e no evendo de ganho de foco colocar um comando colocando o foco para outro campo. No necessrio criar scripts para todos os eventos possveis de um objeto. Caso ocorra um evendo que no tenha um script associado o PowerBuilder no faz nada, no gerando nenhum tipo de erro.

4 de 43

PowerBuilder 8.0 Noes Bsicas

Componentes de uma janela


A janela o objeto base de uma aplicao. Ao construir a janela, estamos construindo a interface com a qual o usurio vai interagir.

Os controles so objetos que so colocados em uma janela. Com a exceo de Data Windows e User Objects, os controles so definidos no prprio Window Painter.

Foco
O Foco identifica em que lugar da janela ocorrer a prxima ao. Para estabelecer o foco podemos: - Posicionar o ponteiro do mouse sobre o controle e clicar - Pressionar a tecla Tab at selecionar o controle

Atributos
Cada objeto e controle possui atributos que definem a sua aparncia e comportamento. Exemplos: Altura e largura so atributos de um Command Button que definem a sua aparncia. No entanto, visvel e habilitado so atributos que definem o seu comportamento.

Bibliotecas
Quando uma aplicao PowerBuilder criada, os objetos criados so armazenados em bibliotecas (.PBL). A janela System Tree permite visualizar as bibliotecas e objetos criados dentro da aplicao.

5 de 43

PowerBuilder 8.0 Noes Bsicas

possvel criar vrias bibliotecas de forma a organizar melhor os objetos. Quando o aplicativo compilado cada biblioteca compilada tambm, seguindo a ordem estabelecida (library search path). No PowerBuilder 8 foi criado o conceito de workspace e targets. Target o executvel que vai ser gerado quando aplicao for compilada, nele que definimos quais as bibliotecas que faro parte da nossa aplicao. Workspace um novo conceito de rea de trabalho que permite trabalhar com vrias aplicaes (targets) abertos ao mesmo tempo. possvel criar objetos com o mesmo nome em bibliotecas distintas, mas caso elas faam parte da mesma aplicao, apenas o objeto que estiver na biblioteca referenciada primeiro na library search path ser utilizado e podem ocorrer erros de compilao. O Library Painter a ferramenta mais poderosa para a manuteno de arquivos e bibliotecas, sendo capaz de mostrar arquivos de vrios tipos e no apenas os definidos para o PowerBuilder.

Workspaces e Targets
No PowerBuilder, voc trabalha com um ou mais targets dentro de um workspace. Voc pode adicionar quantos targets desejar ao workspace e abrir e editar objetos nestes targets. Tambm possvel compilar multiplos targets de uma vez. Para criar um workspace basta clicar no boto New ou no menu File/New e selecionar workspace

6 de 43

PowerBuilder 8.0 Noes Bsicas

Um target PowerBuilder pode ser de dois tipos: y Target PowerScript Uma aplicao comum (cliente/servidor ou 3 camadas ou servidor). Falaremos apenas deste tipo de aplicao neste manual. Target WEB Uma aplicao Web. Contem todos os elementos necessrios para a construo de um web site: arquivos HTML, scripts, imagens, componentes, ...

Adicionando um target existente a um workspace


1. Clique com o boto direito no workspace mostrado na System Tree e selecione Add Target O dilogo Add Target ser mostrado 2. Encontre o arquivo de target (.pbt) desejado 3. Clique em Open O target ser adicionado ao seu workspace

Removendo um target de um workspace


1. Clique com o o boto direito no workspace mostrado na System Tree e selecione Remove Target Obs: Quando um target removido de um workspace, o arquivo .pbt no deletado.

Especificando propriedades do workspace


1. Clique com o o boto direito no workspace mostrado na System Tree e selecione Properties 2. Selecione a aba de Targets, Deploy Preview ou Source Control 3. Especifique as propriedades desejadas

7 de 43

PowerBuilder 8.0 Noes Bsicas

Target PowerScript
Este tipo de target pode ser utilizado para criar: y Uma aplicao executvel Uma coleo de janelas que executam uma srie de atividades interagindo com um usurio. Pode ser uma aplicao cliente/servidor tradicional (que acessa um servidor de banco de dados) ou uma aplicao que age como cliente para uma outra aplicao distribuda (que por sua vez, utilizar os servios de outra aplicao servidora) Um componente servidor Um componente contendo uma ou mais classes (user objects) com mtodos para prover a lgica de negcios requerida e com as caractersticas necessrias para ser instalado em um servidor

Para criar um novo target, clique no boto New ou no menu File/New. A caixa de dilogo New ser aberta. Selecione Application e clique em OK Crie o novo Target, colocando o nome da nova aplicao, o nome da biblioteca associada e o nome do target.

O objeto Aplicao
Todos os targets PowerScript incluem um objeto Aplicao. um objeto discreto, salvo na biblioteca PowerBuilder, como qualquer outro objeto (janela, menu, funo, etc...). Quando o usurio roda a aplicao, so iniciados os scripts que voc tiver escrito para os eventos da aplicao. Quando voc abre um objeto aplicao, voc entra no Application Painter. Dentro do Application Painter so definidas as propriedades bsicas da aplicao (por exemplo fontes default, cone, cores default, etc...) e tambm o comportamento da aplicao (como o que deve ocorrer quando a aplicao iniciada ou terminada)

8 de 43

PowerBuilder 8.0 Noes Bsicas

Painters
Para criarmos os diversos objetos dentro do PowerBuilder, utilizamos o Painter adequado. Este aberto quando criamos um novo objeto ou clicamos duas vezes em um objeto existente na System Tree ou no Library Painter. Segue uma lista com os painters mais utilizados:

Application painter Database painter DataWindow painter Data Pipeline painter Function painter Library painter Menu painter Project painter Query painter SQL Select painter Structure painter User Object painter (visual) User Object painter (nonvisual)

Especifica propriedades e scripts da aplicao Mantem banco de dados, controla o acesso de usurios, manipula dados em tabelas existentes e cria tabelas Constroi objetos inteligentes chamados Data Windows, que servem para mostrar informaes vindas do banco de dados Transfere dados de um data source para outro, podendo ser salvo para reuso Constroi funes globais Gerencia bibliotecas Cria e atualiza menus Cria arquivos executveis, bibliotecas dinmicas, componentes e proxies Graficamente define e salva queries SQL para serem reutilizadas em Data Windows e Pipelines Graficamente define e salva queries SQL (SELECT) para serem reutilizadas em Data Windows e Pipelines Define estruturas globais (grupos de variaveis) para uso na aplicao Define objetos visuais customizados que podem ser salvos e reutilizados repetidamente em sua aplicao. Um objeto visual um controle ou conjunto de controles que mantenham um certo comportamento. Define objetos no-visuais customizados que podem ser salvos e reutilizados repetidamente em sua aplicao. Um objeto no-visual permite que sejam reutilizados conjuntos de regras de negcio ou outros processamentos, mas no tem um componente visual. Cria as janelas a serem utilizadas pela aplicao

Window painter

Construindo uma aplicao PowerBuilder


Existem vrios tipos de objetos a serem criados. Abordaremos os mais importantes. Aplicao Janela

9 de 43

PowerBuilder 8.0 Noes Bsicas

Menu Data Window Funo Estrutura User Object

Criando uma nova aplicao


Crie um novo workspace e aplicao de acordo com os passos descritos anteriormente. Quando voc seleciona uma aplicao ou cria uma nova, esta aplicao torna-se o target corrente. Qualquer objeto criado ser associado com este target. Dentro da janela de propriedades podemos especificar o Nome da aplicao (que ser reconhecido pelo Windows), O MicroHelp default, etc... Dentro da janela de propriedades adicionais podemos especificar fontes default, cores default, o cone da aplicao e etc...

10 de 43

PowerBuilder 8.0 Noes Bsicas

Criando uma Janela


Uma janela um objeto que nos permite visualizar um ou mais controles e/ou informaes. o principal tipo de objeto grfico de que dispomos. Cada janela tem um estilo (style) que determina seu layout e comportamento diante do usurio. Cada janela possui atributos configurveis que modificam sua aparncia e comportamento. Voc pode associar um menu, colocar outros objetos PowerBuilder (exceto uma aplicao) e controles em uma janela. Qualquer objeto colocado em uma janela chamado de controle. Voc pode determinar o estilo, tamanho e posio de qualquer controle em uma janela. Os scripts de uma janela e de seus controles determinam como a janela reage aos eventos disparados. Por exemplo: Quando uma janela aberta, o script do evento Open desta janela ser executado. Quando o usurio clica em um boto, o script do evento Clicked do boto ser executado. O PowerBuilder permite criar 6 tipos de janela (WindowType):

MAIN

y y y y

Janela com vida prpria Possui barra de ttulo Independentes de todas as outras janelas Pode ser minimizada ou maximizada

11 de 43

PowerBuilder 8.0 Noes Bsicas

CHILD

y y y y y y y

Sempre subordinada a uma janela me (parent window) Nunca a janela ativa Pode ter barra de ttulo automaticamente fechada quando sua janela me fechada Sua posio relativa janela me No pode ter menus Pode ser minimizada, sendo exibida como um cone dentro da janela me

POP-UP

y y y y

Tem uma janela me Pode ter barra de ttulo e/ou menu Pode ser exibida fora dos limites da janela me Pode ser minimizada ou maximizada

12 de 43

PowerBuilder 8.0 Noes Bsicas

RESPONSE

y y y y

Tem uma janela me Pode ter barra de ttulo uma janela modal, ou seja, exige uma resposta do usurio (nenhuma outra janela na aplicao pode ser acessada enquanto a janela de resposta no for fechada) No pode ser minimizada

MDI (Multiple Document Interface) Frame

y y y y y

Habilita a exibio de mltiplas janelas de documento (sheets) Deve conter um menu O usurio pode tornar qualquer uma destas janelas a janela ativa Pode conter mltiplas instncias de uma mesma janela As janelas de documento podem ser dispostas em cascata, lado a lado ou sobrepostas umas as outras

13 de 43

PowerBuilder 8.0 Noes Bsicas

MDI com MicroHelp

Tem as mesmas caractersticas da janela MDI somadas com a possibilidade de se exibir informao de ajuda (MicroHelp) na barra de status.

Controles de uma janela


Recebem o nome de controles os objetos que so posicionados em uma janela. Os controles podem exibir dados e/ou aceitar e validar respostas do usurio. O programador pode alterar o comportamento de um controle adicionando scripts para os eventos do controle. Um controle do tipo Command Button (por exemplo) existe apenas dentro do contexto da janela, no podendo por si s ser armazenado em uma biblioteca. Um User Object um objeto reutilizvel criado atravs do User Object Painter. Ele armazenado em uma biblioteca e passa a ser um controle quando posicionado em uma janela. Uma Data Window um objeto criado atravs do Data Window Painter. Ela armazenada em uma biblioteca e associada com o controle DataWindow de uma janela.

14 de 43

PowerBuilder 8.0 Noes Bsicas

Tipos de Controle:

Command Button Picture Button Check Box Radio Button Static Text Picture Group Box Line / Oval / Rectangle / Round Rectangle Single Line Edit Mask Edit Multi Line Edit Rich Text Horizontal Scroll bar / Vertical Scroll bar Horizontal Track / Vertical Track Horizontal Progress / Vertical Progress

Inicia uma ao Igual ao Command Button, porm possvel especificar uma figura para o boto Liga e desliga uma opo Liga e desliga opes exclusivas entre si Texto esttico (pode ser um link para web) Figura (pode ser um link para web) Agrupa dois ou mais controles relacionados. Normalmente Radio Buttons Controles de desenho. Servem apenas para melhorar a aparncia da janela Exibe e recupera uma linha de texto Exibe e recupera uma linha de texto formatada Utilizado para digitar, editar e exibir texto que pode ocupar mais de uma linha Utilizado para digitar, editar e exibir texto em formato RTF que pode ocupar mais de uma linha Permite ao usurio executar a rolagem da janela de modo a exibir todo o seu contedo Permite selecionar um valor entre dois valores (mnimo e mximo) Permite mostrar uma barra de progresso

15 de 43

PowerBuilder 8.0 Noes Bsicas

Drop Down List Box Drop Down Picture Box List Box List Picture Box List View Tree View Tab Data Window Graph OLE User Object

Permite ao usurio selecionar um tem atravs da lista combinada ou digitar o tem no prprio controle Lista Drop Down com figuras Apresenta uma lista de vrios tens Apresenta uma lista de vrios tens com figuras Lista tipo diretrio Lista tipo rvore de diretrios Permite separar os controles em abas distintas, mostrando apenas uma aba de cada vez utilizada para exibir, manipular e aturlizar dados Permite a exibio de grficos Permite manipular objetos OLE de outros aplicativos Windows um objeto definido pelo usurio

16 de 43

PowerBuilder 8.0 Noes Bsicas

Para selecionar um controle, clique no mesmo na Layout View (janela grfica) ou na Control List View. Para selecionar mltiplos controles, clique no primeiro e ento pressione <cntrl> e clique nos outros. Tambm possvel selecionar vrios controles clicando e arrastando sobre a janela. Todos os controles que estiverem dentro da rea arrastada sero selecionados. Cada controle possui caractersticas particulares que podem ser editadas atravs da janela de propriedades.

A janela de propriedades muda automaticamente de acordo com o controle selecionado, mostrando apenas propriedades comuns a todos os controles caso um grupo de controles tenha sido selecionado.

17 de 43

PowerBuilder 8.0 Noes Bsicas

Uma caracterstica muito importante da janela de propriedade a possibilidade de acessar facilmente uma pgina explicativa sobre todas as propriedades sendo mostradas. Basta clicar na janela com o boto direito e selecionar Help.

Selecione Properties

De forma semelhante possvel verificar todos os eventos e funes pertinentes a um controle.

18 de 43

PowerBuilder 8.0 Noes Bsicas

Ordem de tabulao
A ordem de tabulao determina a ordem na qual os controles recebero o foco quando o usurio utiliza a tecla Tab. Um controle com TabOrder 0 (zero) no poder receber o foco. Os controles colocados em uma janela tero como ordem de tabulao default a ordem na qual eles foram criados. Para alterar esta ordem clique no menu Format/Tab Order ou clique no cone na PowerBar.

Selecione o nmero desejado e troque o valor. Pode ser qualquer valor entre 0 e 9999. O valor em s no importa. O que importa relativamente aos outros qual a ordem crescente.

Alinhando controles
Atravs do menu Format podemos manipular o alinhamento, posio e tamanho de um controle relativamente aos outros. Basta selecionar mais de um controle e clicar na opo desejada.

O primeiro controle selecionado considerado como o de posicionamento/tamanho correto, sendo os outros controles alterados de acordo com ele.

19 de 43

PowerBuilder 8.0 Noes Bsicas

Eventos de Janela
Segue uma lista com os principais eventos que podem ocorrer em uma janela:

Activate

Imediatamente antes da janela ficar ativa. Quando este evento ocorre, o primeiro objeto da janela (seguindo a ordem de tabulao) recebe o foco. Caso no tenha nenhum controle visvel na janela, a prpria janela recebe o foco. Quando o usurio clica em uma rea desocupada da janela (qualquer rea que no tenha nenhum controle habilitado visvel). Quando a janela fechada Quando voc remove a janela de vista (fecha a janela), o PowerBuilder dispara o evento CloseQuery e ento verifica o valor retornado em Message.ReturnValue. Caso o valor seja 1, a janela no poder ser fechada. Quando fechamos uma janela, estamos tambm fechando todas as janelas filhas associadas. Desta forma, caso uma delas mude o valor de Message.ReturnValue par 1, a operao de fechamento fica cancelada. Quando a janela fica inativa Quando o usurio pressiona uma tecla e o foco (ponto de insero) no est em nenhum controle que permita edio. Quando um script executa a funo Open para abrir uma janela. Este evento ocorre aps a janela ter sido aberta, mas antes de ela ser mostrada. Quando um script executa a funo Show para a janela. O evento ocorre imediatamente antes de mostrar a janela. Quando o usurio pressiona <alt> ou <ctlr> mais alguma tecla e o foco (ponto de insero) no est em nenhum controle que permita edio. Quando tiver passado um nmero especfico de segundos aps a funo Timer ter sido chamada.

Clicked Close CloseQuery

Deactivate Key Open Show SystemKey Timer

Controlando a aplicao
Controlamos o comportamento da aplicao atravs de cdigos escritos em PowerScript (scripts) colocados nos diversos eventos disponveis. Um script define o que ir acontecer quando ocorre um evento para um objeto ou controle. Um script pode conter y y y y Definies para propriedades Funes Comandos de controle de fluxo Comandos SQL

No PowerScript voc pode definir variveis para armazanar valores, os quais podem ter sido informados pelo usurio, calculados pela aplicao ou extrados de um banco de dados.

20 de 43

PowerBuilder 8.0 Noes Bsicas

A seguir sero descritos os tipos de variveis existentes:

Standard Data Types y y y y y y y Blob Integer ou Int Boolean Long Char ou character Real Date y y y y y y y String DateTime Time Decimal ou Dec UnsignedInteger, UnsignedInt, ou UInt Double UnsignedLong ou ULong

Enumerated Data Types O tipo de dados enumerado tem um conjunto de valores limitado. Estes valores so definidos para serem usados como argumentos para funes e como atributos de objetos em situaes onde sero aceitos apenas valores pertencentes a um conjunto fixo de valores. Os valores dos tipos de dados enumerados sempre terminam com um ponto de exclamao (!), nunca so colocados entre aspas e no so sensveis a caixa alta/baixa. Enumerated Data Type Alignment TextCase WindowType Exemplo: sle_nome.alignment = left! Valores Left! Center! Right! AnyCase! Upper! Lower! Main! Child! Popup! Response! MDI! MDIHelp!

Declarando variveis Para declarar uma varivel, digite o tipo de dados seguido por um ou mais espaos e o nome da varivel. Formato: DATA-TYPE <NOME-VARIVEL>, <NOME-VARIVEL>, ... Exemplos: int contador int idade, ano_nasc string nome, sobrenome Para declarar uma varivel decimal, voc dever especificar o nmero de casas decimais entre chaves ({}). Exemplo: dec {2} salario O PowerBuilder inicializa as variveis declaradas da seguinte forma:

21 de 43

PowerBuilder 8.0 Noes Bsicas

Numeric String Date DateTime Time

0 1900-01-01 1900-01-01 00:00:00 00:00:00

No momento da definio da varivel, possvel inicializ-la com qualquer outro valor desejado. Exemplos: int contador = 1, codigo = 7 string nome = Joo dec {2} salario = 500.00

Arrays Um array uma coleo indexada de um mesmo tipo de dados, podendo ter uma ou mais dimenses. Os arrays de uma dimenso podem ser definidos como tendo tamanho varivel. Exemplos: string tipo_doc[5] dec {2} preco_item[100] int estoque[10,50] int status[0 to 5, 0 to 2] real altura[3] = {1.5, 2.80, 7} Para declarar arrays de tamanho varivel deixe o espao entre os colchetes vazio.

Structures Uma estrutura uma coleo de variveis que mantm alguma relao entre si e desta forma esto agrupadas e identificadas por apenas um nome. Para criar uma estrutura voc utiliza o Structure Painter, onde voc digita tipos e nomes para as variveis que voc deseja agrupar, salvando depois a estrutura definida em uma biblioteca.

22 de 43

PowerBuilder 8.0 Noes Bsicas

Dado que a estrutura esteja salva em uma biblioteca, podemos utiliz-la normalmente na declarao de variveis. s_aluno um_aluno

Caracteres especiais possvel incluir alguns caracteres no imprimveis em um literal. Para isto preceda-o com um til (~) e coloque tudo entre aspas (por exemplo: ~t)

Nova linha Tabulao Return Aspas Til Tabulao vertical Form feed Backspace Cdigo ASCII Cdigo hexadecimal Cdigo octal

~n ~t ~r ~ ~~ ~v ~f ~b ~nnn (onde n um nmero) ~hnn ~onn

Alterando propriedades em scripts Voc pode utilizar atributos em seus scripts para modificar as caractersticas ou o comportamento de um objeto ou controle. O formato para modificar uma propriedade : NOME-OBJETO.PROPRIEDADE = VALOR

23 de 43

PowerBuilder 8.0 Noes Bsicas

Desta forma, possvel alterar em tempo de execuo a aparncia, posio e alguns comportamentos (por exemplo enable/disable) dos controles e objetos utilizados. Verifique no Help, quais as propriedades que podem ser alteradas em tempo de execuo (quando houver o comentrio read only, porque no d pra alterar) Utilizando funes em scripts O PowerScript fornece mais de 300 funes para y y y y y Manipular objetos, numeros ou texto Processar datas e horas Executar DDE (Dynamic Data Exchange) Imprimir relatrios ...

As funes abaixo so algumas das que se aplicam janela e a todos os controles: y y y y Hide() Show() Move() Resize()

Para tornar um objeto ou controle invisvel, digite NOME-OBJETO.Hide() Para torn-lo visvel novamente digite: NOME-OBJETO.Show() Uma janela precisa ser aberta antes de ser usada e pode ser fechada quando no for mais necessria. Abrir e fechar janelas possvel atravs das funes Open() e Close(). A funo Open() monta, exibe a janela e disponibiliza os seus controles Open (NOME-JANELA) A funo Close() desmonta e fecha a janela. Close (NOME-JANELA)

Comandos de controle de fluxo O PowerScript impementa os comandos mais comuns de controle de loops e condies. Para facilitar a vida possvel colar a sintaxe pronta dos comandos dentro de seu cdigo. Basta clicar com o boto direito no painter de cdigo e selecionar Paste Special / Statement

24 de 43

PowerBuilder 8.0 Noes Bsicas

Exemplo: Sintaxe do comando Choose Case Else


choose case /*expression*/ case /*item*/ /*statementblock*/ case else /*statementblock*/ end choose

De forma semelhante possvel colar qualquer funo PowerScript, ou definida pelo usurio bem como comandos SQL.

Escopo de variveis O escopo de uma varivel se refere a sua localizao e disponibilidade de acesso. Uma varivel pode ser: y y y y Global Shared Instance Local

Em qualquer painter de script, possvel acessar a aba de declarao de variveis no locais, sendo possvel ento selecionar o escopo exato que se deseja editar/visualizar

25 de 43

PowerBuilder 8.0 Noes Bsicas

Varivel Global A varivel global pode ser utilizada em qualquer script da aplicao.

Varivel Shared A varivel shared pode ser declarada no nvel da aplicao, de um menu, de uma janela ou de um User Object. Ela compartilhada por todas as instncias do objeto. As variveis shared mantm seus valores quando a janela, menu, etc. Onde elas foram declaradas so fechados e depois abertos novamente. O valor de uma varivel shared o mesmo em todas as instncias do objeto. Se o valor for modificado em uma instncia e depois acessado em outra instncia, a segunda instncia receber o valor novo.

Varivel de Instncia uma varivel que pertence a um objeto e associada com uma instncia deste objeto (Podemos dizer que como se fosse uma propriedade do objeto). Os seguintes objetos podem ter variveis de instncia: Aplicao, Janela, User Object e Menu.

Varivel Local a varivel declarada no script de um controle ou objeto e que existe somente durante a execuo do script.

Pronomes para objetos Voc pode usar trs pronomes especiais para referenciar objetos ao invs de utilizar seus nomes. This Este pronome dentro de um script se refere janela, user object, menu, aplicao ou controle que seja dono do script em questo. Parent Este pronome dentro de um script se refere ao objeto que contem o objeto corrente (dono do script). Quando utilizamos Parent dentro de um script de um controle em uma janela estamos nos referenciando janela. Quando utilizamos Parent dentro de

26 de 43

PowerBuilder 8.0 Noes Bsicas

um script de menu, estamos nos referenciando ao tem de menu um nvel acima do corrente. Super Quando escrevemos um script para um objeto descendente possvel referenciar mtodos no objeto pai atravs do pronome Super.

Comentrios Existem duas maneiras de colocar comentrios em um script: // - Comentrio de uma linha /* */ - Comentrio de vrias linhas Uma caracterstica interessante do editor de scripts que ele permite comentar e des-comentar o texto selecionado facilmente. Basta clicar com o boto direito no texto selecionado e clicar na opo apropriada (Comment Selection / Uncomment Selection).

Caracter de continuao Se voc quiser continuar um comando PowerScript em outra linha utilize o caracter e-comercial & - (exceto para comandos SQL e strings). Este caracter deve ser o ltimo caracter da linha.

Separador de comandos Normalmente colocamos um comando em cada linha. Para colocar mais de um comando em uma linha utilize o caracter ponto e vrgula - ; - para separar os comandos.

Compilando o cdigo Quando terminamos de escrever um script e mudamos de painter ou tentamos editar outro script o cdigo automaticamente compilado e caso ocorra algum erro uma janela de mensagens mostra um texto explicativo. Clicando na mensagem, o cursor posicionado na linha com problemas.

Tambm podemos compilar o cdigo digitando <control>-L ou clicando no menu Edit/Compile

27 de 43

PowerBuilder 8.0 Noes Bsicas

Criando um Menu
O que um menu ? Menu uma lista de comandos ou opes (tens de menu) que o usurio pode selecionar na janela corrente. Os tens de menu esto normalmente dispostos de forma ordenada e so relacionados uns com os outros. Menus oferecem ao usurio: y y Comandos adicionais Caminhos alternativos (e de fcil compreenso) para executar uma mesma tarefa.

Para incluir tens de menu clique com o boto direito no menu e selecione a opo apropriada. Podemos escrever cdigo (script) para os eventos Clicked, help e Selected de um menu (ou tem de menu)

As propriedades de um menu ou tem de menu podem ser alteradas atravs da janela Properties. Assim como os controles de uma janela, possvel acessar uma tela de Help que explica todas as propriedades, eventos e funes de um objeto de menu. Quando criamos um menu, podemos criar tambm um Toolbar, com alguns ou todos os tens de nosso menu. Basta selecionar o tem de menu desejado e preencher os campos na aba Toolbar.

28 de 43

PowerBuilder 8.0 Noes Bsicas

Uma vez criado o menu, podemos associ-lo a uma janela. Para que o Toolbar aparea necessrio que a janela principal seja do tipo MDI ou MDI com Microhelp. Para associar um menu a uma janela, no painter de janela, nas janela de propriedades de janela altere a propriedade MenuName (clicando no cone de 3 pontinhos abre um dilogo para que escolhamos dentre os menus salvos nas bibliotecas da aplicao o menu desejado) Podemos associar atalhos com os tens de menu atravs da janela de propriedades. Colocando o caracter & antes de uma letra em um texto de um tem de menu estaremos criando um atalho automtico. Esta letra aparecer sublinhada e o usurio poder acionar este tem de menu atravs da combinao <Alt>-Letra. Caso o menu esteja aberto, basta pressionar a Letra sublinhada. Para incluir uma linha separando dois tens de menu, inclua um tem de menu cujo texto seja apenas hfen -.

Funo ChangeMenu A funo ChangeMenu utilizada em um script para trocar (em tempo de execuo) o menu associado a uma janela. Exemplo: ChangeMenu (w_cliente, m_cliente_incluir)

Funes
Funo um conjunto de comandos PowerScript que podem ser chamada a partir de um script. Em PowerBuilder no existe o conceito de subrotina, sendo que uma funo pode retornar um valor ou no. Ao criarmos uma funo declaramos y y y y O nome da funo Argumentos de entrada (opcional) Tipo do valor de retorno (caso no queira retornar nada escolha none) Varivel de exceo associada (opcional)

Tipos de Funo

29 de 43

PowerBuilder 8.0 Noes Bsicas

Uma funo pode ser declarada como global ou local. As funes globais no esto associadas a nenhum objeto em particular e so criadas dentro do Function Painter, sendo armazenadas em uma biblioteca

Uma funo local pertence ao objeto na qual ela foi declarada (janela ou user object), sendo necessrio declarar o tipo de acesso: Acesso pblico Acesso Privado Qualquer script da aplicao. Somente os scripts dos eventos do objeto para o qual a funo tenha sido declarada. Voc no pode cham-la em scripts de objetos descendentes do objeto. Somente os scripts dos eventos do objeto para o qual a funo tenha sido declarada e seus descendentes.

Acesso Protegido

Obs: Em uma funo global o tipo de acesso sempre pblico.

Argumentos
Os argumentos podem ser: y y y y Variveis Objetos (como janelas ou menus) Controles (como um CommandButton) Vetores (arrays)

Para cada argumento necessrio informar y y y O nome do argumento O tipo de dado O tipo de passagem

30 de 43

PowerBuilder 8.0 Noes Bsicas

o o

Por valor feita uma cpia do argumento e disponibilizada para a funo. Qualquer alterao que a funo faa ser feita apenas na cpia, no alterando o dado original. Por referncia passada para a funo um ponteiro para a varivel argumento. Qualquer alterao feita pelo script vai alterar o dado original. Leitura A varivel tratada como uma constante, no sendo permitido alterar seu valor dentro da funo ( gerado um erro de compilao). Este tipo de passagem possui melhor performance para alguns tipos de dados (strings, blobs, date, time) pois no cria uma cpia do dado. Este tipo de passagem tambm interessante em termos de documentao, deixando uma pista sobre a inteno do argumento para outros programadores.

Para inserir novos argumentos basta pressionar <tab> aps o ltimo argumento ou utilizar as opes do menu popup disponibilizado quando clicamos com o boto direito do mouse na rea de definio da funo.

Para deletar um argumento posicione o cursor no mesmo e utilize o menu popup.

Declarando uma nova funo


Para declarar uma funo global clique no menu File / New (ou <ctrl>-N), escolha a aba PB Object, selecione Function e clique em OK.

Para declarar uma funo local, com o painter do objeto onde a funo ser declarada aberto, clique no menu Insert / Function (ou utilize os combos box de navegao)

31 de 43

PowerBuilder 8.0 Noes Bsicas

Escrevendo uma funo


Uma funo um script como outro qualquer, podendo ter qualquer comando PowerScript que se queira. Em funes locais, os controles do objeto podem ser acessados normalmente. J funes globais, quando acessando objetos e controles, tem que se preocupar se eles realmente encontram-se instanciados no momento da utilizao. Para sair de uma funo antes de seu trmino normal utilizamos o comando: Return Sendo que caso a funo retorne um valor, devemos colocar o mesmo aps o comando: Return <valor>

Depurando a aplicao
O PowerBuilder oferece facilidades para depurao (debug) das linhas de cdigo dos scripts, permitindo a identificao de erros durante a execuo da aplicao. Voc pode determinar pontos de parada (breakpoints) em cada script que desejar depurar. Durante a execuo o processamento ir parar no ponto marcado e, a partir deste momento, voc poder executar passo a passo o script. Os pontos de parada permanecem vlidos at que sejam removidos. Voc pode especificar as variveis que deseja acompanhar, observar seus valores nos pontos de parada e, se necessrio, alter-los.

32 de 43

PowerBuilder 8.0 Noes Bsicas

Passos para a depurao:


y y y y y Entrar em modo de debug Selecionar os scripts Marcar os pontos de parada (breakpoints) Selecionar variveis para acompanhar (opcional) Executar a aplicao

O Painter de Debug

A janela Source Browser nos permite navegar por todos os scripts definidos na aplicao. Ao clicar duplo em um script o mesmo aparecer na janela esquerda de forma que possamos definir pontos de parada. Clique duplo em uma linha para inserir/deletar breakpoints. Ao executar a aplicao voltaremos ao painter de debug automaticamente a medida em que o programa alcanar cada instruo definida como breakpoint. Um triangulo amarelo nos mostra o ponto exato do cdigo onde estamos. Na janela de baixo, esquerda, possvel visualizar todos os objetos e variveis em memria no momento da parada. Na janela de baixo, direita, possvel verificar a pilha de execuo, os breackpoints definidos e a janela de watch, onde podemos definir variveis que desejamos ver o tempo todo. Todas as janelas deste painter possuem menus popup com opes que auxiliam no processo de depurao. No Painter Bar de depurao encontramos os botes que nos permitem avanar pelo cdigo

33 de 43

PowerBuilder 8.0 Noes Bsicas

Stop Debugger Continue Step In Step Over Step Out Run to Cursor Set Next Statement Select Edit Stop Add/Remove Close

Para o processo de depurao, voltando para a edio do cdigo Avana at o prximo breakpoint ou at o final da execuo da aplicao Quando da execuo de uma funo, entra pelo cdigo da funo Quando da execuo de uma funo, no entra no cdigo da mesma, passando para o prximo comando do script. Quando estivermos dentro de um script de funo, retorna para o script que chamou a funo Avana o programa, parando na linha de cdigo em que o cursor estiver Avana para o prximo comando a ser executado Abre uma janela alternativa para seleo do cdigo a ser depurado Abre uma tela com todos os breakpoints criados, permitindo parada condicional Permitem adicionar/remover variveis da tela de watch Para o processo de depurao, voltando para a edio do cdigo

Tenha cuidado ao depurar cdigos que envolvam a perda/ganho de foco dos controles, pois ao entrar no painter de depurao, o foco vai para o mesmo e voc pode acabar entrando em um loop infinito. Lembre tambm que variveis locais so destruidas ao final do script, no sendo mais reconhecidas pelo depurador. Caso seja necessrio (para depurar uma instncia de uma janela por exemplo), crie uma varivel global e a atualize com o contedo desejado. Ao final do processo delete a varivel criada.

Acessando o banco de dados


possvel realizar quase todo o trabalho com banco de dados atravs do Database painter. Quando voc abre o Database painter, o PowerBuilder mostra os nomes das tabelas, views e outras entidades que voc tenha acesso em seu banco de dados corrente. possvel manter abertas vrias conexes com bancos de dados, no entanto apenas uma poder estar ativa. Tarefas que podem ser realizadas: Tarefa selecionada Modificar um database profile Conectar a um database Criar novos profiles, tabelas, views, colunas, chaves, ndices e grupos Modificar objetos de Banco de dados Ao Selecione um database profile e clique em Properties Selecione um database profile e clique em Connect Selecione a tabela, profile, etc e clique em New ou utilize o boto Create Arraste o objeto at a janela de detalhes (Detail)

34 de 43

PowerBuilder 8.0 Noes Bsicas

Mostrar tabelas graficamente Manipular dados Criar, executar e verificar o plano de um SQL

Arraste o cone da tabela da lista Objects View at a Object Layout Selecione a tabela e clique em Grid, Tabular ou Freeform da opo Edit Data Utilize o ISQL view para criar comandos SQL. Utilize o boto Paste SQL para criar graficamente comandos SELECT, INSERT, UPDATE e DELETE ou digite os comandos diretamente na janela ISQL. Para executar ou verificar o plano de execuo escolha Execute ou Explain SQL do menu popup Selecione o atributo extendido desejado e clique em New ou Properties Arraste a coluna para a janela de detalhes e selecione a aba com o atributo extendido desejado Clique duplo em um utilitrio na janela Objects Selecione Start Log no menu Design. Verifique o log gravado na aba Activity Log view

Definir ou modificar atributos extendidos Especificar atributos extendidos para uma coluna Acessar utilitrios de banco de dados Gravar o seu trabalho (log)

35 de 43

PowerBuilder 8.0 Noes Bsicas

Criando um Objeto Data Window


No Data Window painter voc desenha os objetos do tipo Data Window. Estes objetos so utilizados para recuperar, mostrar e atualizar dados de um banco de dados relacional ou outras fontes de dados (como um arquivo Excel ou dBase)

Data Window Tabular


Esta Data Window exibe os dados em formato de colunas, com uma linha para cada tupla da tabela. Os cabealhos so exibidos no topo. Caso no se tenha definido informaes adicionais para o cabealho, os nomes das colunas so exibidos por default.

Data Window Grid


Esta Data Window semelhante DataWindow Tabular porm exibe linhas de grade entre as colunas e tuplas da tabela (fica parecido com uma planilha)

36 de 43

PowerBuilder 8.0 Noes Bsicas

Data Window Free Form


Esta Data Window exibe os campos de uma tupla de forma livre, colocando por default um campo em baixo do outro, com o nome da coluna do lado esquerdo. possvel alterar a apresentao para que os campos fiquem de qualquer forma desejada. Normalmente, utilizamos a Data Window Free Form mostrando apenas uma tupla de cada vez.

37 de 43

PowerBuilder 8.0 Noes Bsicas

Data Window Group


Esta Data Window facilita na criao de relatrios em que seja necessrio agrupar os dados (e realizar somatrios por grupo).

Outros Tipos de data Window


Crosstab Graph Label N-Up OLE 2.0 Rich Text Composite Permite visualizar dados sumarizados em formato de linhas e colunas Permite a visualizao dos dados no formato de grficos Permite criar relatrios para a impresso de labels (adesivos) til para dados peridicos, tipo dados de cada dia da semana, ou cada ms em um trimestre. Permite visualizar objetos OLE. No suportado em DataWindows para web ou Java. Permite visualizar paragrafos de texto dentro de colunas. No suportado em DataWindows para web ou Java. Permite a composio de vrios objetos data window, que podem trazer os dados de forma coordenada.

38 de 43

PowerBuilder 8.0 Noes Bsicas

Criando uma Data Window


Para criar uma Data Window clique no boto New, selecione a aba de Data Window e selecione ento um estilo de apresentao A primeira coisa a definir qual o data source desejado: Quick Select Os dados vem de uma ou mais tabelas de um banco de dados relacional. As tabelas devem ser relacionadas atravs de chaves estrangeiras. Voc dever escolher apenas as colunas, critrio de seleo e ordenao. Utilize para ter maior controle sobre o comando de seleo. Voc pode especificar grupamentos (group by), colunas computadas, etc... Permite utilizar um objeto query previamente construdo e salvo com o Query Painter. Quando criamos uma query dentro da datawindow, o objeto query fica incorporado na mesma. Os dados so definidos por uma stored procedure de seu banco de dados Para dados que no esto em um banco de dados, mas vindos de um arquivo (por exemplo um arquivo dBase com dados separados por tab) ou criados por cdigo.

SQL Select Query

Stored procedure External

Ento, necessrio definir o estilo de cores e bordas:

Caso se marque o check box Save as default todas as vezes que criarmos data windows daquele tipo, vir a definio de cores e bordas salva. Ser mostrado um resumo da data window a ser criada. Clique em Finish.

39 de 43

PowerBuilder 8.0 Noes Bsicas

No painter de data window encontramos as janelas de design, propriedades, preview e controles. Na janela de design definimos os campos a serem mostrados e de que forma. Esta tela varia bastante dependendo do tipo de data window, mas normalmente sempre temos as reas de cabealho, detalhe, somatrio e roda p. Em todas as reas podemos colocar colunas, colunas computadas, elementos de desenho (um logo por exemplo), botes, ...

A um boto temos a possibilidade de relacionar um comportamento j previamente codificado.

40 de 43

PowerBuilder 8.0 Noes Bsicas

Caso seja necessrio voltar a tela onde definimos a consulta ao banco de dados, basta clicar no menu Design / Data Source ou clicar no boto SQL Data na painter bar. Tambm podemos definir opes de ordenao e filtro quando construimos a data window.

Utilizando o Controle Data Window


Para utilizarmos uma data window devemos associ-la a um controle do tipo datawindow que colocamos em uma janela. O mesmo objeto data window pode ser reaproveitado tantas vezes quantas se queira. Para que o controle datawindow tenha acesso ao banco de dados necessrio definir e conectar um objeto de transao. O PowerBuilder disponibiliza objeto de transao global SQLCA. Podemos utiliz-lo ou definir outro qualquer. Para configurar um objeto de transao precisamos definir suas propriedades de acordo com o profile de banco de dados sendo utilizado. Uma boa forma de verificar como setar os parmetros olhar no setup do profile a opo preview

41 de 43

PowerBuilder 8.0 Noes Bsicas

Desta forma, podemos definir no evento open da aplicao as propriedades do objeto de transao e conect-lo ao banco de dados

Alm das propriedades necessrias conexo, o objeto de transao possui outras propriedades que podemos acessar durante a execuo da aplicao SQLCode Cdigo que indica se houve sucesso ou no na ltima operao realizada 0 OK 100 No encontrado -1 Erro Nmero de linhas afetadas Cdigo de erro especificado pelo SGBD utilizado Mensagem de erro retornada pelo SGBD utilizado

SQLNRows SQLDBCode SQLErrText

Tambm temos algumas funes que nos permitem interagir com o banco de dados: Connect Disconnect Commit Rollback Estabelece a conexo e inicia a transao Remove a conexo e termina a transao Efetiva as mudanas no banco de dados Desfaz as modificaes efetuadas desde o ltimo Commit ou Connect

Antes de utilizar o controle datawindow, deveremos ento associ-lo ao objeto de transao: dw_dados.SetTransObject (SQLCA) Isto feito, podemos utilizar uma srie de funes no controle datawindow para manipular os dados: Retrieve ({argumento, argumento, ...}) Update ({ACCEPT {, RESETFLAG}}) Recupera as informaes salvas no banco de dados Envia para o banco de dados todas as inseres, alteraes e excluses feitas pelo usurio

42 de 43

PowerBuilder 8.0 Noes Bsicas

GetRow () InsertRow (linha) DeleteRow (linha) ScrollToRow (linha) GetItemDate (linha, coluna) GetItemDateTime (linha, coluna) GetItemDecimal (linha, coluna) GetItemNumber (linha, coluna) GetItemString (linha, coluna) GetItemTime (linha, coluna) GetText () SetItem (linha, coluna, valor) SetText (texto) SelectRow (linha, boleano) Reset ()

Retorna um long com o nmero da linha corrente Insere uma linha antes da linha especificada. Coloque 0 para inserir no final Deleta a linha especificada Rola at mostrar a linha especificada Recupera o dado especificado do tipo data Recupera o dado especificado do tipo dataHora Recupera o dado especificado do tipo decimal Recupera o dado especificado do tipo numrico Recupera o dado especificado do tipo string Recupera o dado especificado do tipo hora Retorna o texto localizado na caixa de edio Associa um valor a uma clula especfica Insere o texto especificado na caixa de edio da clula corrente Seleciona a linha especificada Limpa todas as linhas da datawindow

43 de 43

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