Árvore de páginas

Versões comparadas

Chave

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

...

Comportamento Anterior X Novo Comportamento (SmartX)


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.

...

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
titleExemplo de PE - MVC
#INCLUDE 'TLPP-CORE.TH'

User Function CTB400FIL()

    Local cFiltro  As Character
    Local cLote    As Character
    Local cSubLote As Character

    cLote    := "000001"
    cSubLote := "001"

    // Filtro em sintaxe SQL - obrigatório iniciar com @ para rotinas SmartX.
    cFiltro := "@ CT2_LOTE = '" + cLote + "' AND CT2_SBLOTE = '" + cSubLote + "'"

Return( cFiltro )
Aviso
titleFiltro Personalizado - SmartX (Incorreto)

O uso de referências ADVPL (ALIAS->NOME_CAMPO) e operadores .AND. não são suportados em rotinas SmartX e podem causar falha na aplicação do filtro.

...