Árvore de páginas

Versões comparadas

Chave

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

...

Aviso
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) aplicam filtros personalizados ao browse foi atualizada para se adequar ao novo modelo de interface.

...


Aviso
titleAntes do SmartX
  • 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
titleCom 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
titleExpressã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
titleExpressã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
titleFiltro 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
languagecpp
themeMidnight
titleExpressã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.

ContextoSintaxe permitidaInício com @Alias da tabela (ALIAS->)Operadores lógicos
Rotinas sem SmartXADVPL ou SQLNão obrigatórioPermitido.AND. / .OR.
Rotinas com SmartXSomente SQLObrigatórioNão permitidoAND / OR

...