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



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
nWidth 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 MARGINCOLUMNS_COUNT

Método SET:

MARGIN

COLUMNS_COUNT

Define a quantidade de colunas para cada linha do leiaute, esta quantidade define quantos componentes serão posicionados em uma mesma linhaDefine uma margem entre o componente pai e os componentes do leiaute.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"MARGINCOLUMNS_COUNT", < nMarginnColumns > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin nColumns INTEGERIndicador 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

Quantidade de colunas colunas do leiauteSim



Exemplo



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



Expandir
titleSET COLUMNSCELL_COUNTSPACE

Método SET:

COLUMNS

CELL_

COUNT

SPACE

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

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"COLUMNSCELL_COUNTSPACE", < nColumnsnListDir > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nColumns nListDir INTEGERQuantidade de colunas colunas do leiauteIndicador 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 >, "COLUMNSCELL_COUNTSPACE", 2TRUE )



Expandir
titleSET CELL_SPACEEXPANSIBLE

Método SET:

CELL_SPACE

EXPANSIBLE

Indica se o próximo componente a ser adicionado no leiaute será expansível, redimensionando-o conforme o tamanho da telaDefine uma margem entre as colunas do leiaute.

Sintaxe



Bloco de código
CALL _ADVPL_set_property(< cReference >,"CELL_SPACEEXPANSIBLE", < nListDirnExpansible > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nListDir nExpansible INTEGERIndicador que define uma margem entre as colunas do leiautese o próximo componente como expansível, sendo:
TRUE: será criada a margem entre as colunas do leiaute 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á criada a margem entre as colunas do leiaute 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 >, "CELL_SPACEEXPANSIBLE", TRUE )




Expandir
titleSET ROWMAX_SPACESIZE

Método SET:

ROW

MAX_

SPACE

SIZE

Define uma margem entre as linhas do leiauteo tamanho máximo 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 >,"ROWMAX_SPACESIZE",  < nMarginnWidth >, < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nMargin nWidth 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 
Largura máxima para redimensionamento do componente paiSim


nHeight INTEGERAltura máxima para redimensionamento do componente paiSim


Exemplo



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




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",  < nWidthnMargin >, < nHeight > )

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 MAX_WIDTHHEIGHT

Método SET: MAX_

WIDTH

HEIGHT

Define a largura 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_WIDTHHEIGHT", < nWidthnHeight > )

Parâmetros



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


Exemplo



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



Expandir
titleSET MAX_HEIGHTWIDTH

Método SET: MAX_

HEIGHT

WIDTH

Define a altura 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_HEIGHTWIDTH", < nHeightnWidth > )

Parâmetros



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


Exemplo



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



Expandir
titleSET MIN_SIZEHEIGHT

Método SET: MIN_

SIZE

HEIGHT

Define o tamanho mínimo 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_SIZE",  < nWidthcReference >,"MIN_HEIGHT", < nHeight >  )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth
nHeightINTEGER
nHeight INTEGER
Largura mínima para redimensionamento do componente paiSim
Altura mínima para redimensionamento do componente paiSim


Exemplo



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



Expandir
titleSET MIN_WIDTHSIZE

Método SET: MIN_

WIDTH

SIZE

Define a largura mínima 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_WIDTHSIZE",  < nWidth >, < nHeight >  )

Parâmetros



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


nHeightINTEGER
Largura
Altura mínima para redimensionamento do componente paiSim


Exemplo



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



Expandir
titleSET MIN_HEIGHTWIDTH

Método SET: MIN_

HEIGHT

WIDTH

Define a altura 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_HEIGHTWIDTH", < nHeightnWidth > )

Parâmetros



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

Observações


Exemplo


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



Expandir
titleSET EXPANSIBLEROW_SPACE

Método SET:

EXPANSIBLE

ROW_SPACE

Define uma margem entre as linhas do leiauteIndica 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 >,"EXPANSIBLEROW_SPACE", < nExpansiblenMargin > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nExpansible nMargin INTEGERIndicador que define se o próximo componente como expansíveluma margem entre as linhas do leiaute, sendo:
TRUE: o próximo componente que será criado no leiaute será expansível será criada a margem entre as linhas do leiaute
FALSE: o próximo componente que será criado no leiaute não será expansívelcriada a margem entre as linhas do leiaute 
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 >, "EXPANSIBLEROW_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