ALIAS _ItKits

variavel zQtdOs=1
variavel zPrCustoEmFalta =0
variavel zFgFaltas="S"
variavel zFgSoFaltas="N"
variavel zFgPrecos="N"
variavel sPrtLineLen = 80

T10,10,18,60,Parametros 
T2,2,Quantidade a Montar.....:,6,zQtdOs,999999
T3,2,Imprime Insumos em Falta:,1,zFgFaltas,!
T4,2,Imprime Apenas as Faltas:,1,zFgSoFaltas,!
T5,2,Imprime Precos de Custo ?,1,zFgPrecos,!

comando antes #TEXTO_FONTE
   oLst:lPortrait := .t.
   oLst:nLinesPorPagina := 80

   oLst:AddCol('Insumo;PcodInsumo;N;999999;6;;')
   oLst:AddCol('Descricao;pdesc;C;@S35;35;;')
   oLst:AddCol('Qtd_1;mQuant;N;@e 99999.99;9;;')
   oLst:AddCol('Qtd_'+lTrim(Str(zQtdOs,10))+';zQtdOs*mQuant;P;@e 99999.99;9;;')
   if zFgFaltas='S'
      oLst:AddCol('Saldo;peAtual;N;@e 99999.99;9;;')
      oLst:AddCol('Falta;if(zQtdOs*mQuant>peAtual,zQtdOs*mQuant-peAtual,0);P;@e 99999.99;9;;')
      if zFgPrecos='S'
         oLst:AddCol('PrUnit;pVluVen3;N;@e 99999.99;9;;')
         oLst:AddCol('PrTotFalt;if(zQtdOs*mQuant>peAtual,pVluVen3*(zQtdOs*mQuant-peAtual),0);P;@e 99999.99;9;;')
         if zQtdOs*mQuant-peAtual > 0
            zPrCustoEmFalta := zPrCustoEmFalta + pVluVen3*(zQtdOs*mQuant-peAtual)
         endif
      endif
   endif

   // oLst:AddCab( {"FONT"=>"Helvetica,14", "COLS"=>"0,C"}, "OS para Montagem de "+ltrim(str(zQtdOs,10))+" pecas")
   oLst:AddCab( "(Cod "+lTrim(Str(_kits->pcod,6))+") "+lTrim(_kits->pDesc) )
   oLst:AddCab( if(zFgSoFaltas="S","VALOR DAS FALTAS","OS")+" para Montagem de "+ltrim(str(zQtdOs,10))+" pecas")
   if zQtdOs>_kits->pEatual
      oLst:AddCab( "Saldo em Estoque: "+lTrim(Str(_kits->pEatual,10))+"  A Fabricar: "+lTrim(Str(zQtdOs-_kits->pEatual)) )
   else
      oLst:AddCab( "Saldo em Estoque: "+lTrim(Str(_kits->pEatual,10)) )
   endif
   oLst:AddCab( '_LINHA_FINA_' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '_LINHA_GROSSA_' )

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

comando durante #TEXTO_FONTE
   if zFgSoFaltas<>"S" .or. zQtdOs*mQuant-peAtual > 0
      oLst:EvalCabDetRod()
   endif
#FIM_TEXTO_FONTE

comando depois #TEXTO_FONTE
   oLst:lPrtRodape := .f.
   // oLst:EvalLineBlocks('DETALHE', '_PULE_1LINHA_', '_LINHA_GROSSA_', '_SOMACOLS_')
   if zPrCustoEmFalta > 0 
      oLst:EvalLineBlocks('DETALHE', '_PULE_1LINHA_', '_LINHA_GROSSA_', {"ROWCOL" => "oLst:oPdf:pRow,0"}, "", "Custo Total das Faltas: "+lTrim(Transform(zPrCustoEmFalta,"@E 99999,999.99")))
   endif
   oLst:Run()
   oLst:End()
#FIM_TEXTO_FONTE
