Histórico da Página
Pagetitle | ||||
---|---|---|---|---|
|
Componente com duas listas de seleção que permite realizar operações de transferência de itens entre as listas.
Métodos GET
Métodos acessíveis através da função _ADVPL_get_property
que permite recuperar os valores do componente.
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: LEFT_LABEL_TEXTRetorna o conteúdo to título da lista apresentada do lado esquerdo da tela. Sintaxe
Retorno
Exemplo
|
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: RIGHT_LABEL_TEXTRetorna o conteúdo to título da lista apresentada do lado direito da tela. Sintaxe
Retorno
Exemplo
|
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: LEFT_INDEX_SELECTEDRetorna a ordem do índice selecionado na lista localizada do lado esquerdo da tela. Sintaxe
Retorno
Exemplo
|
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: RIGHT_INDEX_SELECTEDRetorna a ordem do índice selecionado na lista localizada do lado direito da tela. Sintaxe
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: LEFT_TEM_ATRetorna o valor do texto de um determinado item da lista localizada do lado esquerdo. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||
Método GET: RIGHT_TEM_ATRetorna o valor do texto de um determinado item da lista localizada do lado direito. Sintaxe
Parâmetros
Retorno
Exemplo
|
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: LEFT_TEM_COUNTRetorna a quantidade total de itens contidos na lista localizada no lado esquerdo. Sintaxe
Retorno
Exemplo
|
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Método GET: RIGHT_TEM_COUNTRetorna a quantidade total de itens contidos na lista localizada no lado direito. Sintaxe
Retorno
Exemplo
|
Métodos acessíveis utilizando a função _ADVPL_set_property
que permite alterar e manipular os valores do componente.
Expandir | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
MétodoSETGET:ADDSHOW_MOVE_ITEMBUTTONSRetorna indicador de exibição dos botões de movimentação de itens entre as duas listas Adiciona um item na lista de seleção. Sintaxe
RetornoNome |
Obrigatório? | cDescription CHAR Conteúdo texto a ser exibido para o item na lista de seleção. Sim | uValue | Valor a ser assumido quando este item estiver selecionado. QUALQUER 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
| ||||||||||||||||||||
Expandir | title | |||||||||||||||||||||||
Métodos SET
CLEARMétodo SET: CLEAR
Remove todos os itens da lista de seleção.
Sintaxe
Métodos acessíveis utilizando a função
_ADVPL_set_property
que permite alterar e manipular os valores do componente.
Expandir | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Método SET: LEFT_ADD_ITEMAdiciona um item na lista de seleção localizada do lado esquerdo. Sintaxe
Exemplo
| ||||||||||||||||||||||||||
Expandir | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
Método SET: REMOVE_ITEMRemove um item da lista de seleção. Sintaxe
Parâmetros
INTEGER Índice do item que será removido. |
Exemplo
|
Expandir | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
Método SET:SELECTRIGHT_ADD_ITEMITEMSeleciona Adiciona um determinado item da na lista de seleção através localizada do índice informadolado direito. Sintaxe
Parâmetros
nIndex
INTEGER Índice do item da lista de seleção que deverá ser selecionado. |
Exemplo
|
Expandir | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
Método SET:ORDERSHOW_MOVE_BUTTONSPermite exibir ou ocultar os botões de movimentação de itens entre as 2 listas Indica a ordenação dos valores na lista de seleção. Sintaxe
Parâmetros
cORDER
CHAR Ordenação dos itens na lista conforme o conteúdo de texto exibido em cada item. ASC - Ordem Ascendente
Exemplo
|
Expandir | ||||||
---|---|---|---|---|---|---|
| ||||||
Método SET:ITEMLEFT_MOVE_UPCLEARRemove todos os itens da lista de seleção localizada do lado esquerdo Mover um determinado item da lista uma posição acima da atual. Sintaxe
Parâmetros | ||||||
Nome | Tipo | Descrição | Obrigatório? | |||
nIndex | INTEGER | Posição do item na lista a ser reposicionado uma posição para cima. | Sim |
CLEAR") |
Exemplo
Exemplo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#Mover#Remove otodos itemitens 2 da lista uma posição acimade seleção do lado esquerdo CALL _ADVPL_set_property( l_listboxchoice_reference ,"ITEMLEFT_MOVE_UPCLEAR",2) |
Expandir | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
Método SET:ITEMRIGHT_MOVE_DOWNCLEARRemove todos os itens da lista de seleção localizada do lado direito Mover um determinado item da lista uma posição abaixo da atual. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: LEFT_REMOVE_ITEMRemove um item da lista de seleção localizada do lado esquerdo da tela. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: RIGHT_REMOVE_ITEMRemove um item da lista de seleção localizada do lado direito da tela. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: LEFT_SELECT_ITEMSeleciona um determinado item da lista de seleção localizada do lado esquerdo, através do índice informado. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: RIGHT_SELECT_ITEMSeleciona um determinado item da lista de seleção localizada do lado direito, através do índice informado. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: LEFT_ORDERIndica a ordenação dos valores na lista de seleção localizada do lado esquerdo. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||
Método SET: RIGHT_ORDERIndica a ordenação dos valores na lista de seleção localizada do lado direito. Sintaxe
Parâmetros
Exemplo
|
Expandir | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Método SET: LEFT_VARIABLEDefinir 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
Exemplo
|
Expandir | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Método SET: VARIABLEDefinir 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
Exemplo
| |||||||||||
Nome | Tipo | Descrição | Obrigatório? | ||||||||
nIndex | INTEGER | Posição do item na lista a ser reposicionado uma posição para baixo. | Sim |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#Mover o item 1 da lista uma posição abaixo CALL _ADVPL_set_property( l_listboxchoice_reference ,"VARIABLE"ITEM_MOVE_DOWN",1) , ma_list , "item_value" ) |
Expandir | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Método SET:GO_TOPLEFT_MOVE_EVENTDetermina 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 selecionadoPosicionar no primeiro item da lista. Sintaxe
Exemplo
|
Expandir | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Método SET:GO_BOTTOMRIGHT_MOVE_EVENTDetermina 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 selecionadoPosicionar no último item da lista. Sintaxe
Exemplo
|
Exemplo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
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) #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 o componente LChoice de multipla escolha LET m_choice_reference = _ADVPL_create_component(NULL,"LCHOICE",l_panel) #Determina que os itens devem sempre ser reorganizados na lista quando forem movimentados CALL _ADVPL_set_property(m_choice_reference,"REORGANIZE_RECORD",TRUE) #Dimensiona o componente CALL _ADVPL_set_property(m_choice_reference,"SIZE",540,280) CALL _ADVPL_set_property(m_choice_reference,"ALIGN","CENTER") #Esconde os botões para trocar os itens de posição no listboxchoice direito CALL _ADVPL_set_property(m_choice_reference,"SHOW_MOVE_BUTTONS",TRUE) #Define a descrição (texto) do label esquerdo CALL _ADVPL_set_property(m_choice_reference,"LEFT_LABEL_TEXT","Titulo ESQUERDA") #Define a descrição (texto) do label direito CALL _ADVPL_set_property(m_choice_reference,"RIGHT_LABEL_TEXT","Título DIREITA") #Habilita o componente LChoice CALL _ADVPL_set_property(m_choice_reference,"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_EVENT","lchoice_checkCanMoveLeft") CALL _ADVPL_set_property(m_choice_reference,"RIGHT_MOVE_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' #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) #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 esquerda 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 |