...
| Aviso |
|---|
|
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) aplicam filtros personalizados ao browse foi atualizada para se adequar ao novo modelo de interface.
...
| Aviso |
|---|
| - Filtros podiam utilizar expressões ADVPL com referências ao alias da tabela (
ALIAS->NOME_CAMPO). - Operadores lógicos ADVPL eram aceitos (
.AND. / .OR.). - Não havia exigência de sintaxe SQL nem do prefixo
@.
|
|
| Dica |
|---|
| title | Com SmartX (12.1.2610+) |
|---|
| - O filtro deve ser escrito obrigatoriamente em sintaxe SQL pura, sem alias de tabela.
- A expressão de filtro deve iniciar com o caractere
@. - Operadores lógicos SQL devem ser utilizados (
AND / OR). - A regra se aplica somente a rotinas com Smart X
- Rotinas sem Smart X continuam aceitando Sintaxe ADVPL.
|
|
|---|
02. Ponto de Entrada - Filtros Personalizados do Browse.
Os Pontos de Entrada responsáveis pela aplicação de filtros personalizados no browse tiveram seu comportamento alterado com a adoção do Smart X. O filtro retornado pelo PE deve seguir obrigatoriamente à sintaxe SQL.
| Nota |
|---|
| title | Expressão ADVPL - Incorreto |
|---|
| Referências ao alias da tabela (ALIAS->NOME_CAMPO) e operadores .AND. / .OR. não são suportados em rotinas Smart X. |
|
| Dica |
|---|
| title | Expressão SQL - Correto |
|---|
| Expressão SQL pura, sem alias de tabela, iniciando obrigatoriamente com @. Operadores AND / OR em sintaxe SQL. |
|
|---|
03. Exemplo de Utilização.
| Dica |
|---|
| title | Filtro Personalizado - SmartX (Correto) |
|---|
|
A expressão retornada será: @ CT2_LOTE = '000001' AND CT2_SBLOTE = '001' — sintaxe SQL válida, iniciada com @. |
...
| Bloco de código |
|---|
| language | cpp |
|---|
| theme | Midnight |
|---|
| title | Expressão ADVPL - Incorreto (SmartX) |
|---|
|
#INCLUDE 'TLPP-CORE.TH'
User Function CTB400FIL()
Local cFiltro As Character
Local cLote As Character
Local cSubLote As Character
// INCORRETO - Referência direta ao alias da tabela (não compatível com Smart X).
cLote := CT2->CT2_LOTE
cSubLote := CT2->CT2_SBLOTE
// INCORRETO - Operadores lógicos ADVPL e alias na expressão de filtro.
cFiltro := " CT2->CT2_LOTE = '" + cLote + "' .AND. " CT2->CT2_SBLOTE = '" + cSubLote + "'"
Return( cFiltro ) |
04. Resumo Comparativo.
| Contexto | Sintaxe permitida | Início com @ | Alias da tabela (ALIAS->) | Operadores lógicos |
|---|
| Rotinas sem SmartX | ADVPL ou SQL | Não obrigatório | Permitido | .AND. / .OR. |
| Rotinas com SmartX | Somente SQL | Obrigatório | Não permitido | AND / OR |
...