Árvore de páginas

Versões comparadas

Chave

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

...

Aviso
iconfalse
titleFase de testes

Funcionalidade disponível a partir da release 12.1.2610.

01. Visão Geral

...

O SmartX é a integração do framework POUI ao Protheus, permitindo que as rotinas sejam renderizadas em um browser moderno com componentes visuais mais ricos e responsivos. Com essa mudança, a forma como os Pontos de Entrada (PE's) customizam o menu de ações das rotinas foi atualizada para se adequar ao novo modelo de interface.

...


Aviso
iconfalse
titleAntes do SmartX
  • Opções adicionadas via PE apareciam exclusivamente no menu de ações da rotina (dropdown), sem possibilidade de destaque visual diferenciado.
  • Não havia distinção visual entre uma ação principal e uma ação secundária — todos os itens recebiam o mesmo tratamento visual.
  • Em rotinas não-MVC, o array de retorno do PE utilizava posições fixas para configurar cada propriedade do item de menu.
  • Rotinas MVC utilizavam o comando ADD OPTION, porém sem suporte ao parâmetro PAGEACTION.



Dica
iconfalse
titleCom SmartX (12.1.2610+)
  • Opções podem ser exibidas como Page Actions — botões de destaque visíveis diretamente no browse, fora do menu dropdown, facilitando o acesso às ações mais utilizadas pelo usuário.
  • A distinção entre ação de destaque e ação secundária é feita pelo parâmetro PAGEACTION, presente na definição de cada item do menu.
  • Rotinas MVC utilizam a flag PAGEACTION diretamente ao final da instrução ADD OPTION.
  • Rotinas não-MVC utilizam a 10ª posição do array de retorno com valor .T. para indicar que o item é uma PageAction.


02. Ponto de Entrada - Inclusão de Opções no Menu da Rotina

...

Os Pontos de Entrada responsáveis pela inclusão de novas opções no menu nos menus das rotinas tiveram seu comportamento alteradoajustado com a adoção do SmartX. O novo padrão diferencia rotinas do tipo MVC e Não-MVC, cada uma com sua própria sintaxe e parâmetros.

...

do SmartX, conforme detalhado abaixo:

...

Pontos de Entrada -

...

MVC

...

iconfalse
titlePontos de Entrada - Não-MVC

...

Bloco de código
languagecpp
themeMidnight
titleExemplo de PE - MVC
#INCLUDE 'TLPP-CORE.TH'
#INCLUDE 'FWMVCDEF.CH'

User Function CT020ROT()

    Local aNovoItemMenu As Array
    Local lPageAction   As Logical

    aNovoItemMenu := PARAMIXB[ 1 ]
    lPageAction   := .T. // Indica que o Botão Será Adicionado ao PageAction do Browse da Rotina.

    // Opção no Menu - Ações de Registro.
    ADD OPTION aNovoItemMenu TITLE 'Teste SmartX'               ACTION 'Alert("Teste SmartX")' OPERATION MODEL_OPERATION_UPDATE ACCESS 0

    // Opção Exibida Diretamente no Browse da Rotina - Page Action.
    ADD OPTION aNovoItemMenu TITLE 'Teste SmartX - Page Action' ACTION 'Alert("Teste SmartX")' OPERATION MODEL_OPERATION_UPDATE ACCESS 0 PAGEACTION

Return( aNovoItemMenu )


Pontos de Entrada - Não MVC

Bloco de código
languagecpp
themeMidnight
titleExemplo de PE - Não MVC
#INCLUDE 'TLPP-CORE.TH'

User Function CT240BUT()

    Local aNovoItemMenu As Array
    Local lPageAction   As Logical

    aNovoItemMenu := {}
    lPageAction   := .T. // Indica que o Botão Será Adicionado ao PageAction do Browse da Rotina.

    // Opção no Menu - Ações de Registro.
    aAdd( aNovoItemMenu, { 'Teste SmartX - Page Action', 'Alert( "Teste SmartX" )', 0, 9,,,,,, lPageAction } )

    // Opção Exibida Diretamente no Browse da Rotina.
    aAdd( aNovoItemMenu, { 'Teste SmartX', 'Alert( "Teste SmartX" )'			  , 0, 7 				   } )

Return( aNovoItemMenu )

03. Browse da Rotina

...

Abaixo são demonstrados dois exemplos de inclusão de botões: um utilizando os parâmetros PAGEACTION/lPageAction, que exibe o botão diretamente no PageAction do browser, e outro sem a utilização desses parâmetros, no qual o botão é exibido dentro do menu Ações do registro

...

Foram incluídos exemplos de rotinas que utilizam o PageAction, bem como casos em que ele não é aplicado, com o objetivo de demonstrar as diferenças entre as abordagens e esclarecer em quais cenários cada uma se mostra mais adequada.

Image Modified


...