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
titleGET SET 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
titleGET SET 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
titleGET SET 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
titleGET SET MARGIN

Método SET: MARGIN

Define uma margem entre o componente pai e os componentes do leiaute.

Sintaxe




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

Parâmetros




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




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



Expandir
titleGET SET 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
titleGET SET 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
titleGET SET 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 )



Expandir
titleGET SET MAX_SIZE

Método SET: MAX_SIZE

Define o 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 >,"MAX_SIZE",  < nWidth >, < nHeight > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nWidth INTEGERLargura 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 >, "MAX_SIZE", 30, 20)



Expandir
titleGET SET 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
titleGET SET 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)



Observações

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

Método SET:

EXPANSIBLE

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étodoIndica 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"MIN_SIZE",  < nWidth >, < nExpansiblenHeight >  )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
nExpansible 
nWidthINTEGER
Indicador 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
Largura 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 >, "EXPANSIBLE", TRUEMIN_SIZE", 24,15 )



Expandir
titleGET SET MIN_WIDTH

Método SET:

FTP 

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



Sintaxe

Bloco de código
CALL _ADVPL_set_property(< cReference >,"FTP_LOAD_FILE_LISTMIN_WIDTH", < nListDirnWidth > )

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
cDirnWidth INTEGERDiretório do servidor FTP do qual deseja-se carregar a lista de arquivos.Sim
Observações
Largura 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 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


Observações



Exemplo



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



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)




Exemplo


Expandir
titleExemplo de aplicação
Bloco de código
languageruby
themeConfluence
titleExemplo LQUERY
linenumberstrue
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

Exemplo

Expandir
titleExemplo de aplicação
Bloco de código
languageruby
themeConfluence
titleExemplo LQUERY
linenumberstrue
#--------------------# 
 FUNCTION TesteLFTP()
#--------------------#     
   DEFINE l_ind           SMALLINT,            
          l_count         SMALLINT,            
          l_status        SMALLINT     
   DEFINE l_file_name     CHAR(050)     
   DEFINE l_ftp_reference VARCHAR(10)     
   
   # Cria o componente para conexão FTP.     
   LET l_ftp_reference = _ADVPL_create_component(NULL,"LFTP")   
   
   # Conecta o componente ao servidor FTP.     LLABEL",l_layout_reference)
   LET l_status =CALL _ADVPL_getset_property(l_ftplabel_reference,"FTP_CONNECT","est1",21,"lg991933","********")     
   
   IF  NOT l_status THEN TEXT","CNPJ:")

     LET l_component_reference = 
  _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_reference)
     CALL log0030_mensagem("Não foi possível conectar-se ao servidor FTP.","excl")_ADVPL_set_property(l_component_reference,"LENGTH",19)
         CALL _ADVPL_set_property(l_component_reference,"PICTURE","##.###.###/####-##")
       RETURN     
   END IF     
   CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","CNPJ da empresa informada.")

   # Carrega a lista dos arquivos de um diretório FTP.     
LET l_label_reference = _ADVPL_create_component(NULL,"LLABEL",l_layout_reference)
     CALL _ADVPL_set_property(l_ftplabel_reference,"FTP_LOAD_FILE_LISTTEXT","/home/lg991933/","*.*",TRUE)
   
   # Recupera a quantidade de arquivos encontrados no diretório.     
   LET l_count = _ADVPL_getItem:")

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

   
   IF LET l_count = 0 THEN         
  _layout_field_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_panel_reference)
     CALL log0030_mensagem("Nenhum arquivo encontrado no diretório '/home/lg991933/' do servidor FTP.","excl")_ADVPL_set_property(l_layout_field_reference,"MARGIN",FALSE)
         CALL _ADVPL_set_property(l_layout_field_reference,"COLUMNS_COUNT",3)

     LET l_component_reference RETURN     = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
   END IF     CALL _ADVPL_set_property(l_component_reference,"LENGTH",15)
   
   FOR l_ind = 1 TO l_count         
       # Exibe no console todos os arquivos encontrados no diretório.         
       LET l_file_name = _ADVPL_get_property(l_ftp_reference,"FTP_GET_FILE_LIST_INDEX",l_ind)         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 CALL conout(l_file_name CLIPPED)     = _ADVPL_create_component(NULL,"LTEXTFIELD",l_layout_field_reference)
   END FOR     CALL _ADVPL_set_property(l_component_reference,"LENGTH",36)
   
   # Efetua o upload de um arquivo da máquina local para o servidor FTP.     
CALL _ADVPL_set_property(l_component_reference,"PICTURE","@!")
     CALL _ADVPL_set_property(l_component_reference,"TOOLTIP","Descrição do item informada.")

     LET l_panel_statusreference = _ADVPL_getcreate_property(l_ftp_reference,"FTP_UPLOAD_FILE","C:\\ftp\\ftp_upload.txt","\\home\\lg991933\\")component(NULL,"LPANEL",l_dialog_reference)
          
   
   # Efetua o download de um arquivo do servidor FTP para a maquina local.     
   LET l_status = _ADVPL_getCALL _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_ftplayout_reference,"FTPCOLUMNS_DOWNLOAD_FILE","\\home\\lg991933\\ftp_download.txt","C:\\ftp\\")
   COUNT",1)
   # Renomeia um arquivo do servidor FTP.     CALL _ADVPL_set_property(l_layout_reference,"EXPANSIBLE",TRUE)

     LET l_table_reference = _ADVPL_create_component(NULL,"LTABLEEX",l_layout_reference)
   LET l_status =CALL _ADVPL_getset_property(l_ftptable_reference,"FTP_RENAME_FILEALIGN","\\home\\lg991933\\ftp_download.txt","teste.txtCENTER")

     LET l_column_reference    
   = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",l_table_reference)
   # Exclui um arquivo do servidor FTP.     CALL _ADVPL_set_property(l_column_reference,"HEADER","Coluna")
     CALL _ADVPL_set_property(l_column_reference,"VARIABLE","coluna")

   LET l_status =CALL _ADVPL_getset_property(l_ftptable_reference,"FTP_REMOVE_FILE","\\home\\lg991933\\teste.txt")     
   
   # Disconecta do servidor FTP.     
SET_ROWS",ma_tela,100)

     CALL _ADVPL_set_property(l_ftpdialog_reference,"FTP_DISCONNECTACTIVATE",TRUE) 
 END FUNCTION

Visualização


Image Added