Jump to content
Fivewin Brasil

SAOliveira

Membros
  • Posts

    1,018
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by SAOliveira

  1. + ( * 256 ) + ( * 65536 ) ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  2. Hoje to meio enrolado, vou ver se no final da um tempo. ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  3. Precisava dar uma olhada. Este exemplo que mostrei, faz o seguinte. No micro tem modem externo, este processa uma informação, gera uma string, faz a ligação. No outro lado, tambem com modem externo, recebe o sinal, estabelece a conexao, e recebe o pacote da string, pelo proprio mode descarrega esta string numa CPU-Z80, e retorna que o pacote foi recebido. O micro inicial, finaliza a conexao. O que esta ocorrendo com voce, é que o pacote não existe e ele faz o HANGUP. Este hangup, precisa ser eliminado. ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  4. A pAlinha(), somente alinha o texto LEFT,CENTER ou RIGHT. A parte de configuração seria isto ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  5. Bem amigo, creio que o problema seja ai entao, pois uso com XHB e nao tenho problema algum, alias eu nao o cliente. E olha que não é pouco uso nao, trata-se da CSN. ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  6. Não gosto de postar assim, mas no momento estou sem tempo, espero que entenda, esta rotina uso para enviar dados para painel eletronico, via modem, no caso esta usando um modem externo, mas interno tambem funciona, desde que esteja instalado no windows, e devidamente configurado. ** Módulo : EnviaModem.prg ** ** Comentário : Transmitir dados para painel, via modem ** ** Data : 05/10/2006 - Oliveira, Sérgio A. ** **-----------------------------------------------------------** #Include "FiveWin.ch" #include "Phone.ch" **-----------------------------------------------------------** Function EnviaModem() #define FULL_SIZE 405 #define HALF_SIZE 260 #define IN_BUFFER 40 #define TERM_SIZE 300 extern Set, GetTextWidth static oSpeaker, oHangDown, oLocalNum, oNumber Private nComm, cTerminal, oTerminal, cNumber,xPacote:="", xPcte:=.f. **-----------------------------------------------------------** Private noESC[1],oDlg[1],oBotao[5],cStatusModen:='' AFILL(noESC,.f.) **-----------------------------------------------------------** _Top:=oWnd:nTop()+200 _Lef:=oWnd:nLeft()+170 _Bot:=_Top+260 _Rig:=_Lef+468 cTitulo :=" ..:: Enviar dados para painel ::. " //+AllTrim(ModemName())+" ::.." cLocalNum:="35235299" cNumber := pAlinha("0w1435235299",20,"E") **-----------------------------------------------------------** IF(! File("ARQUIVOS\ConfigPainel.DBC")) MsgInfo("Dados para transmissão ainda não configurados. "+CRLF+"Efetue no módulo configurar."," .:: Atenção ::.") RETURN(.f.) ENDIF IF(! File("ARQUIVOS\LinhaPainel.DBC")) MsgInfo("Nenhum dado para enviar ao painel"," .:: Atenção ::.") RETURN(.f.) ENDIF Use "arquivos\LinhaPainel.DBC" Index "arquivos\LinhaPainel.IND" Exclusive Alias "PNL" New Use "arquivos\ConfigPainel.DBC" Exclusive Alias "CFG" New PNL->(DBGoTop()) IF (PNL->(Eof() )) MsgInfo("Nenhum dado para enviar ao painel.",".:: Atenção ::.") DBCloseAll() RETURN(.t.) EndIf cPorta:=AllTrim(CFG->PortaCom) //ModemPort()) cNumber:="" //cNumber:=cNumber+IIf(CFG->PrefxLin==" ","",CFG->PrefxLin+"W") cNumber:=cNumber+IIf(CFG->FixarOpe=="S",CFG->CodigOpe+"-"+CFG->CodigDdd+"-"+CFG->NumerFon,CFG->numerFon) DEFINE DIALOG oDlg[1] From _Top,_Lef to _Bot,_Rig OF oWnd Pixel FONT fNormal COLOR PRETO,CINZACC TITLE cTitulo Style(DS_MODALFRAME) oDlg[1]:bCommNotify:={|nComm, nStatus|BytesAtPort(nComm,nStatus)} @ 008,010 Say "Telefone no Painel" OF oDlg[1] Pixel Size 055,007 FONT fNormal COLOR PRETO,CINZACC @ 015,010 GET oNumber VAR cNumber Picture "@!K" OF oDlg[1] Pixel Size 055,009 FONT fGet COLOR VERMELHO,FundoGet UPDATE ReadOnly // @ 030,010 BUTTON oBotao[1] Prompt "Discar" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION If( ! Empty( cNumber ), ( HangUp( .f. ), LigarNumero( cNumber ) ),) @ 030,010 BUTTON oBotao[2] Prompt "Enviar Dados" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION MandaDados(xPcte:=.t.) // @ 070,010 BUTTON oBotao[3] Prompt "Fechar Conexão" OF oDlg[1] Pixel Size 055,015 FONT fNormal ACTION Hangdown() @ 050,010 BUTTON oBotao[4] PROMPT "Sair" OF oDlg[1] Pixel Size 055,015 FONT fBold ACTION (noESC[1]:=.t.,oDlg[1]:End()) @ 008,070 Say "Status da Comunicação" OF oDlg[1] Pixel Size 100,007 FONT fNormal COLOR PRETO,CINZACC @ 015,070 GET oTerminal VAR cTerminal OF oDlg[1] Pixel Size 155,090 FONT fGet COLOR AZUL,FundoGet UPDATE MULTILINE ACTIVATE DIALOG oDlg[1] ON INIT (If( ! InitModem(), oDlg[1]:End(),(HangUp(.f.),LigarNumero(cNumber)) ),; EnableCommNotification( nComm, oDlg[1]:hWnd, IN_BUFFER, IN_BUFFER ) ); VALID ( CloseComm( nComm ), noESC[1] ) dbCloseall() Return(NIL) **-------------------------------** Static Function InitModem() **-------------------------------** Local cDcb, nError, nBytes nComm = OpenComm( cPorta, 1024, 128 ) If(! BuildCommDcb( cPorta+":1200,n,8,1", @cDcb )) nError = GetCommError( nComm ) cTerminal:="Erro inicializando modem !!!" ; oTerminal:Refresh() oBotao[2]:Disable() Return(.F.) ENDIF If( nBytes := WriteComm( nComm, "ATZ0" + Chr( 13 ) ) ) < 0 nError = GetCommError( nComm ) cTerminal:="Erro inicializando modem !!!" ; oTerminal:Refresh() oBotao[1]:Disable() oBotao[2]:Disable() oBotao[3]:Disable() Return(.F.) Endif Return(.t.) **-------------------------------------------------** Static function BytesAtPort( nComm, nStatus ) **-------------------------------------------------** Local cBuffer := Space( IN_BUFFER ) DEFAULT cTerminal := Space( TERM_SIZE ) ReadComm( nComm, @cBuffer ) cBuffer:=StrTran(cBuffer,"ATZ0","Modem inicializado com sucesso.") cBuffer:=StrTran(cBuffer,"OK","") cBuffer:=StrTran(cBuffer,"TH","") cBuffer:=Strtran(cBuffer,"ATDP","Discando para : ") cBuffer:=Strtran(cBuffer,"ATDT","Discando para : ") cBuffer:=StrTran(cBuffer,"ATH","Fechando conexão") cBuffer:=StrTran(cBuffer,"BUSY","Telefone ocupado") cBuffer:=StrTran(cBuffer,"CONNECT","Conectado ") cBuffer:=StrTran(cBuffer,"NO DIALTONE","Sem sinal para discar.") cBuffer:=StrTran(cBuffer,"NO CARRIER","Telefone não atende.") If (! Empty(xPacote)) cBuffer:="" If (xPcte) cBuffer:="Enviando dados para painel" xPcte:=.f. EndIf EndIf If (!Empty(cBuffer)) cTerminal = PadR( AllTrim( cTerminal ) + AllTrim( cBuffer ) +CRLF,TERM_SIZE ) ENDIF oTerminal:Refresh() Return(NIL) **------------------------------------------** Static Function LigarNumero( cNumber ) **------------------------------------------** LOCAL cNumero:=IIf(CFG->PrefxLin==" ","",CFG->PrefxLin+"W")+StrTran(cNumber,"-",""), nBytes:=WriteComm( nComm, AllTrim( cNumero ) + Chr( 13 ) ) If(nBytes < 0) MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) ) ENDIF Return(NIL) **--------------------------------** Static Function HangUp(lOpen) **--------------------------------** nBytes := WriteComm( nComm, "ATD"+AllTrim(CFG->TipoFone)+ If( lOpen, Chr( 13 ), " " ) ) if nBytes < 0 MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) ) Endif Return(NIL) **------------------------------** Static Function HangDown() **------------------------------** Local cTexto:="" nBytes := WriteComm( nComm, "ATH" ) if nBytes < 0 MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) ) Endif SysWait(0.05) **--[ Fecha porta Serial ]--** CloseComm( nComm ) SysWait(0.05) cTexto:="Conexão Encerrada" cTerminal:=PadR( AllTrim( cTerminal ) + cTexto + CRLF,TERM_SIZE ) oTerminal:Refresh() Return(NIL) **-------------------------------** Static Function MandaDados() **-------------------------------** PNL->(DBGoTop()) xPacote:="[L1]" WHILE(PNL->(!Eof() )) xLin1:=AnsiToOem(PNL->bailin) xLin2:=AnsiToOem(PNL->menlin) xPacote+="[M1"+pAlinha(xLin1,12,"C")+"]" xPacote+="[M2"+pAlinha(xlin2,12,"C")+"]" xPacote+="[P"+StrZero(PNL->temlin,1)+"]" PNL->(DBSkip(1)) ENDDO xPacote+="[F]" nBytes := WriteComm( nComm, xPacote + Chr( 13 ) ) if nBytes < 0 MsgStop( "Modem error: " + Str( GetCommError( nComm ) ) ) endif SysWait(2) cTexto:="Dados enviados com sucesso" cTerminal:=PadR( AllTrim( cTerminal ) + cTexto + CRLF,TERM_SIZE ) oTerminal:Refresh() Return(NIL) **------------------------------------------------** ** Configuracoes de modem instalado no windows ** **------------------------------------------------** FUNCTION ModemName() Local oReg, uVar oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. ) uVar := RTrim(oReg:Get( "DriverDesc", "" )) oReg:Close() If Empty( uVar ) oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. ) uVar := RTrim(oReg:Get( "DriverDesc", "" )) oReg:Close() Endif Return uVar FUNCTION ModemVersion() Local oReg, uVar oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. ) uVar := RTrim(oReg:Get( "DriverVersion", "" )) oReg:Close() If Empty( uVar ) oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. ) uVar := RTrim( oReg:Get( "DriverVersion", "" ) ) oReg:Close() Endif Return uVar FUNCTION ModemPort() Local oReg, uVar oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000", .f. ) uVar := RTrim( oReg:Get( "AttachedTo", "" ) ) oReg:Close() If Empty( uVar ) // Win95-98-ME doesn't have the above key oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Modem\0000", .f. ) uVar := RTrim( oReg:Get( "AttachedTo", "" ) ) oReg:Close() Endif Return uVar id=code>id=code>------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  7. citação:Pelo que sei o timer é 1/10000id=quote>id=quote>Não será 1/1000 ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  8. Não usei ainda DataRegis. Mas vamos tentar ajudar. Voce disse que o demo deles, é um executável, este executável tem configuração de Porta/Velocidade. Se sim, voce configurou o ACBR ? O ACBR quando dá erro de comunicação, significa que a porta selecionada, não corresponde a do equipamento. Em em propriedades, Gerenciador de dispositivos, tem LPT/COM, voce por acaso já conferiu a porta que esta lá, com a configurada no ACFR, este só vai até COM3. ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  9. Jef, acho que a melhor pessoa a te falar, seria o contador da empresa a qual voce presta serviços. Uma segunda alternativa seria o Posto Fiscal. ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  10. Amigo, diz aí. 1 - Porta com direto no micro ? 2 - Esta usando adaptador USB/COM ? 3 - Qual o modelo exato da ECF. 4 - Não pegou ou baixou algum software DataRegis, de teste. 5 - O Acbr esta configurado ? 6 - Já testou colocar outra ECF no ACBR ? ------------------------------------------------------------------- Boleto with Personal/FastReport it is very, very good, beyond prettier. FWH 904a, xH 1.2.1, SqlLib, MySql, ActiveX
  11. Isto porque voce definiu cor de fundo na criação da dialog. DEFINE DIALOG oDlg.........COLOR branco,vermelho. Para isto voce devera: DEFINE SAY ID xxx OF oDlg COLOR branco,vermelho
  12. Na tabela algum campo de status, tipo livre,c,1,0 que receberia S/N. Ao tentar abrir o registro checar se esta S ou N. Se S move N e deixa abrir. Se N manda mensagem. Poderia até move quem esta com o registro aberto. Só uma ideia relanpago.
  13. Um status para verificar se ja foi aprovado/reprovado não resolveria.
  14. Comecei a fazer alguns testes com a ribbonbar, e para tanto fiz dois sistemas muito simples, apenas a tela pricipal e a barra. 1º Sistema BUTTONBAR 2007 nativa. 2º Sistema RIBBONBAR ActiveX. Gerenciador de tarefas aberto, para acompanhar. Executado no mesmo micro, sem nenhuma ação, tudo parado, sequer movimentar o mouse. 1º Consumo: Processador=0 Memoria=3.664kb 2º Consumo: Processador=0 Memoria=412.658kb Tempo de comparação 60 minutos. Retorno ao sistema. 1º Normal. 2º Trava tudo, só finalizando processo. Se alguem estiver usando, e puder fazer testes e reportar, ficaria grato.
  15. Comecei a fazer alguns testes com a ribbonbar, e para tanto fiz dois sistemas muito simples, apenas a tela pricipal e a barra. 1º Sistema BUTTONBAR 2007 nativa. 2º Sistema RIBBONBAR ActiveX. Gerenciador de tarefas aberto, para acompanhar. Executado no mesmo micro, sem nenhuma ação, tudo parado, sequer movimentar o mouse. 1º Consumo: Processador=0 Memoria=3.664kb 2º Consumo: Processador=0 Memoria=412.658kb Tempo de comparação 60 minutos. Retorno ao sistema. 1º Normal. 2º Trava tudo, só finalizando processo. Se alguem estiver usando, e puder fazer testes e reportar, ficaria grato.
  16. Veja se ajuda. http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=15245
  17. Para sexta a noite, esta programado alguma coisa ?
×
×
  • Create New...