Bom dia pessoal, tudo bom? estou desenvolvendo um relatório com a classe FWMSExcel. Tenho um parâmetro com 3 opções a opção 1 está extraindo normalmente os valores, a opção 3 também está extraindo porém a opção 2 não extrai os valores corretos, onde o ideal e que ele extraia somente os registros com datas maiores do que a informada no parâmetro MV_PAR01 e MV_PAR02, e ele está extraindo datas menores do que as informadas nos parâmetros acima.
Ja tentei de varias formas até fazer a mesma lógica da opção 1 alterando somente os operadores lógicos porém não extrai nenhum registro.
SELECT
C6_NUM,
C6_ITEM,
C6_PRODUTO,
C6_DESCRI,
C6_QTDVEN,
C6_PRCVEN,
C6_VALOR,
C6_ZZGRUPO,
C6_ZZDSCG,
C5_CLIENTE,
A1_NOME,
A1_LOJA,
C5_EMISSAO,
C6_ZZMAT,
C6_ENTREG,
C6_ZZPRZ,
C6_ZZDT1,
C6_ZZDT2,
C6_ZZDT3,
C6_ZZOBSV,
C5_ZZLIBEN,
C5_ZZUENG,
C6_CF,
C2_NUM,
C2_ITEM,
H6_OPERAC,
H1_DESCRI,
H6_QTDPROD,
H6_DTAPONT
FROM SC6010 SC6
LEFT JOIN SC2010 SC2
ON C6_FILIAL = C2_FILIAL
AND C6_PRODUTO = C2_PRODUTO
AND C6_NUMOP = C2_NUM
AND C6_ITEMOP = C2_ITEM
AND SC2.D_E_L_E_T_ = ' '
AND C6_OP <> ''
INNER JOIN SC5010 SC5 ON
C5_FILIAL = C6_FILIAL
AND C5_NUM = C6_NUM
AND SC5.D_E_L_E_T_ = ' '
LEFT JOIN SA1010 SA1 ON
C5_CLIENTE = A1_COD
AND C5_LOJACLI = A1_LOJA
AND C5_TIPO = 'N'
AND SC5.D_E_L_E_T_ = ' '
AND SA1.D_E_L_E_T_ = ' '
LEFT JOIN SA2010 SA2 ON
C5_CLIENTE = A2_COD
AND C5_LOJACLI = A2_LOJA
AND C5_TIPO <> 'N'
AND SC5.D_E_L_E_T_ = ' '
AND SA2.D_E_L_E_T_ = ' '
LEFT JOIN
(SELECT H6_FILIAL,H6_DTAPONT, MAX (H6_OPERAC)H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO, SUM(H6_QTDPROD)H6_QTDPROD +CRLF
FROM SH6010 SH6A
WHERE SH6A.D_E_L_E_T_ = ' '
AND SH6A.H6_OPERAC IN
(SELECT MAX(SH6B.H6_OPERAC) H6_OPERAC
FROM SH6010 SH6B
WHERE SH6B.D_E_L_E_T_ = ' '
AND SH6B.H6_OP = SH6A.H6_OP
GROUP BY SH6B.H6_FILIAL, SH6B.H6_OP
)GROUP BY H6_FILIAL,H6_OPERAC, H6_OP, H6_PRODUTO, H6_RECURSO,H6_DATAINI,H6_DTAPONT
) SH6 ON
SH6.H6_FILIAL = C6_FILIAL
AND SH6.H6_PRODUTO = C6_PRODUTO
AND SUBSTRING(SH6.H6_OP, 1, 6) = C6_NUMOP
AND SUBSTRING(SH6.H6_OP, 7, 2) = C6_ITEMOP
LEFT JOIN SH1010 SH1 ON
H1_FILIAL = SH6.H6_FILIAL
AND H1_CODIGO = SH6.H6_RECURSO
AND SH1.D_E_L_E_T_ = ' '
WHERE
SC6.D_E_L_E_T_ = ' '
If !Empty(MV_PAR03)
AND C5_NUM = '+MV_PAR03+'
EndIf
//Parametro correto
If nOpcFiltr == 1
AND (
( C6_ENTREG <= '+DtoS(MV_PAR01)+' OR C6_ENTREG <= '+DtoS(MV_PAR02)+' )
AND ( C6_ZZDT1 <= '+DtoS(MV_PAR01)+' OR C6_ZZDT1 <= '+DtoS(MV_PAR02)+' )
AND ( C6_ZZDT2 <= '+DtoS(MV_PAR01)+' OR C6_ZZDT2 <= '+DtoS(MV_PAR02)+' )
AND ( C6_ZZDT3 <= '+DtoS(MV_PAR01)+' OR C6_ZZDT3 <= '+DtoS(MV_PAR02)+' )
)
AND C6_ZZMAT = 'S'
//Parametro que extrai os valores incorretos
//Todos os campos são do tipo data exceto o C6_ZZMAT
ElseIf nOpcFiltr == 2
AND (
( C6_ENTREG >= '+DtoS(MV_PAR01)+' OR C6_ENTREG >= '+DtoS(MV_PAR02)+'
AND C6_ZZPRZ >= '+DtoS(MV_PAR01)+' OR C6_ZZPRZ >= '+DtoS(MV_PAR02)+'
AND C6_ZZDT1 >= '+DtoS(MV_PAR01)+' OR C6_ZZDT1 >= '+DtoS(MV_PAR02)+'
AND C6_ZZDT2 >= '+DtoS(MV_PAR01)+' OR C6_ZZDT2 >= '+DtoS(MV_PAR02)+'
AND C6_ZZDT3 >= '+DtoS(MV_PAR01)+' OR C6_ZZDT3 >= '+DtoS(MV_PAR02)+' )
)
AND C6_ZZMAT = 'S'
//Parametro correto
ElseIf nOpcFiltr == 3
AND C6_ZZMAT = 'N'
EndIf
AND C6_CF IN ('6101','5101','6102','5102','6107','6117','5117','5933','6933','5124','6108','6118','5401','6404','7101','5551','6551','6109','6401')
AND C5_TIPO = 'N'
AND C6_NOTA = ' '
AND C6_BLQ = ' '
ORDER BY C6_NUM+C6_ITEM