Páginas filhas
  • LGX - LMENUBAR

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
LGX - LMENUBAR
LGX - LMENUBAR
Componente visual para criação de menu para as aplicações. O menu é exibido sempre na parte superior da janela de aplicação e agrupa todas as funcionalidades da aplicação através de botões.


Hierarquia



Métodos GET


Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente:


Expandir
titleGET CONFIRM_BUTTON_REFERENCE

Método GET: CONFIRM_BUTTON_REFERENCE

Referência do botão de confirmação.

Sintaxe



Bloco de código
_ADVPL_get_property(l_menubar_reference,"CONFIRM_BUTTON_REFERENCE") ==> Referência

Retorno



TipoDescrição
CHAR
  • Retorna a referência do botão (LMenuButton) do botão de confirmação.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
LET l_confirm_button_reference = _ADVPL_get_property(l_menubar_reference,"CONFIRM_BUTTON_REFERENCE")



Expandir
titleGET CURRENT_OPERATION

Método GET: CURRENT_OPERATION

Operação corrente (em execução).

Sintaxe



Bloco de código
_ADVPL_get_property(l_menubar_reference,"CURRENT_OPERATION") ==> Operação

Retorno



TipoDescrição
CHAR

Nome da operação que está em execução.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
LET l_current_operation = _ADVPL_get_property(l_menu_bar_reference,"CURRENT_OPERATION")



Expandir
titleGET DO_CANCEL

Método GET: DO_CANCEL

Executa o cancelamento da operação em execução.

Sintaxe



Bloco de código
_ADVPL_get_property(l_menubar_reference,"DO_CANCEL") ==>  Cancelou com sucesso?

Retorno



TipoDescrição
BOOLEAN

Retorna se a operação pode ser cancelada, se não houve nenhum erro ao cancelar a operação em execução.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
LET l_do_cancel = _ADVPL_get_property(l_menubar_reference,"DO_CANCEL")



Expandir
titleGET DO_CONFIRM

Método GET: DO_CONFIRM

Executa a confirmação da operação em execução.

Sintaxe



Bloco de código
_ADVPL_get_property(l_menubar_reference,"DO_CONFIRM") ==> Confirmou com sucesso?

Retorno



TipoDescrição
BOOLEAN

Retorna se a operação pode ser confirmada, se não houve nenhum erro ao confirmar a operação em execução.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
LET l_do_confirm = _ADVPL_get_property(l_menubar_reference,"DO_CONFIRM")




Métodos SET


utilizando a função _ADVPL_set_property que permite alterar e manipular os valores do componente.


Método SET: BEFORE_EDIT_EVENT

Função executada antes de iniciar a edição da coluna.

Sintaxe

Expandir
titleSET AFTERHELP_EDIT_EVENTVISIBLE

Método SET:

AFTER_EDIT_EVENT

Função executada após finalizar a edição da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"AFTER_EDIT_EVENT",< Função >)

Parâmetros

NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada após finalizar a edição da coluna.Sim
Expandir
titleSET BEFORE_EDIT_EVENT
Bloco de código
_ADVPL_set_property(< l_table_reference >,"BEFORE_EDIT_EVENT",< Função >)

Parâmetros

NomeTipoDescriçãoObrigatório? Função CHARFunção a ser executada antes de iniciar a edição da coluna.Sim

(informação) Importante: esta função deverá retornar um identificador lógico que define se será permitida ou não a edição da coluna.

Expandir
titleSET BLANK

Método SET: BLANK

Define se a coluna, caso não for informado, fique com o valor em branco ao invés de nulo.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"BLANK",<  Permite valor em branco? >)

Parâmetros

NomeTipoDescriçãoObrigatório? Permite valor em branco?BOOLEANIdentificador lógico que define que, caso a coluna não seja informado, a coluna receberá o valor em branco ao invés de nulo.Sim

HELP_VISIBLE

Define se o botão de ajuda do menu será visível

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"BLANK",TRUE)
Expandir
titleSET CLEAR_EDIT_PROPERTY

Método SET: CLEAR_EDIT_PROPERTY

Limpa todas as propriedades definidas para o componente de edição.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"CLEAR_EDIT_PROPERTY")

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"CLEAR_EDIT_PROPERTY")
Expandir
titleSET COLUMN_WIDTH

Método SET: COLUMN_WIDTH

Largura da coluna em pixels.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"COLUMN_WIDTH",< Largura >)

Parâmetros

NomeTipoDescriçãoObrigatório?LarguraINTEGERLargura da coluna em pixels.Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",50)
Expandir
titleSET EDIT_COMPONENT

Método SET: EDIT_COMPONENT

Componente freeform de edição da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"EDIT_COMPONENT",< Componente >)

Parâmetros

NomeTipoDescriçãoObrigatório?ComponenteCHARComponente freeform que será utilizado para editar o valor da coluna.Sim

(informação) Se este método não for executado, não será possível efetuar a edição do componente.

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"EDIT_COMPONENT","LTEXTFIELD")
Expandir
titleSET PICTURE

Método SET: PICTURE

Propriedade do componente de edição.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"PICTURE",< Propriedade/Método >, < Valores>)

Parâmetros

NomeTipoDescriçãoObrigatório?Propriedade/MétodoCHARNome da propriedade que será definida para o componente de edição.SimValoresQUALQUERValores da propriedade que será definida para o componente de edição.Sim

(informação) As propriedades do componente de edição podem ser encontradas na documentação do componente freeform definida no método EDIT_COMPONENT.

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"EDIT_PROPERTY","PICTURE","@!")
Expandir
titleSET HEADER

Método SET: HEADER

Cabeçalho da coluna

.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_table_reference >,"HEADER",< Cabeçalho >)

Parâmetros

NomeTipoDescriçãoObrigatório?CabeçalhoCHARTexto de cabeçalho da coluna.Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"HEADER","Component")
Expandir
titleSET HEADER_CLICK_EVENT

Método SET: HEADER_CLICK_EVENT 

Função executada ao clicar no cabeçalho da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"HEADER_CLICK_EVENT",< Função >)

Parâmetros

NomeTipoDescriçãoObrigatório?FunçãoCHARFunção a ser executada ao clicar no cabeçalho da coluna.Sim Expandir
titleSET IMAGE

Método SET: IMAGE

Define uma ou várias imagens a serem exibidas na coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"IMAGE",< Imagem >HELP_VISIBLE",< Visível? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
ImagemCHARNome da imagem ou um texto com as condições para que a imagem seja exibida na coluna.Sim

(informação) Para este método, pode-se informar o nome das imagens de duas formas:

  • Fixo: informa o nome de apenas uma imagem que será exibida para todas as linhas da coluna (apenas para colunas que não possuem valor);
    • Ex.: CHECKED
  • Variável:informa no formato de parâmetro, o valor e o nome da imagem que a coluna deverá exibir caso a mesma estiver com o valor definido;
    • Ex.: {'S','CHECKED'}{'N','UNCHECKED'}

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"IMAGE","{'S','CHECKED'}{'N','UNCHECKED'}")
Expandir
titleSET IMAGE_COLUMN

Método SET: IMAGE_COLUMN

Assume o valor da coluna como o nome da imagem a ser exibida.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"IMAGE_COLUMN",< Assume valor como nome da imagem? >)

Parâmetros

NomeTipoDescriçãoObrigatório?
Assume valor como nome da imagemVisível?BOOLEANIndicador lógico que define se o valor da coluna será ou não considerado como o nome da imagem que deverá ser exibida.Sim

(informação) Este método é útil quando deseja-se exibir várias imagens na grade, diferente para cada linha, basta ativar este método e atribuir no valor da coluna o nome da imagem do RPO que deseja exibir.

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"IMAGE_COLUMN",TRUE)
Expandir
titleSET IMAGE_HEADER

Método SET: IMAGE_HEADER

Imagem de cabeçalho da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"IMAGE_HEADER",< Imagem >)

Parâmetros

NomeTipoDescriçãoObrigatório?ImagemCHARNome da imagem no RPO que será utilizada no cabeçalho da coluna.Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"IMAGE_HEADER","CHECKED")
Expandir
titleSET NO_VARIABLE

Método SET: NO_VARIABLE

Assume que a coluna não possui variável, é apenas para exibição de imagem ou texto fixo, sem valor.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"NO_VARIABLE")

(informação) Este método é muito utilizado quando deseja-se que a coluna exiba uma imagem ou texto fixo, sem variável por linha. Quando este método está ligado, não é necessário incluir na variável ARRAY OF RECORD definida para a grade, um atributo para a coluna em questão.

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"NO_VARIABLE")
Expandir
titleSET ORDER

Método SET: ORDER

Habilita/desabilita a ordenação dos valores da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"ORDER",< Permite ordenar os valores da coluna? >)

Parâmetros

NomeTipoDescriçãoObrigatório?Permite ordenar os valores da coluna?BOOLEANIndicador lógico que define se será ou não permitido a ordenação dos valores da coluna.Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"ORDER",TRUE)
Expandir
titleSET ORDER_BY_COLUMN

Método SET: ORDER_BY_COLUMN

Ordena os valores da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"ORDER_BY_COLUMN",< Ordenação >)

Parâmetros

NomeTipoDescriçãoObrigatório?OrdenaçãoCHARTipo de ordenação que será realizada na coluna, sendo:
  • ASC: ordenação em forma crescente.
  • DESC ordenação de forma decrescente.
botão de ajuda do menu será visível.
Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"ORDER_BY_COLUMN","ASC")
Expandir
titleSET TEXT

Método SET: TEXT

Define um ou vários textos a serem exibidos na coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"TEXT",< Texto >)

Parâmetros

NomeTipoDescriçãoObrigatório?TextoCHARTexto fixo ou de condições para exibição do mesmo na coluna.Sim

(informação)  Para este método, pode-se informar o texto de duas formas:

  • Fixo: informa o texto que será exibido para todas as linhas da coluna (apenas para colunas que não possuem valor);
    • Ex.: Item
  • Variável: informa no formato de parâmetro, o valor e o texto que a coluna deverá exibir caso a mesma estiver com o valor definido;
    • Ex.: {'I','Item'}{'C','Componente'}

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"TEXT","{'I','Item'}{'C','Componente'}")
Expandir
titleSET VALUE

Método SET: VALUE

Valor da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"VALUE",< Linha>, < Valor>)

Parâmetros

NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da qual será atribuído o valor para a coluna.Sim
ValorQUALQUERValor a ser atribuído para a coluna.Sim


Exemplo



Bloco de código
CALL _ADVPL_set_property(l_columnmenubar_reference,"VALUE",5,"50")
Expandir
titleSET VARIABLE

Método SET: VARIABLE

Variável (atributo) do ARRAY OF RECORD definido para a grade, que irá controlar o valor da coluna.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_table_reference >,"VARIABLE",<  Variável (nome da coluna)>)

Parâmetros

NomeTipoDescriçãoObrigatório? Variável (nome da coluna)CHARVariável (atributo) do ARRAY OF RECORD definido para a grade, que irá controlar o valor da coluna.Sim

Exemplo

Bloco de código
CALL _ADVPL_set_property(l_column_reference,"VARIABLE","cod_empresa")
HELP_VISIBLE",FALSE)



Exemplo



Exemplo

(informação) Importante: Este componente só poderá ser criado tendo um componente LTableEx ou LBrowseEx como componente pai.
Expandir
titleExemplo de utilização
Bloco de código
languageruby
themeConfluence
linenumberstrue
 DEFINE ma_variable ARRAY[100] OF
                    RECORD
                        componente CHAR(50),
                        metodo     ARRAY[100] OF CHAR(50)
                    END
 RECORD
#--------------------#
 FUNCTION
 LBrowseExLMenuBar()
#--------------------#
     DEFINE l_value            CHAR(50)
     DEFINE l_variable         CHAR(50)
     DEFINE l_row              SMALLINT
     DEFINE l_column           SMALLINT
     DEFINE l_table_width      SMALLINT
     DEFINE l_dialog_reference  VARCHAR(10)
     DEFINE l_tablemenubar_reference  VARCHAR(10)
     DEFINE l_columnlabel_reference   VARCHAR(10)

     # Neste exemplo será construída uma grade onde o número de colunas
     # pode ser indefinido.
     LET l_table_width = 0
     INITIALIZE ma_variable TO NULL

     LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
     CALL _ADVPL_set_property(l_dialog_reference,"SIZE",650640,250480)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Ex.: LBROWSEEX")

     LET l_table_reference = _ADVPL_create_component(NULL,"LBROWSEEX",l_dialog_referenceLMENUBAR")
     CALL _ADVPL_set_property(l_tabledialog_reference,"ENABLE",TRUE)
     CALL _ADVPL_set_property(l_table_reference,"EDITABLE",TRUE)
     CALL _ADVPL_set_property(l_table_reference,"ALIGN","CENTER"BACKGROUND_COLOR",210,210,210)

     LET l_columnmenubar_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEXLMENUBAR",l_tabledialog_reference)
     CALL _ADVPL_set_property(l_columnmenubar_reference,"ALIGN","LEFT")
     CALL _ADVPL_set_property(l_column_reference,"EDITABLEHELP_VISIBLE",FALSE)
     CALL _ADVPL_setcreate_property(l_column_referencecomponent(NULL,"COLUMN_WIDTHLQUITBUTTON",100)
     CALL _ADVPL_set_property(l_columnmenubar_reference,"HEADER","Componente")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","componente")

     LET l_table_width = l_table_width + 100
     # Cria as linhas e colunas
     FOR l_row = 1 TO 10
         LET l_value = "componente ",l_row USING "<<&&&"
         LET ma_variable[l_row].componente = l_value
         FOR l_column = 1 TO 4
             LET l_value = "metodo ",l_row USING "<<&&&",":",l_column USING "<<&&&" 
            LET ma_variable[l_row].metodo[l_column] = l_value
             IF  l_row = 1 THEN
                 # Na varíavel, a primeira posição é o valor e a segunda é o
                 # cabeçalho.
                 LET l_value    = "Método ",l_column USING "<<&&&"
                 LET l_variable = "metodo[",l_column USING "<<<<<","]"
                 LET l_column_label_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEXLCLABEL",l_tabledialog_reference)
                 CALL _ADVPL_set_property(l_columnlabel_reference,"ALIGN","LEFTCENTER")
                 CALL _ADVPL_set_property(l_columnlabel_reference,"EDITABLE",TRUE)
                 CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",50)
                 CALL _ADVPL_set_property(l_column_reference,"HEADER",l_value)
                 CALL _ADVPL_set_property(l_column_reference,"VARIABLE",l_variable)
                 CALL _ADVPL_set_property(l_column_reference,"EDIT_COMPONENT","LTEXTFIELD")
                 CALL _ADVPL_set_property(l_column_reference,"EDIT_PROPERTY","LENGTH",20)
                 CALL _ADVPL_set_property(l_column_reference,"EDIT_PROPERTY","PICTURE","@&")
                 # Efetua a soma das colunas somente na primeira linha.
                 LET l_table_width = l_table_width + 50
             END IF
         END FOR
     END FOR
     # Atualiza a grade com os tamanhos de colunas corretos, linhas e variável.
     CALL _ADVPL_set_property(l_table_reference,"SIZE",l_table_width,250)
     CALL _ADVPL_set_property(l_table_reference,"ADJUST_COLUMNS_WIDTH")
     CALL _ADVPL_set_property(l_table_reference,"SET_ROWS",ma_variable,(l_row - 1))TEXT","Exemplo de uma aplicação com menu.")
     CALL _ADVPL_set_property(l_table_reference,"REFRESH")
     CALL _ADVPL_set_property(l_dialog_reference,"MAXIMIZED",FALSE)
     CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE) END FUNCTION    


Visualização


Image RemovedImage Added