...
Comportamento Anterior X Novo Comportamento (SmartX)
| Aviso |
|---|
| icon | false |
|---|
| title | Antes 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 |
|---|
| icon | false |
|---|
| 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.
|
|
|---|
...
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 |
|---|
| icon | false |
|---|
| 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 |
|---|
| icon | false |
|---|
| 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 |
|---|
| icon | false |
|---|
| 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 SQL - Correto (SmartX) |
|---|
|
#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 |
|---|
| icon | false |
|---|
| title | Filtro 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. |
...