Páginas filhas
  • TVIOVJ_DT_Pergunta SX1 do tipo Range com hífen no conteúdo dos campos

NOME DO REQUISITO

Linha de Produto:

Microsiga Protheus.

Módulo:

Todos.

Funções:

MakeAdvplExpr() e MakeSqlExpr().

Chamados relacionados:

TVIOVJ

 

Criado tratamento nas funções MakeAdvplExpr() e MakeSqlExpr() para que nas perguntas de relatório (SX1) do tipo Range (X1_GSC == "R") seja possível utilizar códigos com hífen.

Obs.:Para definir intervalos de dados sequenciais, utilize hífen (1-3) e para os não sequenciais, ponto e virgula (3;5;1). Utilizar aspas simples para desconsiderar hifens nos conteúdos.

Exemplo: '000001-1'-'000004-9';000006;0000008-'000009-8'

-No exemplo a seguir será criada uma pergunta e serão utilizadas as funções MakeAdvplExpr() e MakeSqlExpr() para montar as expressões:

 

User Function tstRange()

 

Pergunte("RANGETESTE")

conout("Sem tratamento:",mv_par01)

 

MakeAdvplExpr("RANGETESTE")

conout("MakeAdvplExpr:",mv_par01)

 

MakeSqlExpr("RANGETESTE")

conout("MakeSqlExpr:",mv_par01)

 

Return

 

Ao executar a função a tela de pergunte é exibida:

*Nesse caso foi informado o valor : '0000000000001-1'-'0000000000001-9';PROD1;'0000000000004-1'

 

Os seguinte resultados foram exibidos no console:

 

Sem tratamento:
'0000000000001-1'-'0000000000001-9';PROD1;'0000000000004-1'

MakeAdvplExpr:
((A1_COD >= '0000000000001-1' .AND. A1_COD <= '0000000000001-9') .OR. (Trim(A1_COD) $ 'PROD1,0000000000004-1'))

MakeSqlExpr:
(A1_COD BETWEEN '0000000000001-1' AND '0000000000001-9' OR A1_COD IN('PROD1','0000000000004-1'))