Páginas filhas
  • LGX - LLAYOUTMANAGER

Versões comparadas

Chave

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

Pagetitle
LGX - LLAYOUTMANAGER
LGX - LLAYOUTMANAGER
Gerencia a distribuição dos componentes da tela, de forma alinha e organizada em colunas.

Gerencia a distribuição dos componentes da tela, de forma alinha e organizada em colunas.
Sua utilização dispensa a necessidade de definir o posicionamento absoluto dos componentes em tela, o ajuste é feito conforme o tamanho de seus componentes filhos.

A distribuição dos componentes visuais na tela é realizada através de linhas e colunas, definida no método COLUMNS_COUNT.
Se o leiaute foi definido com duas colunas, por exemplo, significa que em cada linha da tela poderá ter dois componentes, um ao lado do outro.

Nota

Uma vez definida a quantidade de colunas para o leiaute, não será mais possível alterá-la.


Sintaxe



Bloco de código
LET l_layout_reference = _ADVPL_create_component( NULL, "LLAYOUTMANGER", < cReference > )


Métodos

SET

GET


Métodos acessíveis através da utilizando a função _ADVPL_setget_property, que permite alterar recuperar e manipular os valores do componente: 


Expandir
titleSET ADD_EMPTY_COLUMNGET CELL_SPACE

Método

SET

GET:

ADD

CELL_

EMPTY_COLUMN

SPACE

Retorna se está definida para adotar uma margem entre as colunas do leiaute

Adiciona uma coluna vazia no leiaute, pulando uma coluna na distribuição dos componentes.

Sintaxe



Bloco de código
CALL _ADVPL_setget_property(< cReference >,"ADDCELL_EMPTY_COLUMNSPACE", < nWidth ) => )nHasCellSpace

Parâmetros



NomeTipoDescriçãoObrigatório?
nHasCellSpaceINTEGERIndicador que define uma margem entre as colunas do leiaute, sendo:
TRUE: será criada a margem entre as colunas do leiaute
FALSE: não será criada a margem entre as colunas do leiaute 

Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_hasCellSpace = _ADVPL_set_property( < cReference >, "CELL_SPACE")



Expandir
titleGET COLUMNS_COUNT

Método GET: COLUMNS_COUNT

Retorna a quantidade de colunas para cada linha do leiaute, esta quantidade define quantos componentes serão posicionados em uma mesma linha.

Sintaxe



Bloco de código
_ADVPL_get_property(< cReference >,"COLUMNS_COUNT") => nColumnsCount

Parâmetros



NomeTipoDescrição
nColumnsCountINTEGERQuantidade de colunas colunas do leiaute


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_columns = _ADVPL_get_property( < cReference >, "COLUMNS_COUNT")



Expandir
titleGET EXPANSIBLE

Método GET: EXPANSIBLE

Retorna se o próximo componente a ser adicionado no leiaute será expansível para que seja redimensionando conforme o tamanho da tela.

Sintaxe



Bloco de código
_ADVPL_get_property(< cReference >,"EXPANSIBLE") => nExpansible

Retorno



NomeTipoDescrição
nExpansible INTEGERIndicador que define se o próximo componente como expansível, sendo:
TRUE: o próximo componente que será criado no leiaute será expansível
FALSE: o próximo componente que será criado no leiaute não será expansível


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_expansible =  _ADVPL_get_property( < cReference >, "EXPANSIBLE")



Expandir
titleGET HAS_EXPANSIBLE

Método GET: HAS_EXPANSIBLE

Indica se o componente está expandido.

Sintaxe



Bloco de código
_ADVPL_get_property(< cReference >,"HAS_EXPANSIBLE") => lIsExpansible

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim


Retornos



Tipo

Descrição

BOOLEANIndicador que define o componente está expandido.

Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_isExpansible = _ADVPL_get_property( < cReference >, "HAS_EXPANSIBLE")



Expandir
titleGET HEIGHT

Método GET: HEIGHT

Retorna a altura do componente de layout.

Sintaxe



Bloco de código
_ADVPL_set_property(< cReference >,"HEIGHT" ) nHeight


Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim

Retornos



NomeTipoDescrição
nHeight INTEGERAltura do componente de layout


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_height = _ADVPL_get_property( < cReference >, "HEIGHT")



Expandir
titleGET ROW_SPACE

Método GET: ROW_SPACE

Retorna se foi definida para existir margem entre as linhas do leiaute.

Sintaxe



Bloco de código
_ADVPL_set_property(< cReference >,"ROW_SPACE") => nHasRowSpace

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim


Retornos



NomeTipoDescrição
nHasRowSpaceINTEGERIndicador que define uma margem entre as linhas do leiaute, sendo:
TRUE: será criada a margem entre as linhas do leiaute
FALSE: não será criada a margem entre as linhas do leiaute 


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_hasRowSpace = _ADVPL_set_property( < cReference >, "ROW_SPACE")



Expandir
titleGET WIDTH

Método GET: WIDTH

Retorna a largura do componente de layout.


Sintaxe



Bloco de código
_ADVPL_get_property(< cReference >,"WIDTH") => cWidth

Parâmetros



NomeTipoDescriçãoObrigatório?
cReferenceCHARReferência do componente LLayoutManagerSim

Retornos



NomeTipoDescrição
nWidth INTEGERLargura do componente de layout.

Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
LET l_width = _ADVPL_set_property( < cReference >, "WIDTH")




Métodos SET



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


Expandir
titleSET ADD_EMPTY_COLUMN

Método SET: ADD_EMPTY_COLUMN

Adiciona uma coluna vazia no leiaute, pulando uma coluna na distribuição dos componentes.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"ADD_EMPTY_COLUMN", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
PadrãonWidth INTEGERLargura da coluna que será adicionadaNão

20


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_COLUMN", 15)



Expandir
titleSET ADD_EMPTY_ROW

Método SET: ADD_EMPTY_ROW

Adiciona uma linha vazia no leiaute, pulando uma linha na distribuição dos componentes.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"ADD_EMPTY_ROW", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura da linha que será adicionadaNão

20


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "ADD_EMPTY_ROW", 10)



Expandir
titleSET APPLY_LAYOUT

Método SET: APPLY_LAYOUT

Aplica o leiaute, redimensionando e posicionando os componentes em tela.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"APPLY_LAYOUT", < nRecursive > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nRecursive INTEGERIndicador que define se a aplicação do leiaute ser recursiva, sendo:
TRUE: a aplicação será recursiva, atualizando inclusive os leiautes criados anteriormente na janela
FALSE: a aplicação não será recursiva, atualizando apenas o leiaute atual
Não

FALSE


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "APPLY_LAYOUT", TRUE)



Expandir
titleSET COLUMNS_COUNT

Método SET: COLUMNS_COUNT

Define a quantidade de colunas para cada linha do leiaute, esta quantidade define quantos componentes serão posicionados em uma mesma linha.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"COLUMNS_COUNT", < nColumns > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nColumns INTEGERQuantidade de colunas colunas do leiauteSim



Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "COLUMNS_COUNT", 2)



Expandir
titleSET CELL_SPACE

Método SET: CELL_SPACE

Define uma margem entre as colunas do leiaute.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"CELL_SPACE", < nListDir > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nListDir INTEGERIndicador que define uma margem entre as colunas do leiaute, sendo:
TRUE: será criada a margem entre as colunas do leiaute
FALSE: não será criada a margem entre as colunas do leiaute 
Sim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "CELL_SPACE", TRUE )



Expandir
titleSET EXPANSIBLE

Método SET: EXPANSIBLE

Indica se o próximo componente a ser adicionado no leiaute será expansível, redimensionando-o conforme o tamanho da tela.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"EXPANSIBLE", < nExpansible > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nExpansible INTEGERIndicador que define se o próximo componente como expansível, sendo:
TRUE: o próximo componente que será criado no leiaute será expansível
FALSE: o próximo componente que será criado no leiaute não será expansível
Sim


Observações


Para correto funcionamento, o componente adicionado após a execução deste método deve ter alinhamento centralizado.

Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "EXPANSIBLE", TRUE)



Expandir
titleSET MAX_SIZEMARGIN

Método SET:

MAX_SIZE

MARGIN

Define o tamanho máximo para redimensionamento do uma margem entre o componente pai .
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste métodoe os componentes do leiaute.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MAX_SIZEMARGIN",  < nWidth >, < nHeightnMargin > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth nMargin INTEGERLargura máxima para redimensionamento do componente paiSimnHeight INTEGERAltura máxima para redimensionamento do componente paiIndicador que define uma margem entre o componente pai e os componente do leiaute, sendo:
TRUE: será criada a margem entre o componente pai e os componentes do leiaute
FALSE: não será criada a margem entre o componente pai e os componentes do leiaute
Sim



Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MAX_SIZEMARGIN", 30, 20TRUE)



Expandir
titleSET MARGINMAX_SIZE

Método SET:

MARGIN

MAX_SIZE

Define uma margem entre o o tamanho máximo para redimensionamento do componente pai e os componentes do leiaute.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MARGIN""MAX_SIZE",  < nWidth >, < nMarginnHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin nWidth INTEGERLargura máxima para redimensionamento do componente paiSim


nHeight INTEGERAltura máxima para redimensionamento do componente paiIndicador que define uma margem entre o componente pai e os componente do leiaute, sendo:
TRUE: será criada a margem entre o componente pai e os componentes do leiaute
FALSE: não será criada a margem entre o componente pai e os componentes do leiaute
Sim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MARGINMAX_SIZE", TRUE30, 20)



Expandir
titleSET MAX_HEIGHT

Método SET: MAX_HEIGHT

Define a altura máxima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MAX_HEIGHT", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura máxima para redimensionamento do componente paiSim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MAX_HEIGHT", 27)



Expandir
titleSET MAX_WIDTH

Método SET: MAX_WIDTH

Define a largura máxima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MAX_WIDTH", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura máxima para redimensionamento do componente paiSim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MAX_WIDTH", 20 )



Expandir
titleSET MIN_HEIGHT

Método SET: MIN_HEIGHT

Define a altura mínima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MIN_HEIGHT", < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nHeight INTEGERAltura mínima para redimensionamento do componente paiSim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MIN_HEIGHT", 30 )



Expandir
titleSET MIN_SIZE

Método SET: MIN_SIZE

Define o tamanho mínimo para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MIN_SIZE",  < nWidth >, < nHeight >  )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidthINTEGERLargura mínima para redimensionamento do componente paiSim


nHeightINTEGERAltura mínima para redimensionamento do componente paiSim


Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MIN_SIZE", 24,15 )



Expandir
titleSET MIN_WIDTH

Método SET: MIN_WIDTH

Define a largura mínima para redimensionamento do componente pai.
Durante o redimensionamento e reposicionamento dos componentes na tela, o leiaute irá  considerar o tamanho definido neste método.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MIN_WIDTH", < nWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura mínima para redimensionamento do componente paiSim


Exemplo


Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "MIN_WIDTH", 10 )



Expandir
titleSET ROW_SPACE

Método SET: ROW_SPACE

Define uma margem entre as linhas do leiaute.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"ROW_SPACE", < nMargin > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin INTEGERIndicador que define uma margem entre as linhas do leiaute, sendo:
TRUE: será criada a margem entre as linhas do leiaute
FALSE: não será criada a margem entre as linhas do leiaute 
Sim



Exemplo



Bloco de código
languageruby
themeConfluence
titleExemplo
linenumberstrue
CALL _ADVPL_set_property( < cReference >, "ROW_SPACE", TRUE )





Exemplo



Clique no link na lateral direita para expandir o código de exemplo.

Bloco de código
languageruby
themeConfluence
titleCódigo de exemplo do Componente LLayoutManager
linenumberstrue
collapsetrue
DEFINE ma_tela ARRAY[100] OF
               RECORD
                   coluna CHAR(200)
               END RECORD

#------------------------#
 FUNCTION layoutmanager()
#------------------------#
     DEFINE l_dialog_reference,
            l_panel_reference,
            l_layout_reference,
            l_layout_field_reference,
            l_label_reference,
            l_component_reference,
            l_button_reference,
            l_table_reference,
            l_column_reference VARCHAR(10)

     DEFINE l_ind SMALLINT

     FOR l_ind = 1 TO 100
         LET ma_tela[l_ind].coluna = "Coluna ", l_ind USING "&&&", "."
     END FOR

     LET l_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
     CALL _ADVPL_set_property(l_dialog_reference,"SIZE",640,480)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Exemplo de Utilização: LLAYOUTMANAGER")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","TOP")

     LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_reference,"MARGIN",TRUE)
     CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",2)

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","Empresa:")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_layout_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_field_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_field_reference,"MARGIN",FALSE)
     CALL _ADVPL_set_property(l_layout_field_reference,"COLUMNS_COUNT",3)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",2)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Código da empresa.")

     LET l_button_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_field_reference)
     CALL _ADVPL_set_property(l_button_reference,"IMAGE","BTPESQ")
     CALL _ADVPL_set_property(l_button_reference,"SIZE",24,20)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",30)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Descrição da empresa informada.")

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","CNPJ:")

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",19)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","##.###.###/####-##")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","CNPJ da empresa informada.")

     LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_label_reference,"TEXT","Item:")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_layout_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_field_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_field_reference,"MARGIN",FALSE)
     CALL _ADVPL_set_property(l_layout_field_reference,"COLUMNS_COUNT",3)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",15)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Código do item.")

     LET l_button_reference = _ADVPL_create_component(NULL,"LIMAGEBUTTON",l_layout_field_reference)
     CALL _ADVPL_set_property(l_button_reference,"IMAGE","BTPESQ")
     CALL _ADVPL_set_property(l_button_reference,"SIZE",24,20)

     LET l_component_reference = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
     CALL _ADVPL_set_property(l_component_reference,"LENGTH",36)
     CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Descrição do item informada.")

     LET l_panel_reference = _ADVPL_create_component(NULL,"LPANEL",l_dialog_reference)
     CALL _ADVPL_set_property(l_panel_reference,"ALIGN","CENTER")

     LET l_layout_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL _ADVPL_set_property(l_layout_reference,"COLUMNS_COUNT",1)
     CALL _ADVPL_set_property(l_layout_reference,"EXPANSIBLE",TRUE)

     LET l_table_reference = _ADVPL_create_component(NULL,"LTABLEEX",l_layout_reference)
     CALL _ADVPL_set_property(l_table_reference,"ALIGN","CENTER")

     LET l_column_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",l_table_reference)
     CALL _ADVPL_set_property(l_column_reference,"HEADER","Coluna")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","coluna")

     CALL _ADVPL_set_property(l_table_reference,"SET_ROWS",ma_tela,100)

     CALL _ADVPL_set_property(l_dialog_reference,"ACTIVATE",TRUE)
 END FUNCTION


Visualização