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'))