Páginas filhas
  • LGX - LCHOICE

Versões comparadas

Chave

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

Pagetitle
LGX - LChoiceLCHOICE
LGX - LChoiceLCHOICE
Componente com duas listas de seleção que permite realizar operações de transferência de itens entre as listas.


Hierarquia



Métodos GET


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


Expandir
titleGET INDEXLEFT_LABEL_SELECTED TEXT

Método GET:

INDEX

LEFT_LABEL_

SELECTED

TEXT

Retorna a ordem do índice selecionado na listao conteúdo to título da lista apresentada do lado esquerdo da tela.

Sintaxe



Bloco de código
_ADVPL_get_property( < l_listboxchoice_reference >, "INDEXLEFT_LABEL_SELECTEDTEXT" ) => INTEGERCHAR

Retorno



TipoDescrição
CHAR

Texto do título da lista apresentada do lado esquerdo

INTEGER

Índice do item selecionado.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE l_index_selected SMALLINTlabel CHAR(100)

LET l_index_selectedlabel = _ADVPL_get_property( l_listboxchoice_reference ,"INDEXLEFT_LABEL_SELECTEDTEXT")



Expandir
titleGET ITEMRIGHT_SELECTEDLABEL_TEXT

Método GET:

ITEM

RIGHT_LABEL_

SELECTED

TEXT

Retorna o valor do texto do item atual selecionado na listaconteúdo to título da lista apresentada do lado direito da tela.

Sintaxe



Bloco de código
_ADVPL_get_property( < l_listboxchoice_reference >, "ITEMRIGHT_LABEL_SELECTEDTEXT" ) => CHAR

Retorno



TipoDescrição
CHAR
Valor do índice atual selecionado na lista

Texto do título da lista apresentada do lado direito.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE l_index_valuelabel CHAR(50100)

LET l_index_valuelabel = _ADVPL_get_property( l_listboxchoice_reference ,"ITEMRIGHT_LABEL_SELECTEDTEXT")



Expandir
titleGET ITEMLEFT_INDEX_ATSELECTED

Método GET:

ITEM

LEFT_INDEX_

AT

SELECTED

Retorna o valor do texto de um determinado item da listaa ordem do índice selecionado na lista localizada do lado esquerdo da tela.

Sintaxe



Bloco de código
_ADVPL_get_property( < l_listboxchoice_reference >, "ITEMLEFT_INDEX_AT", < nIndex >SELECTED" ) => INTEGER
Parâmetros

Retorno



Nome
TipoDescrição
Obrigatório?
nIndex
INTEGER

Número do índice da lista que deseja retornar o conteúdo de texto.

(informação) Quando não for informado o número do índice, irá considerar o índice do item atual selecionado da lista.

Não

Retorno

TipoDescriçãoCHAR

Conteúdo do texto registrado para o índice da lista informado.

INTEGER

Índice do item selecionado na lista da esquerda.


Exemplo



Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE l_index_value CHAR(50)

#Retornar o texto do item 2 da listaselected SMALLINT

LET l_index_valueselected = _ADVPL_get_property( l_listboxchoice_reference ,"ITEMLEFT_INDEX_ATSELECTED",2)



Expandir
titleGET ITEMRIGHT_INDEX_COUNTSELECTED

Método GET:

ITEM

RIGHT_INDEX_

COUNT

SELECTED

Retorna a quantidade total de itens contidos na listaordem do índice selecionado na lista localizada do lado direito da tela.

Sintaxe



Bloco de código
_ADVPL_get_property( < l_listboxchoice_reference >, "ITEMRIGHT_INDEX_COUNTSELECTED" ) => INTEGER

Retorno



TipoDescrição
INTEGER
Quantidade total de itens contidos

Índice do item selecionado na lista da direita.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE l_index_countselected INTEGER

#Retornar o total de itens da listaSMALLINT

LET l_index_countselected = _ADVPL_get_property( l_listboxchoice_reference ,"ITEMRIGHT_INDEX_COUNTSELECTED")



Expandir

Métodos SET

Métodos acessíveis utilizando a função _ADVPL_set_property que permite alterar e manipular os valores do componente.

Valor a ser assumido quando este item estiver selecionado. 
(informação) Este valor não é obrigatório, mas é o valor que é atribuído para a variável associada ao componente através da propriedade VARIABLE.  Quando não informado assume o mesmo valor definido no parâmetro cDescription.

Exemplo

titleGET LEFT_ITEM_AT

Método GET: LEFT_TEM_AT

Retorna o valor do texto de um determinado item da lista localizada do lado esquerdo

Expandir
titleSET ADD_ITEM

Método SET: ADD_ITEM

Adiciona um item na lista de seleção.

Sintaxe



Bloco de código
_ADVPL_get_property( < l_listboxchoice_reference >, "ADDLEFT_ITEM",< uValue >_AT", < cDescriptionnIndex > ) => INTEGER

Parâmetros



NomeTipoDescriçãoObrigatório?
cDescription
nIndex
CHAR

Conteúdo texto a ser exibido para o item na lista de seleção.

Sim
uValue
QUALQUER
Não
INTEGER

Número do índice da lista da esquerda que deseja retornar o conteúdo de texto.

(informação) Quando não for informado o número do índice, irá considerar o índice do item atual selecionado da lista.

Não

Retorno



TipoDescrição
CHAR

Conteúdo do texto registrado para o índice informado da lista da esquerda.


Exemplo



Bloco de código
languageruby
theme
Bloco de código
languageruby
themeConfluence
linenumberstrue
#Adicionar o item de valor "C" que apresenta o texto na lista como "Cancelado"
CALL _ADVPL_setDEFINE l_index_value CHAR(50)

#Retornar o texto do item 2 da lista da esquerda
LET l_index_value = _ADVPL_get_property( l_listboxchoice_reference ,"ADDLEFT_ITEM_AT","Cancelado","C"2)



Exemplo



Expandir
titleSET CLEAR GET RIGHT_ITEM_AT

Método

SET: CLEAR 

GET: RIGHT_TEM_AT

Retorna o valor do texto de um determinado item da lista localizada do lado direitoRemove todos os itens da lista de seleção.

Sintaxe



Bloco de código
_ADVPL_setget_property( < l_listboxchoice_reference >, "CLEAR")

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
#Remove todos itens da lista de seleção
CALL _ADVPL_set_property( l_listbox_reference ,"CLEAR")
Expandir
titleSET REMOVE_ITEM
RIGHT_ITEM_AT", < nIndex > ) => INTEGER

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndex
INTEGER

Número do índice da lista da direita que deseja retornar o conteúdo de texto.

(informação) Quando não for informado o número do índice, irá considerar o índice do item atual selecionado da lista.

Não

Retorno



TipoDescrição
CHAR

Conteúdo do texto registrado para o índice informado da lista da direita.


Método SET: REMOVE_ITEM

Remove um item da lista de seleção.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_listbox_reference >,"REMOVE_ITEM",< nIndex >)

Parâmetros

NomeTipoDescriçãoObrigatório?
nIndex
INTEGERÍndice do item que será removido.Sim
Bloco de código
languageruby
themeConfluence
linenumberstrue
#RemoveDEFINE l_index_value CHAR(50)

#Retornar o texto do item 32 da lista deda seleção
CALLdireita
LET l_index_value = _ADVPL_setget_property( l_listboxchoice_reference ,"REMOVERIGHT_ITEM_AT",32)



nIndex
Expandir
titleSET SELECTGET LEFT_ITEM_COUNT

Método

SET

GET:

SELECT

LEFT_TEM_

ITEM 

COUNT

Retorna a quantidade total de itens contidos na lista localizada no lado esquerdo

Seleciona um determinado item da lista de seleção através do índice informado.

Sintaxe



Bloco de código
_ADVPL_setget_property( < l_listboxchoice_reference >, "SELECTLEFT_ITEM_COUNT", < nIndex ) => )INTEGER

Parâmetros

Nome


Retorno



TipoDescrição
Obrigatório?
INTEGER
Índice do item da lista de seleção que deverá ser selecionado.Sim

Quantidade total de itens contidos na lista da esquerda.


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#SelecionaDEFINE l_index_count INTEGER

#Retornar o total 1ode itemitens da lista deda seleçãoesquerda
CALLLET l_ADVPL_setindex_count = _ADVPL_get_property( l_listboxchoice_reference ,"SELECTLEFT_ITEM_COUNT",1)    



Expandir
titleSET ORDERGET RIGHT_ITEM_COUNT

Método

SET: ORDER

GET: RIGHT_TEM_COUNT

Retorna a quantidade total de itens contidos na lista localizada no lado direitoIndica a ordenação dos valores na lista de seleção.

Sintaxe



Bloco de código
_ADVPL_setget_property( < l_listboxchoice_reference >, "ORDER", < cORDER > )

Parâmetros

Nome
RIGHT_ITEM_COUNT") => INTEGER


Retorno



TipoDescrição
Obrigatório?cORDERCHAR

Ordenação dos itens na lista conforme o conteúdo de texto exibido em cada item.

    ASC - Ordem Ascendente

    DESC - Ordem Descendente

INTEGER

Quantidade total de itens contidos na lista da direita.

Sim


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Ordenar a lista pelo conteúdo apresentado em ordem ascendente
CALLDEFINE l_index_count INTEGER

#Retornar o total de itens da lista da direita
LET l_index_count = _ADVPL_setget_property( l_listboxchoice_reference ,"ORDER","ASCRIGHT_ITEM_COUNT")  



Expandir
titleSET ITEMGET SHOW_MOVE_UPBUTTONS

Método

SET

GET:

ITEM

SHOW_MOVE_

UP

BUTTONS

Retorna indicador de exibição dos botões de movimentação de itens entre as duas listas de seleção

Mover um determinado item da lista uma posição acima da atual.

Sintaxe



Bloco de código
_ADVPL_setget_property( < l_listboxchoice_reference >, "ITEMSHOW_MOVE_UPBUTTONS", < nIndex ) => )SMALLINT

Parâmetros

Nome


Retorno



TipoDescrição
Obrigatório?nIndexINTEGER

Posição do item na lista a ser reposicionado uma posição para cima.

SMALLINT

TRUE - Botões de movimentação de itens entre lista estão sendo exibidos.

FALSE - Botões de movimentação de itens entre lista não estão sendo exibidos. 

Sim


Exemplo



#Mover o item 2 da lista uma posição acima CALL _ADVPL_set_property( l_listbox_reference ,"ITEM_MOVE_UP",2)
Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE l_show_buttons SMALLINT

#Retornar se os botões de movimentação de itens entre as listas estão disponíveis para uso 
LET l_show_buttons = _ADVPL_get_property( l_choice_reference,"SHOW_MOVE_BUTTONS")




Métodos SET


Métodos acessíveis utilizando a função _ADVPL_set_property que permite alterar e manipular os valores do componente.


Posição do item na lista a ser reposicionado uma posição para baixo.
Expandir
titleSET ITEMLEFT_MOVEADD_DOWNITEM

Método SET:

ITEM

LEFT_

MOVE

ADD_

DOWN

ITEM

Mover Adiciona um determinado item da lista uma posição abaixo da atualna lista de seleção localizada do lado esquerdo.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_listboxchoice_reference >, "ITEMLEFT_MOVEADD_DOWN",ITEM" , < cDescription > , [ < nIndexuValue > ] ) =>

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndex
cDescription
INTEGER
CHAR

Conteúdo texto a ser exibido para o item na lista de seleção do lado esquerdo

Sim
Exemplo
uValue
QUALQUER
Valor a ser assumido quando este item estiver selecionado. 

(informação) Este valor não é obrigatório, mas é o valor que é atribuído para a variável associada ao componente através da propriedade LEFT_VARIABLE.  Quando não informado assume o mesmo valor definido no parâmetro cDescription.
Não


Exemplo



Bloco de código
languageruby
Bloco de código
languageruby
themeConfluence
linenumberstrue
#Mover#Adicionar o item 1 da lista uma posição abaixo
CALL _de valor "C" que apresenta o texto na lista como "Cancelado"
CALL _ADVPL_set_property( l_listboxchoice_reference ,"ITEMLEFT_MOVE_DOWNADD_ITEM","Cancelado",1"C")  



Expandir
titleSET GORIGHT_ADD_TOPITEM

Método SET:

GO

RIGHT_ADD_

TOP

ITEM

Adiciona um item na lista de seleção localizada do lado direito

Posicionar no primeiro item da lista.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_listboxchoice_reference >, "GORIGHT_ADD_TOP")

Exemplo

Bloco de código
languageruby
themeConfluence
linenumberstrue
#Posicionar o cursor no 1o item da lista
CALL _ADVPL_set_property( l_listbox_reference ,"GO_TOP")  
Expandir
titleSET GO_BOTTOM
ITEM" , < cDescription > , [ < uValue > ] ) =>

Parâmetros



NomeTipoDescriçãoObrigatório?
cDescription
CHAR

Conteúdo texto a ser exibido para o item na lista de seleção do lado esquerdo

Sim
uValue
QUALQUER
Valor a ser assumido quando este item estiver selecionado. 

(informação) Este valor não é obrigatório, mas é o valor que é atribuído para a variável associada ao componente através da propriedade VARIABLE.  Quando não informado assume o mesmo valor definido no parâmetro cDescription.
Não


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Adicionar o item de valor "C" que apresenta o texto na lista como "Cancelado"
CALL 

Método SET: GO_BOTTOM

Posicionar no último item da lista.

Sintaxe

Bloco de código
_ADVPL_set_property(< l_listbox_reference >,"GO_BOTTOM")_choice_reference ,"RIGHT_ADD_ITEM","Cancelado","C")



Expandir
titleSET SHOW_MOVE_BUTTONS

Método SET: SHOW_MOVE_BUTTONS

Permite exibir ou ocultar os botões de movimentação de itens entre as 2 listas de seleção.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference >, "SHOW_MOVE_BUTTONS", <nShow> )


Parâmetros



NomeTipoDescriçãoObrigatório?
nShow
SMALLINT

Indicador para exibir ou ocultar os botões de movimentação de itens entre as duas listas de seleção.

TRUE   - Exibir os botões de movimentação de itens.

FALSE  - Nâo exibir os botões de movimentação de itens.

Sim


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Ocultar os botões de movimentação entre os itens das duas listas de seleção.
CALL _ADVPL_set_property( l_choice_reference,"SHOW_MOVE_BUTTONS", FALSE)



Expandir
titleSET LEFT_CLEAR

Método SET: LEFT_CLEAR 

Remove todos os itens da lista de seleção localizada do lado esquerdo.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_choice_reference >,"LEFT_CLEAR")


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Remove todos itens da lista de seleção do lado esquerdo
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_CLEAR")




Expandir
titleSET RIGHT_CLEAR

Método SET: RIGHT_CLEAR 

Remove todos os itens da lista de seleção localizada do lado direito.


Sintaxe



Bloco de código
_ADVPL_set_property(< l_choice_reference >,"RIGHT_CLEAR")


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Remove todos itens da lista de seleção do lado direito
CALL _ADVPL_set_property( l_choice_reference ,"RIGHT_CLEAR")




Expandir
titleSET LEFT_REMOVE_ITEM

Método SET: LEFT_REMOVE_ITEM

Remove um item da lista de seleção localizada do lado esquerdo da tela.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "LEFT_REMOVE_ITEM" , < nIndex > )

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndex
INTEGERÍndice do item que será removido na lista da esquerda.Sim


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Remove o item 3 da lista de seleção localizada a esquerda
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_REMOVE_ITEM",3)




Expandir
titleSET RIGHT_REMOVE_ITEM

Método SET: RIGHT_REMOVE_ITEM

Remove um item da lista de seleção localizada do lado direito da tela.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "RIGHT_REMOVE_ITEM" , < nIndex > )

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndex
INTEGERÍndice do item que será removido na lista da direita.Sim


Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Remove o item 3 da lista de seleção localizada a direita
CALL _ADVPL_set_property( l_choice_reference ,"RIGHT_REMOVE_ITEM",3)




Expandir
titleSET LEFT_SELECT_ITEM

Método SET: LEFT_SELECT_ITEM 

Seleciona um determinado item da lista de seleção localizada do lado esquerdo, através do índice informado.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "LEFT_SELECT_ITEM" , < nIndex > )

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndexINTEGERÍndice do item da lista de seleção da esquerda que deverá ser selecionado.Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Seleciona o 1o item da lista de seleção da esquerda
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_SELECT_ITEM",1)    




Expandir
titleSET RIGHT_SELECT_ITEM

Método SET: RIGHT_SELECT_ITEM 

Seleciona um determinado item da lista de seleção localizada do lado direito, através do índice informado.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "RIGHT_SELECT_ITEM" , < nIndex > )

Parâmetros



NomeTipoDescriçãoObrigatório?
nIndexINTEGERÍndice do item da lista de seleção da direita que deverá ser selecionado.Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Seleciona o 1o item da lista de seleção da direita
CALL _ADVPL_set_property( l_choice_reference ,"RIGHT_SELECT_ITEM",1)    




Expandir
titleSET LEFT_ORDER

Método SET: LEFT_ORDER

Indica a ordenação dos valores na lista de seleção localizada do lado esquerdo.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "LEFT_ORDER" , < cORDER > )

Parâmetros



NomeTipoDescriçãoObrigatório?
cORDERCHAR

Ordenação dos itens na lista da esquerda conforme o conteúdo de texto exibido em cada item.

    ASC - Ordem Ascendente

    DESC - Ordem Descendente

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Ordenar a lista da esquerda pelo conteúdo apresentado em ordem ascendente
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_ORDER","ASC")  




Expandir
titleSET RIGHT_ORDER

Método SET: RIGHT_ORDER

Indica a ordenação dos valores na lista de seleção localizada do lado direito.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "RIGHT_ORDER" , < cORDER > )

Parâmetros



NomeTipoDescriçãoObrigatório?
cORDERCHAR

Ordenação dos itens na lista da esquerda conforme o conteúdo de texto exibido em cada item.

    ASC - Ordem Ascendente

    DESC - Ordem Descendente

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Ordenar a lista da esquerda pelo conteúdo apresentado em ordem ascendente
CALL _ADVPL_set_property( l_choice_reference ,"RIGHT_ORDER","ASC")  




Expandir
titleSET LEFT_VARIABLE

Método SET: LEFT_VARIABLE

Definir o elemento de uma variável ARRAY OF RECORD 4GL que irá assumir o valor do item selecionado na lista de seleção localizada a esquerda.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "LEFT_VARIABLE" , < record4GL_variable > , < l_element_record4GL_variable > )


Parâmetros



NomeTipoDescriçãoObrigatório?
record4GL_variableARRAY OF RECORD 4GL

Nome da variável ARRAY OF RECORD 4GL que irá armazenar a lista de valores da lista de seleção localizada do lado esquerdo.

Sim
l_element_record4GL_variableCHAR

Nome do elemento da variável ARRAY OF RECORD 4GL que armazena o valor apresentado  na lista de seleção do lado esquerdo.

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE ma_list ARRAY[10] OF RECORD
                            item_value CHAR(40)
                            END RECORD

#Definie o nome do record4GL e elemento que irá armazenar o valor do item selecionado na lista de seleção da esquerda
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_VARIABLE", ma_list , "item_value" )




Expandir
titleSET VARIABLE

Método SET: VARIABLE

Definir o elemento de uma variável ARRAY OF RECORD 4GL que irá assumir o valor do item selecionado na lista de seleção localizada a direita.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "VARIABLE" , < record4GL_variable > , < element_record4GL_variable > )

Parâmetros



NomeTipoDescriçãoObrigatório?
record4GL_variableARRAY OF RECORD 4GL

Nome da variável ARRAY OF RECORD 4GL que irá armazenar a lista de valores da lista de seleção localizada do lado esquerdo.

Sim
l_element_record4GL_variable
CHAR

Nome do elemento da variável ARRAY OF RECORD 4GL que armazena o valor apresentado  na lista de seleção do lado esquerdo.

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE ma_list ARRAY[10] OF RECORD
                            item_value CHAR(40)
                            END RECORD

#Definie o nome do record4GL e elemento que irá armazenar o valor do item selecionado na lista de seleção da esquerda
CALL _ADVPL_set_property( l_choice_reference , "VARIABLE" , ma_list , "item_value" )




Expandir
titleSET LEFT_MOVE_EVENT

Método SET: LEFT_MOVE_EVENT

Determina o nome da função 4GL que será acionada quando ocorrer uma movimentação de item selecionado na lista do lado direito para o lado esquerdo. Esta função permitirá ou não concluir a movimentação do item selecionado.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "LEFT_MOVE_EVENT" , < l_4GLfunction_name > )


Parâmetros



NomeTipoDescriçãoObrigatório?
l_4GLfunction_name
CHAR

Nome da função 4GL que será acionada toda vez que ocorrer movimentação de um item da lista da direita pra esquerda.

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Acionar a função 4GL lchoice_checkCanMoveItemLeft() quando ocorrer o evento de movimentação de um item da lista da direita para a esquerda.
CALL _ADVPL_set_property( l_choice_reference ,"LEFT_MOVE_EVENT", "lchoice_checkCanMoveItemLeft")  




Expandir
titleSET RIGHT_MOVE_EVENT

Método SET: RIGHT_MOVE_EVENT

Determina o nome da função 4GL que será acionada quando ocorrer uma movimentação de item selecionado na lista do lado esquerdo para o lado direito. Esta função permitirá ou não concluir a movimentação do item selecionado.

Sintaxe



Bloco de código
_ADVPL_set_property( < l_choice_reference > , "RIGHT_MOVE_EVENT" , < l_4GLfunction_name > )


Parâmetros



NomeTipoDescriçãoObrigatório?
l_4GLfunction_name
CHAR

Nome da função 4GL que será acionada toda vez que ocorrer movimentação de um item da lista da esquerda pra direita.

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Acionar a função 4GL lchoice_checkCanMoveItemRight() quando ocorrer o evento de movimentação de um item da lista da esquerda para a direita.
CALL _ADVPL_set_property( l_choice_reference ,"RIGHT_MOVE_EVENT", "lchoice_checkCanMoveItemRight")  




Expandir
titleSET REORGANIZE_RECORD

Método SET: REORGANIZE_RECORD

Indicador para reorganizar os dados das variáveis ARRAY OF RECORD definidas para as listas pelos métodos SET VARIABLE ou SET LEFT_VARIABLE todas vez que ocorrer uma movimentação de itens de uma lista para outra.

Sintaxe



Bloco de código
_ADVPL_set_property(< l_choice_reference >,"REORGANIZE_RECORD", < nReorganize > )


Parâmetros



NomeTipoDescriçãoObrigatório?
nReorganize
SMALLINT

Indicador para reorganizar dados das variáveis 4GL que armazenam os valores apresentados nas listas, quando ocorrer movimentação de itens entre as listas. 

   TRUE - Reorganizar automaticamente os dados nas variáveis 4GL com os dados das listas.

   FALSE - Não reorganizar os dados nas variáveis 4GL com os dados das listas.

Sim

Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
#Posicionar o cursor no último item da lista#Reorganizar a lista de dados nas variáveis ARRAY OF RECORD indicadas para as listas toda vez que ocorrer movimentação de itens entre as listas
CALL _ADVPL_set_property( l_listboxchoice_reference ,"GOREORGANIZE_BOTTOMRECORD", TRUE)  





Exemplo



Bloco de código
languageruby
themeConfluence
linenumberstrue
DEFINE m_dialog_reference VARCHAR(10)
DEFINE m_choice_reference VARCHAR(10)

DEFINE ma_left, ma_right ARRAY [10] OF RECORD
                         item_value CHAR(30)
                         END RECORD

#------------------------#
 FUNCTION lchoice_test()
#------------------------#
   DEFINE l_layoutmanager_reference VARCHAR(10)
   DEFINE l_statusbar_reference     VARCHAR(10)
   DEFINE l_menubar_reference       VARCHAR(10)
   DEFINE l_confirm_button          VARCHAR(10)
   DEFINE l_panel                   VARCHAR(10)
   DEFINE l_index                   SMALLINT

   CALL fgl_setenv("ADVPL","1")

   #Instancia janela de diálogo
   LET m_dialog_reference = _ADVPL_create_component(NULL,"LDIALOG")
   CALL _ADVPL_set_property(m_dialog_reference,"ENABLE_ESC_CLOSE",FALSE)
   CALL _ADVPL_set_property(m_dialog_reference,"TITLE","Ordem das Divisões")

   #Instancia barra de status/mensagens na janela de diálogo
   LET l_statusbar_reference = _ADVPL_create_component(NULL,"LSTATUSBAR",m_dialog_reference)

   #Instancia componente para renderização de componentes em relação ao posicionamento em tela
   LET l_layoutmanager_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",m_dialog_reference)
   CALL _ADVPL_set_property(l_layoutmanager_reference,"MARGIN",FALSE)
   CALL _ADVPL_set_property(l_layoutmanager_reference,"COLUMNS_COUNT",1)
   CALL _ADVPL_set_property(l_layoutmanager_reference,"MIN_WIDTH",600)
   CALL _ADVPL_set_property(l_layoutmanager_reference,"MIN_HEIGHT",340)
340)

   #Instancia uma barra de menu na janela de diálogo
   LET l_menubar_reference = _ADVPL_create_component(NULL,"LMENUBAR",l_layoutmanager_reference)

   #Adiciona um botão CONFIRMAR na barra de menu
   LET l_confirm_button = _ADVPL_create_component(NULL,"LMENUBUTTON",l_menubar_reference)
   CALL _ADVPL_set_property(l_confirm_button,"IMAGE","CONFIRM_EX")
   CALL _ADVPL_set_property(l_confirm_button,"EVENT","lchoice_exit")

   #Adiciona um painel logo a seguir do menu para que possa incluir o componente LChoice
   LET l_panel = _ADVPL_create_component(NULL,"LPANEL",l_layoutmanager_reference)
   CALL _ADVPL_set_property(l_panel,"ALIGN","CENTER")
   CALL _ADVPL_set_property(l_panel,"SIZE",540,280)

   #--# Cria #Cria o componente LChoice de multipla escolha #--#
   LET m_choice_reference = _ADVPL_create_component(NULL,"LCHOICE",l_panel)

   #--# Determina#Determina que os itens devem sempre ser reorganizados na lista quando forem movimentados #--#
   CALL _ADVPL_set_property(m_choice_reference,"REORGANIZE_RECORD",TRUE)

   #--# Dimensiona #Dimensiona o componente #--#
   CALL _ADVPL_set_property(m_choice_reference,"SIZE",540,280)
   CALL _ADVPL_set_property(m_choice_reference,"ALIGN","CENTER")

   #--# Esconde#Esconde os botões para trocar os itens de posição no listbox direito #--#
   CALL _ADVPL_set_property(m_choice_reference,"SHOW_MOVE_BUTTONS",TRUE)

   #--# Define a descrição (texto) do label esquerdo #--# posição no choice direito
   CALL _ADVPL_set_property(m_choice_reference,"LEFTSHOW_LABELMOVE_TEXTBUTTONS","Titulo ESQUERDA"TRUE)

   #--# Define#Define a descrição (texto) do label direito #--#esquerdo
   CALL _ADVPL_set_property(m_choice_reference,"RIGHTLEFT_LABEL_TEXT","TítuloTitulo DIREITAESQUERDA")

   #--# Habilita o componente LChoice #--#
   CALL _ADVPL_set_property(m_choice_reference,"ENABLE",TRUE)
#Define a descrição (texto) do label direito
   CALL _ADVPL_set_property(m_choice_reference,"LEFTRIGHT_MOVELABEL_EVENTTEXT","lchoice_checkCanMoveLeft")Título DIREITA")

   #Habilita o componente LChoice
   CALL _ADVPL_set_property(m_choice_reference,"RIGHT_MOVE_EVENT","lchoice_checkCanMoveRight")

ENABLE",TRUE)

   #Determina as funções de controle de movimentação de itens entre as listas para identificar movimentos não permitidos.
   CALL _ADVPL_set_property(m_choice_reference,"LEFT_MOVE_ORDEREVENT","ASClchoice_checkCanMoveLeft")
   CALL _ADVPL_set_property(m_choice_reference,"RIGHT_ORDER","ASC")

   FOR l_index = 1 TO 10
      INITIALIZE ma_left[l_index].* TO NULL
      INITIALIZE ma_right[l_index].* TO NULL
   END FORMOVE_EVENT","lchoice_checkCanMoveRight")

   LET ma_left[01].item_value = 'valor 01'
   LET ma_left[02].item_value = 'valor 02'
   LET ma_left[03].item_value = 'valor 03'
   LET ma_left[04].item_value = 'valor 04'
   LET ma_left[05].item_value = 'valor 05'
   LET ma_left[06].item_value = 'valor 06'
   LET ma_left[07].item_value = 'valor 07'
   LET ma_left[08].item_value = 'valor 08'
   LET ma_left[09].item_value = 'valor 09'
   LET ma_left[10].item_value = 'valor 10'

_value = 'valor 10'

   #Determinar as variaveis que irão armazenar o conteúdo das listas da direita e esquerda, indicando o total de linhas preenchidas em cada lista.
   CALL _ADVPL_set_property(m_choice_reference,"LEFT_VARIABLE",ma_left,"item_value",10)
   CALL _ADVPL_set_property(m_choice_reference,"VARIABLE",ma_right,"item_value",0)

   #Ativar a janela de diálogo
   CALL _ADVPL_set_property(m_dialog_reference,"ACTIVATE",TRUE)
 END FUNCTION

#---------------------------------------#
 FUNCTION lchoice_checkCanMoveLeft()
#---------------------------------------#
   DEFINE l_idx_selected SMALLINT

   #Identificar o indice atual selecionado na lista da direita
   LET l_idx_selected = _ADVPL_get_property(m_choice_reference, "RIGHT_INDEX_SELECTED")

   IF ma_right[l_idx_selected].item_value = "valor 05" THEN
      CALL LOG_message("Movimentação não permitida.","WARNING","Este item nao pode ser retornado para esquerda.","",0)",0)     
      
      #Cancela a movimentação       
      RETURN FALSE
   END IF

   #Desmarca item selecionado na lista da direita e reorganiza dados
   CALL _ADVPL_set_property(m_choice_reference,"REORGANIZE_RECORD",TRUE)   
   CALL _ADVPL_set_property(m_choice_reference,"RIGHT_SELECT_ITEM",l_idx_selected)
   CALL _ADVPL_set_property(m_choice_reference,"LEFT_ORDER","ASC")   

   #Autoriza a movimentação 
    RETURN TRUE
 END FUNCTION

#---------------------------------------#
 FUNCTION lchoice_checkCanMoveRight()
#---------------------------------------#
   DEFINE l_idx_selected SMALLINT      
 
   #Identificar o indice atual selecionado na lista da esquerda
   LET l_idx_selected = _ADVPL_get_property(m_choice_reference, "LEFT_INDEX_SELECTED")

   IF ma_right[l_idx_selected].item_value = "valor 03" THEN
      CALL LOG_message("Movimentação não permitida.","WARNING","Este item nao pode ser movido para direita.","",0)
      #Cancela a movimentação
      RETURN FALSE
   END IF

   #Desmarca item selecionado na lista da direitaesquerda e reorganiza dados
   CALL _ADVPL_set_property(m_choice_reference,"REORGANIZE_RECORD",TRUE)   
   CALL _ADVPL_set_property(m_choice_reference,"LEFT_SELECT_ITEM",l_idx_selected)
   CALL _ADVPL_set_property(m_choice_reference,"RIGHT_ORDER","ASC")   
   
   #Autoriza a movimentação
   RETURN TRUE
 END FUNCTION

#-------------------------#
 FUNCTION lchoice_exit()
#-------------------------#
   #Fecha a janela de diálogo
   CALL _ADVPL_set_property(m_dialog_reference,"ACTIVATE",FALSE)
 END FUNCTION