ALIAS SE_PROD
INDEX SEIP_N PDESC

COMANDO ANTES #TEXTO_FONTE
   Private oQbe, z_np:=0, znDias:=180, zQtdUnids:=0, ztCusto:=0, ztVenda:=0

   oQbe:=oQbe():New('_prods')

   oQbe:AddLine( {"2;3;Saldos com mais de quantas unidades?", "@zQtdUnids", @zQtdUnids, "99999", "", "" } ) 
   oQbe:AddFiltro("3;2;Saldos em Estoque:", { ;
                      {'&0. Todos os Produtos ', {||.t.} } ,;
                      {'&1. Somente com Estoque   ', {||peatual>0} } ,;
                      {'&2. So Saldos Zerados     ', {||peatual=0} } } )
   oQbe:AddFiltro( "8;3;Grupo de Preco:", {||pGPreco}    ,, 'se_gpre;qbe_psegpre',   {'Todos ','Alguns '} ,,, 'm_QbepGPreco')
   oQbe:AddFiltro( "9;3;SubDivisoes...:", {||pDivisao}   ,, 'se_subd;qbe_psesubd',   {'Todas ','Algumas'} ,,, 'm_QbepDivisao')
   oQbe:AddFiltro("10;3;Classes Volume:", {||pAbcFisica} ,, 'se_gabcg;qbe_psegabcg', {'Todas ','Algumas '} ,,, 'm_QbepAbcFisica')
   oQbe:AddFiltro("11;3;Classes Valor.:", {||pAbcVenda}  ,, 'se_gabcf;qbe_psegabcf', {'Todas ','Algumas'})
   oQbe:AddFiltro("12;3;Fabricantes...:", {||pPrincforn} ,, 'sccpfab;qbe_psccpfab',  {'Todos ','Alguns '} ,,, 'm_QbePfFor')
       oQbe:AddFiltro( "12;30;", {||pPrincforn} ,,,{'psq_brow','psq_brow();sccpfab;psccpfab;N;N;',0,'999999',"empty(m_QbePfForGet)"} ,,, 'm_PfFor')
   oQbe:AddFiltro("13;3;Descricoes....:", {||pDesc},    'Todas ')
   oQbe:AddFiltro("14;3;Referencias...:", {||pRefFab},  'Todas ')

   if .not. oQbe:QuickDialog("Qbe_PrBal05", "60;14;Relacao de Produtos")
      Return .f.
   endif

   dbSelectArea('se_prod')
   oLst:cAlias_DataCols := '_prdbal'
   oLst:cAliasMaster := '_prdbal'
   
   oLst:lPortrait := .f.
   oLst:lGeraDbTmp := .f.
   oLst:lOutputFr3 := .f.
   oLst:lOutputPdf := .t.
   
   // oLst:lOutputFr3 := .t.

   oLst:Cab1( "Relacao Geral de Produtos - PrCompra x PrVenda")
   oLst:AddCab( "" )
   oLst:Cab4(oQbe:ExpressaoDeFiltragemParaImprimir, Dtoc(s_datual)+" as "+left(time(),5)+"hs")
   // se !empty(oQbe:ExpressaoDeFiltragemParaImprimir) entao ( , oLst:Cab4(  ))
  
   oLst:AddCab( '_LINHA_FINA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_GROSSA_' )

   oLst:AddCol('Codigo;pCod;N;999999;6;;')
   oLst:AddCol('Posicao;pPosicao;C;@s4;4;;') 
   oLst:AddCol('Descricao;pDesc;C;@s35;35;;') 

   oLst:AddCol('Div;PDIVISAO;C;9999;4;S;') 
   oLst:AddCol('SubDivisao;eVal(zbSubd,pDivisao);P;@S20;20;N;') 

   oLst:AddCol('Pr.Compra;pVluVen3;N;@e 99,999.99;9;;;Direita;NaoSome;') 
   oLst:AddCol('Pr.Venda;pVluVenda;N;@e 99,999.99;9;;;Direita;NaoSome;') 
   oLst:AddCol('%MkUp;if(pVluVen3>0.and.pVluVenda>pVluVen3,100*(pVluVenda/pVluVen3-1),0);P;@e 999.99%;7;;;Direita;NaoSome;') 
   
   oLst:AddCol('UND;pUnidade;C;@S5;5;;') 
   oLst:AddCol('Frc;pItens;N;999.99;6;;') 
   oLst:AddCol('gp;pgPreco;C;XX;2;;') 
   oLst:AddCol('f;pabcfisica;C;X;1;;') 
   oLst:AddCol('Saldo;pEatual;N;@e 99999,999.99;12;;') 
   oLst:AddCol('Tot.Compra;if(pEatual>0,pEatual*pVluVen3,0);P;@e 99999,999.99;12;;;Direita;Some;') 
   oLst:AddCol('Tot.Venda;if(pEatual>0,pEatual*pVluVenda,0);P;@e 99999,999.99;12;;;Direita;Some;') 

   //   oLst:AddCol('UltVnda;pdatavend;D;99.99.9999;10;;;Direita;NaoSome;') 
   //   oLst:AddCol('DiasUltV;if(Day(pDataVend)>0,s_datual-pDataVend,"");P;9999;8;;;Direita;NaoSome;') 
   //   oLst:AddCol('DiasUltC;if(Day(pdatacomp)>0,s_datual-pDataComp,"");P;9999;8;;;Direita;NaoSome;') 

   // oLst:AddCol('CF;pCategoria;C;@S5;5;;') 
   // oLst:AddCol('Tp;ptipoitem;P;!!;2;S;')
   // oLst:AddCol('Finalidade;Efd_TipoItem();P;@S13;13;N;')

   oLst:AddRodape( '_LINHA_FINA_', "", {|| "Pagina "+Str(++pag,4)+" / ####"} )
   debugalert('1')

   se_prod->( dbgotop(),  oLst:DbEval( {|| if(pVluVen3<=0,(RegLock(),_field->pVluVen3:=pVluVenda*.70),) , if(pVluVenda<=0,(RegLock(),_field->pVluVenda:=pVluVen3*1.50),), ++z_np, ztCusto+=peAtual*pVluVen3, ztVenda+=peAtual*pVluVenda}, {|| peAtual>=zQtdUnids .and. oQbe:Filtro_ok()} ) )

   oLst:PrtD( '_LINHA_GROSSA_' )
   oLst:SetFormatSomaCol(3, {||"** TOTAIS:"}, .t.)
   oLst:PrtD({"style"=>"font:Courier-BoldOblique"}, '_SOMACOLS_GLOBAL_' )
   oLst:PrtD( '')

   oLst:PrtD( 'Produtos Listados: '+Transform(z_np,'@E 999,999') )
   oLst:PrtD( 'Valor Total de Custo: '+Transform(ztCusto,'@E 999,999,999.99') )
   oLst:PrtD( 'Valor Total de Venda: '+Transform(ztVenda,'@E 999,999,999.99') )

   debugalert('3')

#FIM_TEXTO_FONTE
