Jump to content
Fivewin Brasil

CIACPD

Membros
  • Posts

    377
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by CIACPD

  1. Abaixo um bat exemplo de compilação,
  2. Oribeiro, a fiveweb do Lailton e a wxweb se não me engano é isto do Vailton faz exatamente isto. a fiveweb que não deve estar mais a venda eu uso a 3 anos e ainda funciona. Mas como dizem existe ferramentas melhores para fazer isto. a vantagem é usar o padrão xbase. Daniel Segura
  3. Desculpe Daniel Halon, não fui claro, o bmp vai antes de ACTIVATE WINDOWS só resolveu o problema de tela preta e pau na imagem quando minimizava e maximizava depois que coloquei a cor de fundo, na define windows, coloquei nrgb(255,255,255) e continuou ai tive a ideia de colocar nrgb( 254, 254, 254 ), e não tive mais tela preta. DEFINE WINDOW oWnd FROM 0,0 TO (nalturaWin-100), (nlarguraWin-100) ; TITLE "título aplicação" ; ICON oIco ; COLOR GetSysColor( 15 ) , nrgb( 254, 254, 254 ) ; // inserir esta linha se for 255(branco) continua o problema MENU SeuMenu() @ 0, 0 BITMAP oBmp FILENAME "farmacia.bmp" ADJUST SIZE (nalturaWin-50), (nlarguraWin-5) OF oWnd ON CLICK ( oBmp:Refresh( .t. ) ) NOBORDER oBmp:Center() sysrefresh() ACTIVATE WINDOW oWnd MAXIMIZED ON INIT ( CHECAR_ECF() , ini_senha(), set_key_geral2() )
  4. Daniel, DEFINE WINDOW oWnd FROM 0,0 TO (nalturaWin-100), (nlarguraWin-100) ; TITLE "título aplicação" ; ICON oIco ; COLOR GetSysColor( 15 ) , nrgb( 254, 254, 254 ) ; // inserir esta linha se for 255(branco) continua o problema MENU SeuMenu() Daniel Segura
  5. Márcio, eu uso o acbr e a classe hbnfe que não foi atualizada para a 3.10, no site pctoledo tem exemplos de uso. Quando crio uma nota ja preparo tanto com a classe hbnfe quanto com o ini para o acbr. Daniel Segura
  6. Luiz Fernando TRY SqlExecute("Start Transaction") SqlExecute("UPDATE mysql SET Password = PASSWORD('NOVA_SENHA') where User = 'nome_do_usuario'") CATCH SqlExecute("RollBack") END Daniel Segura
  7. Luiz Fernando, é só conectar na base de dados "mysql" tabela "user" com o mesmo ip que você conecta na base de sua aplicação. antes verifique se o usuário e senha pode acessar a base mysql. Boa sorte Daniel Segura
  8. Vamos lá, cFile -> é o nome do executável. tmp.exe -> é o novo executável que foi baixado do site via ftp conforme http://bielsys.blogspot.com.br/2009/04/actualizacion-automatica-de.html. 20 vezes-> é o número referente ao STRESS do dia quando falava para uma operadora de caixa atualizar o sistema e não dava certo no win7. cFileName ->recebe o nome de um arquivo completo incluindo o caminho e devolve só o nome . WinExec -> executa a aplicação já atualizada. segui fielmente o exemplo do biel no link informado acima, vale fazer uso desta rotina é prático e seguro.
  9. Em algumas versões do windows 7, o actver.exe não trabalha direito porque o executável da aplicação demora para finalizar por diversos motivos, o que impede que ocorra a atualização. Abaixo o fonte que uso. #include "\comp\xharbour12\include\FiveWin.ch" // -------------------------------------------------------------------------- // Function main(cFile) local cFileName , ntentativa syswait(1.7) ntentativa :=1 if file('tmp.exe') while .t. if FErase( cFile ) == -1 syswait(1.7) SendMessage( FindWindow( 0, "CiaCpd - Aplicativos e Sistemas - Desde 1992" ), WM_CLOSE ) ntentativa++ if ntentativa > 20 nMsgBox( "Não foi possível criar o arquivo.", "Atenção" ) return nil endif loop endif cFileName:=cFileName(cFile) FRename('tmp.exe',cFileName) exit enddo EndIf WinExec( cFileName ) PostQuitMessage(0) Quit Return NIL // -------------------------------------------------------------------------- // Daniel Segura
  10. Geraldo, antes de copiar os arquivos execute esta função abaixo SendMessage( FindWindow( 0, "coloque aqui o titulo da windows principal da aplicação" ), WM_CLOSE ) exemplo que uso com a minha aplicação: SendMessage( FindWindow( 0, "CiaCpd - Aplicativos e Sistemas - Desde 1992" ), WM_CLOSE ) João se voce usa o actver.exe coloque esta função para continuar atualizando no win7 Daniel Segura
  11. Crisvam, Clique no Botão < INICIAR > com o Botão esquerdo , depois em < Todos os Programas > com o Botão esquerdo , depois em < Inicializar > com o Botão Direito do Mouse, irá se abrir um Menu com várias opções a que você precisa é a < Explorar >. Abrindo a janela do Windows Explorer do lado direito da janela clique com o botão direito do mouse e escolha a opção < Novo > no menu seguinte escolha < Atalho > Irá abrir uma Janela com o campo ( Digite o Local do Ítem: ) neste campo informe o Disco \ diretório \ Nome do Arquivo , que você deseja executar quando carregar o Windows. Igual a resposta do nosso amigo Sérgio. Boa Sorte Daniel Segura
  12. Valeu João, faltava a setar a variável criei um .bat para compilar e foi de primeira. Muito Obrigado. Abaixo uma cópia do arquivo .bat que fiz para compilar. SET PATH=c:\bcc582\bin;%path% SET HB_NO_VM_ALL=1 SET HB_NO_FM_DL_ALLOC=1 SET HB_NO_DV_MEMCPY=1 CALL make_bc clean CALL make_bc all CALL make_bc contrib Daniel Segura
  13. Olá Pessoal, Estou precisando do arquivo hbzebra.lib do xharbour versão 1.2.1 (Rev 6406). Se alguem tiver ela ou souber como devo criá-la sem dar o erro dv_memcpy , poderia me enviar? Agradeço toda e qualquer ajuda. Daniel Segura daniel_segura@ig.com.br ciacpd@hotmail.com
  14. Segue, impressora:= "\\SERVIMP\LX-300" PrintFileRaw( impressora , 'arquivo.txt' , "Impressão de Arquivo Texto" ) ou se preferir um "hardcode" que é pracaba impressora:= "\\SERVIMP\LX-300" cArqImp = FCreate( ('imprime.bat' ), 0 ) cComando:='copy arquivo.txt '+impressora+CRLF Fwrite( cArqImp, cComando ) Fclose( cArqImp ) winexec( 'imprime.bat',.F. ) Boa Sorte, Daniel Segura
  15. conteúdo do CdoSys.ch #ifndef _CDOSYS_CH #define _CDOSYS_CH #define cdoSMTPServer "http://schemas.microsoft.com/cdo/configuration/smtpserver" #define cdoSMTPServerPort "http://schemas.microsoft.com/cdo/configuration/smtpserverport" #define cdoSendUsing "http://schemas.microsoft.com/cdo/configuration/sendusing" #define cdoSMTPPickupFolder "http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory" #define cdoSMTPAuthenticate "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" #define cdoSendUserName "http://schemas.microsoft.com/cdo/configuration/sendusername" #define cdoSendPassword "http://schemas.microsoft.com/cdo/configuration/sendpassword" #define cdoSMTPUseSSL "http://schemas.microsoft.com/cdo/configuration/smtpusessl" #define cdoSMTPConnectionTimeout "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" #endif Daniel Segura
  16. Segue aí João. #include "FiveWin.ch" #include "CdoSys.ch" #define WS_3DLOOK 4 #define CLR_HBROWN nRGB( 205, 192, 176 ) #define CLR_NBLUE nRGB( 142, 171, 194 ) //---------------------------------------------------------------------------------------------// Function fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort ) Local oCfg, oMsg, oError, nEle, cToken, ; aAttach := {}, ; lAuth := ! Empty( cUser ) .and. ! Empty( cPass ), ; nSendOpt := 2 // send using: 1 = pickup folder 2 = port Default nPort := 25, ; cSubject := "", ; cBody := "" If "GMAIL.COM" $ Upper( cMailServer ) .and. ( Empty( cUser ) .or. Empty( cPass ) ) MsgStop( "Com GMail são requeridos nome do usuario e senha", "Atenção" ) Return .F. EndIf CursorWait() nEle := 1 While ! Empty( cToken := StrToken( cAttach, nEle++, "," ) ) AAdd( aAttach, cToken ) EndDo Try oCfg := CreateObject( "CDO.Configuration" ) With Object oCfg:Fields :Item( cdoSMTPServer ):Value := Trim( cMailServer ) :Item( cdoSMTPServerPort ):Value := nPort :Item( cdoSendUsing ):Value := nSendOpt If lAuth :Item( cdoSMTPAuthenticate ):Value := 1 :Item( cdoSendUserName ):Value := Trim( cUser ) :Item( cdoSendPassword ):Value := Trim( cPass ) :Item( cdoSMTPUseSSL ):Value := 1 EndIf :Update() End With oMsg := CreateObject( "CDO.Message" ) With Object oMsg :Configuration := oCfg :From := Trim( cFrom ) :To := Trim( cTo ) :Subject := Trim( cSubject ) :TextBody := Trim( cBody ) For nEle := 1 To Len( aAttach ) :AddAttachment := AllTrim( aAttach[ nEle ] ) Next If ! Empty( cBCC ) :BCC := Trim( cBCC ) EndIf :Send() End With Catch oError CursorArrow() /* MsgStop( "Não foi possível enviar a mensagem" + CRLF + "Error: " + cValToChar( oError:GenCode) + CRLF + ; "SubC: " + cValToChar( oError:SubCode ) + CRLF + "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ; "SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + "Mensagem: " + oError:Description ) */ oCfg := Nil oMsg := Nil Return .F. End Try oCfg := Nil oMsg := Nil // SndPlaySound( GetWinDir() + "\media\Tada.wav", 0 ) CursorArrow() Return .T. //---------------------------------------------------------------------------------------------// Static Function fAddAttach( oGet ) Local cFile, ; cAttach := oGet:VarGet() cFile := cGetFile( "*.*", "Selecione o arquivo" ) If ! Empty( cFile ) cAttach := Lower( PadR( AllTrim( cAttach ) + If( ! Empty( cAttach ), ",", "" ) + AllTrim( cFile ), 180 ) ) EndIf oGet:cText( cAttach ) Return Nil //---------------------------------------------------------------------------------------------// function email_suporte() Local cMailServer := PadR( "smtp.ig.com.br", 60 ), ; cFrom := PadR( "meuemail@ig.com.br", 60 ), ; cTo := PadR( "emailcomcopia@hotmail.com", 180 ), ; cBCC := PadR( "meuemail@ig.com.br", 180 ), ; cAttach := "",; cSubject := "Erro - Empresa: "+xNome_Empre, ; nPort := 465, ; cUser := "meuemail@ig.com.br", ; cPass := "minhasenha", ; cBody := memoread("Error.Log")+CRLF+"SQLLIB"+CRLF+memoread("sqllog.txt") Local cBody1:=memoread("Error.Log") Local cBody2:=memoread("sqllog.txt") sysrefresh() cBody := cBody1 + CRLF + "SQLLIB" + CRLF + cBody2 sysrefresh() aTamanhoFile := directory(cdirlocal + 'Error.Log') If aTamanhoFile[1,2] < 10000 fSendMail( cMailServer, cFrom, cTo, cSubject, cBody, cAttach, cBCC, cUser, cPass, nPort ) endif FErase("Error.Log") FErase("sqllog.txt") Return .T. // -------------------------------------------------------------------------- // Daniel Segura
  17. João Bosco, Tive um problema parecido estes dias, mas no meu caso no diretório dos arquivos existia alguns arquivos html e num deles uma serial para desencryptar os arquivos momentaneamente com um exe decrypt ou algo parecido. como os dados já estavam perdidos eu tentei e deu certo. verifique os arquivos do diretório Daniel Segura
  18. Legal, para aqueles que desejarem usar o novo emulador de ecf mp4200 th fi , seguindo os passo que você colocou é só escolher a impressora ecfEscECF no acbrmonitor que funciona direito até para gerar os arquivos do PAF.
  19. Parabéns, fladimir ficou muito bem explicado. Daniel Segura
  20. Caro Marcio Eduardo, Para ficar transparente as chamadas dos módulos em outra linguagem faça conforme abaixo: Function boleto() local hWnd := FindWindow( 0, "CiaCpd - Aplicativos e Sistemas - Desde 1992" ) MsgRun( "Controle e Emissão de Boletos", , { || waitrun( ".\boleto.exe" , 0 ) } ) // acbrboleto if hWnd != nil showwindow( hWnd, 0 ) showwindow( hWnd, 6 ) showwindow( hWnd, 9 ) endif return .t. Daniel Segura
  21. Pessoal, O bradesco não atua mais como banco postal a mais de um ano. IIF(cBco == "237"," ou Banco Postal","")+"."+__ANSI Fica a dica. Daniel Segura
  22. Marcio, Realmente não encontrei como baixar, mas para ver algo diferente altere o ultimo parametro do endereço (de NO para Yes) para ver o que acontece. Quando der um clique num componente perceba que ele irá criar no topo esquerdo da tela. Já da para brincar. Daniel Segura
  23. Olá Márcio, Quando passei por um problema semelhante o que eu fiz foi separar a gravação da foto do cliente, produto .... pode ver que é semelhante ao seu comando sqlexecute("UPDATE cadcli SET FOTO = " + Any2Sql( memoread('C:\CiaLoja\foto_cli\CL'+ncodcli+'.JPG') ) + " where cadcli.CODCLI='"+ncodcli+"'") Daniel Segura
  24. Sistem, Seus dados são replicados? Uso desta forma que voce falou num sistema contabil, mas sem replicar. Exemplo, No mesmo dia um cliente compra na loja de Osasco, retira na loja de São Roque, e paga a uma parcela na loja de Sorocaba e quando ele passar por Campinas 1 hora depois poderá pedir um extrato de todo seu movimento? da forma que eu faço todas as ações são gravadas localmente e depois de 2 a 3 minutos em todas as outras lojas estarão replicados os dados. Se cair a internet tudo continua como se nada tivesse acontecido. Quando ela volta a funcionar reinicia a replicação e em instantes tudo fica lançado. Daniel Segura
×
×
  • Create New...