Componente que permite criar as colunas em grades do tipo LTableEx e LBrowseEx.


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:


Método GET: EDIT_COMPONENT

Componente freeform de edição da coluna.

Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR

Componente freeform utilizado na edição da coluna.


Exemplo



LET l_edit_component = _ADVPL_get_property(l_column_reference,"EDIT_COMPONENT")



Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo





Método GET: ED 


Sintaxe



_ADVPL_get_property(l_column_reference,"EDIT_COMPONENT") ==> Componente

Retorno



TipoDescrição
CHAR



Exemplo






Métodos SET


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


Método SET: ADD_ROW

Inclui uma nova linha no final da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"ADD_ROW")

Exemplo



CALL _ADVPL_set_property(l_table_reference,"ADD_ROW")




Método SET: ADJUST_COLUMNS_WIDTH

Ajusta a largura das colunas conforme tamanho total atribuído para a grade e para cada uma das colunas.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"ADJUST_COLUMNS_WIDTH")

(informação)  Este método verifica se a largura total da grade é maior que a soma das larguras das colunas e distribui este excedente proporcionalmente para cada coluna da grade.

Exemplo



CALL _ADVPL_set_property(l_table_reference,"ADJUST_COLUMNS_WIDTH")




Método SET: AFTER_ADD_ROW_EVENT

Função executada após incluir uma nova linha na grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"AFTER_ADD_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada após incluir uma nova linha na grade.Sim




Método SET: AFTER_EDIT_ROW 

Função executada após a edição da linha (em qualquer coluna) da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"AFTER_EDIT_ROW",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção a ser executada após a edição da linha (em qualquer coluna) da grade.Sim




Método SET: AFTER_ORDER_EVENT 

Função executada após a ordenação de qualquer coluna da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >," AFTER_ORDER_EVENT ",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
   cText CHARFunção que será executada após a ordenação de qualquer coluna da grade.Sim




Método SET: AFTER_REMOVE_ROW_EVENT 

Exibe uma mensagem na barra de status.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"AFTER_REMOVE_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada após excluir qualquer linha da grade.Sim




Método SET: AFTER_ROW_EVENT 

Função executada após sair de qualquer linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"AFTER_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada após sair de qualquer linha da grade.Sim

(informação)  Importante: esta função deverá retornar um indicador lógico que define se será permitido o usuário sair da linha ou não.




Método SET: BEFORE_ADD_ROW_EVENT

Função executada antes de incluir uma nova linha na grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"BEFORE_ADD_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
   FunçãoCHARFunção que será executada antes de incluir uma nova linha na grade.Sim

(informação) Importante: esta função deverá retornar um indicador lógico que define se permitirá ou não a inclusão da nova linha no final da grade.




Método SET: BEFORE_EDIT_ROW

Função executada antes da edição da linha (em qualquer coluna) da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"BEFORE_EDIT_ROW",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção a ser executada antes da edição da linha (em qualquer coluna) da grade.Sim

(informação) Importante: esta função deverá retornar um indicador lógico que define se permitirá ou não a edição da linha da grade.




Método SET: BEFORE_ORDER_EVENT

Função executada antes da ordenação de qualquer coluna da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"BEFORE_ORDER_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será acionada antes da ordenação de qualquer coluna da grade.Sim

(informação) Importante: esta função deverá retornar um indicador lógico que define se a ordenação será ou não realizada.




Método SET: BEFORE_REMOVE_ROW_EVENT

Função executada antes de excluir qualquer linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"BEFORE_REMOVE_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada antes de excluir qualquer linha da grade.Sim

(informação) Importante: esta função deverá retornar um indicador lógico que define se a exclusão da linha será ou não realizada.




Método SET: BEFORE_ROW_EVENT

Função executada antes de entrar em qualquer linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"BEFORE_ROW_EVENT",< Função >)

Parâmetros



NomeTipoDescriçãoObrigatório?
FunçãoCHARFunção que será executada antes de entrar em qualquer linha da grade.Sim




Método SET: CAN_ADD_ROW

Habilita/desabilita a inclusão de novas linhas na grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CAN_ADD_ROW",< Permite incluir linhas? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Permite incluir linhas?BOOLEANIndicador lógico que habilita/desabilita a inclusão de novas linhas na grade.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CAN_ADD_ROW",FALSE)




Método SET: CAN_COPY_ROW

Habilita/desabilita a cópia de linhas da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CAN_COPY_ROW",< Permite copiar linhas? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Permite copiar linhas?BOOLEANIndicador lógico que habilita/desabilita a cópia de linhas na grade.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CAN_COPY_ROW",FALSE)




Método SET: CAN_REMOVE_ROW

Habilita/desabilita a exclusão de linhas da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CAN_REMOVE_ROW",< Permite excluir linhas? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Permite excluir linhas?BOOLEANIndicador lógico que habilita/desabilita a exclusão de linhas na grade.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CAN_REMOVE_ROW",FALSE)




Método SET: CLEAR

Remove todas as linhas da grade reinicia qualquer ordenação de coluna feita pelo usuário.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CLEAR")

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR")




Método SET: CLEAR_ALL_ATTRIBUTES

Define se na exclusão de determinada linha da grade, todos os atributos da variável de controle nesta linha, serão inicializados.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CLEAR_ALL_ATTRIBUTES",< Inicializa atributos da linha na exclusão? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Inicializa atributos da linha na exclusão?BOOLEANIndicador lógico que define se na exclusão de determinada linha da grade, todos os atributos da variável de controle nesta linha, serão inicializados.Sim

(informação) O padrão deste método é TRUE, ele define se ao excluir uma determinada linha da grade, todos os atributos da variável de controle serão excluídos ou somente os que estão visíveis na grade.


Ex.:
A variável possui os atributos: campo1, campo2 e campo3, a grade está exibindo apenas os atributos: campo2 e campo3.
Ao excluir a linha, se este método estiver ativado (TRUE), serão limpos os atributos campo1, campo2 e campo3.
Caso contrário (FALSE) será limpo apenas os atributos campo2 e campo3 da variável.

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR_ALL_ATTRIBUTES",FALSE)




Método SET: CLEAR_ALL_LINE_COLOR

Restaura a cor padrão para todas as linhas da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CLEAR_ALL_LINE_COLOR")

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR_ALL_LINE_COLOR")




Método SET: CLEAR_ALL_LINE_FONT_COLOR

Restaura a cor padrão da fonte para todas as linhas da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference  >,"CLEAR_ALL_LINE_FONT_COLOR")

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR_ALL_LINE_FONT_COLOR")




Método SET: CLEAR_LINE_COLOR

Restaura a cor padrão para um determinada linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CLEAR_LINE_COLOR",< Linha >)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da qual terá a cor de fundo restaurada.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR_LINE_COLOR",5)




Método SET: CLEAR_LINE_FONT_COLOR

Restaura a cor padrão da fonte de uma determinada linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"CLEAR_LINE_FONT_COLOR",< Linha >)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha que terá a cor da fonte restaurada.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"CLEAR_LINE_FONT_COLOR",5)




Método SET: COLUMN_VALUE

Atribui o valor de uma determinada linha e coluna da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"COLUMN_VALUE",< Coluna>, < Linha>, < Valor>)

Parâmetros



NomeTipoDescriçãoObrigatório?
ColunaINTEGERNome da coluna da grade da qual será atribuído o valor.Sim
LinhaINTEGERNúmero da linha da grade da qual será atribuído o valor.Sim
ValorQUALQUERNúmero da coluna da grade da qual será atribuído o valor.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"COLUMN_VALUE","cod_empresa",5,"50")




Método SET: COPY_ROW

Copia uma determinada linha para uma nova criada no final da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"COPY_ROW",< Linha>)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da grade que será copiada.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"COPY_ROW",5)




Método SET: ENABLE_EDIT_MODE

Habilita/desabilita a edição e visualização da grade em modo formulário.

Sintaxe



_ADVPL_set_property(< l_table_reference  >,"ENABLE_EDIT_MODE",< Permite editar e visualizar no modo formulário? >)

Parâmetros



NomeTipoDescriçãoObrigatório?
Permite editar e visualizar no modo formulário?BOOLEANIndicador lógico que define se será habilitada ou não a edição e visualização da grade no modo formulário.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"ENABLE_EDIT_MODE",FALSE)




Método SET: HEADER_CLICK_EVENT

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

Sintaxe



_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 de qualquer coluna da grade.Sim




Método SET: ITEM_COUNT

Quantidade total de linhas da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"ITEM_COUNT",< Linhas >)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhasINTEGERQuantidade total de linhas que será definida na grade.Sim

Exemplo



 CALL _ADVPL_set_property(l_table_reference,"ITEM_COUNT",10)




Método SET: LINE_COLOR

Cor de fundo para uma determinada linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"LINE_COLOR",< Linha>, < Nível de vermelho>, < Nível de verde>, < Nível de azul>)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da qual será alterada a cor de fundo.Sim
Nível de vermelhoINTEGERNúmero correspondente ao nível de vermelho da cor (R do RGB).Sim
Nível de verdeINTEGERNúmero correspondente ao nível de verde da cor (G do RGB).Sim
Nível de azulINTEGERNúmero correspondente ao nível de azul da cor (B do RGB).Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"LINE_COLOR",5,255,175,175)




Método SET: LINE_FONT_COLOR

Cor da fonte para uma determinada linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"LINE_FONT_COLOR",< Linha>, < Nível de vermelho>, < Nível de verde>, < Nível de azul>)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da qual será alterada a cor de fundo.Sim
Nível de vermelhoINTEGERNúmero correspondente ao nível de vermelho da cor (R do RGB).Sim
Nível de verdeINTEGERNúmero correspondente ao nível de verde da cor (G do RGB).Sim
Nível de azulINTEGERNúmero correspondente ao nível de azul da cor (B do RGB).Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"LINE_FONT_COLOR",5,255,0,0)




Método SET: REMOVE_EMPTY_ROWS

Remove todas as linhas em branco da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"REMOVE_EMPTY_ROWS")

(informação) Este método verifica linha após linha se alguma coluna foi informada, caso nenhuma coluna tenha informação, a linha verificada é excluída.

Exemplo



CALL _ADVPL_set_property(l_table_reference,"REMOVE_EMPTY_ROWS")




Método SET: REMOVE_ROW

Remove uma determinada linha da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"REMOVE_ROW",< Linha >)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha que será removida.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"REMOVE_ROW",5)




Método SET: SELECT_COLUMN

Posiciona o foco para uma determinada coluna da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"SELECT_COLUMN",< Coluna >)

Parâmetros



NomeTipoDescriçãoObrigatório?
ColunaINTEGERNúmero da coluna da qual o foco deverá ficar posicionado.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"SELECT_COLUMN",10)




Método SET: SELECT_ITEM

Posiciona o foco para uma determinada linha e coluna da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"SELECT_ITEM",< Linha>,< Coluna >)

Parâmetros



NomeTipoDescriçãoObrigatório?
LinhaINTEGERNúmero da linha da qual o foco deverá ficar posicionado.Sim
ColunaINTEGERNúmero da coluna da qual o foco deverá ficar posicionado.Sim

Exemplo



CALL _ADVPL_set_property(l_table_reference,"SELECT_ITEM",5,10)




Método SET: SET_ROWS

Define a variável que irá controlar os valores e a quantidade de linhas inicias que será atribuída para a grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"SET_ROWS",< Variável>, [ Linhas])

Parâmetros



NomeTipoDescriçãoObrigatório?
VariávelARRAY OF RECORDVariável ARRAY OF RECORD que irá controlar os valores da grade. Os atributos deste ARRAY deverá ter o mesmo nome das colunas criadas na grade.Sim
LinhasINTEGERQuantidade de linhas iniciais que será atribuída para a grade.Sim

(informação) Importante: este método deverá ser chamado apenas uma vez para cada componente criado. Caso deseja-se alterar a quantidade de linhas da grade, utilizar o método "ITEM_COUNT".

Exemplo



CALL _ADVPL_set_property(l_table_reference,"SET_ROWS",ma_variable,1)




Método SET: VARIABLE

Define a variável que irá controlar os valores da grade.

Sintaxe



_ADVPL_set_property(< l_table_reference >,"VARIABLE",< Variável >)

Parâmetros



NomeTipoDescriçãoObrigatório?
VariávelARRAY OF RECORDVariável ARRAY OF RECORD que irá controlar os valores da grade. Os atributos deste ARRAY deverá ter o mesmo nome das colunas criadas na grade.Sim

(informação) Importante: este método deverá ser chamado apenas uma vez para cada componente criado.

Exemplo



CALL _ADVPL_set_property(l_table_reference,"VARIABLE",ma_variable)





Exemplo



(informação) Importante: esta grid é para edição por coluna, caso deseja uma grid para consulta, utilize o componente LTableEx.

DEFINE ma_variable ARRAY[100]
 OF RECORD
     componente CHAR(50),
     metodo     ARRAY[100] OF CHAR(50)
END RECORD

#--------------------#
 FUNCTION LBrowseEx()
#--------------------#
     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_table_reference  VARCHAR(10)
     DEFINE l_column_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",650,250)
     CALL _ADVPL_set_property(l_dialog_reference,"TITLE","Ex.: LBROWSEEX")

     LET l_table_reference = _ADVPL_create_component(NULL,"LBROWSEEX",l_dialog_reference)
     CALL _ADVPL_set_property(l_table_reference,"ENABLE",TRUE)
     CALL _ADVPL_set_property(l_table_reference,"EDITABLE",TRUE)
     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,"ALIGN","LEFT")
     CALL _ADVPL_set_property(l_column_reference,"EDITABLE",FALSE)
     CALL _ADVPL_set_property(l_column_reference,"COLUMN_WIDTH",100)
     CALL _ADVPL_set_property(l_column_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_reference = _ADVPL_create_component(NULL,"LTABLECOLUMNEX",l_table_reference)
                 CALL _ADVPL_set_property(l_column_reference,"ALIGN","LEFT")
                 CALL _ADVPL_set_property(l_column_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))
     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