miragerr Posted March 14, 2007 Report Share Posted March 14, 2007 Ola amigos Como faço para verificar a hora da ECF com a do MICRO estão sincronizadas em 15 minutos para MAIS e para MENOS na impressora sei buscar a HORA e no micro mais facil ainda O que quero é ter uma rotina que faça esta checagem de minutos de tolerancia dos 15 minutos Agradeço toda a ajuda Jackson Douglas Boa Vista - RR FWH 2.8 Ferrari VERMELINHA + WS + XH 0.99.61 + (Ja comprei a SQLLIB, e em breve irei DESISTIR de usa-la ) email : miragerr@osite.com.br MSN : jackson_rl@hotmail.com SKYPE : jackson_rr Quote Link to comment Share on other sites More sharing options...
miragerr Posted March 14, 2007 Author Report Share Posted March 14, 2007 Ola amigos Como faço para verificar a hora da ECF com a do MICRO estão sincronizadas em 15 minutos para MAIS e para MENOS na impressora sei buscar a HORA e no micro mais facil ainda O que quero é ter uma rotina que faça esta checagem de minutos de tolerancia dos 15 minutos Agradeço toda a ajuda Jackson Douglas Boa Vista - RR FWH 2.8 Ferrari VERMELINHA + WS + XH 0.99.61 + (Ja comprei a SQLLIB, e em breve irei DESISTIR de usa-la ) email : miragerr@osite.com.br MSN : jackson_rl@hotmail.com SKYPE : jackson_rr Quote Link to comment Share on other sites More sharing options...
Flavio A. Zago Posted March 15, 2007 Report Share Posted March 15, 2007 Ola Jackson Não sei se entendi bem, mas se o que você quer é calcular a diferença em minutos entre as duas horas tente a seguinte função: FUNCTION CalcTime(cTimeInicio, cTimeFim) RETURN (((VAL(SUBSTR(cTimeFim,1,2))*3600) + ; (VAL(SUBSTR(cTimeFim,4,2))*60) + ; (VAL(SUBSTR(cTimeFim,7,2)))) - ; ((VAL(SUBSTR(cTimeInicio,1,2))*3600) + ; (VAL(SUBSTR(cTimeInicio,4,2))*60) + ; (VAL(SUBSTR(cTimeInicio,7,2))))) / 60 Obs. não está previsto a situação de as horas serem de datas diferentes. []´s Flavio Quote Link to comment Share on other sites More sharing options...
Kbelo Posted March 15, 2007 Report Share Posted March 15, 2007 Se for com a Bematech tem essa função Bematech_FI_DataHoraImpressora(Data, Hora) Data: Variável string com 6 posições para receber a data atual da impressora no formato ddmmaa. Hora: Variável string com 6 posições para receber a hora atual da impressora no formato hhmmss. Ai é só comparar com o sistema. PS. A cada Redução Z a Hora da Impressora é sincronizada com do Micro ou seja todos os dias Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS Editado por - kbelo on 15/03/2007 11:31:44 Quote Link to comment Share on other sites More sharing options...
miragerr Posted March 15, 2007 Author Report Share Posted March 15, 2007 Ola amigos Pegar os retornos da HORA do ECF é facil, e do PC mais fácil ainda, o meu dilema e tratar essa HORA para que o PC não fique 15 minutos a MAIS ou a MENOS do ECF. hHora_ECF := IBR_HORA() <-- Função para pegar a HORA do ECF hHora_PC := Time() nTempo := Elaptime( hHora_ECF, hHora_PC ) nMinu := int(mod(Secs( nTempo ),3600)/60) nHora := int(Secs( nTempo )/3600) IF nHora > 0 .OR. nMinu > 15 MsgStop("A HORA do computador esta com mais de 15 minutos de diferença"+CRLF+; "Da impressora FISCAL"+CRLF+CRLF+"HORA Impressora "+IBR_HORA()+CRLF+; "Hora do Computador "+Time()+CRLF+CRLF+"Tempo de diferença "+StrZero(nHora,2)+":"+StrZero(nMinu,2),"Atenção") PostQuitMessage(0) __Quit() ENDIF id=code>id=code>Só que quando o PC esta com 2 minutos a menos, o mesmo me mostra que esta com uma diferença de 23:00 horas, e não 2 dois minutos a menos é isso que quero TRATAR uma pequena diferença para MAIS tá facil agora pra MENOS Gratos pela a atenção Jackson Douglas Boa Vista - RR FWH 2.8 Ferrari VERMELINHA + WS + XH 0.99.61 + (Ja comprei a SQLLIB, e em breve irei DESISTIR de usa-la ) email : miragerr@osite.com.br MSN : jackson_rl@hotmail.com SKYPE : jackson_rr Quote Link to comment Share on other sites More sharing options...
tiaoFW Posted March 16, 2007 Report Share Posted March 16, 2007 Bom dia! Posto aqui a forma como verifico a tolerancia entre a hora do micro e da impressora, acho que pode te ajudar. *** Hora 15 minutos de tolerancia if dif_hora(substr(hora_mic,1,4),substr(hora_imp,1,4),15) erro('Hora do computador está muito diferente da impressora'+CRLF+; 'Computador: '+Trans(hora_mic,"@R 99:99:99")+CRLF+; 'Impressora: '+Trans(hora_imp,"@R 99:99:99")+CRLF+; 'Altere a Hora do computador para continuar!') return .f. endif Função que verifica a diferença Function dif_hora(hora_a,hora_b,difminutos) // Hora sem as barras ******************************************** local minutos_a, minutos_b, horas_a, horas_b, retorno := .f. horas_a = val(substr(hora_a,1,2)) horas_b = val(substr(hora_b,1,2)) minutos_a = val(substr(hora_a,3,2)) minutos_b = val(substr(hora_b,3,2)) if horas_a > horas_b minutos_a = minutos_a + ((horas_a - horas_ * 60) elseif horas_b > horas_a minutos_b = minutos_b + ((horas_b - horas_a) * 60) endif if (minutos_a + difminutos) < minutos_b .or. (minutos_a - difminutos) > minutos_b retorno = .t. endif return retorno id=code>id=code>FW 2.5/CLIPPER 5.3b, BLINKER 7 Belzonte - Minas Gerais Quote Link to comment Share on other sites More sharing options...
miragerr Posted March 16, 2007 Author Report Share Posted March 16, 2007 Ola amigos Beleza TIAO, vou testar Jackson Douglas Boa Vista - RR FWH 2.8 Ferrari VERMELINHA + WS + XH 0.99.61 + (Ja comprei a SQLLIB, e em breve irei DESISTIR de usa-la ) email : miragerr@osite.com.br MSN : jackson_rl@hotmail.com SKYPE : jackson_rr Quote Link to comment Share on other sites More sharing options...
Kbelo Posted March 16, 2007 Report Share Posted March 16, 2007 Bom a sua verificação de minutos deve estar igual a minha. O que acontece é que a ECF esta com 17:15 e o computador 17:13 se comparar vai dar uma diferença de 23:58 pois ele vai considerar o 17:13 do proximo dia. Faça uma verificação para sempre calcular do maior para o menor que nao tera erro ou vice versa. é só fazer if horaECF + minutoECF > horaPC + minutoPC resultado=horaECF + minutoECF - horaPC + minutoPC else resultado=horaPC + minutoPC - horaECF + minutoECF endif id=code>id=code>Acho que é mais ou menos isso. Se ainda tiver duvidas mostre como esta a sua verificação que tento faço a alteração pra considerar isto Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.