Histórico da Página
...
| Aviso | ||||
|---|---|---|---|---|
| ||||
Funcionalidade disponível a partir da release 12.1.2610 e em rotinas com browser SmartX habilitado. |
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.
...
Comportamento Anterior X Novo Comportamento (SmartX)
| Antes | Depois | |||
|---|---|---|---|---|
| Aviso | ||||
| icon | false | title | Antes do SmartX||
| Opções adicionadas via PE apareciam exclusivamente | ||||
| no menu de Outras ações, sem possibilidade de destaque visual diferenciado. | As opções podem ser exibidas como Page Actions, permitindo destacar botões diretamente no browse, fora do menu dropdown, facilitando o acesso às ações mais utilizadas. | |||
| Não havia distinção visual entre uma ação principal e uma ação secundária | ||||
| , pois todos os itens recebiam o mesmo tratamento visual. | A distinção entre ação principal e ação secundária passa a ser realizada através do parâmetro PAGEACTION, definido em cada item de menu. | |||
Em rotinas | ||||
não-MVC, | ||||
não existia a utilização da 10ª posição do array de retorno | ||||
para definir o parâmetro responsável pela exibição do item como Page Action. | Em rotinas não-MVC, a 10ª posição do array de retorno deve receber o valor .T. para indicar que o item será exibido como Page Action. | |||
| Rotinas MVC utilizavam o comando | ||||
ADD OPTION, porém sem suporte ao parâmetro | ||||
PAGEACTION. | ||||
| Dica | ||||
| ||||
Em rotinas MVC, o parâmetro PAGEACTION pode ser utilizado diretamente ao final da instrução | ||||
ADD OPTION. | ||||
| Dica | ||
|---|---|---|
| ||
Botões adicionados ao menu Ações do registro (sem a utilização do |
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.
| Nota | ||||
|---|---|---|---|---|
| ||||
Em rotinas MVC, o array de opções é recebido via PARAMIXB[1] e as opções são adicionadas com o comando ADD OPTION. |
| Nota | ||||
|---|---|---|---|---|
| ||||
Em rotinas Não-MVC, o array é criado do zero e as opções são adicionadas via aAdd(), utilizando posições fixas no array. |
do SmartX, conforme detalhado abaixo:
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
#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 ) |
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
#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. Exemplo de 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.
...
