Opa, desconheço mas já usei isso, vê se ajuda:
:)
1)
Ponm010( lWhorkFlow ,; //Define Que a Chamada Esta Sendo Efetuada Atraves do WorkFlow
lUserDefParam ,; //Verifica Se Devera Considerar os Parametros Pre-Definidos Pelo Usuario
lLimitaDataFim ,; //Verifica Se Devera Limitar a Data Fim a Menor Data entre a DataBase e o Periodo Final de Apontamento
cFil ,; //Filial a ser processada
lProcFilial ,; //Processo por Filial
lApontaNaoLidas ,; //Se Aponta as Marcacoes para as Filiais nao Lidas
lForceReaponta ; //Forcar o Reapontamento das Marcacoes
)
2) Depois pego os dados
SELECT PCFILIAL,RA_MAT,RA_CODFUNC,PC_MAT,PC_DATA,PC_QUANTC,PC_CC,RJ_DESC,PC_PD,P9_DESC,P9_TIPOCOD,RA_EMAIL,RA_NOME,CTT_DESC01
/FUNCIONARIOS/
FROM %table:SRA% SRA
/APONTAMENTOS/
INNER JOIN %table:SPC% SPC
ON SPC.PC_FILIAL = %xFilial:SPC%
AND SPC.PC_MAT = SRA.RA_MAT
/FUNCOES/
INNER JOIN %table:SRJ% SRJ
ON SRJ.D_E_L_E_T = ' '
AND SRJ.RJFUNCAO = SRA.RA_CODFUNC
AND SRJ.RJ_FILIAL = %xFilial:SRJ%
/TABELA DE EVENTOS/
INNER JOIN %table:SP9% SP9
ON SP9.D_E_L_E_T = ' '
AND SP9.P9FILIAL = %xFilial:SP9%
AND SP9.P9_CODIGO = SPC.PC_PD
/CENTRO DE CUSTO/
INNER JOIN %table:CTT% CTT
ON CTT.D_E_L_E_T = ' '
AND CTT.CTTCUSTO = SRA.RA_CC
AND CTT.CTT_FILIAL = %xFilial:CTT%
WHERE SRA.D_E_L_E_T = ' '
/AND SRA.RA_FILIAL = %xFilial:SRA9%/
AND PC_FILIAL BETWEEN %exp:MV_PAR01% AND %exp:MV_PAR02%
AND SRA.RA_MAT BETWEEN %exp:MV_PAR07% AND %exp:MV_PAR08%
AND SRA.RA_CC BETWEEN %exp:MV_PAR03% AND %exp:MV_PAR04%
/AND SPC.PC_DATA BETWEEN %exp:dtos(MV_PAR13)% AND %exp:dtos(MV_PAR14)%/
AND SPC.PC_DATA BETWEEN %exp:dtos(dDataBase-2)% AND %exp:dtos(dDataBase)%
/AND SPC.PC_PD IN ('050','051','052','053','609')/
AND SP9.P9_TIPOCOD = '2'
ORDER BY PC_FILIAL,PC_MAT,PC_DATA