segunda-feira, 12 de novembro de 2012

Trabalhando com links

O PowerBuilder disponibiliza diferentes formas para o desenvolvedor trabalhar com links.

A forma mais comum é a através do controle StaticHyperLink. Independente de você estar desenvolvendo uma interface para desktop ou para web, o controle StaticHyperLink trabalhará do mesmo modo.

Para testá-lo, crie uma novo objeto window em um workspace de teste e adicione o controle através do menu Insert > Control > StaticHyperLink (ver imagem 1).

Imagem 1
Após adicionar o controle na sua interface, é hora de configurar as propriedades. Dentre elas, detalhei as mais relevantes:

  • Text: Texto a ser exibido ao usuário para efetuar o clique do link;
  • URL: Endereço propriamente dito a ser acessado através do link. Ex: "http://www.blogger.com";

Obs: Há um bug nos navegadores Mozilla Firefox e Opera em que, ao clicar no link com seu navegador padrão fechado, o programa não acessa o endereço definido. Uma solução para isto é adicionar um espaço em branco antes do endereço no campo URL.

É possível também definir links que redirecionem para os provedores de e-mail. Isto é feito definindo um código mais completo no campo URL, por exemplo: "<a href=”mailto:teste@gmail.com?subject=Feedback” >teste@gmail.com</a>".

Outro modo de trabalhar com links é pelo próprio código fonte. Segue abaixo um exemplo de como isto pode ser feito através da classe INet.

INet iinet_base
GetContextService("Internet", iinet_base)
iinet_base.HyperlinkToURL("http://www.blogger.com")


Por último, mostro como utilizar links através de datawindows. Porém, este modo só é possível quando você está trabalhando com uma aplicação web. Se este é o seu caso, crie uma datawindow e adicione um novo controle do tipo "Text" ou utilize uma "Column" mesmo. Acesse a aba "HTML" em suas propriedades. Lá você irá encontrar os seguintes campos:

  • Link: Endereço propriamente dito a ser acessado através do link. Perceba que é possível utilizar uma fórmula para compôr o link dinamicamente;
  • Link Target: Define como cada link será carregado na janela do navegador quando for clicado. Os valores possíveis são:
    • _blank: Abre uma nova página em uma nova janela do navegador;
    • _self: Carrega a nova página na janela atual;
    • _parent: Carrega a nova página no frame ancestral;
    • _top: Carrega a nova página na janela atual do navegador, cancelando todos os frames.

Os demais campos não são para situações tão básicas, mas você pode sentir necessidade de utilizá-los também.

Bom, espero que tenha dado uma visão geral da utilização de links em PowerBuilder. Existem muitas situações mais avançadas do que as que exemplifiquei aqui. Caso tenha dúvidas para utilizar algum recurso, é só me passar pelos comentários ou através do e-mail.

4 comentários:

  1. Bom dia.
    Estou utilizando o HyperlinkToURL no PB 11.5, porém embora ele diga q abre o browser padrão, está abrindo outro.... Estou com chrome default e sempre abre IE, na máquina de um colega, o mesmo programa, abre no chrome e o default dele é o IE.... Esta muito estranho... Já tentei por o espaço antes da url no parâmetro do HyperlinkToURL (iinet_base.HyperlinkToURL(' ' + ls_laudo_url)).

    Terias alguma ideia do que pode ser?

    Grato

    ResponderExcluir
    Respostas
    1. Olá, amigo.

      Também já passei exatamente pelo mesmo problema, mas não consegui resolver. Tentei de diversas maneiras, inclusive usando o comando run, mas não obtive sucesso.

      Infelizmente não conseguirei te ajudar...

      Excluir
  2. Olá, obrigado pelo retorno.
    Com o Run eu tentei tbm, até funcionou, em ambas as máquinas abriram no browser padrão(quando mando um 'endereço' web), só que com o run, quando é uma imagem, ele abre com o leitor default de imagem e eu preciso q tudo abra no browser (ex. caminho que passo --> 'F:\\teste\laudo1.jpg') isso tem q abrir no browser (com o hyperlinktourl abre(não no padrão :(, com o run não).

    Mas mto obrigado pelo retorno, já achei outras coisas que me foram úteis no seu blog.

    ResponderExcluir
  3. greetings from Indonesia, blog walking with PowerBuilder in mind, great post, come look my powerbuilder resources like modern ui and powerbuilder installer at http://zulmach.wordpress.com

    ResponderExcluir