Métodos GET
Métodos acessíveis através da função _ADVPL_get_property
que permite recuperar os valores do componente.
Métodos SET
Métodos acessíveis utilizando a função _ADVPL_set_property
que permite alterar e manipular os valores do componente.
Exemplo
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 choice 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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas