Exemplo de Como Criar uma Função

Este passo a passo mostra como criar uma função para ser utilizada no Maker.

Será utilizada como exemplo as funções Abrir Formulário numa Moldura (camada Cliente) e a função Hipotenusa (camada Servidor) para criação do tutorial. Segue o passo a passo:

Passo a Passo:

  1. No ambiente Maker acesse o menu Utilitários e localize o submenu Funções. Será apresentada a tela Funções do fluxo de ações como informa a imagem abaixo:

    image71.gif

  2. Insira um novo registro. Clique em image71.gif para apresentar a tela em branco:

    image71.gif

  3. Abas:

    Note que existem Três abas (Geral, Cliente e Servidor). Na aba Geral será descrito os detalhes da função e nas abas Cliente e Servidor serão desenvolvida em linha de código o comportamento da função. Na camada Cliente o código deverá ser em JavaScript e na camada Servidor o código deverá ser em Java.

  4. 3.1 Aba Geral:

    3.2 Aba Cliente:

    Para demonstração da criação de uma função na camada Cliente, será utilizada como exemplo a função (Abrir Formulário numa Moldura - Modo).

    Definição:
    A função tem como finalidade abrir um formulário numa moldura no modo edição, navegação ou inserção.

    A aba geral, ficará da seguinte forma:



    Na aba Cliente, preencha o campo:

    JavaScript: neste campo, informe o código-fonte abaixo: /*Componentes e valores passados como parâmetro para função*/

    function openFrmModo (formName, componentName, formTarget,scrollbar, mode)

    {

    var component = controller.getElementById(componentName, formName);

    if ((component) && (component instanceof HTMLGroupBox))

    {

    var oldIframe = component.div.getElementsByTagName("iframe");

    /*Verificação e definição da exibição ou não da barra de rolagem*/

    var scrolling;

    if (scrollbar)

    {

    scrolling = 'yes';

    }

    else

    {

    scrolling = 'no';

    }

    if (oldIframe.length > 0)

    {

    if (oldIframe.formOnUnLoadAction)

    oldIframe.formOnUnLoadAction();

    /*Criação uma variável para guardar o caminho do formulário a ser exibido dentro da moldura, passando também os parâmetros necessários*/

    var url = 'form.jsp?sys='+sysCode+'&action=openform&formID='+formTarget

    +'&align=0&mode='+mode+'&goto=-1&filter='+(filter?filter:'')+'&scrolling='+scrolling;

    if (oldIframe[0].src.substr(oldIframe[0].src.length-url.length) != url)

    {

    oldIframe[0].src = url

    oldIframe[0].style.scrollbars = scrollbar;

    alert(mode);

    }

    }

    else

    {

    ebfFrameOpenURL(formName, componentName,'form.jsp?sys='+sysCode+

    '&action=openform&formID='+formTarget+'&align=0&mode='+mode

    +'&goto=-1&filter='+(filter?filter:'')+'&scrolling='+scrolling, scrollbar);

    alert(mode);

    }

    }

    else

    {

    throw "O Componente não é do tipo moldura";

    }

    }

    A aba Cliente deverá ficar da seguinte forma:

    image71.gif


    Exemplo prático utilizando a função "Abrir Formulário numa Moldura - Modo

    3.3 Aba Servidor;

    Para demonstração da criação de uma função na camada Servidor, será utilizada como exemplo a função (Tamanho do Arquivo).

    Definição:
    A função tem como finalidade obter o tamanho do arquivo e retornar o seu valor em bytes.

    A aba geral, ficará da seguinte forma (veja mais informações seção 3.1 - Aba Geral):

    image956.jpg


    Na aba Servidor, preencha o campo:

    Java: neste campo, informe o código-fonte abaixo:

    protected final Variant oprPitagoras(Variant cateto1, Variant cateto2) throws Exception {

    double potencia_cat1 = Math.pow(cateto1.getDouble(),2);
    double potencia_cat2 = Math.pow(cateto2.getDouble(),2);

    double soma = potencia_cat1 + potencia_cat2;
    double result = Math.sqrt(soma);

    return VariantPool.get(result);
    }

    A aba Servidor deverá ficar da seguinte forma:

    image956.jpg

    OBS: *Devido o Webrun apenas reconhecer variáveis do tipo Variant, torna-se necessário ter conhecimento dos métodos de acesso de cada tipo de dados. Segue a tabela abaixo*.

    Tipos

    Métodos Acessadores

    Exemplos

    Inteiro

    get / Double(), Long().

    variavel.getDouble().

    Letra

    get /String().

    variavel.getString().

    Fracionado

    get / Double(), Long().

    variavel.getDouble().

    Data

    get / Date () (Data dentro de Aspas Duplas).

    variavel.getDate().

    Boolean

    get /Boolean () (true ou false(Inicial minúscula).

    variavel.getBoolean().


    Exemplo prático utilizando a função "Tamanho do Arquivo"




____________________________________________________________________________

image776.jpg

Caso este tópico não tenha comentário satisfatório, envie e-mail para documentacao@softwell.com.br