Olá, Prezados.
Com a atualização para nova tecnologia 19.2 e versão de sistema 05.20.3, estamos com problemas nas consultas WES elaboradas na camada do cliente.
Pedimos seu suporte para identificar qual o nome em @CAMPO (<filtro simples>) que devemos utilizar para ajustarmos o Critério de Seleção desta Tabela Virtual que utilizamos como Filtro?
Testes Fluipress na HOMOLOGACAO com a Tecnologia 19.2 v05.20.0.1475 | 23/03/2020 08:00 2 [pesquisa simples + condições com Tabela Virtual] dúvidas relacionadas:
Na imagem da liberação da 19.1 (que só recebemos o recurso agora na 19.2) é apresentado um recurso “pesquisa simples + condições” que não existe registro nesta documentação http://wiki.benner.com.br/wiki/index.php?title=Tabela_virtual_como_filtro_de_grid, mas que é de fundamental importância para atender o que a documentação apresenta “Tabela virtual como filtro de grid”:
Na nossa prática de customização da Camada cliente nos deparamos com necessidades que até podem ser atendidas com o recurso “Tabela virtual como filtro de grid”, vejam abaixo um exemplo de SQL que precisamos elaborar: Vamos separar só o SQL do Critério de Seleção para facilitar o entendimento do SQL:
A.PRODUTOPAI IN (SELECT PP.HANDLE FROM PD_PRODUTOSPAI PP WHERE PP.MARCAPRODUTO = @CAMPO(MARCAPRODUTO) AND (-1 = @CAMPO(PROCEDENCIA) OR PP.K_LOCALPROCEDENCIA = @CAMPO(PROCEDENCIA) ) AND (PP.K_ITEMCKD LIKE (CASE @CAMPO(CKD) WHEN 1 THEN '[SN]' WHEN 2 THEN '[S]' ELSE '[N]' END ) ) AND (PP.K_OVERSIZE LIKE (CASE @CAMPO(OVERSIZE) WHEN 1 THEN '[SN]' WHEN 2 THEN '[S]' ELSE '[N]' END ) ) AND (PP.K_ESTOCAVEL LIKE (CASE @CAMPO(ESTOCAVEL) WHEN 1 THEN '[SN]' WHEN 2 THEN '[S]' ELSE '[N]' END ) ) ) AND (A.ATIVO = 'S') AND (-1 = @CAMPO(AE) OR A.ALMOXARIFADOESTOQUE = @CAMPO(AE)) AND (-1 = @CAMPO(AA) OR A.K_ALMOXARIFADOALTERNATIVO = @CAMPO(AA)) AND (A.HANDLE IN ( CASE @CAMPO(CRITERIOANALISE) WHEN 1 THEN (SELECT DISTINCT(IPF.HANDLE) FROM PD_PRODUTOS IPF WHERE IPF.EMPRESA = @EMPRESA AND IPF.FILIAL IN @FILIAIS AND IPF.HANDLE = A.HANDLE AND IPF.ATIVO = 'S') WHEN 2 THEN (SELECT DISTINCT(OVI.PRODUTO) FROM CM_ORDEMVENDAITENS OVI INNER JOIN CM_ORDENSVENDA OV ON (OV.HANDLE = OVI.ORDEMVENDA AND OV.EMPRESA = @EMPRESA AND OV.FILIAL IN @FILIAIS AND OV.STATUS IN (2,3)) WHERE (OVI.STATUS IN (2,3,4)) AND OVI.PRODUTO = A.HANDLE AND ((OVI.QUANTIDADE - OVI.QUANTIDADEATENDIDA - OVI.QUANTIDADEFATURADA) > 0) ) WHEN 3 THEN (SELECT DISTINCT(RC.PRODUTO) FROM CP_REQUISICOES RC LEFT JOIN CP_REQUISICOESPAI RCP ON (RCP.HANDLE = RC.REQUISICAOPAI) LEFT JOIN PR_ORDEMPRODUCAOITENS OPI ON (OPI.PRODUTO = RC.PRODUTO) LEFT JOIN PR_ITEMCONSUMOS IC ON (IC.ORDEMPRODUCAOITEM = OPI.HANDLE) LEFT JOIN PR_REQUISICOESCONSUMOITEM RCI ON (RCI.ORDEMPRODUCAOITEM = OPI.HANDLE) LEFT JOIN PR_ORDENSPRODUCAO OP ON (OP.HANDLE = OPI.ORDEMPRODUCAO AND OP.EMPRESA = @EMPRESA AND OP.FILIAL IN @FILIAIS) LEFT JOIN PD_PRODUTOS IPF ON (IPF.HANDLE = RC.PRODUTO) LEFT JOIN PD_PRODUTOSPAI IPP ON (IPP.HANDLE = IPF.PRODUTOPAI) WHERE (RC.HANDLE = RCI.REQUISICAO) AND (RC.PRODUTO = A.HANDLE) AND ((RC.QUANTIDADE - RC.QUANTIDADEATENDIDA) > 0) AND (RC.TIPO = 'P') AND (OP.STATUS IN (2,6)) AND (RC.STATUS IN (2,9)) ) END) )
O SQL nem é tão complexo quanto parece, porem agora com o recurso “pesquisa simples + condições”, Qual o nome em @CAMPO() que vamos utilizar para ajustarmos o Critério de Seleção desta Tabela Virtual que utilizamos como Filtro?
Existe um outra forma de integrar “pesquisa simples + condições” com Tabela Virtual e fazer funcionar como esperado?
Agradecemos pela atenção.
Ficamos no aguardo e à disposição.
At.te