power builder

18
 Programação Sybase PowerBuilder Marcelo Michels  Autor

Upload: alexandre-selau

Post on 13-Oct-2015

196 views

Category:

Documents


6 download

TRANSCRIPT

  • Programao Sybase PowerBuilder

    Marcelo Michels Autor

  • WorkSpace

    WorkSpace a base para a criao de aplicaes. Cada WorkSpace pode

    conter um ou mais projetos. Usando a WorkSpace possvel cria uma controlador de

    verses. Sem a WorkSpace impossvel desenvolver uma aplicao.

    New WorkSpace WorkSpace

    Target

    Os projetos so as Targets no PowerBuilder, lembrando que podemos ter

    vrias targets dentro de uma mesma WorkSpace.

    New Target Aplication

    PBT PowerBuilder Target

    A pbt um arquivo que armazena as informaes sobre sua aplicao, como

    nome, lista de suas bibliotecas e deploy.

    PBL PowerBuilder Library

    Dentro das Targets temos as PBLs que so utilizadas para separar os objetos

    criados dentro da Target.

    New Library Library

    Window

    A Window bem subdividida e notamos na parte inferior algumas abas que fazem esta diviso, as principais so: A aba Event List exibe todos os eventos do objeto que est selecionado.

    A aba Function List mostra as Funes e Mtodos.

    A aba Declare Instance Variables onde podemos declarar as variveis do tipo Global

    e do tipo Instncia.

    New PB Object Window

    Instncia, Global e Local So os nveis de declarao das variveis no sistema. Para entendermos

    melhor.

    Instncia: so as variveis que ficaro visveis a todo o objeto e ficaro disponveis quando o objeto estiver sendo utilizado. Global: pertencem aplicao. Local: so as variveis declaradas dentro de mtodos ou funes e so destrudas aps o trmino da execuo do mtodo ou funo.

    Variveis So alocaes de memria responsveis por armazenar algum tipo de

    informao. Existem vrios tipos de variveis no PowerBuilder. So eles: Integer, Double, Long, LongLong, Char, String, Date, Time, DateTime, Boolean DataWindow, DataStore e etc...

    Padres de nomenclatura usados no PowerBuilder

    Nomes de variveis devem dizer exatamente para que elas so usadas. Um importante ponto que surge neste instante que devemos, ao olhar para o nome da

  • varivel, saber sua abrangncia e seu tipo de dados. As algumas das convenes de nomenclatura de variveis so as seguintes:

    Abrangncia

    Local l

    De instncia i

    Global g

    Recebida por parmetro (funes)

    a (argument)

    Tipo

    Integer i

    Long l

    Double d

    Decimal dec

    String s

    Boolean b

    Como usar os padres: Varivel local do tipo string, para armazenar o nome de uma pessoa: ls_nome Varivel global do tipo integer para armazenar o nmero de usurios conectados ao sistema: gi_usuarios_conect Varivel long de instncia para armazenar um contador il_ctd

    Sintaxes Operadores Os operadores relacionais so: =; ; >; =;

  • RetryCancel! - Botes Repetir e Cancelar AbortRetryIgnore! - Botes Abortar, Repetir, e Ignorar Exemplo: MessageBox('Ateno', 'Programando!')

    Comentrios H duas formas de se inserir comentrios no script do PowerBuilder, so elas: Comentrio em linha: // Comentrio ou comentrio em bloco: /* Comentrio Comentrio linha 2 Comentrio linha 3 */

    IF O IF o comando fundamental para desenvolver um sistema

    Sintaxe: IF THEN END IF Sintaxe: IF THEN ELSE END IF Sintaxe: IF THEN Sintaxe: IF THEN ELSEIF THEN ELSE END IF Exemplo: IF DataWindow.Update() > 0 THEN

    MessageBox('Curso', 'Dados salvos', INFORMATION!, OK!, 1) ELSE

    MessageBox('Curso', 'Problemas ao salvar!', STOPSIGN!, OK!, 1) END IF

  • Choose Case Como foi visto, o comando if serve para situaes que exigem condies

    (verdadeiro ou falso). Mas para determinadas situaes, onde devemos analisar mais de duas condies, existe o comando choose case.

    Sintaxe: Choose Case Valor Case 1 Faa Case 2 Faa Case 3, 4 Faa Case 5 TO 9, Faa Case Else Faa End Choose Exemplos: Uma varivel chamada Time que tem um valor atribudo a ela. Fazer um teste, verificando qual o nome do time, e em seguida, dizer qual a cor da camisa. String Time, CorCamisa Time = Santos Choose case Time Case Flamengo CorCamisa = vermelha Case Grmio CorCamisa = azul Case Internacional CorCamisa = vermelha Case So Paulo CorCamisa = branca e vermelha Case Santos CorCamisa = preta e branca Case Palmeiras CorCamisa = verde End choose MessageBox(Cor da camisa, Cor_camisa)

    Estruturas de repetio Laos

    For ... To ... Next Executa um conjunto de instrues um nmero definido ou indefinido de vezes Sintaxe: For = To Step ... Cdigo Next

  • Exemplos: Integer i For i = 1 to 4 MessageBox(Testando, Contador: + string(i)) Next Exemplos: Integer i For i = 4 to 1 Step 1 MessageBox(Repetio regressiva, Contador = + String(i)) Next Repare que uma varivel deve ser declarada para receber o contador.

    Do While ... Loop Executar um conjunto de instrues enquanto um determinado estado de

    coisas prevalecer. Sintaxe: Do While Faa Loop Exemplos: Integer i i = 1 Do While i

  • No mtodo of_Choose deve ser testado se sle_Inicio tem os seguintes valores(1, 5, de

    6 a 8, maior do que 8 ou se no se encaixa em nenhuma destas condies) e informar

    em uma MensageBox.

    No mtodo of_Do fazer um contador a partir com valor inicial de 1(um), o sistema deve

    mostrar uma mensagem para informar que o valor do contador no maior do que o

    valor do sle_Final enquanto isto for verdade.

    No mtodo of_For deve mostrar mensagens com cada um dos nmeros entre

    sle_Inicio at sle_Fim.

    Funes Internas da IDE Funo Open

    Abre um objeto de tela, o open exibe a janela e faz todas as suas propriedades

    e controles disponiveis para scripts.

    Exemplo:

    Open(w_ExibeMensagem)

    Funo Close

    Fecha uma Janela e libeba o espao ocupado por uma janela e todos os

    controles na janela.

    Exemplo:

    Close(w_ExibeMensagem)

    Funo OpenWithParm

    A mesma funcionalidade da funao Open, mas com um diferencial de

    passagem de parmetro para a janela. Estes parmetros podem ser strings, numeros

    e objetos.

    Exemplo:

    OpenWithParm (w_ExibeMensagem,Gravao efetuada com sucesso!)

    Funo CloseWithReturn

    Fecha a janela e armazena em um valor de retorno no objeto de mensagem.

    CloseWithReturn deve ser usado apenas em Windows response.

    Exemplo:

    CloseWithReturn(Parent,Close OK!)

    Funo Trim

    Remove espaos de sobra antes e depois de qualquer string.

    Exemplo:

    ls_Trim = Trim( PowerBuilder )

    A varivel ls_Trim aps sua execuo resulta em PowerBuilder.

    Funo LeftTrim

    Remove os espeos a partir do inicio de uma string.

    Exemplo:

  • ls_LeftTrim = LeftTrim( PowerBuilder )

    A varivel ls_LeftTrim aps sua execuo resulta em PowerBuilder .

    Funo RightTrim

    Remove os espeos a partir do inicio de uma string.

    Exemplo:

    ls_RightTrim = RightTrim( PowerBuilder )

    A varivel ls_LeftTrim aps sua execuo resulta em PowerBuilder.

    Funo Left

    Obtm um numero especifico de caracteres a partir do inicio de uma string at

    o numero informado no segundo parmetro.

    Exemplo:

    ls_Left = Left (PowerBuilder,5)

    A varivel ls_Left aps sua execuo resulta em Power.

    Funo Right

    Obtm um numero especifico de caracteres a partir do fim de uma string at o

    numero informado no segundo parmetro.

    Exemplo:

    ls_Right = Right(PowerBuilder,7)

    A varivel ls_ Right aps sua execuo resulta em Builder.

    Funo Pos

    Procurara do inicio de um caractere ou exprexo dentro de um literal.

    Exemplo:

    ll_Pos = Pos(PowerBuilder,er)

    A varivel ll_ Right aps sua execuo resulta em 4.

    Funo Len

    Retorna o tamanho da String ou Blob.

    Exemplo:

    ll_Len = Len(PowerBuilder)

    A varivel ll_ Len aps sua execuo resulta em 12.

    Funo Mid

    Obtm um numero especificado de caracteres a partir de uma determinada

    posio em uma string.

    Exemplo:

    ls_Mid = Mid(PowerBuilder,3,5)

    A varivel ls_Mid aps sua execuo resulta em werbu.

    Funo Upper

    Converte todos os caracteres em uma string para maisculas.

    Exemplo:

  • ls_Upper = Upper(PowerBuilder)

    A varivel ls_Upper aps sua execuo resulta em POWERBUILDER.

    Funo Lower

    Converte todos os caracteres em uma string para minsculas.

    Exemplo:

    ls_Lower = Lower(POWERBUILDER)

    A varivel ls_Lower aps sua execuo resulta em powerbuilder.

    Funo Reverse

    Inverte a string informada.

    Exemplo:

    ls_Reverse = Reverse(powerbuilder)

    A varivel ls_Reverse aps sua execuo resulta em redliubrewop.

    Funo Replace

    Altera parte de uma string, substitui um caractere por outro determinado.

    Exemplo:

    ls_Replace = Replace(powerbuilder, 1, 3, SYBASE)

    A varivel ls_Reverse aps sua execuo resulta em SYBASEerbuilder.

    Funo Round

    Arredonda um nmero para o nmero especificado de casas decimais.

    Exemplo:

    lde_Round = Round(9.626, 2)

    A varivel lde_Round aps sua execuo resulta em 9.63.

    Funo Truncate

    Trunca um nmero para o nmero especificado de casas decimais.

    Exemplo:

    lde_Truncate = Truncate(9.626, 2)

    A varivel lde_Round aps sua execuo resulta em 9.62.

    Funo UpperBound

    Obtm o limite superior de uma dimenso de um array.

    Exemplo:

    Integer li_A[ ], li_UpperBound

    li_A[1] = 1

    li_A[2] = 5

    li_A[3] = 10

    li_UpperBound = UpperBound(li_A)

    A varivel li_UpperBound aps sua execuo resulta em 3.

    Funo Today

    Obtm a data atual.

    Exemplo:

    Date ld_Atual

  • ld_Atual = Today( )

    Funo Now

    Obtm a hora atual.

    Exemplo:

    Time lt_Atual

    lt_Atual = Now( )

    Funo ABS

    Obtm o valor absoluto de um nmero.

    Exemplo:

    Iteger li_Abs

    li_Abs = Abs(-4)

    A varivel li_Abs aps sua execuo resulta em 4.

    Funo Sleep

    Pausa a aplicao por um tempo em segundos, determinado no parmetro da

    funo.

    Exemplo:

    Sleep(10)

    Funo Yield

    Liberta o uso do processador dedicado a aplicao para ser usado em damais

    recursos.

    Exemplo:

    Yield( )

    Funo DaysAfter

    Obtm o nmero de dias entre as datas informadas.

    Exemplo:

    ll_Dias = DaysAfter(20/08/2011, 25/08/2011)

    A varivel ll_Dias aps sua execuo resulta em 5.

    Funo Fill

    Cria uma sequncia de caracteres especificada repetindo-os de acordo com o

    parmetro informado.

    Exemplo:

    ls_Fill = Fill(-,5)

    A varivel ls_Fill aps sua execuo resulta em -----.

    Funo IsNumber

    Retorna se o valor string um numero.

    Exemplo:

    If IsNumber(12635475) Then

    MessageBox(Tipo, numero)

    Else

    MessageBox(Tipo,No numero)

  • End If

    Funo IsDate

    Retorna se o valor string uma data.

    Exemplo:

    If Not IsDate (12635475) Then

    MessageBox(Tipo, No data)

    Else

    MessageBox(Tipo, data)

    End If

    Funo RetativeDate

    Obtm uma data de diferena entre nmero de dias informado antes ou depois

    de outra data.

    Exemplo:

    ld_Relative = RelativeDate(21/08/2011, 2)

    A varivel ld_Relative aps sua execuo resulta em 23/08/2011.

    Funo RetativeTime

    Obtm uma hora de diferena entre nmero de segundos informado antes ou

    depois de outra hora.

    Exemplo:

    lt_Relative = RelativeTime(21/08/2011, 2)

    A varivel lt_Relative aps sua execuo resulta em 23/08/2011.

    Funo Restart

    Interrompe a execuo de todos os scripts, fecha todas as janelas, desconecta

    do banco de dados e reinicia a aplicao.

    Exemplo:

    Restart( )

    Create

    Cria uma instncia/objeto da classe para um tipo de objeto especificado ou

    nome.

    Exemplo:

    Syntax 1

    n_Conexao lnv_Conexao

    lnv_Conexao = Create n_Conexao

    Syntax 2

    String ls_Classe

    n_Conexao lnv_Conexao

    ls_Classe = n_Conexao

    lnv_Conexao = Create Using ls_Class

  • Destroy

    Elimina uma instncia do objeto que foi criado com a instruo CREATE.

    Depois de uma declarao DESTROY, as propriedades da instncia do objeto

    excludo no pode ser mais referenciado.

    TabOrder

    TabOrder especifica a ordem na qual o controle receber o foco. O TabOrder

    s aplicado em componentes visveis.

    Exemplo:

    Objeto.TabOrder = 10

    Tambm h possibilidade de definir o taborder em momento de construo do

    aplicativo.

    This

    O pronome This refere-se a classe/objeto do aplicativo ou controle que possui o

    script atual.

    Exemplo:

    This.Text = OK

    Parent

    O pronome Parent refere-se ao objeto que contem o objeto atual. Por exemplo,

    uma janela o objeto pai dos controles que ela possui. Resumindo-se o objeto

    principal onde o componente esta contido.

    Exemplo:

    Close(Parent)

    Exerccios Construa uma nova window chamada w_principal. Quando a aplicao abrir, deve chamar a w_principal. No subitem Sair deve conter o cdigo para fechar a aplicao. O subitem comandos fazer a chamada da tela w_comando Criar uma window chamada w_exercicio Modelar a w_exercicio contendo os seguintes controles:

  • Controles SingleLineEdit sle_nome sle_sobrenome sle_idade sle_filhos sle_rua sle_bairro DropDownListBox ddlb_estado RadioButton rb_masculino rb_feminino GroupBox gb_Dadosprincipais gb_sexo gb_endereco CommandButton cb_incluirfilhos cb_exibirfilhos cb_limpar cb_verificardados cb_mostrardados cb_sair

    Propriedades Preencher a propriedade Items da ddlb_estado com os estados da regio. Todos os campos devem iniciar limpos.

    Funo de cada boto da Window cb_limpar - Limpar todos os controles da window

    Como fazer:

    Para todos os controles que tiverem texto (propriedade Text), atribuir o valor .

    cb_verificardados Analisar a validade dos dados digitados (emitir um MessageBox se todos estiverem ok, mas se algum estiver com problema, emitir um MessageBox e posicionar o foco em cima): Todos os campos devem ser preenchidos (obrigatrios). Como fazer: Fazer vrios testes condicionais, testando cada contedo de campo texto. A idade do cliente deve ser maior que 15 e menor que 100 anos. O nmero de filhos no pode passar de 20 e no pode ser menor que 0. Ao validar os campos, todos os textos (contedos) devem ser convertidos para maisculo. Como fazer: Usar funo que converte texto para caixa alta.

  • cb_incluirfilhos Criar e chamar uma nova window a w_filho, chama a window tantas vezes quanto definido no nmero de filhos.

    Criar uma varivel de instncia na w_exercicio_01[] ela ir armazenar cada filho em um elemento Criar estrutura de repetio para guardar cada filho a janela w_filho deve ser chamada uma vez para cada filho cb_exibirfilhos Mostrar um MessageBox com todos filhos do cliente. Como fazer:

    Criar uma funo (of_textofilhos) que retorne uma string contendo todos os filhos do cliente, separados por um caractere ~r que serve para quebrar a linha. Exibir o resultado desta funo em um MessageBox. Exemplo: Lista de filhos ----------------------------- Claudio Rafael Cristiane Roberta ----------------------------- cb_mostrardados Mostrar um MessageBox com todos os dados do cliente, incluindo todos os filhos. Como fazer: Criar uma funo (of_textodados) que retorne uma string contendo todos os dados do cliente (passar por todos os controles). Aproveitar a funo of_textofilhos. Exemplo de texto a mostrar: Nome: Joo Batista Idade: 36 Anos Sexo: Masculino Filhos: 3 Lista de filhos ----------------------------- Claudio Rafael Cristiane Roberta ----------------------------- Endereo:

  • Rua: 7 de Setembro, 325 Bairro: Centro Estado: Paran

    cb_sair Sair do programa Pedir ao usurio se ele deseja realmente sair do programa (MessageBox).

    Integrao com banco de dados

    Conexo

    Para conectar-se a banco de dados o PowerBuilder Disponibiliza varias formas,

    as mais usadas so:

    Conexo pelo driver nativo.

    Conexo pelo driver ODBC (Open Data Base Connectivity)

    Objeto Transaction

    Objeto responsvel por criar uma transao entre sua aplicao e o banco de

    dados, permitindo a leitura e a escrita no banco de dados. O PowerBuilder possui um

    objeto padrao de transao SQLCA.

    Tratamento de erro

    SQLCode

    Cdigo referente ao cucesso ou erro referente a sua operao ao banco de

    dados.

    SQLDBCode

    Cdigo retornado do banco de dados.

    SQLErrText

    Mensagem de erro retornada pelo banco de dados.

    SQLNRows

    Numero de linhas afetadas no seu banco de dados referente a operao

    executada.

    Comandos SQL

    Insert

    Inserir registros no banco de dados.

    Exemplo:

    Insert Into cliente ( codigo, nome) Values ( 1, Marcelo)

  • Update

    Atualizar Registros no banco de dados que correspondem as especificaes do

    Where.

    Exemplo:

    Update Cliente Set nome = Marcelo Michels Where codigo = 1;

    Delete

    Apagar Registros do banco de dados, este comando tambm pode ser usado a

    especificao Where.

    Exemplo:

    Delete From Cliente Where codigo = 1;

    Select

    L as Informaes j gravadas em banco de dados.

    Exemplo:

    Select * From cliente Where codigo = 1;

    Select codigo, nome From Cliente Where codigo = 1;

    Commit & RollBack

    Sempre que um comando DML (Data Manipulation Language) executado no

    banco de dados, necessrio executar o comando Commit ou RollBack.

    Estes comandos so responsveis por confirmar ou desfazer a operao.

    o Commit Responsvel por confirmar a operao.

    o RollBack Responsvel por desfazer a operao.

    Uma Vez executado um dos comandos acima mencionados no possvel

    executar outro na mesma operao.