Segue o código PHP que estou colocando no botão Ajax:
if(m_valida_filtro_export({DT_AUTO_INICIAL}, {DT_AUTO_FINAL}, {NR_NF_INICIAL}, {NR_NF_FINAL})){
$var_sql_exp_nfe = “select P.CHAVE_ACESSO
from PDV P
where EMPRESA_ID = ‘[var_emp_id]’
and CD_STATUS IN (‘100’, ‘101’, ‘110’)”;
if( {DT_AUTO_INICIAL} != 'null' and !empty(trim({DT_AUTO_INICIAL})) )
$var_sql_exp_nfe .= " and cast(P.DT_AUTORIZACAO as date) between cast('".{DT_AUTO_INICIAL}."' as date) and cast('".{DT_AUTO_FINAL}."' as date)";
if( {NR_NF_INICIAL} != 'null' and !empty(trim({NR_NF_INICIAL})) )
$var_sql_exp_nfe .= " and P.NR_NF between '".{NR_NF_INICIAL}."' and '".{NR_NF_FINAL}."'";
$var_sql_exp_nfe .= " order by P.DT_AUTORIZACAO";
sc_select(dset_exp_nfe, $var_sql_exp_nfe);
//Verifica se houve retorno com o filtro mencionado pelo usuário
if( $dset_exp_nfe->fields[0] !== false and !empty($dset_exp_nfe->fields[0]) ){
//Variável utilizada para gravar o arquivo XML na pasta e depois gerar o download
$var_nome_pasta_exp = 'Exp_XML_DANFE_'.[var_emp_id];
$var_cam_exp = lib_m_GetCamPastaTemp().$var_nome_pasta_exp;
$var_ret_func_exp = '';
while( !$dset_exp_nfe->EOF ){
//Armazena na variável o retorna da função que faz a exportação do XML
$var_ret_func_exp .= lib_m_ExportXmlNFe([var_emp_id], $dset_exp_nfe->fields[0], $var_cam_exp);
$dset_exp_nfe->MoveNext();
}
$dset_exp_nfe->Close();
//Valida se houve retorno de erro na exportação do XML
if( !empty(trim($var_ret_func_exp)) )
echo "<script>alert('".$var_ret_func_exp."');</script>";
else{
if( lib_m_Download($var_cam_exp, $var_nome_pasta_exp, true) )
echo "<script>alert('A exportação foi concluída com sucesso!');</script>";
else
echo "<script>alert('Não foi possível concluir a exportação.');</script>";
}
}
else
echo "<script>alert('Não há resultado para esse filtro.');</script>";
}
sc_exit(sel);