| Nota |
|---|
| icon | false |
|---|
| title | SmartX - 12.1.2610 |
|---|
|
A partir da release 12.1.2610, a rotina passa a permitir a visualização do browser utilizando o Smart X SmartX. Com essa alteração, a implementação de Pontos de Entrada (PE) relacionados à inclusão de opções de menu passa a ter um novo comportamento, especialmente no que se refere à forma como as ações são exibidas na interface. |
| Aviso |
|---|
| icon | false |
|---|
| title | Fase de testes |
|---|
|
Funcionalidade disponível a partir da release 12.1.2610 e em rotinas com browser SmartX habilitado. |
...
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)
| Aviso |
|---|
title | Antes do SmartX |
|---|
| Opções adicionadas via PE apareciam exclusivamente |
no menu de ações da rotina (dropdown)| 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 |
o Rotinas MVC utilizavam o comando não existia a utilização da 10ª posição do array de retorno |
do PE utilizava posições fixas para configurar cada propriedade do item de menu.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 |
Rotinas MVC utilizam a flag PAGEACTION | Dica |
|---|
| title | Com 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.Em rotinas MVC, o parâmetro PAGEACTION pode ser utilizado diretamente ao final da instrução |
Rotinas não-MVC utilizam a 10ª posição do array de retorno com valor .T. para indicar que o item é uma PageAction| Dica |
|---|
|
Botões adicionados ao menu Ações do registro (sem a utilização do lPageAction ou PAGEACTION) normalmente representam funcionalidades que dependem de um registro selecionado para sua execução. Já os botões exibidos como Page Action (lPageAction = .T. ou utilização do PAGEACTION no ADD OPTION) geralmente representam funcionalidades independentes da seleção de registros, ficando disponíveis diretamente no browse para acesso rápido. |
...
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 |
|---|
| title | Pontos de Entrada - MVC |
|---|
|
Em rotinas MVC, o array de opções é recebido via PARAMIXB[1] e as opções são adicionadas com o comando ADD OPTION. |
do SmartX, conforme detalhado abaixo:
| Nota |
|---|
| title | Pontos de Entrada - Não-MVC |
|---|
|
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. |
| Bloco de código |
|---|
| language | cpp |
|---|
| theme | Midnight |
|---|
| title | Exemplo 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 ) |
| Bloco de código |
|---|
| language | cpp |
|---|
| theme | Midnight |
|---|
| title | Exemplo de PE - Não MVC |
|---|
|
#INCLUDE 'TLPP-CORE.TH'
#INCLUDE 'FWMVCDEF.CH'
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 ) |
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.
Image Added
...