Escolar Documentos
Profissional Documentos
Cultura Documentos
A DataWindow
Uma DataWindow (Janela de Dados) é um objeto usado para manipular, atualizar e
apresentar dados. Os dados podem estar armazenados em um banco de dados relacional ou
podem vir de outra fonte (arquivos texto, planilhas excel, etc).
Você define o objeto DataWindow usando o DataWindow Painter (Pintor de Janela de
Dados) e o coloca em janelas utilizando o controle DataWindow.
Objeto Banco de
DataWindow Dados
Controle
DataWindow
Janela
O Objeto DataWindow
Objetos DataWindow são o coração de uma aplicação PowerBuilder. Saber utilizar
bem as funções pré-definidas deste objeto significa escrever menos e usufruir melhor de seus
recursos.
Quando você cria um objeto DataWindow, você define de onde o dado virá (a fonte de
dados) e como este dado será apresentado (estilo de apresentação). O objeto DataWindow é
armazenado em uma biblioteca PB.
Utilização da DataWindow
Como objetos DataWindow "sabem" a fonte de dados e determinam seus estilos de
apresentação, eles servem a um duplo propósito:
como uma interface para o sistema de gerenciamento de banco de dados e;
como uma interface para o usuário
22/11/21 Pag.: 80
Curso de POWERBUILDER 7.0
Objeto Banco de
DataWindow Dados
Controle
DataWindow
Janela
22/11/21 Pag.: 81
Curso de POWERBUILDER 7.0
Nas próximas unidades e exercícios veremos com mais detalhes cada um deles.
Para nosso exemplo vamos utilizar o modo de apresentação FreeForm. A próxima janela de
diálogo que aparecerá será a de escolha da fonte de dados.
Esta janela determina como você define a fonte de dados (Data Sources) para a
DataWindow e como a mesma obtém os dados que ela mostrará. As opções existentes serão
descritas no quadro a seguir:
Quick Select Quando você quer construir um comando SQL SELECT com um simples critério
de recuperação, usando colunas de uma tabela do banco de dados ou de
tabelas relacionadas com chaves estrangeiras..
SQL Select Quando você quer que a DataWindow emita um comando SQL SELECT para
uma ou mais tabelas e você quer usar critérios mais extensivos de recuperação,
possivelmente incluindo parâmetros de substituições. Se você usa parâmetros
de substituições, você deve suprir valores para estes cada vez que você emite
uma requisição de Retrieve (requisição para recuperação) para a DataWindow.
Query Quando o comando SQL SELECT foi previamente codificado e armazenado em
uma biblioteca PowerBuilder (.PBL) como uma Query. (Não estudaremos)
External Para indicar que a DataWindow não submeterá um comando SQL para
provisão da fonte dos dados, mas que você irá supri-los através de comandos
PowerScript
Stored Procedure Quando você quiser que a DataWindow execute uma Stored Procedure
armazenada no banco de dados e exiba os dados do conjunto de resultados.
(Não estudaremos)
A seguir uma explicação mais detalhada de cada uma das opções de fonte de dados.
22/11/21 Pag.: 82
Curso de POWERBUILDER 7.0
Quando você seleciona Quick Select a partir da janela New DataWindow, a janela
Quick Select aparece, conforme figura abaixo.
Através desta janela, vamos construir um comando SQL, para isto seguiremos os seguintes
passos:
1. Selecione a tabela a partir da caixa de listagem de Tabelas (Tables). As colunas na tabela
aparecem na caixa de listagem de Colunas (Columns).
2. Selecione as colunas individuais ou, se você precisa selecionar todas as colunas, click o
botão Add All. As colunas são mostradas na base da janela. No nosso exemplo, vamos utilizar
a tabela de agencias e selecionar todas as colunas.
22/11/21 Pag.: 83
Curso de POWERBUILDER 7.0
Operador Significado
= É igual a (operador default)
> É maior que
< É menor que
<> É diferente de
>= É maior que ou igual a
<= É menor que ou igual a
LIKE De acordo com
NOT LIKE Em desacordo com
IN Está neste conjunto de valores
NOT IN Não está neste conjunto de valores
Para o nosso exemplo não teremos critério de recuperação, nem ordenação. A seguir
alguns exemplos de definição de critérios de recuperação:
22/11/21 Pag.: 84
Curso de POWERBUILDER 7.0
6. Quando você tiver terminado a especificação na janela Quick Select, click OK.
Para o nosso exemplo não definiremos ordenação nem critério de recuperação, então
ao clicarmos OK, surgira a janela de escolha de cores e tipos de borda:
22/11/21 Pag.: 85
Curso de POWERBUILDER 7.0
Apos a configuração destes itens, vamos clicar no botão “Next”, o que abrira uma
janela de resumo das informações fornecidas até o momento para o desenvolvimento da nova
DataWindow:
22/11/21 Pag.: 86
Curso de POWERBUILDER 7.0
Esta janela apresenta as informações fornecidas e avisa que está pronta para criar a
nova DataWindow. Então, clicando-se em Finish, a área de trabalho do DataWindow Painter
mostra o estilo da DataWindow que você definiu.
O datawindow painter é apresentado. Vamos apenas salvar nossa datawindow (d_agencias), pois
mais adiante, após a definição dos demais tipos de fontes de dados, apresentaremos detalhadamente a área
de trabalho do datawindow painter.
NOTA.
Se você precisa alterar o critério ou mesmo incluir mais tabelas e cláusulas no comando SQL
SELECT, click o botão Modify SQL select syntax na toolbar ou selecione Edit >Data Source. a
partir do menu Design.
22/11/21 Pag.: 87
Curso de POWERBUILDER 7.0
Quando você escolhe SQL Select para a fonte de dados da nova DataWindow e clica
OK, o PB abre o SQL Painter, um pintor de auxilio para a definição/desenvolvimento de
instruções SQL. Este pintor é bastante semelhante ao existente para a definição de views ou
de auxílio à confecção de SQL Embedded, item este que será visto adiante.
Inicialmente, a janela Select Tables aparece.
Apos isto, as tabelas e/ou visões selecionadas serão apresentadas no SQL Painter, o
qual será apresentado a seguir.
22/11/21 Pag.: 88
Curso de POWERBUILDER 7.0
Layout
das
tabelas
Seleçã
o
(Where
Ordenaçã ) Seleção
o (Sort) Agrupament (Having)
o (Group)
Colunas
Calculadas
(Compute)
Sintaxe
(Syntax)
Por default, estas áreas são apresentadas no SQL Painter. Mas, através do menu
View, podemos exibir ou não cada área descrita acima. Dentre outras opções, podemos:
· Escolher colunas específicas para serem mostradas na nova DataWindow;
· Fazer junção de tabelas;
· Agrupar colunas;
· Especificar critérios de recuperação de dados;
· Ordenar dados.
Neste momento devemos estar bem familiarizados pelo menos no que diz respeito aos
comandos SQL, pois na verdade, o PB está apenas apresentando os comandos/instruções
SQL de uma forma gráfica. No caso acima, um comando SELECT. Vamos verificar a seguir
como manipular/utilizar as opções do SQL Painter.
22/11/21 Pag.: 89
Curso de POWERBUILDER 7.0
Além das colunas provenientes das tabelas, podemos também definir colunas
calculadas. Para isto, devemos selecionar a pasta Compute. Nesta pasta, cada linha
apresentada pode ser utilizada para a definição:
da expressão da coluna computada, por exemplo: salário / 12;
de uma função suportada pelo SGBD utilizado, como por exemplo:
substr("employee"."emp_fname",1,2).
22/11/21 Pag.: 90
Curso de POWERBUILDER 7.0
Clausula Where
Você pode especificar critérios de recuperação para o comando SELECT na área de
Seleção (Where), localizada abaixo das tabelas na janela de definição de objetos datawindow:
22/11/21 Pag.: 91
Curso de POWERBUILDER 7.0
Para especificar o(s) critério(s) de recuperação dos dados, você pode entrar valores
clicando:
22/11/21 Pag.: 92
Curso de POWERBUILDER 7.0
22/11/21 Pag.: 93
Curso de POWERBUILDER 7.0
Para mudar a ordem para descendente, click no chekbox próximo ao nome da coluna
selecionada.
22/11/21 Pag.: 94
Curso de POWERBUILDER 7.0
Além disto, as colunas são agrupadas na ordem em que estão aparecendo no lado
direito da área de agrupamento.
Para excluir um determinado grupo, basta retorná-lo ao lado esquerdo da referida área.
Para alterar a ordem de agrupamento, arraste as colunas da área da direita para as
posições desejadas.
Clausula Having
Se você definiu grupos, você pode então utilizar a clausula HAVING. Esta clausula tem
como objetivo restringir estes grupos. Continuando nosso exemplo, como definimos um grupo
por numero de agencia, vamos restringir o mesmo de tal forma que somente retornem as
agencias que possuam saldo menor que R$ 60.000,00. Tal restrição corresponde a:
22/11/21 Pag.: 95
Curso de POWERBUILDER 7.0
2. Já que a DataWindow não terá uma estrutura de alguma tabela do banco de dados como
referência, você deve descrever explicitamente esta estrutura. Entre com as definições de cada
coluna nas caixas e click OK. A área de trabalho do DataWindow Painter mostra o estilo de
DataWindow que você especificou.
22/11/21 Pag.: 96
Curso de POWERBUILDER 7.0
NOTA.
As DataWindows Externals são utilizadas por exemplo quando os dados serão importados de uma
aplicação DDE, exemplo Excel.
22/11/21 Pag.: 97
Curso de POWERBUILDER 7.0
Bibliografia de referência:
Advanced PowerBuilder 7 Techniques
Editora: Wiley
Autores: Ramesh Chandak e Purshottam Chandak
22/11/21 Pag.: 98