Páginas filhas
  • LGX - LWIZARD

Cria programas do tipo Wizard.

Componente disponível a partir da versão 12.1.16 do Logix.

Hierarquia



Métodos GET


Métodos acessíveis utilizando a função _ADVPL_get_property, que permite recuperar e manipular os valores do componente: 


Método GET: WIZARD_CONTAINER_REFERENCE 

Retorna a referência do componente onde devem ser criadas as as etapas do Wizard.

Sintaxe



_ADVPL_get_property(< l_reference >,"WIZARD_CONTAINER_REFERENCE") => CHAR

Retorno



TipoDescrição
CHARReferência do componente FREEFORM onde devem ser criadas as etapas do Wizard.

Exemplo



#------------------------------------------------------------------------------#
FUNCTION LWIZARD_getWIZARDCONTAINERREFERENCE()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    
    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")
    
    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")
    
    RETURN l_pnl_reference
END FUNCTION





Métodos SET


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


Método SET: TITLE

Define o título do Wizard.

Sintaxe



CALL _ADVPL_set_property(< l_reference >,"TITLE", < l_title >)

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
l_titleCHARTítulo do Wizard.Sim

Exemplo



#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setTITLE()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"TITLE","Wizard de Configuração Logix")
END FUNCTION




Método SET: MAXIMIZED

Maximiza a janela do Wizard.

Sintaxe



CALL _ADVPL_set_property(< l_reference >,"MAXIMIZED", < l_maximized >)

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
l_maximized
SMALLINTVerdadeiro para maximizar a janela do Wizard.Sim

Exemplo



#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setMAXIMIZED()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"MAXIMIZED",TRUE)
END FUNCTION




Método SET: CANCEL_EVENT

Define um evento de cancelamento do Wizard.

Sintaxe



CALL _ADVPL_set_property(< l_reference >,"CANCEL_EVENT", < l_event >)

Parâmetros



NomeTipoDescriçãoObrigatório?Padrão
l_event
CHARFunção 4GL disparada ao tentar cancelar o Wizard. *Sim

* A função de cancelamento do Wizard dever retornar TRUE ou FALSE, ao retornar FALSE o cancelamento será interrompido.

Exemplo



#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setCANCELEVENT()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"CANCEL_EVENT","LWIZARD_cancel")
END FUNCTION
 
#------------------------------------------------------------------------------#
FUNCTION LWIZARD_cancel()
#------------------------------------------------------------------------------#
    RETURN LOG_question("Confirma o cancelamento do Wizard?")
END FUNCTION




Método SET: ADD_ACTION

Adiciona uma nova ação no botão "Outras ações" do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ADD_ACTION", < l_title >, < l_event >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_title
CHARTítulo da ação.Sim
l_event
CHARFunção 4GL disparada ao selecionar a ação.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setADDACTION()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_ACTION","Ação 1","LWIZARD_action1")
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_ACTION","Ação 2","LWIZARD_action2")
END FUNCTION
 
#------------------------------------------------------------------------------#
FUNCTION LWIZARD_action1()
#------------------------------------------------------------------------------#
    CALL log0030_processa_mensagem("Clicou na ação 1","exclamation",0)
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_action2()
#------------------------------------------------------------------------------#
    CALL log0030_processa_mensagem("Clicou na ação 2","exclamation",0)
END FUNCTION




Método SET: ADD_STEP

Adiciona uma nova etapa no Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ADD_STEP", < l_code >, < l_title >, [ l_desc ], < l_function >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_code
CHARCódigo identificador da etapa.Sim
l_title
CHARTítulo da etapa.Sim
l_desc
CHARBreve descrição do objetivo da etapa.Não
l_function
CHARFunção de criação da etapa.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setADDSTEP()
#------------------------------------------------------------------------------#
    # Etapa de boas vindas.
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_STEP","WELCOME","Bem vindo!","Wizard de configuração Logix.","LWIZARD_stepWelcome")
END FUNCTION
 
#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcome()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    DEFINE l_ltm_reference VARCHAR(10)
    DEFINE l_lbl_reference VARCHAR(10)
    DEFINE l_cmp_reference VARCHAR(10)

    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")

    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")

    LET l_ltm_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_pnl_reference)
    CALL _ADVPL_set_property(l_ltm_reference,"MARGIN",TRUE)
    CALL _ADVPL_set_property(l_ltm_reference,"COLUMNS_COUNT",1)

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Leia atentamente os termos de uso abaixo:")

    # Indica que o próximo componente será expansível.
    CALL _ADVPL_set_property(l_ltm_reference,"EXPANSIBLE",TRUE)

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LTEXTAREA",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"ALIGN","CENTER")
    CALL _ADVPL_set_property(l_cmp_reference,"ENABLE",TRUE)
    CALL _ADVPL_set_property(l_cmp_reference,"EDITABLE",FALSE)
    CALL _ADVPL_set_property(l_cmp_reference,"VARIABLE",mr_wizard,"terms")

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LCHECKBOX",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"TEXT","Eu li e concordo com os termos de uso")
    CALL _ADVPL_set_property(l_cmp_reference,"VALUE_CHECKED","S")
    CALL _ADVPL_set_property(l_cmp_reference,"VALUE_NCHECKED","N")
    CALL _ADVPL_set_property(l_cmp_reference,"ENABLE",TRUE)
    CALL _ADVPL_set_property(l_cmp_reference,"VARIABLE",mr_wizard,"agree")

    # Aplica o leiaute.
    CALL _ADVPL_set_property(l_ltm_reference,"APPLY_LAYOUT")

    RETURN l_pnl_reference
END FUNCTION

Observações


  • A função de criação da etapa deverá sempre criar um componente LPANEL de alinhamento CENTER para agrupar todos os componentes visuais desta etapa e, ao final da criação dos componentes visuais, a referência do componente agrupador deverá ser retornada.




Método SET: STEP_EVENT

Define um evento para uma determinada etapa do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"STEP_EVENT", < l_step >, < l_event >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_step
CHARCódigo da etapa.Sim
l_event
CHARFunção 4GL disparada na execução da etapa.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSTEPEVENT()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_EVENT","WELCOME","LWIZARD_stepWelcomeEvent")
END FUNCTION
 
#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcomeEvent()
#------------------------------------------------------------------------------#
    IF  mr_wizard.terms IS NULL THEN
        LET mr_wizard.terms = "Lorem ipsum dolor sit amet, id odio suscipit mel. ",
                              "Alii nominati cu eos, dolor congue postulant sed in. ",
                              "Qui primis voluptaria in. Option timeam conceptam et mea. ",
                              "Sit cu quas facilis, partem cotidieque nam ut, te sea commune antiopam.\n\n",
                              "Minim veritus an eos, vim ad viris persius consulatu. ",
                              "Vis eruditi concludaturque ex, fuisset mentitum expetenda eum in. ",
                              "Pro quas ridens no, ea iudico veritus consetetur usu, dicit suscipit elaboraret at per. ",
                              "Per ad rebum appellantur, pro ne graeco consequuntur, cu vim viris persequeris eloquentiam.\n\n",
                              "Quis audire aliquam ad nam, virtute dolorum pri in, liber tempor sea ne. ",
                              "Sit ei saepe petentium, et pro tempor reprimique mediocritatem, eirmod nostrud scriptorem vix id. ",
                              "Ex nec lorem fugit, sea et integre platonem, ei sit putant utamur. ",
                              "Duo prompta feugait menandri eu, ex nonumy ignota usu, et cum mazim affert utinam."
    END IF

    IF  mr_wizard.agree IS NULL THEN
        LET mr_wizard.agree = "N"
    END IF
END FUNCTION




Método SET: STEP_VALID

Define um evento de validação para uma determinada etapa do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"STEP_VALID", < l_step >, < l_event >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_step
CHARCódigo da etapa.Sim
l_event
CHARFunção 4GL disparada ao tentar avançar a etapa. *Sim

* A função de validação deve retornar TRUE ou FALSE, ao retornar FALSE não será possível avançar para a próxima etapa.

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSTEPVALID()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_VALID","WELCOME","LWIZARD_stepWelcomeValid")
END FUNCTION
 
#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcomeValid()
#------------------------------------------------------------------------------#
    IF  mr_wizard.agree = "N" THEN
        CALL log0030_processa_mensagem("Para continuar é preciso que você leia e aceite os termos de uso.","exclamation",0)
        RETURN FALSE
    END IF

    RETURN TRUE
END FUNCTION




Método SET: STEP_BACK

Define um evento de retrocesso para uma determinada etapa do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"STEP_BACK", < l_step >, < l_event >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_step
CHARCódigo da etapa.Sim
l_event
CHARFunção 4GL disparada ao tentar retroceder a etapa. *Sim

* A função de retrocesso deve retornar o código da etapa para o qual o Wizard será retornado, caso NULO irá retroceder para a etapa anterior.

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSTEPBACK()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_BACK","FINISH","LWIZARD_stepFinishBack")
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepFinishBack()
#------------------------------------------------------------------------------#
    RETURN "WELCOME"
END FUNCTION




Método SET: STEP_NEXT

Define um evento de avanço para uma determinada etapa do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"STEP_NEXT", < l_step >, < l_event >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_step
CHARCódigo da etapa.Sim
l_event
CHARFunção 4GL disparada ao tentar avançar a etapa. *Sim

* A função de avanço deve retornar o código da etapa para o qual o Wizard será avançado, caso NULO irá avançar para a etapa posterior.

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSTEPNEXT()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_BACK","SELECT","LWIZARD_stepSelectNext")
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepSelectNext()
#------------------------------------------------------------------------------#
    RETURN mr_wizard.steps
END FUNCTION




Método SET: ACTIVATE

Ativa a visualização do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ACTIVATE", < l_activate >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_activate
SMALLINTVerdadeiro para ativar a visualização do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setACTIVATE()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ACTIVATE",TRUE)
END FUNCTION




Método SET: SHOW_STEP

Força a visualização de uma determinada etapa do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"SHOW_STEP", < l_step >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_step
CHARCódigo da etapa.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSHOWSTEP()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"SHOW_STEP","PROCESS")
END FUNCTION




Método SET: ENABLE_ALL_BUTTONS

Habilita/desabilita todos os botões de ações do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ENABLE_ALL_BUTTONS", < l_enable >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_enable
SMALLINTVerdadeiro para habilitar todos os botões de ações do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setENABLEALLBUTTONS()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_ALL_BUTTONS",FALSE)
END FUNCTION




Método SET: ENABLE_CANCEL_BUTTON

Habilita/desabilita o botão de cancelamento do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ENABLE_CANCEL_BUTTON", < l_enable >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_enable
SMALLINTVerdadeiro para habilitar o botão de cancelamento do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setENABLECANCELBUTTON()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_CANCEL_BUTTON",FALSE)
END FUNCTION




Método SET: ENABLE_ACTIONS_BUTTON

Habilita/desabilita o botão de outras ações do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ENABLE_ACTIONS_BUTTON", < l_enable >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_enable
SMALLINTVerdadeiro para habilitar o botão de outras ações do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setENABLEACTIONSBUTTON()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_ACTIONS_BUTTON",FALSE)
END FUNCTION




Método SET: ENABLE_BACK_BUTTON

Habilita/desabilita o botão de retroceder etapas do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ENABLE_BACK_BUTTON", < l_enable >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_enable
SMALLINTVerdadeiro para habilitar o botão de retroceder etapas do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setENABLEBACKBUTTON()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_BACK_BUTTON",FALSE)
END FUNCTION




Método SET: ENABLE_NEXT_BUTTON

Habilita/desabilita o botão de avançar etapas do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"ENABLE_NEXT_BUTTON", < l_enable >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_enable
SMALLINTVerdadeiro para habilitar o botão de avançar etapas do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setENABLENEXTBUTTON()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_NEXT_BUTTON",FALSE)
END FUNCTION




Método SET: SIZE

Define o tamanho da janela do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"SIZE", < l_width >, < l_height >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_width
SMALLINTLargura da janela.Sim
l_height
SMALLINTAltura da janela.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setSIZE()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"SIZE",800,600)
END FUNCTION




Método SET: WIDTH

Tamanho da largura da janela do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"WIDTH", < l_width >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_width
SMALLINTDefine o tamnaho da largura da janela do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setWIDTH()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"WIDTH",800)
END FUNCTION




Método SET: HEIGHT

Tamanho da altura da janela do Wizard.

Sintaxe


CALL _ADVPL_set_property(< l_reference >,"HEIGHT", < l_height >)

Parâmetros


NomeTipoDescriçãoObrigatório?Padrão
l_height
SMALLINTAltura da janela do Wizard.Sim

Exemplo


#------------------------------------------------------------------------------#
FUNCTION LWIZARD_setHEIGHT()
#------------------------------------------------------------------------------#
    CALL _ADVPL_set_property(m_wiz_reference,"HEIGHT",600)
END FUNCTION





Exemplos


Sintaxe


LET m_wiz_reference = _ADVPL_create_component(NULL,"LWIZARD")

Exemplo


DEFINE mr_wizard RECORD
                     terms CHAR(999),
                     agree CHAR(001),
                     steps CHAR(050)
                 END RECORD

DEFINE m_wiz_reference VARCHAR(10)
DEFINE m_prg_reference VARCHAR(10)

#------------------------------------------------------------------------------#
FUNCTION LWIZARD()
#------------------------------------------------------------------------------#
    INITIALIZE mr_wizard.* TO NULL

    LET m_wiz_reference = _ADVPL_create_component(NULL,"LWIZARD")
    CALL _ADVPL_set_property(m_wiz_reference,"TITLE","Wizard de Exemplo")
    CALL _ADVPL_set_property(m_wiz_reference,"CANCEL_EVENT","LWIZARD_cancel")
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_ACTION","Ação 1","LWIZARD_action1")
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_ACTION","Ação 2","LWIZARD_action2")

    # Etapa de boas vindas.
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_STEP","WELCOME","Componente LWIZARD","Este é um exemplo de uso do componente para criação de Wizards.","LWIZARD_stepWelcome")
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_EVENT","WELCOME","LWIZARD_stepWelcomeEvent")
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_VALID","WELCOME","LWIZARD_stepWelcomeValid")

    # Etapa de seleção.
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_STEP","SELECT","Selecionar Etapa","O componente permite que você alterne entre as etapas existentes.","LWIZARD_stepSelect")
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_NEXT","SELECT","LWIZARD_stepSelectNext")

    # Etapa de processamento.
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_STEP","PROCESS","Processando","Etapa em processamento, não permite interações até que a etapa seja finalizada.","LWIZARD_stepProcess")
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_EVENT","PROCESS","LWIZARD_stepProcessEvent")

    # Etapa de finalização.
    CALL _ADVPL_set_property(m_wiz_reference,"ADD_STEP","FINISH","Sucesso","Processo finalizado com sucesso.","LWIZARD_stepFinish")
    CALL _ADVPL_set_property(m_wiz_reference,"STEP_BACK","FINISH","LWIZARD_stepFinishBack")
    CALL _ADVPL_set_property(m_wiz_reference,"ACTIVATE",TRUE)
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_cancel()
#------------------------------------------------------------------------------#
    RETURN LOG_question("Confirma o cancelamento do Wizard?")
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_action1()
#------------------------------------------------------------------------------#
    CALL log0030_processa_mensagem("Clicou na ação 1","exclamation",0)
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_action2()
#------------------------------------------------------------------------------#
    CALL log0030_processa_mensagem("Clicou na ação 2","exclamation",0)
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcome()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    DEFINE l_ltm_reference VARCHAR(10)
    DEFINE l_lbl_reference VARCHAR(10)
    DEFINE l_cmp_reference VARCHAR(10)

    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")

    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")

    LET l_ltm_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_pnl_reference)
    CALL _ADVPL_set_property(l_ltm_reference,"MARGIN",TRUE)
    CALL _ADVPL_set_property(l_ltm_reference,"COLUMNS_COUNT",1)

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Leia atentamente os termos de uso abaixo:")

    # Indica que o próximo componente será expansível.
    CALL _ADVPL_set_property(l_ltm_reference,"EXPANSIBLE",TRUE)

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LTEXTAREA",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"ALIGN","CENTER")
    CALL _ADVPL_set_property(l_cmp_reference,"ENABLE",TRUE)
    CALL _ADVPL_set_property(l_cmp_reference,"EDITABLE",FALSE)
    CALL _ADVPL_set_property(l_cmp_reference,"VARIABLE",mr_wizard,"terms")

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LCHECKBOX",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"TEXT","Eu li e concordo com os termos de uso")
    CALL _ADVPL_set_property(l_cmp_reference,"VALUE_CHECKED","S")
    CALL _ADVPL_set_property(l_cmp_reference,"VALUE_NCHECKED","N")
    CALL _ADVPL_set_property(l_cmp_reference,"ENABLE",TRUE)
    CALL _ADVPL_set_property(l_cmp_reference,"VARIABLE",mr_wizard,"agree")

    # Aplica o leiaute.
    CALL _ADVPL_set_property(l_ltm_reference,"APPLY_LAYOUT")

    RETURN l_pnl_reference
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcomeEvent()
#------------------------------------------------------------------------------#
    IF  mr_wizard.terms IS NULL THEN
        LET mr_wizard.terms = "Lorem ipsum dolor sit amet, id odio suscipit mel. ",
                              "Alii nominati cu eos, dolor congue postulant sed in. ",
                              "Qui primis voluptaria in. Option timeam conceptam et mea. ",
                              "Sit cu quas facilis, partem cotidieque nam ut, te sea commune antiopam.\n\n",
                              "Minim veritus an eos, vim ad viris persius consulatu. ",
                              "Vis eruditi concludaturque ex, fuisset mentitum expetenda eum in. ",
                              "Pro quas ridens no, ea iudico veritus consetetur usu, dicit suscipit elaboraret at per. ",
                              "Per ad rebum appellantur, pro ne graeco consequuntur, cu vim viris persequeris eloquentiam.\n\n",
                              "Quis audire aliquam ad nam, virtute dolorum pri in, liber tempor sea ne. ",
                              "Sit ei saepe petentium, et pro tempor reprimique mediocritatem, eirmod nostrud scriptorem vix id. ",
                              "Ex nec lorem fugit, sea et integre platonem, ei sit putant utamur. ",
                              "Duo prompta feugait menandri eu, ex nonumy ignota usu, et cum mazim affert utinam."
    END IF

    IF  mr_wizard.agree IS NULL THEN
        LET mr_wizard.agree = "N"
    END IF
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepWelcomeValid()
#------------------------------------------------------------------------------#
    IF  mr_wizard.agree = "N" THEN
        CALL log0030_processa_mensagem("Para continuar é preciso que você leia e aceite os termos de uso.","exclamation",0)
        RETURN FALSE
    END IF

    RETURN TRUE
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepSelect()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    DEFINE l_ltm_reference VARCHAR(10)
    DEFINE l_lbl_reference VARCHAR(10)
    DEFINE l_cmp_reference VARCHAR(10)

    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")

    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")

    LET l_ltm_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_pnl_reference)
    CALL _ADVPL_set_property(l_ltm_reference,"MARGIN",TRUE)
    CALL _ADVPL_set_property(l_ltm_reference,"COLUMNS_COUNT",1)

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Selecione a próxima etapa:")

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LRADIOGROUP",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"ADD_ITEM","PROCESS","Etapa de Processamento")
    CALL _ADVPL_set_property(l_cmp_reference,"ADD_ITEM","FINISH","Etapa de Finalização")
    CALL _ADVPL_set_property(l_cmp_reference,"ENABLE",TRUE)
    CALL _ADVPL_set_property(l_cmp_reference,"VARIABLE",mr_wizard,"steps")

    # Aplica o leiaute.
    CALL _ADVPL_set_property(l_ltm_reference,"APPLY_LAYOUT")

    RETURN l_pnl_reference
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepSelectNext()
#------------------------------------------------------------------------------#
    RETURN mr_wizard.steps
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepProcess()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    DEFINE l_ltm_reference VARCHAR(10)
    DEFINE l_lbl_reference VARCHAR(10)
    DEFINE l_cmp_reference VARCHAR(10)

    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")

    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")

    LET l_ltm_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_pnl_reference)
    CALL _ADVPL_set_property(l_ltm_reference,"MARGIN",TRUE)
    CALL _ADVPL_set_property(l_ltm_reference,"COLUMNS_COUNT",1)

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Processando, por favor aguarde.")

    # Indica que o próximo componente será expansível.
    CALL _ADVPL_set_property(l_ltm_reference,"EXPANSIBLE",TRUE)

    LET l_cmp_reference = _ADVPL_create_component(NULL,"LPANEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_cmp_reference,"ALIGN","CENTER")

    LET m_prg_reference = _ADVPL_create_component(NULL,"LPROGRESSBAR",l_cmp_reference)
    CALL _ADVPL_set_property(m_prg_reference,"ALIGN","TOP")
    CALL _ADVPL_set_property(m_prg_reference,"HEIGHT",40)
    CALL _ADVPL_set_property(m_prg_reference,"MAX_VALUE",3)

    # Aplica o leiaute.
    CALL _ADVPL_set_property(l_ltm_reference,"APPLY_LAYOUT")

    RETURN l_pnl_reference
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepProcessEvent()
#------------------------------------------------------------------------------#
    DEFINE l_ind SMALLINT

    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_ALL_BUTTONS",FALSE)

    # Reinicializa a barra de progresso.
    CALL _ADVPL_set_property(m_prg_reference,"VALUE",0)

    FOR l_ind = 1 TO 3
        SLEEP 2
        CALL _ADVPL_set_property(m_prg_reference,"VALUE",l_ind)
        CALL _ADVPL_LOG_refreshDisplay()
    END FOR

    CALL _ADVPL_set_property(m_wiz_reference,"ENABLE_ALL_BUTTONS",TRUE)
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepFinish()
#------------------------------------------------------------------------------#
    DEFINE l_wiz_container VARCHAR(10)
    DEFINE l_pnl_reference VARCHAR(10)
    DEFINE l_ltm_reference VARCHAR(10)
    DEFINE l_lbl_reference VARCHAR(10)

    # Recupera a referência do painél onde será criado o painél da etapa atual.
    LET l_wiz_container = _ADVPL_get_property(m_wiz_reference,"WIZARD_CONTAINER_REFERENCE")

    LET l_pnl_reference = _ADVPL_create_component(NULL,"LPANEL",l_wiz_container)
    CALL _ADVPL_set_property(l_pnl_reference,"ALIGN","CENTER")

    LET l_ltm_reference = _ADVPL_create_component(NULL,"LLAYOUTMANAGER",l_pnl_reference)
    CALL _ADVPL_set_property(l_ltm_reference,"MARGIN",TRUE)
    CALL _ADVPL_set_property(l_ltm_reference,"COLUMNS_COUNT",1)

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Mais informações sobre este componente você encontra na TDN em:")

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","http://tdn.totvs.com.br/display/FRAMJOI/LGX+-+LWIZARD")
    CALL _ADVPL_set_property(l_lbl_reference,"CLICK_EVENT","LWIZARD_openTDN")
    CALL _ADVPL_set_property(l_ltm_reference,"ADD_EMPTY_ROW")

    LET l_lbl_reference = _ADVPL_create_component(NULL,"LLABEL",l_ltm_reference)
    CALL _ADVPL_set_property(l_lbl_reference,"TEXT","Obs.: você poderá clicar em ""Voltar"" para recomeçar o processamento.")

    # Aplica o leiaute.
    CALL _ADVPL_set_property(l_ltm_reference,"APPLY_LAYOUT")

    RETURN l_pnl_reference
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_stepFinishBack()
#------------------------------------------------------------------------------#
    RETURN "WELCOME"
END FUNCTION

#------------------------------------------------------------------------------#
FUNCTION LWIZARD_openTDN()
#------------------------------------------------------------------------------#
    CALL LOG_previewInBrowser("http://tdn.totvs.com.br/display/FRAMJOI/LGX+-+LWIZARD")
END FUNCTION